private static BakedModelSpellPage rebake(ModelSpellPage model, Spell spell) {
Matrix4f m = new Matrix4f();
m.m20 = 1f / 128f;
m.m01 = m.m12 = -m.m20;
m.m33 = 1;
Matrix3f rotation = new Matrix3f();
m.getRotationScale(rotation);
Matrix3f angle = new Matrix3f();
angle.rotZ(1.5708F);
rotation.mul(rotation, angle);
m.setRotationScale(rotation);
m.setScale(0.75F * m.getScale());
m.setTranslation(new Vector3f(0.8625F, 0.095F, 0.8625F));
SimpleModelFontRenderer fontRenderer = new SimpleModelFontRenderer(Minecraft.getMinecraft().gameSettings, font, Minecraft.getMinecraft().getTextureManager(), false, m, DefaultVertexFormats.ITEM) {
@Override
protected float renderUnicodeChar(char c, boolean italic) {
return super.renderDefaultChar(126, italic);
}
};
TextureAtlasSprite fontSprite = Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(font2.toString());
List textQuads = new ArrayList();
fontRenderer.setSprite(fontSprite);
fontRenderer.setFillBlanks(false);
String name = TextFormatting.BOLD + I18n.translateToLocal(spell.getUnlocalizedName() + ".name");
String text = I18n.translateToLocal(spell.getUnlocalizedName() + ".desc");
String castingType = "--" + I18n.translateToLocal(spell.getCastingType().getName() + ".name") + "--";
int yOffset = 0;
fontRenderer.drawString(name, (126 - fontRenderer.getStringWidth(name)) / 2, yOffset, 0x007A0000);
yOffset += (fontRenderer.FONT_HEIGHT + 1);
List lines = fontRenderer.listFormattedStringToWidth(text, 126);
for (int line = 0; line < lines.size(); line++) {
int offset = ((126 - fontRenderer.getStringWidth(lines.get(line))) / 2);
fontRenderer.drawString(lines.get(line), offset, yOffset, 0x004F0000);
yOffset += fontRenderer.FONT_HEIGHT;
}
yOffset += 5;
fontRenderer.drawString(castingType, (126 - fontRenderer.getStringWidth(castingType)) / 2, yOffset, 0x00210000);
textQuads.addAll(fontRenderer.build());
return new BakedModelSpellPage(model, textQuads);
}