Skeletons should now hold their items correctly

This commit is contained in:
Sollace 2018-06-03 17:26:43 +02:00
parent 2dc2642bc9
commit 32df82ba77
2 changed files with 20 additions and 12 deletions

View file

@ -3,7 +3,6 @@ package com.minelittlepony.model.player;
import com.minelittlepony.model.components.UnicornHorn; import com.minelittlepony.model.components.UnicornHorn;
import com.minelittlepony.render.PonyRenderer; import com.minelittlepony.render.PonyRenderer;
import net.minecraft.client.model.ModelBiped.ArmPose;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.util.EnumHandSide; import net.minecraft.util.EnumHandSide;
import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.MathHelper;

View file

@ -10,26 +10,35 @@ import net.minecraft.util.EnumHand;
import net.minecraft.util.EnumHandSide; import net.minecraft.util.EnumHandSide;
public class ModelSkeletonPony extends ModelMobPony { public class ModelSkeletonPony extends ModelMobPony {
@Override
public boolean isCasting() {
return true;
}
@Override @Override
public void setLivingAnimations(EntityLivingBase entity, float move, float swing, float ticks) { public void setLivingAnimations(EntityLivingBase entity, float move, float swing, float ticks) {
rightArmPose = ArmPose.EMPTY; rightArmPose = ArmPose.EMPTY;
leftArmPose = ArmPose.EMPTY; leftArmPose = ArmPose.EMPTY;
ItemStack itemstack = entity.getHeldItem(EnumHand.MAIN_HAND);
if (itemstack.getItem() == Items.BOW && ((AbstractSkeleton)entity).isSwingingArms()) ItemStack mainHand = entity.getHeldItem(EnumHand.MAIN_HAND);
{ ItemStack offHand = entity.getHeldItem(EnumHand.OFF_HAND);
if (entity.getPrimaryHand() == EnumHandSide.RIGHT) {
rightArmPose = ArmPose.BOW_AND_ARROW; boolean right = entity.getPrimaryHand() == EnumHandSide.RIGHT;
if (!offHand.isEmpty()) {
if (right) {
leftArmPose = ArmPose.ITEM;
} else { } else {
leftArmPose = ArmPose.BOW_AND_ARROW; rightArmPose = ArmPose.ITEM;
} }
} }
if (!mainHand.isEmpty()) {
ArmPose pose = mainHand.getItem() == Items.BOW && ((AbstractSkeleton)entity).isSwingingArms() ? ArmPose.BOW_AND_ARROW : ArmPose.ITEM;
if (right) {
rightArmPose = pose;
} else {
leftArmPose = pose;
}
}
super.setLivingAnimations(entity, move, swing, ticks); super.setLivingAnimations(entity, move, swing, ticks);
} }