summaryrefslogtreecommitdiff
path: root/ihl/collector/ChargerEjectorRender.java
diff options
context:
space:
mode:
authorFoghrye4 <foghrye4@gmail.com>2016-04-11 19:44:54 +0300
committerFoghrye4 <foghrye4@gmail.com>2016-04-11 19:44:54 +0300
commit05c78126859231a68e199dc34613689bd0978e2f (patch)
tree050bea104a18c72905095d29f31bec2935a27a24 /ihl/collector/ChargerEjectorRender.java
Initial commit
Diffstat (limited to 'ihl/collector/ChargerEjectorRender.java')
-rw-r--r--ihl/collector/ChargerEjectorRender.java92
1 files changed, 92 insertions, 0 deletions
diff --git a/ihl/collector/ChargerEjectorRender.java b/ihl/collector/ChargerEjectorRender.java
new file mode 100644
index 0000000..07ed0af
--- /dev/null
+++ b/ihl/collector/ChargerEjectorRender.java
@@ -0,0 +1,92 @@
+package ihl.collector;
+
+import org.lwjgl.opengl.GL11;
+
+import ihl.IHLModInfo;
+import ihl.utils.IHLItemRenderer;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.entity.RenderManager;
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ResourceLocation;
+
+public class ChargerEjectorRender extends TileEntitySpecialRenderer {
+ private ChargerEjectorModel model = new ChargerEjectorModel();
+ private ResourceLocation tex = new ResourceLocation(IHLModInfo.MODID+":textures/blocks/chargerEjector.png");
+ private int blink=0;
+ private IHLItemRenderer itemRenderer=new IHLItemRenderer();
+
+ @Override
+ public void renderTileEntityAt(TileEntity par1TileEntity, double par2, double par4, double par6, float par8)
+ {
+ this.renderAModelAt((ChargerEjectorTileEntity)par1TileEntity, par2, par4, par6, par8);
+ }
+
+ private void renderAModelAt(ChargerEjectorTileEntity te,
+ double x, double y, double z, float par8) {
+ if(blink<60)
+ {
+ blink++;
+ }
+ else
+ {
+ blink=0;
+ }
+ int[] x0={0,-8,0,8,0,-8,0,8,-4};
+ int[] z0={0,0,-8,0,0,0,8,0,-4};
+ int[] y0={0,0,0,0,-12,0,0,0,-12};
+ int[] x1={0,-8,-8,0,0,-8,-8, 0,-4};
+ int[] z1={0, 0, 8,8,8, 8, 0, 0, 4};
+ int[] y1={0, 0, 0,0,6, 6, 6, 6,12};
+ for(int i=0;i<9;i++)
+ {
+ this.itemRenderer.doRender(RenderManager.instance, te.chargeSlot.get(i), x+x1[i]/16F+0.75D, y+y1[i]/16F+0.25D, z+z1[i]/16F+0.25D);
+ }
+ bindTexture(tex); //texture
+ GL11.glPushMatrix();
+ GL11.glTranslatef((float)x + 0.5F, (float)y + 12F/16F, (float)z + 0.5F);
+ GL11.glScalef(1.0F, -0.5F, -1F);
+ model.Base.render(1.0F/16.0F);
+ OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 0xf0, 0xf0);
+ for(int i=0;i<9;i++)
+ {
+
+ GL11.glTranslatef(x0[i]/16F, y0[i]/16F, z0[i]/16F);
+ if(te.chargeSlotStatus[i]<=0)
+ {
+ model.LightOffA.render(1F/16F);
+ model.LightOffB.render(1F/16F);
+ model.LightOffC.render(1F/16F);
+ }
+ else if(te.chargeSlotStatus[i]==2)
+ {
+ model.LightOnA.render(1F/16F);
+ model.LightOnB.render(1F/16F);
+ model.LightOnC.render(1F/16F);
+ }
+ else
+ {
+ if(blink<20)
+ {
+ model.LightOnA.render(1F/16F);
+ model.LightOffB.render(1F/16F);
+ model.LightOffC.render(1F/16F);
+ }
+ else if(blink>=20 && blink<40)
+ {
+ model.LightOffA.render(1F/16F);
+ model.LightOnB.render(1F/16F);
+ model.LightOffC.render(1F/16F);
+ }
+ else
+ {
+ model.LightOffA.render(1F/16F);
+ model.LightOffB.render(1F/16F);
+ model.LightOnC.render(1F/16F);
+ }
+ }
+ }
+ GL11.glPopMatrix(); //end
+ }
+
+}