001package net.minecraftforge.common; 002 003import net.minecraft.entity.Entity; 004import net.minecraft.nbt.NBTTagCompound; 005import net.minecraft.world.World; 006 007/** 008 * Allows for custom entity data and logic to be hooked to existing entity classes. 009 * 010 * @author cpw, mithion 011 * 012 */ 013public interface IExtendedEntityProperties { 014 /** 015 * Called when the entity that this class is attached to is saved. 016 * Any custom entity data that needs saving should be saved here. 017 * @param compound The compound to save to. 018 */ 019 public void saveNBTData(NBTTagCompound compound); 020 021 /** 022 * Called when the entity that this class is attached to is loaded. 023 * In order to hook into this, you will need to subscribe to the EntityConstructing event. 024 * Otherwise, you will need to initialize manually. 025 * @param compound The compound to load from. 026 */ 027 public void loadNBTData(NBTTagCompound compound); 028 029 /** 030 * Used to initialize the extended properties with the entity that this is attached to, as well 031 * as the world object. 032 * Called automatically if you register with the EntityConstructing event. 033 * @param entity The entity that this extended properties is attached to 034 * @param world The world in which the entity exists 035 */ 036 public void init(Entity entity, World world); 037}