Simplify models a bit (TODO)

This commit is contained in:
Matthew Messinger 2016-11-22 16:19:18 -05:00
parent 7725da0710
commit 9c7b6cd621
5 changed files with 67 additions and 124 deletions

View file

@ -2,7 +2,6 @@ package com.minelittlepony.model.part;
import com.minelittlepony.PonyData; import com.minelittlepony.PonyData;
import com.minelittlepony.model.AbstractPonyModel; import com.minelittlepony.model.AbstractPonyModel;
import com.minelittlepony.model.BodyPart;
public abstract class AbstractHeadPart implements IPonyPart { public abstract class AbstractHeadPart implements IPonyPart {
@ -13,13 +12,8 @@ public abstract class AbstractHeadPart implements IPonyPart {
} }
@Override @Override
public void render(PonyData data, float scale) { public void render(PonyData data, float scale) {}
pony.transform(BodyPart.HEAD);
pony.bipedHead.postRender(scale);
}
@Override @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) {}
}
} }

View file

@ -1,37 +1,22 @@
package com.minelittlepony.model.part; package com.minelittlepony.model.part;
import com.minelittlepony.PonyData;
import com.minelittlepony.model.AbstractPonyModel; import com.minelittlepony.model.AbstractPonyModel;
import com.minelittlepony.model.PonyModelConstants; import com.minelittlepony.model.PonyModelConstants;
import net.minecraft.client.model.ModelRenderer;
public class PonyEars extends AbstractHeadPart implements PonyModelConstants { public class PonyEars extends AbstractHeadPart implements PonyModelConstants {
private ModelRenderer left;
private ModelRenderer right;
public PonyEars(AbstractPonyModel pony) { public PonyEars(AbstractPonyModel pony) {
super(pony); super(pony);
} }
@Override @Override
public void init(float yOffset, float stretch) { 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.pony.bipedHead.setTextureOffset(12, 16);
this.left.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); this.pony.bipedHead.addBox(-4.0F + HEAD_CENTRE_X, -6.0F + HEAD_CENTRE_Y, 1.0F + HEAD_CENTRE_Z, 2, 2, 2, stretch);
this.right.addBox(2.0F + HEAD_CENTRE_X, -6.0F + HEAD_CENTRE_Y, 1.0F + HEAD_CENTRE_Z, 2, 2, 2, stretch); this.pony.bipedHead.mirror = true;
this.right.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); 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);
} }
} }

View file

@ -1,9 +1,5 @@
package com.minelittlepony.model.part; 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.PonyData;
import com.minelittlepony.PonyGender; import com.minelittlepony.PonyGender;
import com.minelittlepony.model.AbstractPonyModel; import com.minelittlepony.model.AbstractPonyModel;
@ -12,10 +8,8 @@ import com.minelittlepony.renderer.PlaneRenderer;
public class PonySnout extends AbstractHeadPart implements PonyModelConstants { public class PonySnout extends AbstractHeadPart implements PonyModelConstants {
private static final Map<PonyGender, PlaneRenderer[]> MUZZLES = ImmutableMap.<PonyGender, PlaneRenderer[]> builder() private PlaneRenderer mare;
.put(PonyGender.MARE, new PlaneRenderer[10]) private PlaneRenderer stallion;
.put(PonyGender.STALLION, new PlaneRenderer[5])
.build();
public PonySnout(AbstractPonyModel pony) { public PonySnout(AbstractPonyModel pony) {
super(pony); super(pony);
@ -24,67 +18,45 @@ public class PonySnout extends AbstractHeadPart implements PonyModelConstants {
@Override @Override
public void init(float yOffset, float stretch) { public void init(float yOffset, float stretch) {
PlaneRenderer[] muzzle = MUZZLES.get(PonyGender.MARE); mare = new PlaneRenderer(this.pony);
muzzle[0] = new PlaneRenderer(pony, 10, 14); mare.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z);
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);
muzzle[0].addBackPlane(-2.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 2, 0, stretch); mare.setTextureOffset(10, 14).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); mare.setTextureOffset(11, 13).addBackPlane(-1.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 2, 1, 0, stretch);
muzzle[1].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);
muzzle[1].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); mare.setTextureOffset(14, 14).addTopPlane(1.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 1, 0, 1, stretch);
muzzle[2].addTopPlane(-2.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);
muzzle[2].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); mare.setTextureOffset(18, 7).addBottomPlane(-2.0F + HEAD_CENTRE_X, 4.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 0, 1, stretch);
muzzle[3].addTopPlane(1.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 1, 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);
muzzle[3].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); mare.setTextureOffset(14, 14).addEastPlane(2.0F + HEAD_CENTRE_X, 2.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 2, 1, stretch);
muzzle[4].addTopPlane(-1.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 2, 0, 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);
muzzle[4].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); 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[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);
muzzle = MUZZLES.get(PonyGender.STALLION); stallion = new PlaneRenderer(this.pony);
muzzle[0] = new PlaneRenderer(pony, 10, 13); stallion.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z);
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);
muzzle[0].addBackPlane(-2.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 3, 0, stretch); stallion.setTextureOffset(10, 13).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); stallion.setTextureOffset(10, 13).addTopPlane(-2.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 0, 1, stretch);
muzzle[1].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);
muzzle[1].setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); stallion.setTextureOffset(10, 13).addWestPlane(-2.0F + HEAD_CENTRE_X, 1.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 0, 3, 1, stretch);
muzzle[2].addBottomPlane(-2.0F + HEAD_CENTRE_X, 4.0F + HEAD_CENTRE_Y, -5.0F + HEAD_CENTRE_Z, 4, 0, 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);
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);
} }
@Override @Override
public void render(PonyData data, float scale) { public void animate(PonyData metadata, float move, float swing, float tick, float horz, float vert) {
super.render(data, scale); mare.isHidden = metadata.getGender() != PonyGender.MARE;
if (MineLittlePony.getConfig().snuzzles && data.getGender() != null) { stallion.isHidden = metadata.getGender() != PonyGender.STALLION;
PlaneRenderer[] muzzle = MUZZLES.get(data.getGender());
for (int i = 0; i < muzzle.length; i++) {
muzzle[i].render(scale);
}
}
} }
// @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);
// }
// }
// }
} }

