From e14b601b9fd3ac759504666c7d354475c36e377e Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 27 Apr 2018 19:08:23 +0200 Subject: [PATCH] Merge RenderPonyEvoker + RenderPonyIllusionIllager + RenderPonyVindicator = RenderPonyIllager --- .../com/minelittlepony/PonyRenderManager.java | 10 +- .../render/layer/LayerHeldItemIllager.java | 31 ++++++ .../render/ponies/RenderPonyEvoker.java | 50 ---------- .../render/ponies/RenderPonyIllager.java | 96 +++++++++++++++++++ .../ponies/RenderPonyIllusionIllager.java | 75 --------------- .../render/ponies/RenderPonyVindicator.java | 51 ---------- 6 files changed, 131 insertions(+), 182 deletions(-) create mode 100644 src/main/java/com/minelittlepony/render/layer/LayerHeldItemIllager.java delete mode 100644 src/main/java/com/minelittlepony/render/ponies/RenderPonyEvoker.java create mode 100644 src/main/java/com/minelittlepony/render/ponies/RenderPonyIllager.java delete mode 100644 src/main/java/com/minelittlepony/render/ponies/RenderPonyIllusionIllager.java delete mode 100644 src/main/java/com/minelittlepony/render/ponies/RenderPonyVindicator.java diff --git a/src/main/java/com/minelittlepony/PonyRenderManager.java b/src/main/java/com/minelittlepony/PonyRenderManager.java index a408afaa..178237cb 100644 --- a/src/main/java/com/minelittlepony/PonyRenderManager.java +++ b/src/main/java/com/minelittlepony/PonyRenderManager.java @@ -7,13 +7,11 @@ import com.minelittlepony.hdskins.gui.EntityPonyModel; import com.minelittlepony.hdskins.gui.RenderPonyModel; import com.minelittlepony.model.PMAPI; import com.minelittlepony.render.player.RenderPonyPlayer; -import com.minelittlepony.render.ponies.RenderPonyEvoker; -import com.minelittlepony.render.ponies.RenderPonyIllusionIllager; +import com.minelittlepony.render.ponies.RenderPonyIllager; import com.minelittlepony.render.ponies.RenderPonyPigman; import com.minelittlepony.render.ponies.RenderPonySkeleton; import com.minelittlepony.render.ponies.RenderPonyVex; import com.minelittlepony.render.ponies.RenderPonyVillager; -import com.minelittlepony.render.ponies.RenderPonyVindicator; import com.minelittlepony.render.ponies.RenderPonyZombie; import com.minelittlepony.render.ponies.RenderPonyZombieVillager; import com.mumfrey.liteloader.util.ModUtilities; @@ -104,9 +102,9 @@ public class PonyRenderManager { if (config.illagers) { pushNewRenderer(rm, EntityVex.class, new RenderPonyVex(rm)); - pushNewRenderer(rm, EntityEvoker.class, new RenderPonyEvoker(rm)); - pushNewRenderer(rm, EntityVindicator.class, new RenderPonyVindicator(rm)); - pushNewRenderer(rm, EntityIllusionIllager.class, new RenderPonyIllusionIllager(rm)); + pushNewRenderer(rm, EntityEvoker.class, new RenderPonyIllager.Evoker(rm)); + pushNewRenderer(rm, EntityVindicator.class, new RenderPonyIllager.Vindicator(rm)); + pushNewRenderer(rm, EntityIllusionIllager.class, new RenderPonyIllager.Illusionist(rm)); MineLittlePony.logger.info("Illagers are now ponies."); } else { restoreRenderer(EntityVex.class); diff --git a/src/main/java/com/minelittlepony/render/layer/LayerHeldItemIllager.java b/src/main/java/com/minelittlepony/render/layer/LayerHeldItemIllager.java new file mode 100644 index 00000000..e389b90e --- /dev/null +++ b/src/main/java/com/minelittlepony/render/layer/LayerHeldItemIllager.java @@ -0,0 +1,31 @@ +package com.minelittlepony.render.layer; + +import com.minelittlepony.model.ponies.ModelIllagerPony; + +import net.minecraft.client.renderer.entity.RenderLivingBase; +import net.minecraft.entity.monster.AbstractIllager; +import net.minecraft.entity.monster.AbstractIllager.IllagerArmPose; +import net.minecraft.util.EnumHandSide; + +public class LayerHeldItemIllager extends LayerHeldPonyItem { + + public LayerHeldItemIllager(RenderLivingBase livingPony) { + super(livingPony); + } + + @Override + public void doPonyRender(T entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale) { + if (shouldRender(entity)) { + super.doPonyRender(entity, move, swing, ticks, age, headYaw, headPitch, scale); + } + } + + @Override + protected void renderArm(EnumHandSide side) { + ((ModelIllagerPony) getRenderer().getMainModel()).getArm(side).postRender(0.0625F); + } + + public boolean shouldRender(T entity) { + return entity.getArmPose() != IllagerArmPose.CROSSED; + } +} diff --git a/src/main/java/com/minelittlepony/render/ponies/RenderPonyEvoker.java b/src/main/java/com/minelittlepony/render/ponies/RenderPonyEvoker.java deleted file mode 100644 index b27a14bd..00000000 --- a/src/main/java/com/minelittlepony/render/ponies/RenderPonyEvoker.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.minelittlepony.render.ponies; - -import com.minelittlepony.model.PMAPI; -import com.minelittlepony.model.ponies.ModelIllagerPony; -import com.minelittlepony.render.RenderPonyMob; -import com.minelittlepony.render.layer.LayerHeldPonyItem; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.monster.EntityEvoker; -import net.minecraft.util.EnumHandSide; -import net.minecraft.util.ResourceLocation; - -public class RenderPonyEvoker extends RenderPonyMob { - - private static final ResourceLocation EVOKER = new ResourceLocation("minelittlepony", "textures/entity/illager/evoker_pony.png"); - - public RenderPonyEvoker(RenderManager manager) { - super(manager, PMAPI.illager); - } - - @Override - protected void addLayers() { - addLayer(new LayerHeldPonyItem(this) { - @Override - public void doPonyRender(EntityEvoker entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale) { - if (entity.isSpellcasting()) { - super.doPonyRender(entity, move, swing, ticks, age, headYaw, headPitch, scale); - } - } - - @Override - protected void postRenderArm(EnumHandSide side) { - ((ModelIllagerPony) getRenderer().getMainModel()).getArm(side).postRender(0.0625F); - } - }); - } - - @Override - protected ResourceLocation getTexture(EntityEvoker entity) { - return EVOKER; - } - - @Override - protected void preRenderCallback(EntityEvoker entity, float ticks) { - super.preRenderCallback(entity, ticks); - GlStateManager.scale(0.9375F, 0.9375F, 0.9375F); - } - -} diff --git a/src/main/java/com/minelittlepony/render/ponies/RenderPonyIllager.java b/src/main/java/com/minelittlepony/render/ponies/RenderPonyIllager.java new file mode 100644 index 00000000..5175fefd --- /dev/null +++ b/src/main/java/com/minelittlepony/render/ponies/RenderPonyIllager.java @@ -0,0 +1,96 @@ +package com.minelittlepony.render.ponies; + +import com.minelittlepony.model.PMAPI; +import com.minelittlepony.render.RenderPonyMob; +import com.minelittlepony.render.layer.LayerHeldItemIllager; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.entity.monster.AbstractIllager; +import net.minecraft.entity.monster.EntityEvoker; +import net.minecraft.entity.monster.EntityIllusionIllager; +import net.minecraft.entity.monster.EntityVindicator; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.Vec3d; + +public abstract class RenderPonyIllager extends RenderPonyMob { + + public static final ResourceLocation ILLUSIONIST = new ResourceLocation("minelittlepony", "textures/entity/illager/illusionist_pony.png"); + public static final ResourceLocation EVOKER = new ResourceLocation("minelittlepony", "textures/entity/illager/evoker_pony.png"); + public static final ResourceLocation VINDICATOR = new ResourceLocation("minelittlepony", "textures/entity/illager/vindicator_pony.png"); + + public RenderPonyIllager(RenderManager manager) { + super(manager, PMAPI.illager); + } + + @Override + protected void addLayers() { + addLayer(new LayerHeldItemIllager<>(this)); + } + + @Override + protected void preRenderCallback(T entity, float ticks) { + super.preRenderCallback(entity, ticks); + GlStateManager.scale(0.9375F, 0.9375F, 0.9375F); + } + + public static class Vindicator extends RenderPonyIllager { + + public Vindicator(RenderManager manager) { + super(manager); + + } + + @Override + protected ResourceLocation getTexture(EntityVindicator entity) { + return VINDICATOR; + } + } + + public static class Evoker extends RenderPonyIllager { + + public Evoker(RenderManager manager) { + super(manager); + } + + @Override + protected ResourceLocation getTexture(EntityEvoker entity) { + return EVOKER; + } + } + + public static class Illusionist extends RenderPonyIllager { + + public Illusionist(RenderManager manager) { + super(manager); + } + + @Override + protected ResourceLocation getTexture(EntityIllusionIllager entity) { + return ILLUSIONIST; + } + + @Override + public void doRender(EntityIllusionIllager entity, double x, double y, double z, float yaw, float ticks) { + if (entity.isInvisible()) { + Vec3d[] clones = entity.getRenderLocations(ticks); + float rotation = handleRotationFloat(entity, ticks); + + for (int i = 0; i < clones.length; ++i) { + super.doRender(entity, + x + clones[i].x + MathHelper.cos(i + rotation * 0.5F) * 0.025D, + y + clones[i].y + MathHelper.cos(i + rotation * 0.75F) * 0.0125D, + z + clones[i].z + MathHelper.cos(i + rotation * 0.7F) * 0.025D, + yaw, ticks); + } + } else { + super.doRender(entity, x, y, z, yaw, ticks); + } + } + + @Override + protected boolean isVisible(EntityIllusionIllager entity) { + return true; + } + } +} diff --git a/src/main/java/com/minelittlepony/render/ponies/RenderPonyIllusionIllager.java b/src/main/java/com/minelittlepony/render/ponies/RenderPonyIllusionIllager.java deleted file mode 100644 index c8c27f77..00000000 --- a/src/main/java/com/minelittlepony/render/ponies/RenderPonyIllusionIllager.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.minelittlepony.render.ponies; - -import com.minelittlepony.model.PMAPI; -import com.minelittlepony.model.ponies.ModelIllagerPony; -import com.minelittlepony.render.RenderPonyMob; -import com.minelittlepony.render.layer.LayerHeldPonyItem; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.monster.EntityIllusionIllager; -import net.minecraft.util.EnumHandSide; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.Vec3d; - - -public class RenderPonyIllusionIllager extends RenderPonyMob { - - private static final ResourceLocation TEXTURE = new ResourceLocation("minelittlepony", "textures/entity/illager/illusionist_pony.png"); - - public RenderPonyIllusionIllager(RenderManager manager) { - super(manager, PMAPI.illager); - } - - @Override - protected void addLayers() { - addLayer(new LayerHeldPonyItem(this) { - @Override - public void doPonyRender(EntityIllusionIllager entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale) { - if (entity.isSpellcasting() || entity.isAggressive()) { - super.doPonyRender(entity, move, swing, ticks, age, headYaw, headPitch, scale); - } - } - - @Override - protected void postRenderArm(EnumHandSide side) { - ((ModelIllagerPony) getRenderer().getMainModel()).getArm(side).postRender(0.0625F); - } - }); - } - - @Override - protected ResourceLocation getTexture(EntityIllusionIllager entity) { - return TEXTURE; - } - - @Override - protected void preRenderCallback(EntityIllusionIllager entity, float ticks) { - super.preRenderCallback(entity, ticks); - GlStateManager.scale(0.9375F, 0.9375F, 0.9375F); - } - - @Override - public void doRender(EntityIllusionIllager entity, double x, double y, double z, float yaw, float ticks) { - if (entity.isInvisible()) { - Vec3d[] vects = entity.getRenderLocations(ticks); - float f = handleRotationFloat(entity, ticks); - - for (int i = 0; i < vects.length; ++i) { - super.doRender(entity, - x + vects[i].x + MathHelper.cos(i + f * 0.5F) * 0.025D, - y + vects[i].y + MathHelper.cos(i + f * 0.75F) * 0.0125D, - z + vects[i].z + MathHelper.cos(i + f * 0.7F) * 0.025D, - yaw, ticks); - } - } else { - super.doRender(entity, x, y, z, yaw, ticks); - } - } - - @Override - protected boolean isVisible(EntityIllusionIllager entity) { - return true; - } -} diff --git a/src/main/java/com/minelittlepony/render/ponies/RenderPonyVindicator.java b/src/main/java/com/minelittlepony/render/ponies/RenderPonyVindicator.java deleted file mode 100644 index 125f8add..00000000 --- a/src/main/java/com/minelittlepony/render/ponies/RenderPonyVindicator.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.minelittlepony.render.ponies; - -import com.minelittlepony.model.PMAPI; -import com.minelittlepony.model.ponies.ModelIllagerPony; -import com.minelittlepony.render.RenderPonyMob; -import com.minelittlepony.render.layer.LayerHeldPonyItem; - -import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.monster.EntityVindicator; -import net.minecraft.util.EnumHandSide; -import net.minecraft.util.ResourceLocation; - -public class RenderPonyVindicator extends RenderPonyMob { - - private static final ResourceLocation VINDICATOR = new ResourceLocation("minelittlepony", "textures/entity/illager/vindicator_pony.png"); - - public RenderPonyVindicator(RenderManager manager) { - super(manager, PMAPI.illager); - - } - - @Override - protected void addLayers() { - this.addLayer(new LayerHeldPonyItem(this) { - @Override - public void doPonyRender(EntityVindicator entity, float move, float swing, float ticks, float age, float headYaw, float headPitch, float scale) { - if (entity.isAggressive()) { - super.doPonyRender(entity, move, swing, ticks, age, headYaw, headPitch, scale); - } - } - - @Override - protected void postRenderArm(EnumHandSide side) { - ((ModelIllagerPony) getRenderer().getMainModel()).getArm(side).postRender(0.0625F); - } - }); - } - - @Override - protected ResourceLocation getTexture(EntityVindicator entity) { - return VINDICATOR; - } - - @Override - protected void preRenderCallback(EntityVindicator entity, float ticks) { - super.preRenderCallback(entity, ticks); - GlStateManager.scale(0.9375F, 0.9375F, 0.9375F); - } - -}