From d272d07cc8b25abcc9539f4e00677d42486c3446 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 20 Mar 2020 19:33:33 +0200 Subject: [PATCH] Added Piglin renderers and models (textures needed) --- .../client/model/ModelType.java | 2 + .../client/model/entity/PiglinPonyModel.java | 41 ++++++++++++++++++ .../client/render/MobRenderers.java | 5 ++- .../render/entity/PonyPiglinRenderer.java | 28 ++++++++++++ .../client/render/entity/ZomponyRenderer.java | 14 ------ .../assets/minelittlepony/models/piglin.json | 3 ++ .../piglin_pony.png} | Bin .../entity/piglin/zombified_piglin_pony.png | Bin 0 -> 7102 bytes 8 files changed, 77 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java create mode 100644 src/main/java/com/minelittlepony/client/render/entity/PonyPiglinRenderer.java create mode 100644 src/main/resources/assets/minelittlepony/models/piglin.json rename src/main/resources/assets/minelittlepony/textures/entity/{zombie/zombie_pigman_pony.png => piglin/piglin_pony.png} (100%) create mode 100644 src/main/resources/assets/minelittlepony/textures/entity/piglin/zombified_piglin_pony.png diff --git a/src/main/java/com/minelittlepony/client/model/ModelType.java b/src/main/java/com/minelittlepony/client/model/ModelType.java index a90b7068..bde9ae29 100644 --- a/src/main/java/com/minelittlepony/client/model/ModelType.java +++ b/src/main/java/com/minelittlepony/client/model/ModelType.java @@ -10,6 +10,7 @@ import com.minelittlepony.client.model.entity.BreezieModel; import com.minelittlepony.client.model.entity.EnderStallionModel; import com.minelittlepony.client.model.entity.GuardianPonyModel; import com.minelittlepony.client.model.entity.IllagerPonyModel; +import com.minelittlepony.client.model.entity.PiglinPonyModel; import com.minelittlepony.client.model.entity.PillagerPonyModel; import com.minelittlepony.client.model.entity.SkeleponyModel; import com.minelittlepony.client.model.entity.VillagerPonyModel; @@ -53,6 +54,7 @@ public final class ModelType { public static final ModelKey> VILLAGER = register("villager", VillagerPonyModel::new); public static final ModelKey WITCH = register("witch", WitchPonyModel::new); public static final ModelKey> ZOMBIE = register("zombie", ZomponyModel::new); + public static final ModelKey PIGLIN = register("piglin", PiglinPonyModel::new); public static final ModelKey ZOMBIE_VILLAGER = register("zombie_villager", ZomponyVillagerModel::new); public static final ModelKey> SKELETON = register("skeleton", SkeleponyModel::new); public static final ModelKey> SKELETON_CLOTHES = register("skeleton_clothes", SkeleponyModel::new); diff --git a/src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java b/src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java new file mode 100644 index 00000000..909b9121 --- /dev/null +++ b/src/main/java/com/minelittlepony/client/model/entity/PiglinPonyModel.java @@ -0,0 +1,41 @@ +package com.minelittlepony.client.model.entity; + +import net.minecraft.entity.mob.HostileEntity; +import net.minecraft.entity.mob.PiglinEntity; + +import com.minelittlepony.client.model.entity.race.AlicornModel; + +public class PiglinPonyModel extends AlicornModel { + + private boolean isPegasus; + + public PiglinPonyModel() { + super(false); + } + + @Override + public void animateModel(HostileEntity entity, float move, float swing, float ticks) { + isPegasus = entity.getUuid().getLeastSignificantBits() % 30 == 0; + + if (entity instanceof PiglinEntity) { + PiglinEntity piglinEntity = (PiglinEntity)entity; + PiglinEntity.Activity activity = piglinEntity.getActivity(); + + leftArmPose = ArmPose.EMPTY; + rightArmPose = ArmPose.EMPTY; + + if (activity == PiglinEntity.Activity.CROSSBOW_HOLD) { + rightArmPose = ArmPose.CROSSBOW_HOLD; + } else if (activity == PiglinEntity.Activity.CROSSBOW_CHARGE) { + rightArmPose = ArmPose.BOW_AND_ARROW; + } else if (activity == PiglinEntity.Activity.ADMIRING_ITEM) { + leftArmPose = ArmPose.ITEM; + } + } + } + + @Override + public boolean canFly() { + return isPegasus; + } +} diff --git a/src/main/java/com/minelittlepony/client/render/MobRenderers.java b/src/main/java/com/minelittlepony/client/render/MobRenderers.java index c9d3411c..8aac7192 100644 --- a/src/main/java/com/minelittlepony/client/render/MobRenderers.java +++ b/src/main/java/com/minelittlepony/client/render/MobRenderers.java @@ -36,8 +36,9 @@ public final class MobRenderers { pony.switchRenderer(state, EntityType.GIANT, ZomponyRenderer.Giant::new); pony.switchRenderer(state, EntityType.DROWNED, ZomponyRenderer.Drowned::new); }); - public static final MobRenderers ZOMBIE_PIGMAN = register("pigzombies", (state, pony) -> { - pony.switchRenderer(state, EntityType.ZOMBIFIED_PIGLIN, ZomponyRenderer.Piglin::new); + public static final MobRenderers PIGLIN = register("pigzombies", (state, pony) -> { + pony.switchRenderer(state, EntityType.PIGLIN, PonyPiglinRenderer::new); + pony.switchRenderer(state, EntityType.ZOMBIFIED_PIGLIN, PonyPiglinRenderer::new); }); public static final MobRenderers SKELETON = register("skeletons", (state, pony) -> { pony.switchRenderer(state, EntityType.SKELETON, SkeleponyRenderer::new); diff --git a/src/main/java/com/minelittlepony/client/render/entity/PonyPiglinRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/PonyPiglinRenderer.java new file mode 100644 index 00000000..502afd09 --- /dev/null +++ b/src/main/java/com/minelittlepony/client/render/entity/PonyPiglinRenderer.java @@ -0,0 +1,28 @@ +package com.minelittlepony.client.render.entity; + +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.entity.mob.HostileEntity; +import net.minecraft.entity.mob.PiglinEntity; +import net.minecraft.util.Identifier; + +import com.minelittlepony.client.model.ModelType; +import com.minelittlepony.client.model.entity.PiglinPonyModel; + +public class PonyPiglinRenderer extends PonyRenderer.Caster { + public static final Identifier NORMAL = new Identifier("minelittlepony", "textures/entity/piglin/piglin_pony.png"); + public static final Identifier ZOMBIFIED = new Identifier("minelittlepony", "textures/entity/piglin/zombified_piglin_pony.png"); + + public PonyPiglinRenderer(EntityRenderDispatcher manager) { + super(manager, ModelType.PIGLIN); + } + + @Override + public Identifier findTexture(HostileEntity entity) { + return entity instanceof PiglinEntity ? NORMAL : new Identifier("minelittlepony", "textures/entity/piglin/zombified_piglin_pony.png"); + } + + @Override + protected boolean method_25450(HostileEntity entity) { + return entity instanceof PiglinEntity && ((PiglinEntity)entity).canConvert(); + } +} diff --git a/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java b/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java index 8156803a..9c94ab5f 100644 --- a/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/entity/ZomponyRenderer.java @@ -6,7 +6,6 @@ import net.minecraft.entity.mob.DrownedEntity; import net.minecraft.entity.mob.GiantEntity; import net.minecraft.entity.mob.HuskEntity; import net.minecraft.entity.mob.ZombieEntity; -import net.minecraft.entity.mob.ZombifiedPiglinEntity; import net.minecraft.util.Identifier; import com.minelittlepony.client.model.ModelType; @@ -16,7 +15,6 @@ public class ZomponyRenderer extends PonyRenderer.C public static final Identifier ZOMBIE = new Identifier("minelittlepony", "textures/entity/zombie/zombie_pony.png"); public static final Identifier HUSK = new Identifier("minelittlepony", "textures/entity/zombie/husk_pony.png"); - public static final Identifier PIGMAN = new Identifier("minelittlepony", "textures/entity/zombie/zombie_pigman_pony.png"); public static final Identifier DROWNED = new Identifier("minelittlepony", "textures/entity/zombie/drowned_pony.png"); public ZomponyRenderer(EntityRenderDispatcher manager) { @@ -40,18 +38,6 @@ public class ZomponyRenderer extends PonyRenderer.C } } - public static class Piglin extends ZomponyRenderer { - - public Piglin(EntityRenderDispatcher manager) { - super(manager); - } - - @Override - public Identifier findTexture(ZombifiedPiglinEntity entity) { - return PIGMAN; - } - } - public static class Husk extends ZomponyRenderer { public Husk(EntityRenderDispatcher manager) { diff --git a/src/main/resources/assets/minelittlepony/models/piglin.json b/src/main/resources/assets/minelittlepony/models/piglin.json new file mode 100644 index 00000000..07ebb0b0 --- /dev/null +++ b/src/main/resources/assets/minelittlepony/models/piglin.json @@ -0,0 +1,3 @@ +{ + "parent": "minelittlepony:zombie" +} diff --git a/src/main/resources/assets/minelittlepony/textures/entity/zombie/zombie_pigman_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/piglin/piglin_pony.png similarity index 100% rename from src/main/resources/assets/minelittlepony/textures/entity/zombie/zombie_pigman_pony.png rename to src/main/resources/assets/minelittlepony/textures/entity/piglin/piglin_pony.png diff --git a/src/main/resources/assets/minelittlepony/textures/entity/piglin/zombified_piglin_pony.png b/src/main/resources/assets/minelittlepony/textures/entity/piglin/zombified_piglin_pony.png new file mode 100644 index 0000000000000000000000000000000000000000..9a7fa9abf02145ba5221112b47fbbf448fc69900 GIT binary patch literal 7102 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