diff --git a/src/main/java/com/minelittlepony/model/part/AbstractHeadPart.java b/src/main/java/com/minelittlepony/model/part/AbstractHeadPart.java index 84aba8af..923117c6 100644 --- a/src/main/java/com/minelittlepony/model/part/AbstractHeadPart.java +++ b/src/main/java/com/minelittlepony/model/part/AbstractHeadPart.java @@ -2,7 +2,6 @@ package com.minelittlepony.model.part; import com.minelittlepony.PonyData; import com.minelittlepony.model.AbstractPonyModel; -import com.minelittlepony.model.BodyPart; public abstract class AbstractHeadPart implements IPonyPart { @@ -13,13 +12,8 @@ public abstract class AbstractHeadPart implements IPonyPart { } @Override - public void render(PonyData data, float scale) { - pony.transform(BodyPart.HEAD); - pony.bipedHead.postRender(scale); - } + public void render(PonyData data, float scale) {} @Override - public void animate(PonyData metadata, float move, float swing, float tick, float horz, float vert) { - - } + public void animate(PonyData metadata, float move, float swing, float tick, float horz, float vert) {} } diff --git a/src/main/java/com/minelittlepony/model/part/PonyEars.java b/src/main/java/com/minelittlepony/model/part/PonyEars.java index 49ed71b4..3b6a20d2 100644 --- a/src/main/java/com/minelittlepony/model/part/PonyEars.java +++ b/src/main/java/com/minelittlepony/model/part/PonyEars.java @@ -1,37 +1,22 @@ package com.minelittlepony.model.part; -import com.minelittlepony.PonyData; import com.minelittlepony.model.AbstractPonyModel; import com.minelittlepony.model.PonyModelConstants; -import net.minecraft.client.model.ModelRenderer; - public class PonyEars extends AbstractHeadPart implements PonyModelConstants { - private ModelRenderer left; - private ModelRenderer right; - public PonyEars(AbstractPonyModel pony) { super(pony); } @Override public void init(float yOffset, float stretch) { - this.left = new ModelRenderer(pony, 12, 16); - this.right = new ModelRenderer(pony, 12, 16); - this.right.mirror = true; - this.left.addBox(-4.0F + HEAD_CENTRE_X, -6.0F + HEAD_CENTRE_Y, 1.0F + HEAD_CENTRE_Z, 2, 2, 2, stretch); - this.left.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - this.right.addBox(2.0F + HEAD_CENTRE_X, -6.0F + HEAD_CENTRE_Y, 1.0F + HEAD_CENTRE_Z, 2, 2, 2, stretch); - this.right.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - } + this.pony.bipedHead.setTextureOffset(12, 16); + this.pony.bipedHead.addBox(-4.0F + HEAD_CENTRE_X, -6.0F + HEAD_CENTRE_Y, 1.0F + HEAD_CENTRE_Z, 2, 2, 2, stretch); + this.pony.bipedHead.mirror = true; + this.pony.bipedHead.addBox(2.0F + HEAD_CENTRE_X, -6.0F + HEAD_CENTRE_Y, 1.0F + HEAD_CENTRE_Z, 2, 2, 2, stretch); - @Override - public void render(PonyData data, float scale) { - super.render(data, scale); - left.render(scale); - right.render(scale); } } diff --git a/src/main/java/com/minelittlepony/model/part/PonySnout.java b/src/main/java/com/minelittlepony/model/part/PonySnout.java index ff5c14b1..0c284eb6 100644 --- a/src/main/java/com/minelittlepony/model/part/PonySnout.java +++ b/src/main/java/com/minelittlepony/model/part/PonySnout.java @@ -1,9 +1,5 @@ package com.minelittlepony.model.part; -import java.util.Map; - -import com.google.common.collect.ImmutableMap; -import com.minelittlepony.MineLittlePony; import com.minelittlepony.PonyData; import com.minelittlepony.PonyGender; import com.minelittlepony.model.AbstractPonyModel; @@ -12,10 +8,8 @@ import com.minelittlepony.renderer.PlaneRenderer; public class PonySnout extends AbstractHeadPart implements PonyModelConstants { - private static final Map MUZZLES = ImmutableMap. builder() - .put(PonyGender.MARE, new PlaneRenderer[10]) - .put(PonyGender.STALLION, new PlaneRenderer[5]) - .build(); + private PlaneRenderer mare; + private PlaneRenderer stallion; public PonySnout(AbstractPonyModel pony) { super(pony); @@ -24,67 +18,45 @@ public class PonySnout extends AbstractHeadPart implements PonyModelConstants { @Override public void init(float yOffset, float stretch) { - PlaneRenderer[] muzzle = MUZZLES.get(PonyGender.MARE); - muzzle[0] = new PlaneRenderer(pony, 10, 14); - muzzle[1] = new PlaneRenderer(pony, 11, 13); - muzzle[2] = new PlaneRenderer(pony, 9, 14); - muzzle[3] = new PlaneRenderer(pony, 14, 14); - muzzle[4] = new PlaneRenderer(pony, 11, 12); - muzzle[5] = new PlaneRenderer(pony, 18, 7); - muzzle[6] = new PlaneRenderer(pony, 9, 14); - muzzle[7] = new PlaneRenderer(pony, 14, 14); - muzzle[8] = new PlaneRenderer(pony, 11, 12); - muzzle[9] = new PlaneRenderer(pony, 12, 12); + mare = new PlaneRenderer(this.pony); + mare.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[0].addBackPlane(-2.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 2, 0, stretch); - muzzle[0].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[1].addBackPlane(-1.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 2, 1, 0, stretch); - muzzle[1].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[2].addTopPlane(-2.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 1, 0, 1, stretch); - muzzle[2].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[3].addTopPlane(1.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 1, 0, 1, stretch); - muzzle[3].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[4].addTopPlane(-1.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 2, 0, 1, stretch); - muzzle[4].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[5].addBottomPlane(-2.0F + HEAD_CENTRE_X, 4.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 0, 1, stretch); - muzzle[5].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[6].addWestPlane(-2.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 2, 1, stretch); - muzzle[6].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[7].addEastPlane(2.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 2, 1, stretch); - muzzle[7].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[8].addWestPlane(-1.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 1, 1, stretch); - muzzle[8].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[9].addEastPlane(1.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 1, 1, stretch); - muzzle[9].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); + mare.setTextureOffset(10, 14).addBackPlane(-2.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 2, 0, stretch); + mare.setTextureOffset(11, 13).addBackPlane(-1.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 2, 1, 0, stretch); + mare.setTextureOffset(9, 14).addTopPlane(-2.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 1, 0, 1, stretch); + mare.setTextureOffset(14, 14).addTopPlane(1.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 1, 0, 1, stretch); + mare.setTextureOffset(11, 12).addTopPlane(-1.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 2, 0, 1, stretch); + mare.setTextureOffset(18, 7).addBottomPlane(-2.0F + HEAD_CENTRE_X, 4.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 0, 1, stretch); + mare.setTextureOffset(9, 14).addWestPlane(-2.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 2, 1, stretch); + mare.setTextureOffset(14, 14).addEastPlane(2.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 2, 1, stretch); + mare.setTextureOffset(11, 12).addWestPlane(-1.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 1, 1, stretch); + mare.setTextureOffset(12, 12).addEastPlane(1.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 1, 1, stretch); - muzzle = MUZZLES.get(PonyGender.STALLION); - muzzle[0] = new PlaneRenderer(pony, 10, 13); - muzzle[1] = new PlaneRenderer(pony, 10, 13); - muzzle[2] = new PlaneRenderer(pony, 18, 7); - muzzle[3] = new PlaneRenderer(pony, 10, 13); - muzzle[4] = new PlaneRenderer(pony, 13, 13); + stallion = new PlaneRenderer(this.pony); + stallion.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[0].addBackPlane(-2.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 3, 0, stretch); - muzzle[0].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[1].addTopPlane(-2.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 0, 1, stretch); - muzzle[1].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[2].addBottomPlane(-2.0F + HEAD_CENTRE_X, 4.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 0, 1, stretch); - muzzle[2].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[3].addWestPlane(-2.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 3, 1, stretch); - muzzle[3].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - muzzle[4].addEastPlane(2.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 3, 1, stretch); - muzzle[4].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); + stallion.setTextureOffset(10, 13).addBackPlane(-2.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 3, 0, stretch); + stallion.setTextureOffset(10, 13).addTopPlane(-2.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 0, 1, stretch); + stallion.setTextureOffset(18, 7).addBottomPlane(-2.0F + HEAD_CENTRE_X, 4.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 0, 1, stretch); + stallion.setTextureOffset(10, 13).addWestPlane(-2.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 3, 1, stretch); + stallion.setTextureOffset(13, 13).addEastPlane(2.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 3, 1, stretch); } @Override - public void render(PonyData data, float scale) { - super.render(data, scale); - if (MineLittlePony.getConfig().snuzzles && data.getGender() != null) { - PlaneRenderer[] muzzle = MUZZLES.get(data.getGender()); - for (int i = 0; i < muzzle.length; i++) { - muzzle[i].render(scale); - } - } + public void animate(PonyData metadata, float move, float swing, float tick, float horz, float vert) { + mare.isHidden = metadata.getGender() != PonyGender.MARE; + stallion.isHidden = metadata.getGender() != PonyGender.STALLION; } +// @Override +// public void render(PonyData data, float scale) { +// super.render(data, scale); +// if (MineLittlePony.getConfig().snuzzles && data.getGender() != null) { +// PlaneRenderer[] muzzle = MUZZLES.get(data.getGender()); +// for (int i = 0; i < muzzle.length; i++) { +// muzzle[i].render(scale); +// } +// } +// } + } diff --git a/src/main/java/com/minelittlepony/model/pony/ModelBreezie.java b/src/main/java/com/minelittlepony/model/pony/ModelBreezie.java index 01f04f8b..61c255e9 100644 --- a/src/main/java/com/minelittlepony/model/pony/ModelBreezie.java +++ b/src/main/java/com/minelittlepony/model/pony/ModelBreezie.java @@ -9,11 +9,6 @@ import net.minecraft.util.math.MathHelper; public class ModelBreezie extends ModelBiped { ModelRenderer neck; - ModelRenderer snuzzle; - ModelRenderer leftEar; - ModelRenderer rightEar; - ModelRenderer leftAntenna; - ModelRenderer rightAntenna; ModelRenderer tail; ModelRenderer tailStub; ModelRenderer leftWing; @@ -26,7 +21,18 @@ public class ModelBreezie extends ModelBiped { this.bipedHeadwear.showModel = false; bipedHead = new ModelRenderer(this, 0, 0); - bipedHead.addBox(0F, 0F, 0F, 6, 6, 6).setRotationPoint(-3F, -7F, -7F); + bipedHead.setRotationPoint(0, 0, -4); + bipedHead.addBox(-3, -6, -3F, 6, 6, 6); + bipedHead.setTextureOffset(28, 0).addBox(2F, -7F, 1F, 1, 1, 1); + bipedHead.setTextureOffset(24, 0).addBox(-3F, -7F, 1F, 1, 1, 1); + bipedHead.setTextureOffset(24, 9).addBox(-1F, -2F, -4F, 2, 2, 1); + + ModelRenderer antenna = new ModelRenderer(this); + antenna.setTextureOffset(28, 2).addBox(1F, -11F, -2F, 1, 6, 1); + antenna.setTextureOffset(24, 2).addBox(-2F, -11F, -2F, 1, 6, 1); + setRotation(antenna, -0.2617994F, 0F, 0F); + + this.bipedHead.addChild(antenna); bipedBody = new ModelRenderer(this, 2, 12); bipedBody.addBox(0F, 0F, 0F, 6, 7, 14).setRotationPoint(-3F, 1F, -3F); @@ -48,23 +54,6 @@ public class ModelBreezie extends ModelBiped { neck.addBox(0F, 0F, 0F, 2, 5, 2).setRotationPoint(-1F, -2F, -4F); setRotation(neck, 0.0872665F, 0F, 0F); - leftEar = new ModelRenderer(this, 28, 0); - leftEar.addBox(0F, 0F, 0F, 1, 1, 1).setRotationPoint(2F, -8F, -3F); - - rightEar = new ModelRenderer(this, 24, 0); - rightEar.addBox(0F, 0F, 0F, 1, 1, 1).setRotationPoint(-3F, -8F, -3F); - - leftAntenna = new ModelRenderer(this, 28, 2); - leftAntenna.addBox(0F, 0F, 0F, 1, 6, 1).setRotationPoint(1F, -12F, -4F); - setRotation(leftAntenna, -0.2617994F, 0F, 0F); - - rightAntenna = new ModelRenderer(this, 24, 2); - rightAntenna.addBox(0F, 0F, 0F, 1, 6, 1).setRotationPoint(-2F, -12F, -4F); - setRotation(rightAntenna, -0.2617994F, 0F, 0F); - - snuzzle = new ModelRenderer(this, 24, 9); - snuzzle.addBox(0F, 0F, 0F, 2, 2, 1).setRotationPoint(-1F, -3F, -8F); - tailStub = new ModelRenderer(this, 40, 7); tailStub.addBox(0F, 0F, 0F, 1, 1, 3).setRotationPoint(-0.5F, 8F, 8F); @@ -90,11 +79,6 @@ public class ModelBreezie extends ModelBiped { public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); neck.render(f5); - leftEar.render(f5); - rightEar.render(f5); - leftAntenna.render(f5); - rightAntenna.render(f5); - snuzzle.render(f5); tailStub.render(f5); tail.render(f5); leftWing.render(f5); @@ -111,10 +95,9 @@ public class ModelBreezie extends ModelBiped { @Override public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) { - // this.bipedRightArm.rotationPointZ = 0.0F; - // this.bipedRightArm.rotationPointX = -5.0F; - // this.bipedLeftArm.rotationPointZ = 0.0F; - // this.bipedLeftArm.rotationPointX = 5.0F; + this.bipedHead.rotateAngleY = netHeadYaw * 0.017453292F; + this.bipedHead.rotateAngleX = headPitch * 0.017453292F; + this.bipedRightArm.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 2.0F * limbSwingAmount * 0.5F; this.bipedLeftArm.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 2.0F * limbSwingAmount * 0.5F; this.bipedRightArm.rotateAngleZ = 0.0F; diff --git a/src/main/java/com/minelittlepony/renderer/PlaneRenderer.java b/src/main/java/com/minelittlepony/renderer/PlaneRenderer.java index 8b96536e..6de768bc 100644 --- a/src/main/java/com/minelittlepony/renderer/PlaneRenderer.java +++ b/src/main/java/com/minelittlepony/renderer/PlaneRenderer.java @@ -14,15 +14,24 @@ public class PlaneRenderer extends ModelRenderer { private int textureOffsetX; private int textureOffsetY; + public PlaneRenderer(ModelBase model, String boxNameIn) { + super(model, boxNameIn); + } + + public PlaneRenderer(ModelBase model) { + super(model); + } + public PlaneRenderer(ModelBase model, int x, int y) { super(model, x, y); } @Override - public ModelRenderer setTextureOffset(int x, int y) { + public PlaneRenderer setTextureOffset(int x, int y) { this.textureOffsetX = x; this.textureOffsetY = y; - return super.setTextureOffset(x, y); + super.setTextureOffset(x, y); + return this; } public void addPlane(float offX, float offY, float offZ, int width, int height, int depth, float scale, Face face) {