summaryrefslogtreecommitdiff
path: root/ihl/collector/ChargerEjectorRender.java
blob: 07ed0af6865ac52a880b55b39469cee1fee12dc1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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
	}

}