// Path: src/api/java/appeng/api/movable/IMovableRegistry.java
// public interface IMovableRegistry
// {
// 
// 	/**
// 	 * White list your tile entity with the registry.
// 	 * 
// 	 * You can also use the IMC, FMLInterModComms.sendMessage(
// 	 * "AppliedEnergistics", "movabletile", "appeng.common.AppEngTile" );
// 	 * 
// 	 * If you tile is handled with IMovableHandler or IMovableTile you do not
// 	 * need to white list it.
// 	 */
// 	void whiteListTileEntity(Class<? extends TileEntity> c);
// 
// 	/**
// 	 * @param te
// 	 * @return true if the tile has accepted your request to move it
// 	 */
// 	boolean askToMove(TileEntity te);
// 
// 	/**
// 	 * tells the tile you are done moving it.
// 	 * 
// 	 * @param te
// 	 */
// 	void doneMoving(TileEntity te);
// 
// 	/**
// 	 * add a new handler movable handler.
// 	 * 
// 	 * @param handler
// 	 */
// 	void addHandler(IMovableHandler handler);
// 
// 	/**
// 	 * handlers are used to perform movement, this allows you to override AE's
// 	 * internal version.
// 	 * 
// 	 * only valid after askToMove(...) = true
// 	 * 
// 	 * @param te
// 	 * @return
// 	 */
// 	IMovableHandler getHandler(TileEntity te);
// 
// 	/**
// 	 * @return a copy of the default handler
// 	 */
// 	IMovableHandler getDefaultHandler();
// 
// }
// 
// Path: src/api/java/appeng/api/storage/ICellRegistry.java
// public interface ICellRegistry
// {
// 
// 	/**
// 	 * Register a new handler.
// 	 * 
// 	 * @param handler
// 	 */
// 	void addCellHandler(ICellHandler handler);
// 
// 	/**
// 	 * return true, if you can get a InventoryHandler for the item passed.
// 	 * 
// 	 * @param is
// 	 * @return true if the provided item, can be handled by a handler in AE, ( AE May choose to skip this and just get
// 	 *         the handler instead. )
// 	 */
// 	boolean isCellHandled(ItemStack is);
// 
// 	/**
// 	 * get the handler, for the requested type.
// 	 * 
// 	 * @param is
// 	 * @return the handler registered for this item type.
// 	 */
// 	ICellHandler getHandler(ItemStack is);
// 
// 	/**
// 	 * returns an IMEInventoryHandler for the provided item.
// 	 * 
// 	 * @param is
// 	 * @return new IMEInventoryHandler, or null if there isn't one.
// 	 */
// 	IMEInventoryHandler getCellInventory(ItemStack is, StorageChannel chan);
// 
// }


import appeng.api.movable.IMovableRegistry;
import appeng.api.networking.IGridCacheRegistry;
import appeng.api.storage.ICellRegistry;
import appeng.api.storage.IExternalStorageRegistry;
package appeng.api.features;


public interface IRegistryContainer
{

	/**
	 * Use the movable registry to white list your tiles.
	 */
	IMovableRegistry moveable();

	/**
	 * Add new Grid Caches for use during run time, only use during loading phase.
	 */
	IGridCacheRegistry gridCache();

	/**
	 * Add additional storage bus handlers to improve interplay with mod blocks that contains special inventories that
	 * function unlike vanilla chests. AE uses this internally for barrels, dsu's, quantum chests, AE Networks and more.
	 */
	IExternalStorageRegistry externalStorage();

	/**
	 * Add additional special comparison functionality, AE Uses this internally for Bees.
	 */
	ISpecialComparisonRegistry specialComparson();

	/**
	 * Lets you register your items as wireless terminals
	 */
	IWirelessTermRegistery wireless();

