/**
* This class was created by <Vazkii>. It's distributed as
* part of the Botania Mod. Get the Source Code in github:
* https://github.com/Vazkii/Botania
*
* Botania is Open Source and distributed under the
* Botania License: http://botaniamod.net/license.php
*
* File Created @ [Mar 7, 2014, 3:39:48 PM (GMT)]
*/
package vazkii.botania.api.internal;
import java.util.List;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import vazkii.botania.api.mana.TileSignature;
/**
* A basic interface for a world's Mana Network.
* @see IInternalMethodHandler#getManaNetworkInstance()
*/
public interface IManaNetwork {
/**
* Clears the entire Mana Network of all it's contents, you probably
* don't want to call this unless you have a very good reason.
*/
public void clear();
/**
* Gets the closest Mana Collector (eg. Mana Spreader) in the network to the Chunk
* Coordinates passed in, in the given dimension.<br>
* A way of getting the dimension is via worldObj.provider.dimensionId<br>
* Note that this function *can* get performance intensive, it's reccomended you
* call it sparingly and take cache of the value returned.
* @param limit The maximum distance the closest block can be, if the closest block
* is farther away than that, null will be returned instead.
*/
public TileEntity getClosestCollector(ChunkCoordinates pos, World world, int limit);
/**
* Gets the closest Mana Pool in the network to the Chunk Coordinates passed in,
* in the given dimension.<br>
* A way of getting the dimension is via worldObj.provider.dimensionId<br>
* Note that this function *can* get performance intensive, it's reccomended you
* call it sparingly and take cache of the value returned.
* @param limit The maximum distance the closest block can be, if the closest block
* is farther away than that, null will be returned instead.
*/
public TileEntity getClosestPool(ChunkCoordinates pos, World world, int limit);
/**
* Gets the list of all Mana Collectors (eg. Mana Spreader) in the dimension
* passed in. Note that this is the actual list and not a copy, make sure to
* clone the list if you intend to change it in any way.
*/
public List<TileSignature> getAllCollectorsInWorld(World world);
/**
* Gets the list of all Mana Pools in the dimension passed in. Note that this
* is the actual list and not a copy, make sure to clone the list if you intend
* to change it in any way.
*/
public List<TileSignature> getAllPoolsInWorld(World world);
}