Spackenmobs/src/main/java/mod/acgaming/spackenmobs/entities/EntityWolfMZTE.java
2020-08-29 20:42:50 +02:00

96 lines
2.1 KiB
Java

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;
}
}
}