package zmaster587.advancedRocketry.client.render.multiblocks; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; import zmaster587.advancedRocketry.inventory.TextureResources; import zmaster587.libVulpes.block.RotatableBlock; import zmaster587.libVulpes.tile.multiblock.TileMultiBlock; public class RenderTerraformerAtm extends TileEntitySpecialRenderer { IModelCustom model = AdvancedModelLoader.loadModel(new ResourceLocation("advancedrocketry:models/terraformerAtm.obj")); ResourceLocation tubeTexture = new ResourceLocation("advancedRocketry:textures/models/tubes.png"); @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) { TileMultiBlock multiBlockTile = (TileMultiBlock)tile; if(!multiBlockTile.canRender()) return; GL11.glPushMatrix(); //Initial setup int bright = tile.getWorldObj().getLightBrightnessForSkyBlocks(tile.xCoord, tile.yCoord + 1, tile.zCoord,0); int brightX = bright % 65536; int brightY = bright / 65536; OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, brightX, brightY); //Rotate and move the model into position GL11.glTranslated(x + 0.5, y, z + 0.5); ForgeDirection front = RotatableBlock.getFront(tile.getBlockMetadata()); GL11.glRotatef((front.offsetX == 1 ? 180 : 0) + front.offsetZ*90f, 0, 1, 0); GL11.glTranslated(1f, 0, 0f); bindTexture(TextureResources.fan); model.renderOnly("Fan"); bindTexture(TextureResources.metalPlate); model.renderOnly("Body"); float col = .4f; GL11.glColor3f(col, col, col); model.renderOnly("DarkBody"); col = 1f; GL11.glColor3f(col, col, col); bindTexture(TextureResources.diamondMetal); model.renderOnly("Floor"); //Baked a light map, make tubes smooth GL11.glDisable(GL11.GL_LIGHTING); bindTexture(tubeTexture); model.renderOnly("Tubes"); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glColor3f(0, 0.9f, col); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 196, 196); model.renderOnly("BlueRing"); GL11.glColor3f(col, col, col); GL11.glEnable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glPopMatrix(); } }