package resonantinduction.old.client.render; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.util.ResourceLocation; import net.minecraft.world.IBlockAccess; import org.lwjgl.opengl.GL11; import resonantinduction.core.Reference; import resonantinduction.old.client.model.ModelConstructionPump; import resonantinduction.old.client.model.ModelGearRod; import resonantinduction.old.client.model.ModelGenerator; import resonantinduction.old.client.model.ModelPump; import resonantinduction.old.client.model.ModelSink; import resonantinduction.old.core.recipe.RecipeLoader; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class BlockRenderHelper implements ISimpleBlockRenderingHandler { public static BlockRenderHelper instance = new BlockRenderHelper(); public static int renderID = RenderingRegistry.getNextAvailableRenderId(); private ModelPump modelPump = new ModelPump(); private ModelGearRod modelRod = new ModelGearRod(); private ModelGenerator modelGen = new ModelGenerator(); private ModelSink sink = new ModelSink(); private ModelConstructionPump conPump = new ModelConstructionPump(); @Override public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) { GL11.glPushMatrix(); if (RecipeLoader.blockPumpMachine != null && block.blockID == RecipeLoader.blockPumpMachine.blockID && metadata < 4) { GL11.glTranslatef(0.0F, 1.1F, 0.0F); GL11.glRotatef(180f, 0f, 0f, 1f); FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation(Reference.DOMAIN, Reference.MODEL_DIRECTORY + "pumps/WaterPump.png")); modelPump.render(0.0725F); modelPump.renderMotion(0.0725F, 0); } else if (RecipeLoader.blockSink != null && block.blockID == RecipeLoader.blockSink.blockID) { GL11.glTranslatef(0.0F, .8F, 0.0F); GL11.glRotatef(180f, 0f, 0f, 1f); FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation(Reference.DOMAIN, Reference.MODEL_DIRECTORY + "Sink.png")); sink.render(0.0565F); } else if (RecipeLoader.blockRod != null && block.blockID == RecipeLoader.blockRod.blockID) { GL11.glTranslatef(0.0F, 1.5F, 0.0F); GL11.glRotatef(180f, 0f, 0f, 1f); FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation(Reference.DOMAIN, Reference.MODEL_DIRECTORY + "mechanical/GearRod.png")); modelRod.render(0.0825F, 0); } else if (RecipeLoader.blockConPump != null && block.blockID == RecipeLoader.blockConPump.blockID && metadata < 4) { GL11.glTranslatef(0.0F, 1.2F, 0.0F); GL11.glRotatef(180f, 0f, 0f, 1f); FMLClientHandler.instance().getClient().renderEngine.bindTexture(new ResourceLocation(Reference.DOMAIN, Reference.MODEL_DIRECTORY + "ConstructionPump.png")); conPump.render(0.0725F); conPump.renderMotor(0.0725F); } else if (RecipeLoader.frackingPipe != null && block.blockID == RecipeLoader.frackingPipe.blockID) { FMLClientHandler.instance().getClient().renderEngine.bindTexture(RenderFrackingPipe.TEXTURE); GL11.glTranslatef(0, 1F, 0); GL11.glScalef(1.0F, -1F, -1F); RenderFrackingPipe.model.renderAll(); } GL11.glPopMatrix(); } @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { return false; } @Override public boolean shouldRender3DInInventory() { return true; } @Override public int getRenderId() { return renderID; } }