/**
* 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 @ [Aug 21, 2014, 5:44:07 PM (GMT)]
*/
package vazkii.botania.api.mana.spark;
import java.util.Collection;
/**
* An Entity that implements this is considered a Spark.
*/
public interface ISparkEntity {
/**
* Which TileEntity is this Spark attached to? A common implementation is checking the block below.
*
int x = MathHelper.floor_double(posX);
int y = MathHelper.floor_double(posY) - 1;
int z = MathHelper.floor_double(posZ);
TileEntity tile = worldObj.getTileEntity(x, y, z);
if(tile != null && tile instanceof ISparkAttachable)
return (ISparkAttachable) tile;
return null;
*/
public ISparkAttachable getAttachedTile();
/**
* Gets a collection of all Sparks this is tranfering to.
*/
public Collection<ISparkEntity> getTransfers();
/**
* Registers the Spark passed in as a Spark meant for mana to be transfered towards.
*/
public void registerTransfer(ISparkEntity entity);
/**
* Gets which upgrade is in this Spark.<br>
* 0: None<br>
* 1: Dispersive<br>
* 2: Dominant<br>
* 3: Recessive<br>
* 4: Isolated
*/
public int getUpgrade();
/**
* Sets the upgrade on this Spark. See {@link ISparkEntity#getUpgrade}
*/
public void setUpgrade(int upgrade);
/**
* See {@link ISparkAttachable#areIncomingTranfersDone()}
*/
public boolean areIncomingTransfersDone();
}