From 52e2c84b673b2cadc72c6f5f12483c58e930f134 Mon Sep 17 00:00:00 2001 From: Sollace Date: Wed, 25 Apr 2018 12:59:18 +0200 Subject: [PATCH] Model rewrites wave 2, clean up horn rendering, plane rendering, Zombie and Skeleton models --- .../minelittlepony/model/ModelHornGlow.java | 36 +++-- .../model/PonyModelConstants.java | 4 +- .../com/minelittlepony/model/UnicornHorn.java | 73 --------- .../model/{ => components}/ModelWing.java | 8 +- .../model/{ => components}/PegasusWings.java | 8 +- .../model/{ => components}/PonySnout.java | 21 +-- .../model/{ => components}/PonyTail.java | 8 +- .../model/components/UnicornHorn.java | 71 +++++++++ .../model/entity/ModelMobPony.java | 113 ++++++++++++++ .../model/pony/ModelPlayerPony.java | 19 +-- .../model/pony/ModelSkeletonPony.java | 147 +++++------------- .../model/pony/ModelVillagerPony.java | 4 +- .../model/pony/ModelZombiePony.java | 109 ++++--------- .../model/pony/armor/ModelPonyArmor.java | 2 + .../pony/armor/ModelSkeletonPonyArmor.java | 2 + .../pony/armor/ModelZombiePonyArmor.java | 1 + .../renderer/BasePonyRenderer.java | 49 ++++++ .../renderer/HornGlowRenderer.java | 55 +++---- .../minelittlepony/renderer/plane/Face.java | 7 + .../{model => renderer/plane}/ModelPlane.java | 12 +- .../renderer/{ => plane}/PlaneRenderer.java | 22 +-- 21 files changed, 400 insertions(+), 371 deletions(-) delete mode 100644 src/main/java/com/minelittlepony/model/UnicornHorn.java rename src/main/java/com/minelittlepony/model/{ => components}/ModelWing.java (94%) rename src/main/java/com/minelittlepony/model/{ => components}/PegasusWings.java (90%) rename src/main/java/com/minelittlepony/model/{ => components}/PonySnout.java (82%) rename src/main/java/com/minelittlepony/model/{ => components}/PonyTail.java (91%) create mode 100644 src/main/java/com/minelittlepony/model/components/UnicornHorn.java create mode 100644 src/main/java/com/minelittlepony/model/entity/ModelMobPony.java create mode 100644 src/main/java/com/minelittlepony/renderer/BasePonyRenderer.java create mode 100644 src/main/java/com/minelittlepony/renderer/plane/Face.java rename src/main/java/com/minelittlepony/{model => renderer/plane}/ModelPlane.java (95%) rename src/main/java/com/minelittlepony/renderer/{ => plane}/PlaneRenderer.java (69%) diff --git a/src/main/java/com/minelittlepony/model/ModelHornGlow.java b/src/main/java/com/minelittlepony/model/ModelHornGlow.java index 37d8cc8f..ae2a19d2 100644 --- a/src/main/java/com/minelittlepony/model/ModelHornGlow.java +++ b/src/main/java/com/minelittlepony/model/ModelHornGlow.java @@ -10,11 +10,17 @@ import javax.annotation.Nonnull; public class ModelHornGlow extends ModelBox { + private final float alpha; + + private final HornGlowRenderer parent; + private TexturedQuad[] quadList; - public ModelHornGlow(HornGlowRenderer par1ModelRenderer, int par2, int par3, float par4, float par5, float par6, int par7, int par8, int par9, float par10) { - super(par1ModelRenderer, par2, par3, par4, par5, par6, par7, par8, par9, par10); - + public ModelHornGlow(HornGlowRenderer parent, int par2, int par3, float par4, float par5, float par6, int par7, int par8, int par9, float par10, float alpha) { + super(parent, par2, par3, par4, par5, par6, par7, par8, par9, par10); + this.parent = parent; + this.alpha = alpha; + this.quadList = new TexturedQuad[6]; float var11 = par4 + par7; float var12 = par5 + par8; @@ -29,7 +35,7 @@ public class ModelHornGlow extends ModelBox { var11 += par10; var12 += par10; var13 += par10; - if (par1ModelRenderer.mirror) { + if (parent.mirror) { float var26 = var11; var11 = par4; par4 = var26; @@ -46,22 +52,22 @@ public class ModelHornGlow extends ModelBox { this.quadList[0] = new TexturedQuad(new PositionTextureVertex[]{var19, var15, var16, var20}, par2 + par9 + par7, par3 + par9, par2 + par9 + par7 + par9, par3 + par9 + par8, - par1ModelRenderer.textureWidth, par1ModelRenderer.textureHeight); + parent.textureWidth, parent.textureHeight); this.quadList[1] = new TexturedQuad(new PositionTextureVertex[]{var32, var18, var21, var17}, par2, - par3 + par9, par2 + par9, par3 + par9 + par8, par1ModelRenderer.textureWidth, - par1ModelRenderer.textureHeight); + par3 + par9, par2 + par9, par3 + par9 + par8, parent.textureWidth, + parent.textureHeight); this.quadList[2] = new TexturedQuad(new PositionTextureVertex[]{var19, var18, var32, var15}, par2 + par9, - par3, par2 + par9 + par7, par3 + par9, par1ModelRenderer.textureWidth, par1ModelRenderer.textureHeight); + par3, par2 + par9 + par7, par3 + par9, parent.textureWidth, parent.textureHeight); this.quadList[3] = new TexturedQuad(new PositionTextureVertex[]{var16, var17, var21, var20}, - par2 + par9 + par7, par3 + par9, par2 + par9 + par7 + par7, par3, par1ModelRenderer.textureWidth, - par1ModelRenderer.textureHeight); + par2 + par9 + par7, par3 + par9, par2 + par9 + par7 + par7, par3, parent.textureWidth, + parent.textureHeight); this.quadList[4] = new TexturedQuad(new PositionTextureVertex[]{var15, var32, var17, var16}, par2 + par9, - par3 + par9, par2 + par9 + par7, par3 + par9 + par8, par1ModelRenderer.textureWidth, - par1ModelRenderer.textureHeight); + par3 + par9, par2 + par9 + par7, par3 + par9 + par8, parent.textureWidth, + parent.textureHeight); this.quadList[5] = new TexturedQuad(new PositionTextureVertex[]{var18, var19, var20, var21}, par2 + par9 + par7 + par9, par3 + par9, par2 + par9 + par7 + par9 + par7, par3 + par9 + par8, - par1ModelRenderer.textureWidth, par1ModelRenderer.textureHeight); - if (par1ModelRenderer.mirror) { + parent.textureWidth, parent.textureHeight); + if (parent.mirror) { TexturedQuad[] var22 = this.quadList; for (TexturedQuad var25 : var22) { @@ -73,6 +79,8 @@ public class ModelHornGlow extends ModelBox { @Override public void render(@Nonnull BufferBuilder buffer, float par2) { + parent.applyTint(alpha); + TexturedQuad[] var3 = this.quadList; for (TexturedQuad var6 : var3) { var6.draw(buffer, par2); diff --git a/src/main/java/com/minelittlepony/model/PonyModelConstants.java b/src/main/java/com/minelittlepony/model/PonyModelConstants.java index 8fc053bd..1244d225 100644 --- a/src/main/java/com/minelittlepony/model/PonyModelConstants.java +++ b/src/main/java/com/minelittlepony/model/PonyModelConstants.java @@ -1,8 +1,8 @@ package com.minelittlepony.model; -public interface PonyModelConstants { +public final class PonyModelConstants { - float + public static final float BODY_CENTRE_X = 0.0F, BODY_CENTRE_Y = 8.0F, BODY_CENTRE_Z = 6.0F, diff --git a/src/main/java/com/minelittlepony/model/UnicornHorn.java b/src/main/java/com/minelittlepony/model/UnicornHorn.java deleted file mode 100644 index cc1e82a8..00000000 --- a/src/main/java/com/minelittlepony/model/UnicornHorn.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.minelittlepony.model; - -import com.minelittlepony.IPonyData; -import com.minelittlepony.renderer.HornGlowRenderer; -import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; -import org.lwjgl.opengl.GL11; - -import static net.minecraft.client.renderer.GlStateManager.*; - -public class UnicornHorn extends ModelBase implements PonyModelConstants { - - protected final AbstractPonyModel pony; - private ModelRenderer horn; - private HornGlowRenderer[] hornglow; - - private boolean usingMagic; - - public UnicornHorn(AbstractPonyModel pony, float yOffset, float stretch) { - this.pony = pony; - - this.horn = new ModelRenderer(pony, 0, 3); - this.hornglow = new HornGlowRenderer[2]; - for (int i = 0; i < hornglow.length; i++) { - this.hornglow[i] = new HornGlowRenderer(pony, 0, 3); - } - - this.horn.addBox(-0.5F + HEAD_CENTRE_X, -10.0F + HEAD_CENTRE_Y, -1.5F + HEAD_CENTRE_Z, 1, 4, 1, stretch); - this.horn.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); - this.horn.rotateAngleX = 0.5F; - - this.hornglow[0].addBox(-0.5F + HEAD_CENTRE_X, -10.0F + HEAD_CENTRE_Y, -1.5F + HEAD_CENTRE_Z, 1, 4, 1, stretch + 0.5F); - this.hornglow[1].addBox(-0.5F + HEAD_CENTRE_X, -10.0F + HEAD_CENTRE_Y, -1.5F + HEAD_CENTRE_Z, 1, 3, 1, stretch + 0.8F); - } - - @Override - public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) { - - IPonyData data = pony.metadata; - - if (data.getRace().hasHorn()) { - this.horn.render(scale); - if (usingMagic && data.hasMagic()) { - GL11.glPushAttrib(24577); - disableTexture2D(); - disableLighting(); - enableBlend(); - - float red = (data.getGlowColor() >> 16 & 255) / 255.0F; - float green = (data.getGlowColor() >> 8 & 255) / 255.0F; - float blue = (data.getGlowColor() & 255) / 255.0F; - blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); - - this.horn.postRender(scale); - - color(red, green, blue, 0.4F); - this.hornglow[0].render(scale); - color(red, green, blue, 0.2F); - this.hornglow[1].render(scale); - - enableTexture2D(); - enableLighting(); - disableBlend(); - popAttrib(); - } - } - } - - public void setUsingMagic(boolean usingMagic) { - this.usingMagic = usingMagic; - } -} diff --git a/src/main/java/com/minelittlepony/model/ModelWing.java b/src/main/java/com/minelittlepony/model/components/ModelWing.java similarity index 94% rename from src/main/java/com/minelittlepony/model/ModelWing.java rename to src/main/java/com/minelittlepony/model/components/ModelWing.java index 5eb5d13b..95987e9b 100644 --- a/src/main/java/com/minelittlepony/model/ModelWing.java +++ b/src/main/java/com/minelittlepony/model/components/ModelWing.java @@ -1,9 +1,13 @@ -package com.minelittlepony.model; +package com.minelittlepony.model.components; + +import com.minelittlepony.model.AbstractPonyModel; import net.minecraft.client.model.ModelRenderer; +import static com.minelittlepony.model.PonyModelConstants.*; + // TODO: Combine each wing into one ModelRenderer with multiple boxes, not multiple ModelRenderers each with one box. -public class ModelWing implements PonyModelConstants { +public class ModelWing { public ModelRenderer[] folded = new ModelRenderer[3], extended = new ModelRenderer[6]; diff --git a/src/main/java/com/minelittlepony/model/PegasusWings.java b/src/main/java/com/minelittlepony/model/components/PegasusWings.java similarity index 90% rename from src/main/java/com/minelittlepony/model/PegasusWings.java rename to src/main/java/com/minelittlepony/model/components/PegasusWings.java index b185c2c4..58c739f4 100644 --- a/src/main/java/com/minelittlepony/model/PegasusWings.java +++ b/src/main/java/com/minelittlepony/model/components/PegasusWings.java @@ -1,10 +1,14 @@ -package com.minelittlepony.model; +package com.minelittlepony.model.components; + +import com.minelittlepony.model.AbstractPonyModel; import net.minecraft.client.model.ModelBase; import net.minecraft.entity.Entity; import net.minecraft.util.math.MathHelper; -public class PegasusWings extends ModelBase implements PonyModelConstants { +import static com.minelittlepony.model.PonyModelConstants.*; + +public class PegasusWings extends ModelBase { private final AbstractPonyModel pony; diff --git a/src/main/java/com/minelittlepony/model/PonySnout.java b/src/main/java/com/minelittlepony/model/components/PonySnout.java similarity index 82% rename from src/main/java/com/minelittlepony/model/PonySnout.java rename to src/main/java/com/minelittlepony/model/components/PonySnout.java index 451e12d0..d032cf83 100644 --- a/src/main/java/com/minelittlepony/model/PonySnout.java +++ b/src/main/java/com/minelittlepony/model/components/PonySnout.java @@ -1,16 +1,14 @@ -package com.minelittlepony.model; +package com.minelittlepony.model.components; import com.minelittlepony.PonyGender; -import com.minelittlepony.renderer.PlaneRenderer; -import net.minecraft.client.model.ModelBase; -import net.minecraft.entity.Entity; +import com.minelittlepony.model.AbstractPonyModel; +import com.minelittlepony.renderer.plane.PlaneRenderer; -public class PonySnout extends ModelBase implements PonyModelConstants { +import static com.minelittlepony.model.PonyModelConstants.*; - private PonyGender gender; +public class PonySnout { - private PlaneRenderer mare; - private PlaneRenderer stallion; + private PlaneRenderer mare, stallion; public PonySnout(AbstractPonyModel pony, float yOffset, float stretch) { mare = new PlaneRenderer(pony); @@ -41,13 +39,8 @@ public class PonySnout extends ModelBase implements PonyModelConstants { pony.bipedHead.addChild(stallion); } - @Override - public void setRotationAngles(float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scaleFactor, Entity entityIn) { + public void setGender(PonyGender gender) { mare.isHidden = gender != PonyGender.MARE; stallion.isHidden = gender != PonyGender.STALLION; } - - public void setGender(PonyGender gender) { - this.gender = gender; - } } diff --git a/src/main/java/com/minelittlepony/model/PonyTail.java b/src/main/java/com/minelittlepony/model/components/PonyTail.java similarity index 91% rename from src/main/java/com/minelittlepony/model/PonyTail.java rename to src/main/java/com/minelittlepony/model/components/PonyTail.java index d5ed560f..23a424d8 100644 --- a/src/main/java/com/minelittlepony/model/PonyTail.java +++ b/src/main/java/com/minelittlepony/model/components/PonyTail.java @@ -1,12 +1,14 @@ -package com.minelittlepony.model; +package com.minelittlepony.model.components; import com.minelittlepony.TailLengths; -import com.minelittlepony.renderer.PlaneRenderer; +import com.minelittlepony.renderer.plane.PlaneRenderer; import net.minecraft.client.model.ModelBase; import net.minecraft.util.math.MathHelper; -public class PonyTail extends PlaneRenderer implements PonyModelConstants { +import static com.minelittlepony.model.PonyModelConstants.*; + +public class PonyTail extends PlaneRenderer { private final TailSegment[] segments = new TailSegment[4]; diff --git a/src/main/java/com/minelittlepony/model/components/UnicornHorn.java b/src/main/java/com/minelittlepony/model/components/UnicornHorn.java new file mode 100644 index 00000000..345aeb2e --- /dev/null +++ b/src/main/java/com/minelittlepony/model/components/UnicornHorn.java @@ -0,0 +1,71 @@ +package com.minelittlepony.model.components; + +import com.minelittlepony.model.AbstractPonyModel; +import com.minelittlepony.renderer.HornGlowRenderer; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +import static org.lwjgl.opengl.GL11.*; +import static net.minecraft.client.renderer.GlStateManager.*; +import static com.minelittlepony.model.PonyModelConstants.*; + +public class UnicornHorn extends ModelBase { + static final float + hornX = HEAD_CENTRE_X - 0.5F, + hornY = HEAD_CENTRE_Y - 10, + hornZ = HEAD_CENTRE_Z - 1.5F; + + protected final AbstractPonyModel pony; + + private ModelRenderer horn; + + private HornGlowRenderer glow; + + private boolean usingMagic; + + public UnicornHorn(AbstractPonyModel pony, float yOffset, float stretch) { + this.pony = pony; + + horn = new ModelRenderer(pony, 0, 3); + glow = new HornGlowRenderer(pony, 0, 3); + + horn.addBox(hornX, hornY, hornZ, 1, 4, 1, stretch); + horn.setRotationPoint(HEAD_RP_X, HEAD_RP_Y + yOffset, HEAD_RP_Z); + horn.rotateAngleX = 0.5F; + + glow.setAlpha(0.4f).addBox(hornX, hornY, hornZ, 1, 4, 1, stretch + 0.5F); + glow.setAlpha(0.2f).addBox(hornX, hornY, hornZ, 1, 3, 1, stretch + 0.8F); + } + + @Override + public void render(Entity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, float scale) { + if (!pony.metadata.getRace().hasHorn()) return; + + this.horn.render(scale); + + if (usingMagic && pony.metadata.hasMagic()) { + renderMagic(pony.metadata.getGlowColor(), scale); + } + } + + private void renderMagic(int tint, float scale) { + glPushAttrib(24577); + disableTexture2D(); + disableLighting(); + enableBlend(); + blendFunc(GL_SRC_ALPHA, GL_ONE); + + horn.postRender(scale); + glow.setTint(tint).render(scale); + + enableTexture2D(); + enableLighting(); + disableBlend(); + popAttrib(); + } + + public void setUsingMagic(boolean usingMagic) { + this.usingMagic = usingMagic; + } +} diff --git a/src/main/java/com/minelittlepony/model/entity/ModelMobPony.java b/src/main/java/com/minelittlepony/model/entity/ModelMobPony.java new file mode 100644 index 00000000..b75c7758 --- /dev/null +++ b/src/main/java/com/minelittlepony/model/entity/ModelMobPony.java @@ -0,0 +1,113 @@ +package com.minelittlepony.model.entity; + +import static com.minelittlepony.model.PonyModelConstants.*; + +import com.minelittlepony.model.pony.ModelPlayerPony; + +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.math.MathHelper; + +public class ModelMobPony extends ModelPlayerPony { + + public ModelMobPony() { + super(false); + } + + @Override + protected void rotateLegs(float move, float swing, float tick, Entity entity) { + float rightArmRotateAngleX; + float leftArmRotateAngleX; + float rightLegRotateAngleX; + float leftLegRotateAngleX; + + float var8; + float var9; + + if (this.isFlying && this.metadata.getRace().hasWings() || entity instanceof EntityLivingBase && ((EntityLivingBase) entity).isElytraFlying()) { + if (this.rainboom) { + rightArmRotateAngleX = ROTATE_270; + leftArmRotateAngleX = ROTATE_270; + rightLegRotateAngleX = ROTATE_90; + leftLegRotateAngleX = ROTATE_90; + } else { + rightArmRotateAngleX = MathHelper.sin(0.0F - swing * 0.5F); + leftArmRotateAngleX = MathHelper.sin(0.0F - swing * 0.5F); + rightLegRotateAngleX = MathHelper.sin(swing * 0.5F); + leftLegRotateAngleX = MathHelper.sin(swing * 0.5F); + } + + this.bipedRightArm.rotateAngleY = 0.2F; + this.steveRightArm.rotateAngleY = 0.2F; + this.bipedLeftArm.rotateAngleY = -0.2F; + this.bipedRightLeg.rotateAngleY = -0.2F; + this.bipedLeftLeg.rotateAngleY = 0.2F; + } else { + var8 = (float) Math.pow(swing, 16.0D); + var9 = 3.1415927F * var8 * 0.5F; + float laQuad = 3.1415927F * var8; + float rlQuad = 3.1415927F * var8 * 0.2F; + float llQuad = 3.1415927F * var8 * -0.4F; + rightArmRotateAngleX = MathHelper.cos(move * 0.6662F + 3.1415927F + var9) * 0.6F * swing; + leftArmRotateAngleX = MathHelper.cos(move * 0.6662F + laQuad) * 0.6F * swing; + rightLegRotateAngleX = MathHelper.cos(move * 0.6662F + rlQuad) * 0.6F * swing; + leftLegRotateAngleX = MathHelper.cos(move * 0.6662F + 3.1415927F + llQuad) * 0.6F * swing; + this.bipedRightArm.rotateAngleY = 0.0F; + this.steveRightArm.rotateAngleY = 0.0F; + this.unicornArmRight.rotateAngleY = 0.0F; + this.bipedLeftArm.rotateAngleY = 0.0F; + this.bipedRightLeg.rotateAngleY = 0.0F; + this.bipedLeftLeg.rotateAngleY = 0.0F; + } + + this.bipedRightArm.rotateAngleX = rightArmRotateAngleX; + this.steveRightArm.rotateAngleX = rightArmRotateAngleX; + this.unicornArmRight.rotateAngleX = rightArmRotateAngleX; + this.bipedLeftArm.rotateAngleX = leftArmRotateAngleX; + this.bipedRightLeg.rotateAngleX = rightLegRotateAngleX; + this.bipedLeftLeg.rotateAngleX = leftLegRotateAngleX; + this.bipedRightArm.rotateAngleZ = 0.0F; + this.steveRightArm.rotateAngleZ = 0.0F; + this.unicornArmRight.rotateAngleZ = 0.0F; + this.bipedLeftArm.rotateAngleZ = 0.0F; + + var8 = MathHelper.sin(this.swingProgress * (float)Math.PI); + var9 = MathHelper.sin((1.0F - (1.0F - this.swingProgress) * (1.0F - this.swingProgress)) * 3.1415927F); + + rotateRightArm(var8, var9, move, tick); + rotateLeftArm(var8, var9, move, tick); + } + + protected void rotateRightArm(float var8, float var9, float move, float tick) { + if (this.rightArmPose == ArmPose.EMPTY) return; + + if (!this.metadata.hasMagic()) { + rotateArmHolding(bipedRightArm, 1, var8, var9, tick); + } else { + this.unicornArmRight.setRotationPoint(-7, 12, -2); + rotateArmHolding(unicornArmRight, 1, var8, var9, tick); + } + } + + protected static void rotateArmHolding(ModelRenderer arm, float direction, float var8, float var9, float tick) { + arm.rotateAngleZ = 0.0F; + arm.rotateAngleY = direction * (0.1F - var8 * 0.6F); + arm.rotateAngleX = -1.5707964F; + arm.rotateAngleX -= var8 * 1.2F - var9 * 0.4F; + arm.rotateAngleZ += MathHelper.cos(tick * 0.09F) * 0.05F + 0.05F; + arm.rotateAngleX += MathHelper.sin(tick * 0.067F) * 0.1F; + } + + + protected void rotateLeftArm(float var8, float var9, float move, float tick) { + if (this.leftArmPose == ArmPose.EMPTY) return; + + if (!this.metadata.hasMagic()) { + rotateArmHolding(bipedLeftArm, 1, var8, var9, tick); + } else { + this.unicornArmRight.setRotationPoint(-7, 12, -2); + rotateArmHolding(unicornArmLeft, 1, var8, var9, tick); + } + } +} diff --git a/src/main/java/com/minelittlepony/model/pony/ModelPlayerPony.java b/src/main/java/com/minelittlepony/model/pony/ModelPlayerPony.java index 0437915c..3df92705 100644 --- a/src/main/java/com/minelittlepony/model/pony/ModelPlayerPony.java +++ b/src/main/java/com/minelittlepony/model/pony/ModelPlayerPony.java @@ -2,12 +2,12 @@ package com.minelittlepony.model.pony; import com.minelittlepony.model.AbstractPonyModel; import com.minelittlepony.model.BodyPart; -import com.minelittlepony.model.PegasusWings; -import com.minelittlepony.model.PonyModelConstants; -import com.minelittlepony.model.PonySnout; -import com.minelittlepony.model.PonyTail; -import com.minelittlepony.model.UnicornHorn; -import com.minelittlepony.renderer.PlaneRenderer; +import com.minelittlepony.model.components.PegasusWings; +import com.minelittlepony.model.components.PonySnout; +import com.minelittlepony.model.components.PonyTail; +import com.minelittlepony.model.components.UnicornHorn; +import com.minelittlepony.renderer.plane.PlaneRenderer; + import net.minecraft.client.model.ModelRenderer; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.entity.Entity; @@ -17,8 +17,9 @@ import net.minecraft.util.math.MathHelper; import static net.minecraft.client.renderer.GlStateManager.popMatrix; import static net.minecraft.client.renderer.GlStateManager.pushMatrix; +import static com.minelittlepony.model.PonyModelConstants.*; -public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConstants { +public class ModelPlayerPony extends AbstractPonyModel { private final boolean smallArms; public boolean rainboom; @@ -143,7 +144,6 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst this.bipedCape.rotationPointY = isSneak ? 2 : isRiding ? -4 : 0; this.snout.setGender(this.metadata.getGender()); - this.snout.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entityIn); this.wings.setRotationAngles(limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch, scaleFactor, entityIn); } @@ -477,7 +477,8 @@ public class ModelPlayerPony extends AbstractPonyModel implements PonyModelConst if (leftArm == ArmPose.BOW_AND_ARROW || rightArm == ArmPose.BOW_AND_ARROW) { if (this.metadata.hasMagic()) { - aimBowPony(unicornArmRight, tick, true); + if (rightArm == ArmPose.BOW_AND_ARROW) aimBowPony(unicornArmRight, tick, true); + if (leftArm == ArmPose.BOW_AND_ARROW) aimBowPony(unicornArmLeft, tick, false); } else { if (rightArm == ArmPose.BOW_AND_ARROW) aimBowPony(bipedRightArm, tick, false); if (leftArm == ArmPose.BOW_AND_ARROW) aimBowPony(bipedLeftArm, tick, false); diff --git a/src/main/java/com/minelittlepony/model/pony/ModelSkeletonPony.java b/src/main/java/com/minelittlepony/model/pony/ModelSkeletonPony.java index 76b672fc..13f91c19 100644 --- a/src/main/java/com/minelittlepony/model/pony/ModelSkeletonPony.java +++ b/src/main/java/com/minelittlepony/model/pony/ModelSkeletonPony.java @@ -1,136 +1,65 @@ package com.minelittlepony.model.pony; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.util.math.MathHelper; - import static net.minecraft.client.renderer.GlStateManager.*; -public class ModelSkeletonPony extends ModelPlayerPony { +import com.minelittlepony.model.entity.ModelMobPony; + +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.monster.AbstractSkeleton; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumHand; +import net.minecraft.util.EnumHandSide; + +public class ModelSkeletonPony extends ModelMobPony { public ModelSkeletonPony() { - super(false); + super(); + } + + public void setLivingAnimations(EntityLivingBase entity, float move, float swing, float ticks) { + rightArmPose = ModelBiped.ArmPose.EMPTY; + leftArmPose = ModelBiped.ArmPose.EMPTY; + ItemStack itemstack = entity.getHeldItem(EnumHand.MAIN_HAND); + + if (itemstack.getItem() == Items.BOW && ((AbstractSkeleton)entity).isSwingingArms()) + { + if (entity.getPrimaryHand() == EnumHandSide.RIGHT) { + rightArmPose = ModelBiped.ArmPose.BOW_AND_ARROW; + } else { + leftArmPose = ModelBiped.ArmPose.BOW_AND_ARROW; + } + } + + super.setLivingAnimations(entity, move, swing, ticks); } @Override protected void rotateLegs(float move, float swing, float tick, Entity entity) { - float rightArmRotateAngleX; - float leftArmRotateAngleX; - float rightLegRotateAngleX; - float leftLegRotateAngleX; - float var8; - float var9; - if (this.isFlying && this.metadata.getRace().hasWings() || entity instanceof EntityLivingBase && ((EntityLivingBase) entity).isElytraFlying()) { - if (this.rainboom) { - rightArmRotateAngleX = ROTATE_270; - leftArmRotateAngleX = ROTATE_270; - rightLegRotateAngleX = ROTATE_90; - leftLegRotateAngleX = ROTATE_90; - } else { - rightArmRotateAngleX = MathHelper.sin(0.0F - swing * 0.5F); - leftArmRotateAngleX = MathHelper.sin(0.0F - swing * 0.5F); - rightLegRotateAngleX = MathHelper.sin(swing * 0.5F); - leftLegRotateAngleX = MathHelper.sin(swing * 0.5F); - } - - this.bipedRightArm.rotateAngleY = 0.2F; - this.steveRightArm.rotateAngleY = 0.2F; - this.bipedLeftArm.rotateAngleY = -0.2F; - this.bipedRightLeg.rotateAngleY = -0.2F; - this.bipedLeftLeg.rotateAngleY = 0.2F; - } else { - var8 = (float) Math.pow(swing, 16.0D); - var9 = 3.1415927F * var8 * 0.5F; - float laQuad = 3.1415927F * var8; - float rlQuad = 3.1415927F * var8 * 0.2F; - float llQuad = 3.1415927F * var8 * -0.4F; - rightArmRotateAngleX = MathHelper.cos(move * 0.6662F + 3.1415927F + var9) * 0.6F * swing; - leftArmRotateAngleX = MathHelper.cos(move * 0.6662F + laQuad) * 0.6F * swing; - rightLegRotateAngleX = MathHelper.cos(move * 0.6662F + rlQuad) * 0.6F * swing; - leftLegRotateAngleX = MathHelper.cos(move * 0.6662F + 3.1415927F + llQuad) * 0.6F * swing; - this.bipedRightArm.rotateAngleY = 0.0F; - this.steveRightArm.rotateAngleY = 0.0F; - this.unicornArmRight.rotateAngleY = 0.0F; - this.bipedLeftArm.rotateAngleY = 0.0F; - this.bipedRightLeg.rotateAngleY = 0.0F; - this.bipedLeftLeg.rotateAngleY = 0.0F; - } - - this.bipedRightArm.rotateAngleX = rightArmRotateAngleX; - this.steveRightArm.rotateAngleX = rightArmRotateAngleX; - this.unicornArmRight.rotateAngleX = rightArmRotateAngleX; - this.bipedLeftArm.rotateAngleX = leftArmRotateAngleX; - this.bipedRightLeg.rotateAngleX = rightLegRotateAngleX; - this.bipedLeftLeg.rotateAngleX = leftLegRotateAngleX; - this.bipedRightArm.rotateAngleZ = 0.0F; - this.steveRightArm.rotateAngleZ = 0.0F; - this.unicornArmRight.rotateAngleZ = 0.0F; - this.bipedLeftArm.rotateAngleZ = 0.0F; - if (this.rightArmPose != ArmPose.EMPTY) { - var8 = MathHelper.sin(this.swingProgress * 3.1415927F); - var9 = MathHelper.sin((1.0F - (1.0F - this.swingProgress) * (1.0F - this.swingProgress)) * 3.1415927F); - if (!this.metadata.hasMagic()) { - this.bipedRightArm.rotateAngleZ = 0.0F; - this.bipedRightArm.rotateAngleY = 0.1F - var8 * 0.6F; - this.bipedRightArm.rotateAngleX = -1.5707964F; - this.bipedRightArm.rotateAngleX -= var8 * 1.2F - var9 * 0.4F; - this.bipedRightArm.rotateAngleZ += MathHelper.cos(tick * 0.09F) * 0.05F + 0.05F; - this.bipedRightArm.rotateAngleX += MathHelper.sin(tick * 0.067F) * 0.1F; - } else { - this.unicornArmRight.rotationPointX = -7.0F; - this.unicornArmRight.rotationPointY = 12.0F; - this.unicornArmRight.rotationPointZ = -2.0F; - this.unicornArmRight.rotateAngleZ = 0.0F; - this.unicornArmRight.rotateAngleY = 0.1F - var8 * 0.6F; - this.unicornArmRight.rotateAngleX = -1.5707964F; - this.unicornArmRight.rotateAngleX -= var8 * 1.2F - var9 * 0.4F; - this.unicornArmRight.rotateAngleZ += MathHelper.cos(tick * 0.09F) * 0.05F + 0.05F; - this.unicornArmRight.rotateAngleX += MathHelper.sin(tick * 0.067F) * 0.1F; - } - } - if (this.leftArmPose != ArmPose.EMPTY) { - var8 = MathHelper.sin(this.swingProgress * 3.1415927F); - var9 = MathHelper.sin((1.0F - (1.0F - this.swingProgress) * (1.0F - this.swingProgress)) * 3.1415927F); - if (!this.metadata.hasMagic()) { - this.bipedLeftArm.rotateAngleZ = 0.0F; - this.bipedLeftArm.rotateAngleY = 0.1F - var8 * 0.6F; - this.bipedLeftArm.rotateAngleX = -1.5707964F; - this.bipedLeftArm.rotateAngleX -= var8 * 1.2F - var9 * 0.4F; - this.bipedLeftArm.rotateAngleZ += MathHelper.cos(tick * 0.09F) * 0.05F + 0.05F; - this.bipedLeftArm.rotateAngleX += MathHelper.sin(tick * 0.067F) * 0.1F; - } else { - this.unicornArmLeft.rotationPointX = -7.0F; - this.unicornArmLeft.rotationPointY = 12.0F; - this.unicornArmLeft.rotationPointZ = -2.0F; - this.unicornArmLeft.rotateAngleZ = 0.0F; - this.unicornArmLeft.rotateAngleY = 0.1F - var8 * 0.6F; - this.unicornArmLeft.rotateAngleX = -1.5707964F; - this.unicornArmLeft.rotateAngleX -= var8 * 1.2F - var9 * 0.4F; - this.unicornArmLeft.rotateAngleZ += MathHelper.cos(tick * 0.09F) * 0.05F + 0.05F; - this.unicornArmLeft.rotateAngleX += MathHelper.sin(tick * 0.067F) * 0.1F; - } - } - this.aimBow(this.leftArmPose, this.rightArmPose, tick); + super.rotateLegs(move, swing, tick, entity); + aimBow(leftArmPose, rightArmPose, tick); } - + @Override protected void fixSpecialRotationPoints(float move) { - if (this.rightArmPose != ArmPose.EMPTY && !this.metadata.hasMagic()) { - this.bipedRightArm.setRotationPoint(-1.5F, 9.5F, 4.0F); + if (rightArmPose != ArmPose.EMPTY && !metadata.hasMagic()) { + bipedRightArm.setRotationPoint(-1.5F, 9.5F, 4); } - + } @Override protected void renderLegs() { pushMatrix(); - translate(0.05F, -0.21F, -0.0F); + translate(0.05F, -0.21F, 0); scale(0.5F, 1.15F, 0.5F); this.bipedLeftArm.render(this.scale); popMatrix(); pushMatrix(); - translate(-0.05F, -0.21F, -0.0F); + translate(-0.05F, -0.21F, 0); scale(0.5F, 1.2F, 0.5F); this.bipedRightArm.render(this.scale); popMatrix(); diff --git a/src/main/java/com/minelittlepony/model/pony/ModelVillagerPony.java b/src/main/java/com/minelittlepony/model/pony/ModelVillagerPony.java index 079cb49b..660124d2 100644 --- a/src/main/java/com/minelittlepony/model/pony/ModelVillagerPony.java +++ b/src/main/java/com/minelittlepony/model/pony/ModelVillagerPony.java @@ -1,9 +1,11 @@ package com.minelittlepony.model.pony; -import com.minelittlepony.renderer.PlaneRenderer; +import com.minelittlepony.renderer.plane.PlaneRenderer; + import net.minecraft.entity.Entity; import net.minecraft.entity.passive.EntityVillager; import net.minecraft.util.math.MathHelper; +import static com.minelittlepony.model.PonyModelConstants.*; public class ModelVillagerPony extends ModelPlayerPony { diff --git a/src/main/java/com/minelittlepony/model/pony/ModelZombiePony.java b/src/main/java/com/minelittlepony/model/pony/ModelZombiePony.java index 098c7d99..3076f192 100644 --- a/src/main/java/com/minelittlepony/model/pony/ModelZombiePony.java +++ b/src/main/java/com/minelittlepony/model/pony/ModelZombiePony.java @@ -1,100 +1,43 @@ package com.minelittlepony.model.pony; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.math.MathHelper; -public class ModelZombiePony extends ModelPlayerPony { +import com.minelittlepony.model.entity.ModelMobPony; + +public class ModelZombiePony extends ModelMobPony { public ModelZombiePony() { - super(false); + super(); } - + + private boolean isRight(float move) { + return MathHelper.sin(move / 20f) < 0f; + } + @Override - protected void rotateLegs(float move, float swing, float tick, Entity entity) { - float rightArmRotateAngleX; - float leftArmRotateAngleX; - float rightLegRotateAngleX; - float leftLegRotateAngleX; - float var8; - float var9; - // why are zombies flying? - if (this.isFlying && this.metadata.getRace().hasWings() || entity instanceof EntityLivingBase && ((EntityLivingBase) entity).isElytraFlying()) { - if (this.rainboom) { - rightArmRotateAngleX = ROTATE_270; - leftArmRotateAngleX = ROTATE_270; - rightLegRotateAngleX = ROTATE_90; - leftLegRotateAngleX = ROTATE_90; - } else { - rightArmRotateAngleX = MathHelper.sin(0.0F - swing * 0.5F); - leftArmRotateAngleX = MathHelper.sin(0.0F - swing * 0.5F); - rightLegRotateAngleX = MathHelper.sin(swing * 0.5F); - leftLegRotateAngleX = MathHelper.sin(swing * 0.5F); - } - - this.bipedRightArm.rotateAngleY = 0.2F; - this.steveRightArm.rotateAngleY = 0.2F; - this.bipedLeftArm.rotateAngleY = -0.2F; - this.bipedRightLeg.rotateAngleY = -0.2F; - this.bipedLeftLeg.rotateAngleY = 0.2F; + protected void rotateRightArm(float var8, float var9, float move, float tick) { + if (this.rightArmPose != ArmPose.EMPTY) return; + + if (isRight(move)) { + rotateArmHolding(bipedRightArm, 1, var8, var9, tick); } else { - var8 = (float) Math.pow(swing, 16.0D); - var9 = 3.1415927F * var8 * 0.5F; - float laQuad = 3.1415927F * var8; - float rlQuad = 3.1415927F * var8 * 0.2F; - float llQuad = 3.1415927F * var8 * -0.4F; - rightArmRotateAngleX = MathHelper.cos(move * 0.6662F + 3.1415927F + var9) * 0.45F * swing; - leftArmRotateAngleX = MathHelper.cos(move * 0.6662F + laQuad) * 0.45F * swing; - rightLegRotateAngleX = MathHelper.cos(move * 0.6662F + rlQuad) * 0.45F * swing; - leftLegRotateAngleX = MathHelper.cos(move * 0.6662F + 3.1415927F + llQuad) * 0.45F * swing; - this.bipedRightArm.rotateAngleY = 0.0F; - this.steveRightArm.rotateAngleY = 0.0F; - this.unicornArmRight.rotateAngleY = 0.0F; - this.bipedLeftArm.rotateAngleY = 0.0F; - this.bipedRightLeg.rotateAngleY = 0.0F; - this.bipedLeftLeg.rotateAngleY = 0.0F; + rotateArmHolding(bipedLeftArm, -1, var8, var9, tick); } - - this.bipedRightArm.rotateAngleX = rightArmRotateAngleX; - this.steveRightArm.rotateAngleX = rightArmRotateAngleX; - this.unicornArmRight.rotateAngleX = 0.0F; - this.bipedLeftArm.rotateAngleX = leftArmRotateAngleX; - this.bipedRightLeg.rotateAngleX = rightLegRotateAngleX; - this.bipedLeftLeg.rotateAngleX = leftLegRotateAngleX; - this.bipedRightArm.rotateAngleZ = 0.0F; - this.steveRightArm.rotateAngleZ = 0.0F; - this.unicornArmRight.rotateAngleZ = 0.0F; - this.bipedLeftArm.rotateAngleZ = 0.0F; - if (this.rightArmPose == ArmPose.EMPTY) { - var8 = MathHelper.sin(this.swingProgress * (float) Math.PI); - var9 = MathHelper.sin((1.0F - (1.0F - this.swingProgress) * (1.0F - this.swingProgress)) * (float) Math.PI); - if (MathHelper.sin(move / 20.0F) < 0.0F) { - this.bipedRightArm.rotateAngleZ = 0.0F; - this.bipedRightArm.rotateAngleY = 0.1F - var8 * 0.6F; - this.bipedRightArm.rotateAngleX = -1.5707964F; - this.bipedRightArm.rotateAngleX -= var8 * 1.2F - var9 * 0.4F; - this.bipedRightArm.rotateAngleZ += MathHelper.cos(tick * 0.09F) * 0.05F + 0.05F; - this.bipedRightArm.rotateAngleX += MathHelper.sin(tick * 0.067F) * 0.1F; - } else { - this.bipedLeftArm.rotateAngleZ = 0.0F; - this.bipedLeftArm.rotateAngleY = -(0.1F - var8 * 0.6F); - this.bipedLeftArm.rotateAngleX = -1.5707964F; - this.bipedLeftArm.rotateAngleX -= var8 * 1.2F - var9 * 0.4F; - this.bipedLeftArm.rotateAngleZ += MathHelper.cos(tick * 0.09F) * 0.05F + 0.05F; - this.bipedLeftArm.rotateAngleX += MathHelper.sin(tick * 0.067F) * 0.1F; - } - } - + } + + @Override + protected void rotateLeftArm(float var8, float var9, float move, float tick) { + } @Override protected void fixSpecialRotationPoints(float move) { - if (this.rightArmPose == ArmPose.EMPTY) { - if (MathHelper.sin(move / 20.0F) < 0.0F) { - shiftRotationPoint(this.bipedRightArm, 0.5F, 1.5F, 3.0F); - } else { - shiftRotationPoint(this.bipedLeftArm, -0.5F, 1.5F, 3.0F); - } + if (rightArmPose != ArmPose.EMPTY) return; + + if (isRight(move)) { + shiftRotationPoint(bipedRightArm, 0.5F, 1.5F, 3); + } else { + shiftRotationPoint(bipedLeftArm, -0.5F, 1.5F, 3); } } diff --git a/src/main/java/com/minelittlepony/model/pony/armor/ModelPonyArmor.java b/src/main/java/com/minelittlepony/model/pony/armor/ModelPonyArmor.java index 908719d9..d6b9bdce 100644 --- a/src/main/java/com/minelittlepony/model/pony/armor/ModelPonyArmor.java +++ b/src/main/java/com/minelittlepony/model/pony/armor/ModelPonyArmor.java @@ -5,6 +5,8 @@ import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.math.MathHelper; +import static com.minelittlepony.model.PonyModelConstants.*; + public class ModelPonyArmor extends ModelPlayerPony { public ModelRenderer Bodypiece; diff --git a/src/main/java/com/minelittlepony/model/pony/armor/ModelSkeletonPonyArmor.java b/src/main/java/com/minelittlepony/model/pony/armor/ModelSkeletonPonyArmor.java index c42f8deb..46a4e29d 100644 --- a/src/main/java/com/minelittlepony/model/pony/armor/ModelSkeletonPonyArmor.java +++ b/src/main/java/com/minelittlepony/model/pony/armor/ModelSkeletonPonyArmor.java @@ -4,6 +4,8 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.math.MathHelper; +import static com.minelittlepony.model.PonyModelConstants.*; + public class ModelSkeletonPonyArmor extends ModelPonyArmor { @Override diff --git a/src/main/java/com/minelittlepony/model/pony/armor/ModelZombiePonyArmor.java b/src/main/java/com/minelittlepony/model/pony/armor/ModelZombiePonyArmor.java index b63c54c5..1657be66 100644 --- a/src/main/java/com/minelittlepony/model/pony/armor/ModelZombiePonyArmor.java +++ b/src/main/java/com/minelittlepony/model/pony/armor/ModelZombiePonyArmor.java @@ -3,6 +3,7 @@ package com.minelittlepony.model.pony.armor; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.util.math.MathHelper; +import static com.minelittlepony.model.PonyModelConstants.*; public class ModelZombiePonyArmor extends ModelPonyArmor { diff --git a/src/main/java/com/minelittlepony/renderer/BasePonyRenderer.java b/src/main/java/com/minelittlepony/renderer/BasePonyRenderer.java new file mode 100644 index 00000000..0df82fb9 --- /dev/null +++ b/src/main/java/com/minelittlepony/renderer/BasePonyRenderer.java @@ -0,0 +1,49 @@ +package com.minelittlepony.renderer; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.client.model.TextureOffset; + +@SuppressWarnings("unchecked") +public class BasePonyRenderer> extends ModelRenderer { + + protected final ModelBase baseModel; + + protected int textureOffsetX, textureOffsetY; + + public BasePonyRenderer(ModelBase model) { + super(model); + baseModel = model; + } + + public BasePonyRenderer(ModelBase model, int x, int y) { + super(model, x, y); + baseModel = model; + } + + @Override + public T setTextureOffset(int x, int y) { + this.textureOffsetX = x; + this.textureOffsetY = y; + super.setTextureOffset(x, y); + return (T) this; + } + + @Override + public T addBox(String partName, float offX, float offY, float offZ, int width, int height, int depth) { + partName = boxName + "." + partName; + + TextureOffset tex = this.baseModel.getTextureOffset(partName); + + setTextureOffset(tex.textureOffsetX, tex.textureOffsetY).addBox(offX, offY, offZ, width, height, depth); + cubeList.get(cubeList.size() - 1).setBoxName(partName); + + return (T) this; + } + + @Override + public T addBox(float offX, float offY, float offZ, int width, int height, int depth) { + addBox(offX, offY, offZ, width, height, depth, 0); + return (T) this; + } +} diff --git a/src/main/java/com/minelittlepony/renderer/HornGlowRenderer.java b/src/main/java/com/minelittlepony/renderer/HornGlowRenderer.java index 727d85c0..cd6cec19 100644 --- a/src/main/java/com/minelittlepony/renderer/HornGlowRenderer.java +++ b/src/main/java/com/minelittlepony/renderer/HornGlowRenderer.java @@ -1,51 +1,44 @@ package com.minelittlepony.renderer; +import static net.minecraft.client.renderer.GlStateManager.color; + import com.minelittlepony.model.ModelHornGlow; import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -import net.minecraft.client.model.TextureOffset; -public class HornGlowRenderer extends ModelRenderer { +public class HornGlowRenderer extends BasePonyRenderer { - private int textureOffsetX; - private int textureOffsetY; - private ModelBase baseModel; - - public HornGlowRenderer(ModelBase par1ModelBase) { - super(par1ModelBase); - this.baseModel = par1ModelBase; + float r, g, b, a = 1; + + public HornGlowRenderer(ModelBase model, int x, int y) { + super(model, x, y); } - public HornGlowRenderer(ModelBase par1ModelBase, int par2, int par3) { - this(par1ModelBase); - this.setTextureSize(par2, par3); + public HornGlowRenderer setAlpha(float a) { + this.a = a; - } - - @Override - public HornGlowRenderer addBox(String par1Str, float par2, float par3, float par4, int par5, int par6, int par7) { - par1Str = this.boxName + "." + par1Str; - TextureOffset var8 = this.baseModel.getTextureOffset(par1Str); - this.setTextureOffset(var8.textureOffsetX, var8.textureOffsetY); - this.cubeList.add((new ModelHornGlow(this, this.textureOffsetX, this.textureOffsetY, par2, par3, par4, par5, par6, par7, 0.0F)).setBoxName(par1Str)); return this; } - @Override - public HornGlowRenderer addBox(float par1, float par2, float par3, int par4, int par5, int par6) { - this.cubeList.add(new ModelHornGlow(this, this.textureOffsetX, this.textureOffsetY, par1, par2, par3, par4, par5, par6, 0.0F)); + public HornGlowRenderer setTint(int tint) { + r = (tint >> 16 & 255) / 255.0F; + g = (tint >> 8 & 255) / 255.0F; + b = (tint & 255) / 255.0F; + return this; } - @Override - public void addBox(float par1, float par2, float par3, int par4, int par5, int par6, float par7) { - this.cubeList.add(new ModelHornGlow(this, this.textureOffsetX, this.textureOffsetY, par1, par2, par3, par4, par5, par6, par7)); + public void applyTint(float alpha) { + color(r, g, b, alpha); } @Override - public ModelRenderer setTextureOffset(int x, int y) { - this.textureOffsetX = x; - this.textureOffsetY = y; - return this; + public void addBox(float offX, float offY, float offZ, int width, int height, int depth, float scaleFactor) { + this.cubeList.add(new ModelHornGlow(this, textureOffsetX, textureOffsetY, offX, offY, offZ, width, height, depth, scaleFactor, a)); + } + + @Override + public void render(float scale) { + super.render(scale); + color(1, 1, 1, 1); } } diff --git a/src/main/java/com/minelittlepony/renderer/plane/Face.java b/src/main/java/com/minelittlepony/renderer/plane/Face.java new file mode 100644 index 00000000..98eb9b25 --- /dev/null +++ b/src/main/java/com/minelittlepony/renderer/plane/Face.java @@ -0,0 +1,7 @@ +package com.minelittlepony.renderer.plane; + +enum Face { + WEST, EAST, + UP, DOWN, + NORTH, SOUTH +} \ No newline at end of file diff --git a/src/main/java/com/minelittlepony/model/ModelPlane.java b/src/main/java/com/minelittlepony/renderer/plane/ModelPlane.java similarity index 95% rename from src/main/java/com/minelittlepony/model/ModelPlane.java rename to src/main/java/com/minelittlepony/renderer/plane/ModelPlane.java index 7ac3575d..7592da53 100644 --- a/src/main/java/com/minelittlepony/model/ModelPlane.java +++ b/src/main/java/com/minelittlepony/renderer/plane/ModelPlane.java @@ -1,6 +1,5 @@ -package com.minelittlepony.model; +package com.minelittlepony.renderer.plane; -import com.minelittlepony.renderer.PlaneRenderer; import net.minecraft.client.model.ModelBox; import net.minecraft.client.model.PositionTextureVertex; import net.minecraft.client.model.TexturedQuad; @@ -109,13 +108,4 @@ public class ModelPlane extends ModelBox { public void render(@Nonnull BufferBuilder renderer, float scale) { if (!hidden) this.quad.draw(renderer, scale); } - - public enum Face { - EAST, - WEST, - DOWN, - UP, - SOUTH, - NORTH - } } diff --git a/src/main/java/com/minelittlepony/renderer/PlaneRenderer.java b/src/main/java/com/minelittlepony/renderer/plane/PlaneRenderer.java similarity index 69% rename from src/main/java/com/minelittlepony/renderer/PlaneRenderer.java rename to src/main/java/com/minelittlepony/renderer/plane/PlaneRenderer.java index 43f4da60..03f9eff9 100644 --- a/src/main/java/com/minelittlepony/renderer/PlaneRenderer.java +++ b/src/main/java/com/minelittlepony/renderer/plane/PlaneRenderer.java @@ -1,17 +1,13 @@ -package com.minelittlepony.renderer; +package com.minelittlepony.renderer.plane; + +import com.minelittlepony.renderer.BasePonyRenderer; -import com.minelittlepony.model.ModelPlane; -import com.minelittlepony.model.ModelPlane.Face; import net.minecraft.client.model.ModelBase; -import net.minecraft.client.model.ModelRenderer; -@SuppressWarnings("unused") -public class PlaneRenderer extends ModelRenderer { +public class PlaneRenderer extends BasePonyRenderer { public boolean mirrory, mirrorz; - private int textureOffsetX, textureOffsetY; - public PlaneRenderer(ModelBase model) { super(model); } @@ -20,16 +16,8 @@ public class PlaneRenderer extends ModelRenderer { super(model, x, y); } - @Override - public PlaneRenderer setTextureOffset(int x, int y) { - this.textureOffsetX = x; - this.textureOffsetY = y; - super.setTextureOffset(x, y); - return this; - } - private void addPlane(float offX, float offY, float offZ, int width, int height, int depth, float scale, Face face) { - this.cubeList.add(new ModelPlane(this, this.textureOffsetX, this.textureOffsetY, offX, offY, offZ, width, height, depth, scale, face)); + this.cubeList.add(new ModelPlane(this, textureOffsetX, textureOffsetY, offX, offY, offZ, width, height, depth, scale, face)); } public void addTopPlane(float offX, float offY, float offZ, int width, int depth, float scale) {