package micdoodle8.mods.galacticraft.api.transmission.grid;
import java.util.Set;
/**
* Implement this in your network class/interface if you plan to have your own
* network defined by specific conductors and acceptors.
*
* @param <N> - the class/interface Type value in which you implement this
* @param <C> - the class/interface Type which makes up the network's conductor
* Set
* @param <A> - the class/interface Type which makes up the network's acceptor
* Set
* @author aidancbrady
*/
public interface IGridNetwork<N, C, A>
{
/**
* Refreshes and cleans up conductor references of this network, as well as
* updating the acceptor set.
*/
public void refresh();
/**
* Gets the Set of conductors that make up this network.
*
* @return conductor set
*/
public Set<C> getTransmitters();
/**
* Creates a new network that makes up the current network and the network
* defined in the parameters. Be sure to refresh the new network inside this
* method.
*
* @param network - network to merge
*/
public N merge(N network);
/**
* Splits a network by the conductor referenced in the parameters. It will
* then create and refresh the new independent networks possibly created by
* this operation.
*
* @param connection
*/
public void split(C connection);
}