package matteroverdrive.client.render.tileentity; import matteroverdrive.Reference; import matteroverdrive.tile.TileEntityMachinePatternStorage; import matteroverdrive.util.RenderUtils; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; /** * Created by Simeon on 3/19/2015. */ public class TileEntityRendererPatterStorage extends TileEntitySpecialRenderer { private IModelCustom model; private ResourceLocation texture; private ResourceLocation ventTexture; EntityItem itemEntity; public TileEntityRendererPatterStorage() { texture = new ResourceLocation(Reference.PATH_BLOCKS + "pattern_storage.png"); ventTexture = new ResourceLocation(Reference.PATH_BLOCKS + "vent.png"); model = AdvancedModelLoader.loadModel(new ResourceLocation(Reference.MODEL_PATTERN_STORAGE)); } @Override public void renderTileEntityAt(TileEntity entity, double x, double y, double z, float ticks) { TileEntityMachinePatternStorage patternStorage = (TileEntityMachinePatternStorage)entity; if(patternStorage != null) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5f, y + 0.5f, z + 0.5f); RenderUtils.rotateFromBlock(patternStorage.getWorldObj(), patternStorage.xCoord, patternStorage.yCoord, patternStorage.zCoord); bindTexture(texture); for (int i = 0; i < patternStorage.pattern_storage_slots.length; i++) { ItemStack drive = patternStorage.getStackInSlot(patternStorage.pattern_storage_slots[i]); if(drive != null) { GL11.glPushMatrix(); GL11.glTranslatef(i >= 3 ? -0.3f : 0.3f, 0.1f - 0.2f * (i % 3), -0.2f); model.renderPart("drive"); GL11.glPopMatrix(); } } GL11.glPopMatrix(); } } }