/* * Copyright (c) CovertJaguar, 2014 http://railcraft.info * * This code is the property of CovertJaguar * and may only be used with explicit written * permission unless otherwise specified on the * license page at http://railcraft.info/wiki/info:license. */ package mods.railcraft.client.render.models.engine; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import mods.railcraft.common.blocks.machine.beta.TileEngine.EnergyStage; /** * * @author CovertJaguar <http://www.railcraft.info> */ public class ModelEngineTrunk extends ModelBase { private final ModelRenderer blue = new ModelRenderer(this, "blue"); private final ModelRenderer green = new ModelRenderer(this, "green"); private final ModelRenderer yellow = new ModelRenderer(this, "yellow"); private final ModelRenderer orange = new ModelRenderer(this, "orange"); private final ModelRenderer red = new ModelRenderer(this, "red"); private ModelRenderer[] renderers; public ModelEngineTrunk() { renderers = new ModelRenderer[]{blue, green, yellow, orange, red}; blue.setTextureOffset(1, 57); green.setTextureOffset(35, 57); yellow.setTextureOffset(69, 57); orange.setTextureOffset(1, 79); red.setTextureOffset(35, 79); for(ModelRenderer renderer : renderers) { renderer.setTextureSize(128, 128); renderer.addBox(-4, -4, -4, 8, 12, 8); renderer.rotationPointX = 8F; renderer.rotationPointY = 8F; renderer.rotationPointZ = 8F; } } public void render(EnergyStage stage, float factor) { switch (stage) { case BLUE: blue.render(factor); break; case GREEN: green.render(factor); break; case YELLOW: yellow.render(factor); break; case ORANGE: orange.render(factor); break; default: red.render(factor); break; } } public void rotate(float x, float y, float z) { for(ModelRenderer renderer : renderers) { renderer.rotateAngleX = x; renderer.rotateAngleY = y; renderer.rotateAngleZ = z; } } }