package openblocks.client.renderer.tileentity; import net.minecraft.client.model.ModelBook; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.Entity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import openblocks.common.tileentity.TileEntityAutoEnchantmentTable; import org.lwjgl.opengl.GL11; public class TileEntityAutoEnchantmentTableRenderer extends TileEntitySpecialRenderer { private static final ResourceLocation enchantingTableBookTextures = new ResourceLocation("textures/entity/enchanting_table_book.png"); private ModelBook enchantmentBook = new ModelBook(); @Override public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { TileEntityAutoEnchantmentTable table = (TileEntityAutoEnchantmentTable)tileentity; GL11.glPushMatrix(); GL11.glTranslatef((float)x + 0.5F, (float)y + 0.75F, (float)z + 0.5F); float f1 = table.tickCount + f; GL11.glTranslatef(0.0F, 0.1F + MathHelper.sin(f1 * 0.1F) * 0.01F, 0.0F); float f2 = table.bookRotation2 - table.bookRotationPrev; while (f2 >= (float)Math.PI) f2 -= 2 * (float)Math.PI; while (f2 < -(float)Math.PI) { f2 += 2 * (float)Math.PI; } float f3 = table.bookRotationPrev + f2 * f; GL11.glRotatef(-f3 * 180.0F / (float)Math.PI, 0.0F, 1.0F, 0.0F); GL11.glRotatef(80.0F, 0.0F, 0.0F, 1.0F); bindTexture(enchantingTableBookTextures); float f4 = table.pageFlipPrev + (table.pageFlip - table.pageFlipPrev) * f + 0.25F; float f5 = table.pageFlipPrev + (table.pageFlip - table.pageFlipPrev) * f + 0.75F; f4 = (f4 - MathHelper.truncateDoubleToInt(f4)) * 1.6F - 0.3F; f5 = (f5 - MathHelper.truncateDoubleToInt(f5)) * 1.6F - 0.3F; if (f4 < 0.0F) { f4 = 0.0F; } if (f5 < 0.0F) { f5 = 0.0F; } if (f4 > 1.0F) { f4 = 1.0F; } if (f5 > 1.0F) { f5 = 1.0F; } float f6 = table.bookSpreadPrev + (table.bookSpread - table.bookSpreadPrev) * f; GL11.glEnable(GL11.GL_CULL_FACE); this.enchantmentBook.render((Entity)null, f1, f4, f5, f6, 0.0F, 0.0625F); GL11.glPopMatrix(); GL11.glColor4f(1, 1, 1, 1); } }