package mods.eln.sixnode.tutorialsign; import mods.eln.misc.Obj3D; import mods.eln.misc.Obj3D.Obj3DPart; import mods.eln.misc.UtilsClient; import mods.eln.misc.VoltageLevelColor; import mods.eln.node.six.SixNodeDescriptor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import org.lwjgl.opengl.GL11; import java.util.List; public class TutorialSignDescriptor extends SixNodeDescriptor { private Obj3D obj; private Obj3DPart main, light, halo; public TutorialSignDescriptor(String name, Obj3D obj) { super(name, TutorialSignElement.class, TutorialSignRender.class); this.obj = obj; if (obj != null) { main = obj.getPart("main"); light = obj.getPart("light"); halo = obj.getPart("halo"); } voltageLevelColor = VoltageLevelColor.Neutral; } void setupColor(float factor, float alpha) { if (factor < 0.5) { factor *= 2; float factorN = 1f - factor; GL11.glColor4f(0, 0, 0.4f * factorN, alpha); } else { factor = (factor - 0.5f) * 2; float factorN = 1f - factor; GL11.glColor4f(0, 1 * factor, 0, alpha); } } void draw(float factor) { //GL11.glColor3f(0.8f, 0.8f, 0.8f); if (main != null) main.draw(); UtilsClient.disableLight(); setupColor(factor, 1); if (light != null) { light.draw(); } UtilsClient.enableBlend(); setupColor(factor, 0.4f); if (halo != null) halo.draw(); UtilsClient.disableBlend(); UtilsClient.enableLight(); GL11.glColor3f(1f, 1f, 1f); } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return type != ItemRenderType.INVENTORY; } @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { return true; } @Override public boolean shouldUseRenderHelperEln(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return type != ItemRenderType.INVENTORY; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { if (type == ItemRenderType.INVENTORY) { super.renderItem(type, item, data); } else { draw(1f); } } @Override public void addInformation(ItemStack itemStack, EntityPlayer entityPlayer, List list, boolean par4) { super.addInformation(itemStack, entityPlayer, list, par4); //list.add(""); } }