View file

@ -9,11 +9,6 @@ import net.minecraft.util.math.MathHelper;
public class ModelBreezie extends ModelBiped { public class ModelBreezie extends ModelBiped {
ModelRenderer neck; ModelRenderer neck;
ModelRenderer snuzzle;
ModelRenderer leftEar;
ModelRenderer rightEar;
ModelRenderer leftAntenna;
ModelRenderer rightAntenna;
ModelRenderer tail; ModelRenderer tail;
ModelRenderer tailStub; ModelRenderer tailStub;
ModelRenderer leftWing; ModelRenderer leftWing;
@ -26,7 +21,18 @@ public class ModelBreezie extends ModelBiped {
this.bipedHeadwear.showModel = false; this.bipedHeadwear.showModel = false;
bipedHead = new ModelRenderer(this, 0, 0); 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 = new ModelRenderer(this, 2, 12);
bipedBody.addBox(0F, 0F, 0F, 6, 7, 14).setRotationPoint(-3F, 1F, -3F); 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); neck.addBox(0F, 0F, 0F, 2, 5, 2).setRotationPoint(-1F, -2F, -4F);
setRotation(neck, 0.0872665F, 0F, 0F); 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 = new ModelRenderer(this, 40, 7);
tailStub.addBox(0F, 0F, 0F, 1, 1, 3).setRotationPoint(-0.5F, 8F, 8F); 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) { 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); super.render(entity, f, f1, f2, f3, f4, f5);
neck.render(f5); neck.render(f5);
leftEar.render(f5);
rightEar.render(f5);
leftAntenna.render(f5);
rightAntenna.render(f5);
snuzzle.render(f5);
tailStub.render(f5); tailStub.render(f5);
tail.render(f5); tail.render(f5);
leftWing.render(f5); leftWing.render(f5);
@ -111,10 +95,9 @@ public class ModelBreezie extends ModelBiped {
@Override @Override
public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) { public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) {
// this.bipedRightArm.rotationPointZ = 0.0F; this.bipedHead.rotateAngleY = netHeadYaw * 0.017453292F;
// this.bipedRightArm.rotationPointX = -5.0F; this.bipedHead.rotateAngleX = headPitch * 0.017453292F;
// this.bipedLeftArm.rotationPointZ = 0.0F;
// this.bipedLeftArm.rotationPointX = 5.0F;
this.bipedRightArm.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float) Math.PI) * 2.0F * limbSwingAmount * 0.5F; 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.bipedLeftArm.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 2.0F * limbSwingAmount * 0.5F;
this.bipedRightArm.rotateAngleZ = 0.0F; this.bipedRightArm.rotateAngleZ = 0.0F;

View file

@ -14,15 +14,24 @@ public class PlaneRenderer extends ModelRenderer {
private int textureOffsetX; private int textureOffsetX;
private int textureOffsetY; 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) { public PlaneRenderer(ModelBase model, int x, int y) {
super(model, x, y); super(model, x, y);
} }
@Override @Override
public ModelRenderer setTextureOffset(int x, int y) { public PlaneRenderer setTextureOffset(int x, int y) {
this.textureOffsetX = x; this.textureOffsetX = x;
this.textureOffsetY = y; 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) { public void addPlane(float offX, float offY, float offZ, int width, int height, int depth, float scale, Face face) {