From 05c78126859231a68e199dc34613689bd0978e2f Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Mon, 11 Apr 2016 19:44:54 +0300 Subject: Initial commit --- ihl/collector/CollectorRender.java | 112 +++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 ihl/collector/CollectorRender.java (limited to 'ihl/collector/CollectorRender.java') diff --git a/ihl/collector/CollectorRender.java b/ihl/collector/CollectorRender.java new file mode 100644 index 0000000..ad93907 --- /dev/null +++ b/ihl/collector/CollectorRender.java @@ -0,0 +1,112 @@ +package ihl.collector; +import net.minecraft.client.model.ModelBox; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; +import ihl.IHLModInfo; +import ihl.utils.IHLItemRenderer; + +public class CollectorRender extends Render{ + + private CollectorModel model = new CollectorModel(); + private ResourceLocation tex; + private float scale; + private int blink = 0; + private IHLItemRenderer itemRenderer; + + public CollectorRender(boolean heavy) + { + super(); + this.itemRenderer=new IHLItemRenderer(); + if(heavy) + { + scale = 1F/80F; + tex = new ResourceLocation(IHLModInfo.MODID+":textures/entities/collectorHeavy.png"); + } + else + { + scale = 1F/100F; + tex = new ResourceLocation(IHLModInfo.MODID+":textures/entities/collector.png"); + } + } + + @Override + public void doRender(Entity entity, double x, double y, double z, float arg4, float arg5) + { + if(blink<30) + { + blink++; + } + else + { + blink=0; + } + int levelBar=0; + if(entity instanceof CollectorHeavyEntity) + { + CollectorHeavyEntity cEntity = (CollectorHeavyEntity) entity; + levelBar = Math.max(0,model.Indicator.cubeList.size()-1-Math.round(cEntity.getRenderEnergyLevel()*model.Indicator.cubeList.size())); + for(int col=0;col<2;col++) + { + for(int row=0;row<2;row++) + { + ItemStack stack = cEntity.getVisibleItemStack(col+row*2); + if(stack!=null) + { + this.itemRenderer.doRender(this.renderManager, stack, x-0.125D+0.25D*col, y, z-0.125D+0.25D*row); + } + } + } + + } + else if(entity instanceof CollectorEntity) + { + CollectorEntity cEntity = (CollectorEntity) entity; + levelBar = Math.max(0,model.Indicator.cubeList.size()-1-Math.round(cEntity.getRenderEnergyLevel()*model.Indicator.cubeList.size())); + ItemStack stack = cEntity.getVisibleItemStack(); + if(stack!=null) + { + this.itemRenderer.doRender(this.renderManager, stack, x, y, z); + } + } + bindTexture(tex); + GL11.glPushMatrix(); + GL11.glTranslatef((float)x, (float)y+0.25F, (float)z); + GL11.glScalef(1.0F, -1F, -1F); + GL11.glRotated(entity.rotationYaw+90D, 0D, 1.0D, 0D); + model.Base.render(scale); + for(int i=0;i<4;i++) + { + model.Eleron.rotateAngleY=i*(float)Math.PI/2; + model.Eleron.render(scale); + } + OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 0xf0, 0xf0); + for(int i=0;i<4;i++) + { + GL11.glRotatef(i* 90F, 0.0F, 1.0F, 0.0F); + model.Flares.render(scale); + if(levelBar 15) + { + ModelBox box = (ModelBox) model.Indicator.cubeList.get(levelBar); + box.render(Tessellator.instance,scale); + } + else if(blink < 15) + { + ModelBox box = (ModelBox) model.Indicator.cubeList.get(model.Indicator.cubeList.size()-1); + box.render(Tessellator.instance,scale); + } + } + GL11.glPopMatrix(); //end + + } + + @Override + protected ResourceLocation getEntityTexture(Entity arg0) { + return this.tex; + } + +} \ No newline at end of file -- cgit v1.2.3