2012-09-12 00:35:53 +00:00
|
|
|
package net.minecraftforge.common;
|
|
|
|
|
2012-09-22 16:27:14 +00:00
|
|
|
import java.util.UUID;
|
|
|
|
|
2012-09-12 00:35:53 +00:00
|
|
|
import net.minecraft.src.*;
|
|
|
|
import net.minecraftforge.event.*;
|
|
|
|
import net.minecraftforge.event.entity.*;
|
2012-09-22 05:43:54 +00:00
|
|
|
import net.minecraftforge.event.world.WorldEvent;
|
2012-09-12 00:35:53 +00:00
|
|
|
|
|
|
|
public class ForgeInternalHandler
|
|
|
|
{
|
|
|
|
@ForgeSubscribe(priority = EventPriority.HIGHEST)
|
|
|
|
public void onEntityJoinWorld(EntityJoinWorldEvent event)
|
|
|
|
{
|
2012-09-22 16:27:14 +00:00
|
|
|
if (!event.world.isRemote)
|
|
|
|
{
|
|
|
|
if (event.entity.getPersistentID() == null)
|
|
|
|
{
|
|
|
|
event.entity.generatePersistentID();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
ForgeChunkManager.loadEntity(event.entity);
|
|
|
|
}
|
|
|
|
}
|
2012-09-12 00:35:53 +00:00
|
|
|
Entity entity = event.entity;
|
|
|
|
if (entity instanceof EntityItem)
|
|
|
|
{
|
|
|
|
ItemStack item = ((EntityItem)entity).item;
|
2012-09-17 11:56:26 +00:00
|
|
|
if (item != null && item.getItem().hasCustomEntity(item))
|
2012-09-12 00:35:53 +00:00
|
|
|
{
|
|
|
|
Entity newEntity = item.getItem().createEntity(event.world, entity, item);
|
|
|
|
if (newEntity != null)
|
|
|
|
{
|
|
|
|
entity.setDead();
|
|
|
|
event.setCanceled(true);
|
2012-09-17 11:40:46 +00:00
|
|
|
event.world.spawnEntityInWorld(newEntity);
|
2012-09-12 00:35:53 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2012-09-22 05:43:54 +00:00
|
|
|
|
|
|
|
@ForgeSubscribe(priority = EventPriority.HIGHEST)
|
|
|
|
public void onDimensionLoad(WorldEvent.Load event)
|
|
|
|
{
|
|
|
|
ForgeChunkManager.loadWorld(event.world);
|
|
|
|
}
|
|
|
|
|
|
|
|
@ForgeSubscribe(priority = EventPriority.HIGHEST)
|
|
|
|
public void onDimensionSave(WorldEvent.Save event)
|
|
|
|
{
|
|
|
|
ForgeChunkManager.saveWorld(event.world);
|
|
|
|
}
|
2012-09-12 00:35:53 +00:00
|
|
|
}
|