diff options
| author | Kyle Gunger <kgunger12@gmail.com> | 2023-11-14 17:09:23 -0500 | 
|---|---|---|
| committer | Kyle Gunger <kgunger12@gmail.com> | 2023-11-14 17:09:23 -0500 | 
| commit | d1680864edfbc7cec0e6decf1e3a2b30f120aa0e (patch) | |
| tree | b47154132e9f3212cc8ed4457e5d4dafee6f1124 /src/main/java/net/cshift/transit | |
| parent | 80fe25bcb811508a5fe826c37513a8a63239cb55 (diff) | |
Update to 1.20.2
Diffstat (limited to 'src/main/java/net/cshift/transit')
19 files changed, 0 insertions, 1105 deletions
diff --git a/src/main/java/net/cshift/transit/Transit.java b/src/main/java/net/cshift/transit/Transit.java deleted file mode 100644 index 71d3fea..0000000 --- a/src/main/java/net/cshift/transit/Transit.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.cshift.transit; - -import net.fabricmc.api.ModInitializer; -import net.cshift.transit.type.group.SimpleGroups; - -/** - * @author Kyle Gunger - * @apiNote This is the main entry point for Transit.  The api is mostly intended for use on server-side connections. - */ -public class Transit implements ModInitializer { - -	@Override -	public void onInitialize() { -		SimpleGroups.init(); -	} - -} diff --git a/src/main/java/net/cshift/transit/network/Channel.java b/src/main/java/net/cshift/transit/network/Channel.java deleted file mode 100644 index e5c64da..0000000 --- a/src/main/java/net/cshift/transit/network/Channel.java +++ /dev/null @@ -1,118 +0,0 @@ -package net.cshift.transit.network; - -import net.cshift.transit.network.packet.IStaticPacket; - -/** - * @author Kyle Gunger - * @apiNote A channel represents a connection between two nodes.  It is able to send data in packets, and serves as a way to organize incoming traffic. - * @param <D> The type of data the packets will be transfering - */ -public final class Channel<D> { -    private INode to; -    private int id; -    private String group; - -    /** This constructor should be called by a node approving a connection.  The approving node can give the connection an ID and group. -     * Negative IDs indicate a terminated connection, so do not initialize the class with a negative ID. -     *  -     * @param node The recieving node -     * @param id The channel's id, as assigned by the recieving node.  In most cases, this will match the pool ID as a way to match channels to pools. -     * @param group  -     */ -	public Channel(INode node, int id, String group) -	{ -        to = node; -        this.id = id; -        this.group = group; -	} - - - -    // #################### -    // # Channel specific # -    // #################### - -    /** The recieving INode -     *  -     * @return -     */ -    public INode getReciever() -    { -        return to; -    } - -    /** The ID of the connection, assigned by the recieving INode -     *  -     * @return -     */ -    public int getID() -    { -        return id; -    } - -    /** The group that the channel operates on -     *  -     * @return -     */ -    public String getGroup() { -        return group; -    } - -    /** Returns true if the connection has been terminated -     *  -     * @return -     */ -    public boolean isTerminated() -    { -        return id < 0; -    } - - - -    // ################################ -    // # Info from the recieving node # -    // ################################ - -    /** Pressure -	 * -     * @apiNote This part of the api is not properly documented yet, and it's use is not reccommended for cross-mod communications. -	 * @return A Number representing the pressure from the channel (in base group units). -	 */ -	public Number pressure() -    { -        return to.getPressure(this); -    } - -	/** Max transfer rate -	 *  -	 * @return A Number representing the max transfer rate from the channel (in base group units per tick). -	 */ -	public Number rate() -    { -        return to.getRate(this); -    } - - - -    // ################################ -    // # Interact with the other node # -    // ################################ - -    /** Terminates the connection and relays the termination to the recieving node -     */ -    public void terminate() -    { -        id = -1; -        to.onTerminate(this); -    } - -    /** Send a packet to the recieving node -     *  -     * @param packet the packet to send -     * @return The overflow data if the packet is only partially accepted. {@code null} otherwise. -     */ -    public IStaticPacket<D> send(IStaticPacket<D> packet) -    { -        return to.accept(packet, this); -    } -} diff --git a/src/main/java/net/cshift/transit/network/INode.java b/src/main/java/net/cshift/transit/network/INode.java deleted file mode 100644 index 7cbb1cc..0000000 --- a/src/main/java/net/cshift/transit/network/INode.java +++ /dev/null @@ -1,70 +0,0 @@ -package net.cshift.transit.network; - -import net.cshift.transit.network.packet.*; - -/** - * @author Kyle Gunger - * @apiNote A node inside or outside a system. - */ -public interface INode -{ -	/** Returns a pool manifest for the INode -	 * -	 */ -	public PoolManifest getManifest(); - -	/** Get the system managing the node or {@code null} if there isn't one -	 * -	 */ -	public ISystem getSystem(); - - - -	// ############### -	// # Connections # -	// ############### - -	/** Call this function to establish a connection with a node. -	 *  -	 * @param <T> The type of connection being asked for -	 * @param poolID The ID of the pool the channel will interface with (see PoolManifest) -	 * @param asker The asking node -	 * @return A channel if the node accepts the request, {@code null} otherwise -	 */ -	public <T> Channel<T> connect(int poolID, INode asker); - -	/** Accept a packet from a channel (or not). -	 *  -	 * @apiNote Do not call this function, use Channel.send(packet) instead. -	 * @param <T> The type of the packet and channel -	 * @param packet The packet to be vetted -	 * @param channel The channel which the packet is coming through -	 * @return The overflow data if the packet is only partially accepted. {@code null} otherwise. -	 */ -	public <T> IStaticPacket<T> accept(IStaticPacket<T> packet, Channel<T> channel); - -	/** Pressure -	 * -	 * @apiNote Do not call this function, use Channel.pressure() instead. -	 * @param channel The channel asking for the pressure -	 * @return A Number representing the pressure from the channel (in base group units). -	 */ -	public <T> Number getPressure(Channel<T> channel); - -	/** Transfer rate -	 *  -	 * @apiNote Do not call this function, use Channel.rate() instead. -	 * @param channel The channel asking for the transfer rate -	 * @return A Number representing the transfer rate from the channel (in base group units per tick). -	 */ -	public <T> Number getRate(Channel<T> channel); - -	/** Called when a channel is terminated -	 *  -	 * @apiNote Do not call this function, use Channel.terminate() instead. -	 * @param <T> The type of the channel -	 * @param channel The channel being terminated -	 */ -	public <T> void onTerminate(Channel<T> channel); - -} diff --git a/src/main/java/net/cshift/transit/network/ISystem.java b/src/main/java/net/cshift/transit/network/ISystem.java deleted file mode 100644 index 8d41c1d..0000000 --- a/src/main/java/net/cshift/transit/network/ISystem.java +++ /dev/null @@ -1,15 +0,0 @@ -package net.cshift.transit.network; - - -/** - * @author Kyle Gunger - * @apiNote An ISystem represents a system of nodes which has been optimized for performance.  A node can exist on its own, but an ISystem can't exist without a node. - */ -public interface ISystem -{ -	/**The nodes stored by the system -	 * -	 * @return INode[] -	 */ -	public INode[] getNodes(); -} diff --git a/src/main/java/net/cshift/transit/network/PoolManifest.java b/src/main/java/net/cshift/transit/network/PoolManifest.java deleted file mode 100644 index e23d47f..0000000 --- a/src/main/java/net/cshift/transit/network/PoolManifest.java +++ /dev/null @@ -1,40 +0,0 @@ -package net.cshift.transit.network; - -/** - * @author Kyle Gunger - * @apiNote A pool manifest represents a set of possible data/resource pools that another node can request a channel to. - */ -public abstract class PoolManifest { -     -    /** Represents the number of pools that the node has access to for the specified resource. -     * @apiNote A "pool" in this context represents an independant network of resources. -     * Pool zero should be the default group that simple nodes will attempt to connect to. -     * @param group The TypeGroup that the pool belongs to -     */ -    public abstract int poolCount(String group); - -    /** The ID of the pool.  The INode will use this in a connection attempt with the other INode. -     *  -     * @param group The TypeGroup the pool belongs to -     * @param pool Array-like index for pool (gotten from poolCount) -     */ -    public abstract int poolID(String group, int pool); - -    /** If the mod supports named pools, the names can be querried through this function. -     * -     * @param group The TypeGroup the pool belongs to -     * @param pool Array-like index for pool (gotten from poolCount) -     */ -    public String poolName(String group, int pool) { -        return ""; -    } - -    /** If the mod supports pool descriptions, they can be accessed by this method. -     *  -     * @param group The TypeGroup the pool belongs to -     * @param pool Array-like index for pool (gotten from poolCount) -    */ -    public String poolDescription(String group, int pool) { -        return ""; -    } -} diff --git a/src/main/java/net/cshift/transit/network/packet/DynamicPacket.java b/src/main/java/net/cshift/transit/network/packet/DynamicPacket.java deleted file mode 100644 index 60ad177..0000000 --- a/src/main/java/net/cshift/transit/network/packet/DynamicPacket.java +++ /dev/null @@ -1,43 +0,0 @@ -package net.cshift.transit.network.packet; - -import net.cshift.transit.type.Type; - -/** - * Simple packet which stores a fluid value. - * - * @author Kyle Gunger - * - * @param <D> The data type (Object) that the packet transfers - */ -public class DynamicPacket<D> implements IDynamicPacket<D> { -    private D data; -    private Type<D> type; - -    /** Constructor. Stores the given data and uses the given type. -     * -     * @param dat The packet's data -     * @param t The packet's type -     */ -    public DynamicPacket(D dat, Type<D> t) -    { -        data = dat; -        type = t; -    } - -    @Override -    public D getData() -    { -        return data; -    } - -    @Override -    public void setData(D dat) -    { -        data = dat; -    } - -	@Override -	public Type<D> getType() { -		return type; -	} -} diff --git a/src/main/java/net/cshift/transit/network/packet/IDynamicPacket.java b/src/main/java/net/cshift/transit/network/packet/IDynamicPacket.java deleted file mode 100644 index 8b7c330..0000000 --- a/src/main/java/net/cshift/transit/network/packet/IDynamicPacket.java +++ /dev/null @@ -1,14 +0,0 @@ -package net.cshift.transit.network.packet; - -/** Interface describing a fluid packet. - * @author Kyle Gunger - * - * @param <D> The data type (Object) that the packet transfers - */ -public interface IDynamicPacket<D> extends IStaticPacket<D>{ -    /**Set the packet's data. -	 * -	 * @return <D> The packet's data -	 */ -    public void setData(D dat); -} diff --git a/src/main/java/net/cshift/transit/network/packet/IStaticPacket.java b/src/main/java/net/cshift/transit/network/packet/IStaticPacket.java deleted file mode 100644 index bac8745..0000000 --- a/src/main/java/net/cshift/transit/network/packet/IStaticPacket.java +++ /dev/null @@ -1,23 +0,0 @@ -package net.cshift.transit.network.packet; - -import net.cshift.transit.type.*; - -/** Interface describing an unchanging packet. - * @author Kyle Gunger - * - * @param <D> The data type (Object) that the packet transfers. - */ -public interface IStaticPacket<D> -{ -	/**Get the packet's data. -	 *  -	 * @return <D> The packet's data -	 */ -    public D getData(); -     -    /**Get the packet's type. -     *  -     * @return IType<<D>> The type of the packet -     */ -    public Type<D> getType(); -} diff --git a/src/main/java/net/cshift/transit/network/packet/MetaDynamicPacket.java b/src/main/java/net/cshift/transit/network/packet/MetaDynamicPacket.java deleted file mode 100644 index b87c2ed..0000000 --- a/src/main/java/net/cshift/transit/network/packet/MetaDynamicPacket.java +++ /dev/null @@ -1,44 +0,0 @@ -package net.cshift.transit.network.packet; - -import net.cshift.transit.type.Type; - -/** Static packet with extra data attached. - * @author Kyle Gunger - * - * @param <D> The data type (Object) that the packet transfers - * @param <M> The type of metadata -*/ -public class MetaDynamicPacket<D, M> extends DynamicPacket<D> -{ -	private M metaData; - -    /** Constructor -     * -     * @param dat The data to store -     * @param t The Type of the data -     * @param meta The metadata to store -     */ -    public MetaDynamicPacket(D dat, Type<D> t, M meta) -    { -        super(dat, t); -        metaData = meta; -    } - -    /** Get the metadata of the packet. -     * -     * @return The packet's metadata -     */ -    public M getMetaData() -    { -    	return metaData; -    } - -    /** Set the metadata of the packet. -     * -     * @param meta The packet's new metadata -     */ -    public void setMetaData(M meta) -    { -        metaData = meta; -    } -} diff --git a/src/main/java/net/cshift/transit/network/packet/MetaPacket.java b/src/main/java/net/cshift/transit/network/packet/MetaPacket.java deleted file mode 100644 index 99be83c..0000000 --- a/src/main/java/net/cshift/transit/network/packet/MetaPacket.java +++ /dev/null @@ -1,35 +0,0 @@ -package net.cshift.transit.network.packet; - -import net.cshift.transit.type.*; - -/** Static packet with extra data attached. - * @author Kyle Gunger - * - * @param <D> The data type (Object) that the packet transfers - * @param <M> The type of metadata -*/ -public class MetaPacket<D, M> extends StaticPacket<D> -{ -	private M metaData; - -    /** Constructor -     *  -     * @param dat The data to store -     * @param t The Type of the data -     * @param meta The metadata to store -     */ -    public MetaPacket(D dat, Type<D> t, M meta) -    { -        super(dat, t); -        metaData = meta; -    } -     -    /** Get the metadata of the packet. -     *  -     * @return The packet's metadata -     */ -    public M getMetaData() -    { -    	return metaData; -    } -} diff --git a/src/main/java/net/cshift/transit/network/packet/StaticPacket.java b/src/main/java/net/cshift/transit/network/packet/StaticPacket.java deleted file mode 100644 index 7c95108..0000000 --- a/src/main/java/net/cshift/transit/network/packet/StaticPacket.java +++ /dev/null @@ -1,36 +0,0 @@ -package net.cshift.transit.network.packet; - -import net.cshift.transit.type.*; - -/** Simple packet which stores an unchanging value. - * @author Kyle Gunger - * - * @param <D> The data type (Object) that the packet transfers. - */ -public class StaticPacket<D> implements IStaticPacket<D> -{ -    private D data; -    private Type<D> type; - -    /** Constructor. Stores the given data and uses the given type. -     *  -     * @param dat The packet's data -     * @param t The packet's type -     */ -    public StaticPacket(D dat, Type<D> t) -    { -        data = dat; -        type = t; -    } - -    @Override -    public D getData() -    { -        return data; -    } - -	@Override -	public Type<D> getType() { -		return type; -	} -} diff --git a/src/main/java/net/cshift/transit/type/SimpleTypes.java b/src/main/java/net/cshift/transit/type/SimpleTypes.java deleted file mode 100644 index ee8dd01..0000000 --- a/src/main/java/net/cshift/transit/type/SimpleTypes.java +++ /dev/null @@ -1,19 +0,0 @@ -package net.cshift.transit.type; - -public final class SimpleTypes { -	/** Transfers energy.  Energy is stored as a numeric. -	 */ -	public static final Type<Number> TransitJoule = new Type<Number>("TJoule", "ENERGY"); -	 -	/** Transfers mana.  TMana stores mana count and type. -	 */ -	public static final Type<TMana> TransitMana = new Type<TMana>("TMana", "MANA"); - -	/** Transfers items. TItem stores an item and an item count. -	 */ -	public static final Type<TItem> TransitItem = new Type<TItem>("TItem", "ITEM"); - -	/** Transfers fluid. TFluid stores fluid and mB. -	 */ -	public static final Type<TFluid> TransitFluid = new Type<TFluid>("TFluid", "FLUID"); -} diff --git a/src/main/java/net/cshift/transit/type/TFluid.java b/src/main/java/net/cshift/transit/type/TFluid.java deleted file mode 100644 index 4b980bd..0000000 --- a/src/main/java/net/cshift/transit/type/TFluid.java +++ /dev/null @@ -1,34 +0,0 @@ -package net.cshift.transit.type; - -import net.minecraft.fluid.*; - -/** Units of fluid. - * @author Kyle Gunger - */ -public class TFluid { -    private Fluid fluid; -    private Number mb; - -    /** Constructor. -     *  Since a bucket of fluid is the same as a block of a fluid, mb can be called millibuckets or milliblocks. -     *  -     * @param f Fluid stored (Water/Lava/etc.) -     * @param mB Count of fluid (mB) -     */ -    public TFluid(Fluid f, Number mB) { -        fluid = f; -        mb = mB; -    } - -    /** Get the fluid stored. -     */ -    public Fluid getFluid() { -        return fluid; -    } - -    /** Get the millibuckets stored. -     */ -    public Number getMilliBuckets() { -        return mb; -    } -} diff --git a/src/main/java/net/cshift/transit/type/TItem.java b/src/main/java/net/cshift/transit/type/TItem.java deleted file mode 100644 index b3cc160..0000000 --- a/src/main/java/net/cshift/transit/type/TItem.java +++ /dev/null @@ -1,33 +0,0 @@ -package net.cshift.transit.type; - -import net.minecraft.item.*; - -/** Item storage - * @author Kyle Gunger - */ -public class TItem { -    private Item item; -    private Number count; - -    /** Constructor. -     *  -     * @param i Item stored -     * @param c Item count -     */ -    public TItem(Item i, Number c) { -        item = i; -        count = c; -    } - -    /** Get the item stored. -     */ -    public Item getItem() { -        return item; -    } - -    /** Get the item count. -     */ -    public Number getCount() { -        return count; -    } -} diff --git a/src/main/java/net/cshift/transit/type/TMana.java b/src/main/java/net/cshift/transit/type/TMana.java deleted file mode 100644 index 468b04f..0000000 --- a/src/main/java/net/cshift/transit/type/TMana.java +++ /dev/null @@ -1,31 +0,0 @@ -package net.cshift.transit.type; - -/** Units of mana. - * @author Kyle Gunger - */ -public class TMana { -    private String type; -    private Number count; - -    /** Constructor -     *  -     * @param t Type of mana (Fire/Water/Dark/Light/etc.) leave empty string for an untyped mana system. -     * @param ct Count of mana -     */ -    public TMana(String t, Number ct) { -        type = t; -        count = ct; -    } - -    /** Get the mana type. -     */ -    public String getType() { -        return type; -    } - -    /** Get the mana stored. -     */ -    public Number getCount() { -        return count; -    } -} diff --git a/src/main/java/net/cshift/transit/type/Type.java b/src/main/java/net/cshift/transit/type/Type.java deleted file mode 100644 index 9049135..0000000 --- a/src/main/java/net/cshift/transit/type/Type.java +++ /dev/null @@ -1,240 +0,0 @@ -package net.cshift.transit.type; - -import net.cshift.transit.network.packet.*; - -/**@author Kyle Gunger - *  - * @param <T> The type of object transfered by packets of this type - */ -public class Type<T> -{ -	protected final String typeID; -	protected final String groupID; -	 -	// Should not override, but you can if you must -	public Type(String tID, String gID) -	{ -		typeID = tID; -		groupID = gID; -	} -	 - - -	// ########################################## -	// # Converting from this type to base type # -	// ########################################## - -	/** Return the data formatted in the given group's base type. -	 *  If creating a new type, override this function if required. -	 *  -	 * @param data The data (of this type) -	 * @param group The group asking for the conversion -	 * @return The data in the group's base type -	 */ -	public T toBase(T data, String group) -	{ -		return data; -	} - -	/** Return the data formatted in the default group's base type. -	 *  -	 * @param data The data (of this type) -	 * @return The data in the group's base type -	 */ -	public final T toBase(T data) -	{ -		return this.toBase(data, this.groupID); -	} - -	/** Return the packet's data formatted in the given group's base type. -	 *  -	 * @param packet The packet (of this type) -	 * @param group The group asking for the conversion -	 * @return The packet's data in the group's base type -	 */ -	public final T toBase(IStaticPacket<T> packet, String group) -	{ -		return this.toBase(packet.getData(), group); -	} - -	/** Return the packet's data formatted in the default group's base type. -	 *  -	 * @param packet The packet (of this type) -	 * @return The packet's data in the group's base type -	 */ -	public final T toBase(IStaticPacket<T> packet) -	{ -		return this.toBase(packet, this.groupID); -	} - - - -	// ########################################## -	// # Converting from base type to this type # -	// ########################################## - -	/** Convert data from the given group's base type to this type. -	 *  If creating a new type, override this function if required. -	 *  -	 * @param data The base data -	 * @param group The group asking for the conversion -	 * @return The packet's data in the group's base type -	 */ -	public T fromBase(T data, String group) -	{ -		return data; -	} - -	/** Convert data from the default group's base type to this type. -	 *  -	 * @param data The base data -	 * @return The packet's data in the group's base type -	 */ -	public final T fromBase(T data) -	{ -		return fromBase(data, this.groupID); -	} - -	/** Create a packet from data formatted in the given group's base type. -	 *  -	 * @param data The base data -	 * @param group The group asking for the conversion -	 * @return The packet's data in the group's base type -	 */ -	public final IStaticPacket<T> packetFromBase(T data, String group) -	{ -		return new StaticPacket<T>(this.fromBase(data, group), this); -	} - -	/** Create a packet from data formatted in the default group's base type. -	 *  -	 * @param data The base data -	 * @return The packet's data in the group's base type -	 */ -	public final IStaticPacket<T> packetFromBase(T data) -	{ -		return packetFromBase(data, this.groupID); -	} - - - -	// ########################################### -	// # Converting from other type to this type # -	// ########################################### - -	/** Convert data from another type to this type in the given group. -	 *  If creating a new type, override this function if required. -	 *  -	 * @param from The type to convert from -	 * @param group The group we are converting within -	 * @param data The data to convert -	 * @return The data formatted in this type -	 */ -	public T convertFrom(Type<T> from, T data, String group) { -		return this.fromBase(from.toBase(data, group), group); -	} - -	/** Convert data from another type to this type in the default group. -	 *  -	 * @param from The type to convert from -	 * @param data The data to convert -	 * @return The data formatted in this type -	 */ -	public final T convertFrom(Type<T> from, T data) { -		return convertFrom(from, data, from.groupID); -	} - -	/** Convert a packet using another type to a packet using this type within the given group. -	 *  -	 * @param packet The packet to convert -	 * @param group The group to convert within -	 * @return The new packet formatted in this type -	 */ -	public final IStaticPacket<T> convertFrom(IStaticPacket<T> packet, String group) { -		return new StaticPacket<T>(convertFrom(packet.getType(), packet.getData(), group), this); -	} - -	/** Convert a packet using another type to a packet using this type within the default group. -	 *  -	 * @param packet The packet to convert -	 * @return The new packet formatted in this type -	 */ -	public final IStaticPacket<T> convertFrom(IStaticPacket<T> packet) { -		return this.convertFrom(packet, packet.getType().groupID); -	} - - - -	// ########################################### -	// # Converting from other type to this type # -	// ########################################### - -	/** Convert data from this type to another type in the given group. -	 *  -	 * @param from The type to convert from -	 * @param group The group we are converting within -	 * @param data The data to convert -	 * @return The data formatted in this type -	 */ -	public final T convertTo(Type<T> to, T data, String group) { -		return to.convertFrom(this, data, group); -	} - -	/** Convert data from this type to another type in the default group. -	 *  -	 * @param from The type to convert from -	 * @param data The data to convert -	 * @return The data formatted in this type -	 */ -	public final T convertTo(Type<T> to, T data) { -		return to.convertFrom(this, data, this.groupID); -	} - -	/** Convert a packet using this type to a packet using another type within the given group. -	 *  -	 * @param packet The packet to convert -	 * @param group The group to convert within -	 * @return The new packet formatted in this type -	 */ -	public final IStaticPacket<T> convertTo(Type<T> to, IStaticPacket<T> packet, String group) { -		return to.convertFrom(packet, group); -	} - -	/** Convert a packet using this type to a packet using another type within the default group. -	 *  -	 * @param packet The packet to convert -	 * @return The new packet formatted in this type -	 */ -	public final IStaticPacket<T> convertTo(Type<T> to, IStaticPacket<T> packet) { -		return to.convertFrom(packet, this.groupID); -	} - - - -	// ############################## -	// # Utility and info functions # -	// ############################## -	 -	/** The type identifier.  Gives the normal type identity of the type. -	 *  -	 * @return String -	 */ -	public final String getType() -	{ -		return typeID; -	} -	 -	/** The group identifier.  Gives the normal group identity of the type. -	 *  -	 * @return String -	 */ -	public final String getGroup() -	{ -		return groupID; -	} - -	@Override -	public final String toString() { -		return groupID + ":" + typeID; -	} -} diff --git a/src/main/java/net/cshift/transit/type/group/GroupRegistry.java b/src/main/java/net/cshift/transit/type/group/GroupRegistry.java deleted file mode 100644 index cfebb03..0000000 --- a/src/main/java/net/cshift/transit/type/group/GroupRegistry.java +++ /dev/null @@ -1,60 +0,0 @@ -package net.cshift.transit.type.group; - -import java.util.ArrayList; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import net.cshift.transit.type.Type; - -public final class GroupRegistry { -	private static final ArrayList<TypeGroup<?>> GROUPS = new ArrayList<TypeGroup<?>>(0); -	 -	private static final Logger LOG = LogManager.getFormatterLogger("Transit|GroupRegistry"); -	 -	private GroupRegistry() {} -	 -	public static final boolean addGroup(TypeGroup<?> group) -	{ -		for(TypeGroup<?> g : GROUPS) -		{ -			if(g.getGroup().equals(group.getGroup())) -			{ -				LOG.warn("Failed to add group " + group + " to the registry. Did another mod add a group with the same name?"); -				return false; -			} -		} -		 -		GROUPS.add(group); -		LOG.info("Successfully added group " + group + " to the registry."); -		return true; -	} -	 -	public static final <T> TypeGroup<T> groupByID(String groupID) -	{ -		for(TypeGroup<?> g : GROUPS) -		{ -			if(g.getGroup().equals(groupID)){ -				try{ -					return (TypeGroup<T>) g; -				}catch(ClassCastException e) { -					return null; -				} -			} -		} -		 -		return null; -		 -	} -	 -	public static final <T> Type<T> typeByIdentity(String groupID, String typeID) -	{ -		TypeGroup<T> group = GroupRegistry.<T>groupByID(groupID); -		 -		if(group != null) -			return group.getType(typeID); - -		return null; -	} -	 -} diff --git a/src/main/java/net/cshift/transit/type/group/SimpleGroups.java b/src/main/java/net/cshift/transit/type/group/SimpleGroups.java deleted file mode 100644 index d68c5a5..0000000 --- a/src/main/java/net/cshift/transit/type/group/SimpleGroups.java +++ /dev/null @@ -1,29 +0,0 @@ -package net.cshift.transit.type.group; - -import net.cshift.transit.type.*; - -public final class SimpleGroups { -	/** Transfers energy.  Basic unit is TJoule (Transit Joule). -	 */ -	public static final TypeGroup<Number> ENERGY = new TypeGroup<Number>(SimpleTypes.TransitJoule); - -	/** Transfers mana.  Basic unit is TMana (Transit Mana). -	 */ -	public static final TypeGroup<TMana> MANA = new TypeGroup<TMana>(SimpleTypes.TransitMana); - -	/** Transfers items. Basic unit is TItem. -	 */ -	public static final TypeGroup<TItem> ITEM = new TypeGroup<TItem>(SimpleTypes.TransitItem); - -	/** Transfers fluids.  Basic unit is TFluid. -	 */ -	public static final TypeGroup<TFluid> FLUID = new TypeGroup<TFluid>(SimpleTypes.TransitFluid); -	 -	public static final void init() -	{ -		GroupRegistry.addGroup(ENERGY); -		GroupRegistry.addGroup(MANA); -		GroupRegistry.addGroup(ITEM); -		GroupRegistry.addGroup(FLUID); -	} -} diff --git a/src/main/java/net/cshift/transit/type/group/TypeGroup.java b/src/main/java/net/cshift/transit/type/group/TypeGroup.java deleted file mode 100644 index 214f28c..0000000 --- a/src/main/java/net/cshift/transit/type/group/TypeGroup.java +++ /dev/null @@ -1,204 +0,0 @@ -package net.cshift.transit.type.group; - -import java.util.ArrayList; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import net.cshift.transit.type.Type; - -/** - * @author Kyle Gunger - * @param <B> The base object which all grouped Types should convert between. - */ -public final class TypeGroup<B> -{ -	// The base Type (provides the group's identifier) -	private Type<B> baseType; - -	// The list of types. -	private final ArrayList<Type<B>> TYPES = new ArrayList<Type<B>>(0); - -	// Logger for events in the TypeGroup. -	private static final Logger LOG = LogManager.getFormatterLogger("Transit|Group"); - - -	public TypeGroup(Type<B> base) -	{ -		baseType = base; -		addType(base); -	} - - -	// Type management - -	/** Add a Type to the TypeGroup. -	 *  The Type must have a group-type combo not already found in this TypeGroup. -	 *  Returns {@code true} if the group was added. -	 * -	 * @param type The Type to add -	 * @return -	 */ -	public boolean addType(Type<B> type) -	{ -		if(!isInGroup(type)) -		{ -			TYPES.add(type); -			LOG.info("Added type " + type + " to group " + getGroup()); -			return true; -		} - -		LOG.info("Failed to add type " + type + " to group " + getGroup() + ".  Was the type already added?"); -		return false; -	} - -	/** Remove a Type from the TypeGroup. -	 * -	 * @param type The Type to remove -	 * @return -	 */ -	public boolean removeType(Type<B> type) -	{ -		if(type.equals(baseType)) { -			LOG.warn("[WARN] Failed to remove type " + type + " from group " + getGroup() + ".  This is the base type and can not be removed."); -			return false; -		} - -		if(TYPES.indexOf(type) != -1) -		{ -			LOG.info("Removed type " + TYPES.remove(TYPES.indexOf(type)) + " from group " + getGroup()); -			return true; -		} - -		LOG.warn("[WARN] Failed to remove type " + type + " from group " + getGroup() + ".  Are we sure that the type was added to the group first?"); -		return false; -	} - -	/** Remove a type from the group based on it's group-type identifier. -	 * -	 * @param type -	 * @return -	 */ -	public boolean removeType(String groupID, String typeID) -	{ -		if(baseType.toString() == groupID + ":" + typeID) { -			LOG.warn("[WARN] Failed to remove type " + baseType + " from group " + getGroup() + ".  This is the base type and can not be removed."); -			return false; -		} - -		for(Type<?> type : TYPES) -		{ -			if(type.toString() == groupID + ":" + typeID) -			{ -				LOG.info("Removed type " + TYPES.remove(TYPES.indexOf(type)) + " from group " + getGroup()); -				return true; -			} -		} - -		LOG.warn("[WARN] Failed to remove type " + groupID + ":" + typeID + " from group " + getGroup() + ".  Are we sure that the type was added to the group first?"); -		return false; -	} - -	/** Remove a type from the group based on it's group-type identifier. -	 * -	 * @param type -	 * @return -	 */ -	public boolean removeType(String typeID) -	{ -		return removeType(getGroup(), typeID); -	} - - -	// Check if a type is in the group - -	/**Check if the type is in the group -	 * -	 * @param type -	 * @return boolean -	 */ -	public boolean isInGroup(Type<B> type) -	{ -		for(Type<B> t : TYPES) -		{ -			if(t.equals(type)) return true; -		} -		return false; -	} - -	/**Check if the type is in the group -	 * -	 * @param groupID -	 * @param typeID -	 * @return boolean -	 */ -	public boolean isInGroup(String groupID, String typeID) -	{ -		for(Type<B> t : TYPES) -		{ -			if(t.toString() == groupID + ":" + typeID) return true; -		} -		return false; -	} - -	/**Check if the type is in the group -	 * -	 * @param typeID -	 * @return boolean -	 */ -	public boolean isInGroup(String typeID) -	{ -		return isInGroup(getGroup(), typeID); -	} - -	// Get a type in the group - -	/**Get the type from the group -	 * -	 * @param groupID The ID of the group the type is originally from -	 * @param typeID The ID of the type -	 * @return Type -	 */ -	public Type<B> getType(String groupID, String typeID) -	{ -		for(Type<B> t : TYPES) -		{ -			if(t.toString() == groupID + ":" + typeID) return t; -		} - -		return null; -	} - -	/**Get the type from the group -	 * -	 * @param typeID The ID of the type -	 * @return Type -	 */ -	public Type<B> getType(String typeID) -	{ -		return getType(getGroup(), typeID); -	} - - -	// DO ALL TYPE CONVERSION USING TYPES. - -	/** The group identifier.  Given by the Base Group -	 * @return String -	 */ -	public final String getGroup() -	{ -		return baseType.getGroup(); -	} - -	/** The base group type -	 * 	@return Type -	 */ -	public final Type<B> getBase() { -		return baseType; -	} - -	@Override -	public final String toString() { -		return this.getGroup(); -	} -}  |