| package appeng.api.me.util; |
| |
| import net.minecraft.nbt.NBTTagCompound; |
| |
| /** |
| * |
| * Allows you to cache information on the grid, for usage later, its up to you how you want to deal with saving/loading/resetting. |
| * |
| * Any Class that implements this, should have a default constructor that takes no arguments. |
| * |
| * Register this with Util.getAppEngApi().registerGridCache( MyGridCache.class ); |
| * |
| */ |
| public interface IGridCache { |
| |
| /** |
| * Called each time a network is reset ( changed ), the grid will persist your classes instance, but call this method. |
| * @param grid |
| */ |
| void reset( IGridInterface grid ); |
| |
| /** |
| * Called each tick for the controller, allows you to have active network wide behaviors. |
| * @param grid |
| */ |
| void onUpdateTick( IGridInterface grid ); |
| |
| /** |
| * used to uniquely identify your cache when saving/loading |
| * @return |
| */ |
| String getCacheName(); |
| |
| /** |
| * Save your caches state if necessary, if no saving is required, return null. |
| * @return |
| */ |
| NBTTagCompound savetoNBTData(); |
| |
| /** |
| * Load save cache data, this is called when a controller is loaded with previously saved data if there was no data, data will be an empty tag. |
| * @param data |
| */ |
| void loadfromNBTData( NBTTagCompound data ); |
| |
| } |