package net.minecraftforge.common; import net.minecraft.entity.Entity; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; /** * Allows for custom entity data and logic to be hooked to existing entity classes. * * @author cpw, mithion * */ public interface IExtendedEntityProperties { /** * Called when the entity that this class is attached to is saved. * Any custom entity data that needs saving should be saved here. * @param compound The compound to save to. */ public void saveNBTData(NBTTagCompound compound); /** * Called when the entity that this class is attached to is loaded. * In order to hook into this, you will need to subscribe to the EntityConstructing event. * Otherwise, you will need to initialize manually. * @param compound The compound to load from. */ public void loadNBTData(NBTTagCompound compound); /** * Used to initialize the extended properties with the entity that this is attached to, as well * as the world object. * Called automatically if you register with the EntityConstructing event. * May be called multiple times if the extended properties is moved over to a new entity. * Such as when a player switches dimension {Minecraft re-creates the player entity} * @param entity The entity that this extended properties is attached to * @param world The world in which the entity exists */ public void init(Entity entity, World world); }