Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / craftbukkit / entity / CraftCreature.java
@vlad20012 vlad20012 on 24 Feb 2017 1 KB initial
package org.bukkit.craftbukkit.entity;

import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.EntityLivingBase;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Creature;
import org.bukkit.entity.LivingEntity;
import org.ultramine.mods.bukkit.interfaces.entity.IMixinEntity;
import org.ultramine.mods.bukkit.interfaces.entity.IMixinEntityCreature;

public class CraftCreature extends CraftLivingEntity implements Creature
{
	public CraftCreature(CraftServer server, EntityCreature entity)
	{
		super(server, entity);
	}

	public void setTarget(LivingEntity target)
	{
		EntityCreature entity = getHandle();
		IMixinEntityCreature entityMix = (IMixinEntityCreature) getHandle();
		if(target == null)
		{
			entityMix.setEntityToAttack(null);
		}
		else if(target instanceof CraftLivingEntity)
		{
			entityMix.setEntityToAttack(((CraftLivingEntity) target).getHandle());
			entityMix.setPathToEntity(entity.worldObj.getPathEntityToEntity(entity, entityMix.getEntityToAttack(), 16.0F, true, false, false, true));
		}
	}

	public CraftLivingEntity getTarget()
	{
		IMixinEntityCreature entity = (IMixinEntityCreature) getHandle();
		if(entity.getEntityToAttack() == null) return null;
		if(!(entity.getEntityToAttack() instanceof EntityLivingBase)) return null;

		return (CraftLivingEntity) ((IMixinEntity) entity.getEntityToAttack()).getBukkitEntity();
	}

	@Override
	public EntityCreature getHandle()
	{
		return (EntityCreature) entity;
	}

	@Override
	public String toString()
	{
		return this.entityName; // Cauldron
	}
}