package crazypants.enderio.entity;
import net.minecraft.entity.Entity;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.living.LivingSpawnEvent;
import cpw.mods.fml.common.eventhandler.EventPriority;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.registry.EntityRegistry;
import crazypants.enderio.EnderIO;
public class SkeletonHandler {
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void skeletonJoinWorld(LivingSpawnEvent event) {
if(!event.world.isRemote && isWitherSkele(event.entity)) {
event.entity.setDead();
event.world.spawnEntityInWorld(new EntityWitherSkeleton((EntitySkeleton) event.entity));
}
}
@SubscribeEvent(priority = EventPriority.HIGHEST)
public void skeletonJoinWorld(EntityJoinWorldEvent event) {
if(!event.world.isRemote && isWitherSkele(event.entity) && !event.entity.isDead) {
event.setCanceled(true);
event.world.spawnEntityInWorld(new EntityWitherSkeleton((EntitySkeleton) event.entity));
}
}
private boolean isWitherSkele(Entity entity) {
return entity.getClass() == EntitySkeleton.class && ((EntitySkeleton) entity).getSkeletonType() == 1;
}
public static void registerSkeleton(EnderIO mod) {
int entityID = EntityRegistry.findGlobalUniqueEntityId();
EntityRegistry.registerGlobalEntityID(EntityWitherSkeleton.class, "witherSkeleton", entityID, 0x00003D, 0x751947);
EntityRegistry.registerModEntity(EntityWitherSkeleton.class, "witherSkeleton", entityID, mod, 64, 3, true);
MinecraftForge.EVENT_BUS.register(new SkeletonHandler());
}
}