diff options
Diffstat (limited to 'src/main/java/net/cshift/transit')
6 files changed, 236 insertions, 26 deletions
diff --git a/src/main/java/net/cshift/transit/type/TFluid.java b/src/main/java/net/cshift/transit/type/TFluid.java index 4f6b70f..4b980bd 100644 --- a/src/main/java/net/cshift/transit/type/TFluid.java +++ b/src/main/java/net/cshift/transit/type/TFluid.java @@ -1,22 +1,23 @@ package net.cshift.transit.type; -import net.minecraft.fluid.Fluid; +import net.minecraft.fluid.*; /** Units of fluid. * @author Kyle Gunger */ public class TFluid { private Fluid fluid; - private Number millibuckets; + private Number mb; - /** Constructor + /** 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) + * @param mB Count of fluid (mB) */ - public TFluid(Fluid f, Number mb) { + public TFluid(Fluid f, Number mB) { fluid = f; - millibuckets = mb; + mb = mB; } /** Get the fluid stored. @@ -28,6 +29,6 @@ public class TFluid { /** Get the millibuckets stored. */ public Number getMilliBuckets() { - return millibuckets; + return mb; } } diff --git a/src/main/java/net/cshift/transit/type/TItem.java b/src/main/java/net/cshift/transit/type/TItem.java new file mode 100644 index 0000000..966267d --- /dev/null +++ b/src/main/java/net/cshift/transit/type/TItem.java @@ -0,0 +1,34 @@ +package net.cshift.transit.type; + +import net.minecraft.item.*; + +/** Units of fluid. + * @author Kyle Gunger + */ +public class TItem { + private Item item; + private Number count; + + /** Constructor. + * Since a bucket of fluid is the same as a block of a fluid, mb can be called millibuckets or milliblocks. + * + * @param i Fluid stored (Water/Lava/etc.) + * @param c Item countie + */ + public TItem(Item i, Number c) { + item = i; + count = c; + } + + /** Get the fluid stored. + */ + public Item getItem() { + return item; + } + + /** Get the millibuckets 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 index 46e2ace..586a891 100644 --- a/src/main/java/net/cshift/transit/type/Type.java +++ b/src/main/java/net/cshift/transit/type/Type.java @@ -17,29 +17,202 @@ public class Type<T> groupID = gID; } - /** Return the packet's data formatted in the group's base type. - * If creating a new type, extend this class and override this function. + + + // ########################################## + // # 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 default type + * @return The packet's data in the group's base type */ - public T toBase(IStaticPacket<T> packet, String group) + public final T toBase(IStaticPacket<T> packet, String group) { - return packet.getData(); + return this.toBase(packet.getData(), group); } - - /** Create a packet which has the current type from the data in the base type. - * If creating a new type, extend this class and override this function. + + /** 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 base The base data - * @param group The group that the data comes from - * @return IStaticPacket The packet + * @param data The base data + * @return The packet's data in the group's base type */ - public IStaticPacket<T> fromBase(T base, String group) + public final IStaticPacket<T> packetFromBase(T data) { - return new StaticPacket<T>(base, this); + 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, String group, T data) { + 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, from.groupID, data); + } + + /** 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(), group, packet.getData()), 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, String group, T data) { + return to.convertFrom(this, group, data); + } + + /** 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, groupID, data); + } + + /** 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, groupID); + } + + + + // ############################## + // # Utility and info functions # + // ############################## /** The type identifier. Gives the normal type identity of the type. * diff --git a/src/main/java/net/cshift/transit/type/group/TypeGroup.java b/src/main/java/net/cshift/transit/type/group/TypeGroup.java index 5b8f061..596a511 100644 --- a/src/main/java/net/cshift/transit/type/group/TypeGroup.java +++ b/src/main/java/net/cshift/transit/type/group/TypeGroup.java @@ -189,9 +189,10 @@ public class TypeGroup<B> * @param type * @return */ + @Deprecated protected IStaticPacket<B> convertPacketRaw(IStaticPacket<B> packet, Type<B> type) { - return type.fromBase(packet.getType().toBase(packet, getGroup()), getGroup()); + return type.packetFromBase(packet.getType().toBase(packet.getData())); } /**Convert a packet to a new type Returns null if the type isn't in the group. @@ -200,6 +201,7 @@ public class TypeGroup<B> * @param type The type to convert to * @return Packet */ + @Deprecated public IStaticPacket<B> convertPacket(IStaticPacket<B> packet, Type<B> type) { if(isInGroup(packet.getType()) && isInGroup(type)) @@ -217,6 +219,7 @@ public class TypeGroup<B> * @param typeID The typeID of the Type to convert to * @return Packet */ + @Deprecated public IStaticPacket<B> convertPacket(IStaticPacket<B> packet, String groupID, String typeID) { Type<B> toType = getType(groupID, typeID); @@ -234,6 +237,7 @@ public class TypeGroup<B> * @param typeID The typeID of the Type to convert to * @return Packet */ + @Deprecated public IStaticPacket<B> convertPacket(IStaticPacket<B> packet, String typeID) { Type<B> toType = getType(typeID); diff --git a/src/main/java/net/cshift/transit/type/group/simple/SimpleGroups.java b/src/main/java/net/cshift/transit/type/group/simple/SimpleGroups.java index 24868e1..95b151a 100644 --- a/src/main/java/net/cshift/transit/type/group/simple/SimpleGroups.java +++ b/src/main/java/net/cshift/transit/type/group/simple/SimpleGroups.java @@ -1,8 +1,7 @@ package net.cshift.transit.type.group.simple; -import net.minecraft.item.ItemStack; import net.cshift.transit.type.group.*; -import net.cshift.transit.type.simple.SimpleTypes; +import net.cshift.transit.type.simple.*; import net.cshift.transit.type.*; public final class SimpleGroups { @@ -16,7 +15,7 @@ public final class SimpleGroups { /** Transfers items. Basic type is ItemStack. */ - public static final TypeGroup<ItemStack> ITEM_GROUP = new TypeGroup<ItemStack>(SimpleTypes.Item); + public static final TypeGroup<TItem> ITEM_GROUP = new TypeGroup<TItem>(SimpleTypes.Item); /** Transfers fluids. Basic unit is TFluid. */ diff --git a/src/main/java/net/cshift/transit/type/simple/SimpleTypes.java b/src/main/java/net/cshift/transit/type/simple/SimpleTypes.java index 4b231f3..26171b1 100644 --- a/src/main/java/net/cshift/transit/type/simple/SimpleTypes.java +++ b/src/main/java/net/cshift/transit/type/simple/SimpleTypes.java @@ -1,6 +1,5 @@ package net.cshift.transit.type.simple; -import net.minecraft.item.ItemStack; import net.cshift.transit.type.*; public final class SimpleTypes { @@ -14,7 +13,7 @@ public final class SimpleTypes { /** Transfers items in a itemstack. */ - public static final Type<ItemStack> Item = new Type<ItemStack>("Item", "ITEM"); + public static final Type<TItem> Item = new Type<TItem>("Item", "ITEM"); /** Transfers fluid. TFluid stores fluid and mB. */ |