diff options
author | Kyle Gunger <corechg@gmail.com> | 2020-04-15 15:09:41 -0400 |
---|---|---|
committer | Kyle Gunger <corechg@gmail.com> | 2020-04-15 15:09:41 -0400 |
commit | aed6ed909ee81beecac2836cb86654efe29e154b (patch) | |
tree | 84405cfa1b58a193335b9a47940fcaaa0ff764f6 /src/main/java/net/transit/network/packet/dynamic | |
parent | 2f8be08dc2d398d71c2325b545e8fc49ca4e214d (diff) |
[Update] Version 0.5.1
More documentation, and an updated list of packets
Diffstat (limited to 'src/main/java/net/transit/network/packet/dynamic')
4 files changed, 177 insertions, 0 deletions
diff --git a/src/main/java/net/transit/network/packet/dynamic/ArrayPacket.java b/src/main/java/net/transit/network/packet/dynamic/ArrayPacket.java new file mode 100644 index 0000000..0c27c80 --- /dev/null +++ b/src/main/java/net/transit/network/packet/dynamic/ArrayPacket.java @@ -0,0 +1,74 @@ +package net.transit.network.packet.dynamic; + +import java.util.ArrayList; + +import net.transit.type.Type; + +/** A packet type which stores multiple values which can be accessed. When getting data, pop and shift from the array. + * @author Kyle Gunger + * + * @param <D> The data type (Object) that the packet transfers + */ +public class ArrayPacket<D> implements IDynamicPacket<D> +{ + private ArrayList<D> arrayData; + private Type<D> type; + + /** Constructor + * Create an array packet. Adds the starting value. + * @param startValue The starting value + * @param t The type of the packet + */ + public ArrayPacket(D startValue, Type<D> t) + { + arrayData = new ArrayList<D>(0); + arrayData.add(startValue); + type = t; + } + + /** + * Create an empty array packet of the desired type. + * @param t The type of the packet + */ + public ArrayPacket(Type<D> t) + { + arrayData = new ArrayList<D>(0); + type = t; + } + + /** Pop and shift data from the array. + */ + @Override + public D getData() + { + D temp = null; + + if(arrayData.size() > 0) + { + temp = arrayData.remove(0); + } + + return temp; + } + + /** Add data to the array. + * @param data The data to push + */ + public void setData(D data) + { + arrayData.add(data); + } + + /** + * @return The ammount of data the packet holds + */ + public int dataStored() + { + return arrayData.size(); + } + + @Override + public Type<D> getType() { + return type; + } +}
\ No newline at end of file diff --git a/src/main/java/net/transit/network/packet/dynamic/DynamicPacket.java b/src/main/java/net/transit/network/packet/dynamic/DynamicPacket.java new file mode 100644 index 0000000..0860487 --- /dev/null +++ b/src/main/java/net/transit/network/packet/dynamic/DynamicPacket.java @@ -0,0 +1,43 @@ +package net.transit.network.packet.dynamic; + +import net.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; + } +}
\ No newline at end of file diff --git a/src/main/java/net/transit/network/packet/dynamic/IDynamicPacket.java b/src/main/java/net/transit/network/packet/dynamic/IDynamicPacket.java new file mode 100644 index 0000000..51b3c13 --- /dev/null +++ b/src/main/java/net/transit/network/packet/dynamic/IDynamicPacket.java @@ -0,0 +1,16 @@ +package net.transit.network.packet.dynamic; + +import net.transit.network.packet.IStaticPacket; + +/** 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); +}
\ No newline at end of file diff --git a/src/main/java/net/transit/network/packet/dynamic/MetaDynamicPacket.java b/src/main/java/net/transit/network/packet/dynamic/MetaDynamicPacket.java new file mode 100644 index 0000000..b6a3ec6 --- /dev/null +++ b/src/main/java/net/transit/network/packet/dynamic/MetaDynamicPacket.java @@ -0,0 +1,44 @@ +package net.transit.network.packet.dynamic; + +import net.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; + } +} |