package mod.acgaming.spackenmobs.entities; import net.minecraft.entity.EntityAgeable; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntityGhast; import net.minecraft.entity.passive.AbstractHorse; import net.minecraft.entity.passive.EntityAnimal; import net.minecraft.entity.passive.EntityWolf; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import java.util.UUID; public class EntityWolfMZTE extends EntityWolf { public EntityWolfMZTE(World worldIn) { super(worldIn); this.setSize(0.6F, 0.85F); this.setTamed(false); } @Override public EntityWolfMZTE createChild(EntityAgeable ageable) { EntityWolfMZTE entitywolfmzte = new EntityWolfMZTE(this.world); UUID uuid = this.getOwnerId(); if (uuid != null) { entitywolfmzte.setOwnerId(uuid); entitywolfmzte.setTamed(true); } return entitywolfmzte; } @Override public boolean canMateWith(EntityAnimal otherAnimal) { if (otherAnimal == this) { return false; } else if (!this.isTamed()) { return false; } else if (!(otherAnimal instanceof EntityWolfMZTE)) { return false; } else { EntityWolfMZTE entitywolfmzte = (EntityWolfMZTE) otherAnimal; if (!entitywolfmzte.isTamed()) { return false; } else if (entitywolfmzte.isSitting()) { return false; } else { return this.isInLove() && entitywolfmzte.isInLove(); } } } @Override public boolean shouldAttackEntity(EntityLivingBase target, EntityLivingBase owner) { if (!(target instanceof EntityCreeper) && !(target instanceof EntityGhast)) { if (target instanceof EntityWolfMZTE) { EntityWolfMZTE entitywolfmzte = (EntityWolfMZTE) target; if (entitywolfmzte.isTamed() && entitywolfmzte.getOwner() == owner) { return false; } } if (target instanceof EntityPlayer && owner instanceof EntityPlayer && !((EntityPlayer) owner).canAttackPlayer((EntityPlayer) target)) { return false; } else { return !(target instanceof AbstractHorse) || !((AbstractHorse) target).isTame(); } } else { return false; } } }