	/**
	 * Allows you to register new cell types, these will function in drives
	 */
// Path: src/api/java/appeng/api/movable/IMovableRegistry.java
// public interface IMovableRegistry
// {
// 
// 	/**
// 	 * White list your tile entity with the registry.
// 	 * 
// 	 * You can also use the IMC, FMLInterModComms.sendMessage(
// 	 * "AppliedEnergistics", "movabletile", "appeng.common.AppEngTile" );
// 	 * 
// 	 * If you tile is handled with IMovableHandler or IMovableTile you do not
// 	 * need to white list it.
// 	 */
// 	void whiteListTileEntity(Class<? extends TileEntity> c);
// 
// 	/**
// 	 * @param te
// 	 * @return true if the tile has accepted your request to move it
// 	 */
// 	boolean askToMove(TileEntity te);
// 
// 	/**
// 	 * tells the tile you are done moving it.
// 	 * 
// 	 * @param te
// 	 */
// 	void doneMoving(TileEntity te);
// 
// 	/**
// 	 * add a new handler movable handler.
// 	 * 
// 	 * @param handler
// 	 */
// 	void addHandler(IMovableHandler handler);
// 
// 	/**
// 	 * handlers are used to perform movement, this allows you to override AE's
// 	 * internal version.
// 	 * 
// 	 * only valid after askToMove(...) = true
// 	 * 
// 	 * @param te
// 	 * @return
// 	 */
// 	IMovableHandler getHandler(TileEntity te);
// 
// 	/**
// 	 * @return a copy of the default handler
// 	 */
// 	IMovableHandler getDefaultHandler();
// 
// }
// 
// Path: src/api/java/appeng/api/storage/ICellRegistry.java
// public interface ICellRegistry
// {
// 
// 	/**
// 	 * Register a new handler.
// 	 * 
// 	 * @param handler
// 	 */
// 	void addCellHandler(ICellHandler handler);
// 
// 	/**
// 	 * return true, if you can get a InventoryHandler for the item passed.
// 	 * 
// 	 * @param is
// 	 * @return true if the provided item, can be handled by a handler in AE, ( AE May choose to skip this and just get
// 	 *         the handler instead. )
// 	 */
// 	boolean isCellHandled(ItemStack is);
// 
// 	/**
// 	 * get the handler, for the requested type.
// 	 * 
// 	 * @param is
// 	 * @return the handler registered for this item type.
// 	 */
// 	ICellHandler getHandler(ItemStack is);
// 
// 	/**
// 	 * returns an IMEInventoryHandler for the provided item.
// 	 * 
// 	 * @param is
// 	 * @return new IMEInventoryHandler, or null if there isn't one.
// 	 */
// 	IMEInventoryHandler getCellInventory(ItemStack is, StorageChannel chan);
// 
// }


// Path: src/api/java/appeng/api/features/IRegistryContainer.java
import appeng.api.movable.IMovableRegistry;
import appeng.api.networking.IGridCacheRegistry;
import appeng.api.storage.ICellRegistry;
import appeng.api.storage.IExternalStorageRegistry;

package appeng.api.features;


public interface IRegistryContainer
{

	/**
	 * Use the movable registry to white list your tiles.
	 */
	IMovableRegistry moveable();

	/**
	 * Add new Grid Caches for use during run time, only use during loading phase.
	 */
	IGridCacheRegistry gridCache();

	/**
	 * Add additional storage bus handlers to improve interplay with mod blocks that contains special inventories that
	 * function unlike vanilla chests. AE uses this internally for barrels, dsu's, quantum chests, AE Networks and more.
	 */
	IExternalStorageRegistry externalStorage();

	/**
	 * Add additional special comparison functionality, AE Uses this internally for Bees.
	 */
	ISpecialComparisonRegistry specialComparson();

	/**
	 * Lets you register your items as wireless terminals
	 */
	IWirelessTermRegistery wireless();

	/**
	 * Allows you to register new cell types, these will function in drives
	 */
	ICellRegistry cell();