From a985fc9bacdb1a15a3b6192e74acb38cc862cd05 Mon Sep 17 00:00:00 2001 From: pahimar Date: Thu, 4 Oct 2012 15:02:34 -0400 Subject: [PATCH] Fix up some Z conflicts, seam issues, and simplified the model code further --- .../ee3/client/render/ModelCalcinator.java | 88 +++++++++--------- resources/ee3/art/sprites/calcinator.png | Bin 6148 -> 3503 bytes resources/ee3/art/sprites/xcf/calcinator.xcf | Bin 0 -> 13376 bytes 3 files changed, 43 insertions(+), 45 deletions(-) create mode 100644 resources/ee3/art/sprites/xcf/calcinator.xcf diff --git a/ee3_client/ee3/client/render/ModelCalcinator.java b/ee3_client/ee3/client/render/ModelCalcinator.java index f2f2c599..c528b1cd 100644 --- a/ee3_client/ee3/client/render/ModelCalcinator.java +++ b/ee3_client/ee3/client/render/ModelCalcinator.java @@ -26,62 +26,64 @@ public class ModelCalcinator extends ModelBase { this.textureWidth = TEXTURE_WIDTH; this.legFrontLeft = new ModelRenderer(this, 0, 0); - this.legFrontLeft.addBox(-1F, -8F, -1F, 2, 8, 2); - this.legFrontLeft.setRotationPoint(2, 8, 2); - this.legFrontLeft.rotateAngleY = ((float) Math.PI / 4F); + this.legFrontLeft.addBox(-1F, -8F, -1F, 2, 8, 2, scale); + this.legFrontLeft.setRotationPoint(-9F, 4, 0); this.legFrontRight = new ModelRenderer(this, 0, 0); - this.legFrontRight.addBox(-1F, -8F, -1F, 2, 8, 2); - this.legFrontRight.setRotationPoint(2, 8, 14); - this.legFrontRight.rotateAngleY = ((float) Math.PI / 4F); + this.legFrontRight.addBox(-1F, -8F, -1F, 2, 8, 2, scale); + this.legFrontRight.setRotationPoint(9F, 4, 0); this.legBackLeft = new ModelRenderer(this, 0, 0); - this.legBackLeft.addBox(-1F, -8F, -1F, 2, 8, 2); - this.legBackLeft.setRotationPoint(14, 8, 2); - this.legBackLeft.rotateAngleY = ((float) Math.PI / 4F); + this.legBackLeft.addBox(-1F, -8F, -1F, 2, 8, 2, scale); + this.legBackLeft.setRotationPoint(0, 4, -9F); this.legBackRight = new ModelRenderer(this, 0, 0); - this.legBackRight.addBox(-1F, -8F, -1F, 2, 8, 2); - this.legBackRight.setRotationPoint(14, 8, 14); - this.legBackRight.rotateAngleY = ((float) Math.PI / 4F); + this.legBackRight.addBox(-1F, -8F, -1F, 2, 8, 2, scale); + this.legBackRight.setRotationPoint(0, 4, 9F); - this.armFrontLeft = new ModelRenderer(this, 8, 0); - this.armFrontLeft.addBox(-2F, -0.5F, -0.5F, 4, 1, 1); - this.armFrontLeft.setRotationPoint(4, 3, 4); - this.armFrontLeft.rotateAngleY = ((float) Math.PI * 3 / 4F); - this.armFrontRight = new ModelRenderer(this, 8, 0); - this.armFrontRight.addBox(-2F, -0.5F, -0.5F, 4, 1, 1); - this.armFrontRight.setRotationPoint(12, 3, 4); - this.armFrontRight.rotateAngleY = ((float) Math.PI / 4F); - this.armBackLeft = new ModelRenderer(this, 8, 0); - this.armBackLeft.addBox(-2F, -0.5F, -0.5F, 4, 1, 1); - this.armBackLeft.setRotationPoint(12, 3, 12); - this.armBackLeft.rotateAngleY = ((float) Math.PI * 7 / 4F); - this.armBackRight = new ModelRenderer(this, 8, 0); - this.armBackRight.addBox(-2F, -0.5F, -0.5F, 4, 1, 1); - this.armBackRight.setRotationPoint(4, 3, 12); - this.armBackRight.rotateAngleY = ((float) Math.PI * 5 / 4F); + this.armFrontLeft = new ModelRenderer(this, 0, 10); + this.armFrontLeft.addBox(-2F, -1F, -1F, 4, 2, 2, scale); + this.armFrontLeft.setRotationPoint(6, 0, 0); + this.armFrontRight = new ModelRenderer(this, 0, 10); + this.armFrontRight.addBox(-2F, -1F, -1F, 4, 2, 2, scale); + this.armFrontRight.setRotationPoint(-6, 0, 0); + this.armBackLeft = new ModelRenderer(this, 12, 10); + this.armBackLeft.addBox(-1F, -1F, -2.0F, 2, 2, 4, scale); + this.armBackLeft.setRotationPoint(0, 0, 6); + this.armBackRight = new ModelRenderer(this, 12, 10); + this.armBackRight.addBox(-1F, -1F, -2.0F, 2, 2, 4, scale); + this.armBackRight.setRotationPoint(0, 0, -6); - this.firePlate = new ModelRenderer(this, 0, 10); - this.firePlate.addBox(-4F, -0.5F, -4F, 8, 1, 8); - this.firePlate.setRotationPoint(8, 3, 8); + this.firePlate = new ModelRenderer(this, 8, 0); + this.firePlate.addBox(-4F, -1F, -4F, 8, 2, 8, scale); + this.firePlate.setRotationPoint(8, 4, 8); this.firePlate.rotateAngleY = ((float) Math.PI / 4F); + this.firePlate.addChild(this.legFrontLeft); + this.firePlate.addChild(this.legFrontRight); + this.firePlate.addChild(this.legBackLeft); + this.firePlate.addChild(this.legBackRight); + this.firePlate.addChild(this.armFrontLeft); + this.firePlate.addChild(this.armFrontRight); + this.firePlate.addChild(this.armBackLeft); + this.firePlate.addChild(this.armBackRight); + + this.bowlBottom = new ModelRenderer(this, 0, 19); - this.bowlBottom.addBox(-8F, -1F, -8F, 16, 1, 16); + this.bowlBottom.addBox(-8F, -1F, -8F, 16, 1, 16, scale); this.bowlBottom.setRotationPoint(8, 9, 8); this.bowlBack = new ModelRenderer(this, 0, 36); - this.bowlBack.addBox(-8F, -3.5F, -0.5F, 16, 7, 1); + this.bowlBack.addBox(-8F, -3.5F, -0.5F, 16, 7, 1, scale); this.bowlBack.setRotationPoint(8F, 12.5F, 0.5F); this.bowlFront = new ModelRenderer(this, 0, 36); - this.bowlFront.addBox(-8F, -3.5F, -0.5F, 16, 7, 1); + this.bowlFront.addBox(-8F, -3.5F, -0.5F, 16, 7, 1, scale); this.bowlFront.setRotationPoint(8, 12.5F, 15.5F); this.bowlLeft = new ModelRenderer(this, 0, 44); - this.bowlLeft.addBox(-0.5F, -3.5F, -7F, 1, 7, 14); + this.bowlLeft.addBox(-0.5F, -3.5F, -7F, 1, 7, 14, scale); this.bowlLeft.setRotationPoint(0.5F, 12.5F, 8); this.bowlRight = new ModelRenderer(this, 0, 44); - this.bowlRight.addBox(-0.5F, -3.5F, -7F, 1, 7, 14); + this.bowlRight.addBox(-0.5F, -3.5F, -7F, 1, 7, 14, scale); this.bowlRight.setRotationPoint(15.5F, 12.5F, 8); this.ashLayer = new ModelRenderer(this, 0, 65); - this.ashLayer.addBox(-7F, -0.5F, -7F, 14, 1, 14); + this.ashLayer.addBox(-7F, -0.5F, -7F, 14, 1, 14, scale); this.ashLayer.setRotationPoint(8, 9, 8); this.ashLayer.mirror = true; } @@ -93,15 +95,10 @@ public class ModelCalcinator extends ModelBase { GL11.glTranslated(x, y, z); ForgeHooksClient.bindTexture(Reference.SPRITE_SHEET_LOCATION + "calcinator.png", 0); - legFrontLeft.render(scale); - legFrontRight.render(scale); - legBackLeft.render(scale); - legBackRight.render(scale); - armFrontLeft.render(scale); - armFrontRight.render(scale); - armBackLeft.render(scale); - armBackRight.render(scale); + // TODO Make a fire pot instead of a plate firePlate.render(scale); + + // TODO Merge this together better bowlBottom.render(scale); bowlBack.render(scale); bowlFront.render(scale); @@ -110,6 +107,7 @@ public class ModelCalcinator extends ModelBase { ashLayer.render(scale); + GL11.glEnable(GL11.GL_LIGHTING); GL11.glPopMatrix(); } diff --git a/resources/ee3/art/sprites/calcinator.png b/resources/ee3/art/sprites/calcinator.png index 6b56782d147d192c3eb5c55fdb5ba2dd14dd7b7a..f63038fb090f872625fb2c0482f3d2db19051626 100644 GIT binary patch literal 3503 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 diff --git a/resources/ee3/art/sprites/xcf/calcinator.xcf b/resources/ee3/art/sprites/xcf/calcinator.xcf new file mode 100644 index 0000000000000000000000000000000000000000..44e10bade47a98b79491418598ee57f5af2f52c0 GIT binary patch literal 13376 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 literal 0 HcmV?d00001