diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2019-11-18 23:20:53 -0500 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2019-11-18 23:20:53 -0500 |
commit | ffbb0eb24842e51aa3b3a6965b0d176a76a01c4d (patch) | |
tree | d48887830389725ce04a956ecadd365249fcc6eb /src/main/java/net/transit | |
parent | cd5fc531b48770883d411783cc2f626b11d16b6f (diff) |
[Update] Change class path from corecg.transit to transit
Diffstat (limited to 'src/main/java/net/transit')
-rw-r--r-- | src/main/java/net/transit/impl/IAcceptor.java | 13 | ||||
-rw-r--r-- | src/main/java/net/transit/impl/IConsumer.java | 10 | ||||
-rw-r--r-- | src/main/java/net/transit/impl/IGenerator.java | 10 | ||||
-rw-r--r-- | src/main/java/net/transit/impl/IProvider.java | 17 | ||||
-rw-r--r-- | src/main/java/net/transit/type/IBaseType.java | 7 | ||||
-rw-r--r-- | src/main/java/net/transit/type/IType.java | 10 | ||||
-rw-r--r-- | src/main/java/net/transit/type/typebase/MetaBase.java | 26 | ||||
-rw-r--r-- | src/main/java/net/transit/type/typebase/NumberBase.java | 18 | ||||
-rw-r--r-- | src/main/java/net/transit/type/typebase/StringBase.java | 18 | ||||
-rw-r--r-- | src/main/java/net/transit/type/typegroup/TypeGroup.java | 53 | ||||
-rw-r--r-- | src/main/java/net/transit/type/typegroup/TypeRegister.java | 42 |
11 files changed, 224 insertions, 0 deletions
diff --git a/src/main/java/net/transit/impl/IAcceptor.java b/src/main/java/net/transit/impl/IAcceptor.java new file mode 100644 index 0000000..9433ea3 --- /dev/null +++ b/src/main/java/net/transit/impl/IAcceptor.java @@ -0,0 +1,13 @@ +package net.transit.impl; + +import net.transit.type.IType; +import net.minecraft.util.math.Direction; + +public interface IAcceptor<T extends IType<?, ?>> +{ + // Direction given if acceptor is a block + public boolean canAccept(Direction d); + + // Accept (or not) a provided T (should trigger ITransferEvent) + public boolean accept(T provided); +}
\ No newline at end of file diff --git a/src/main/java/net/transit/impl/IConsumer.java b/src/main/java/net/transit/impl/IConsumer.java new file mode 100644 index 0000000..d709430 --- /dev/null +++ b/src/main/java/net/transit/impl/IConsumer.java @@ -0,0 +1,10 @@ +package net.transit.impl; + +import net.transit.type.IType; + +public interface IConsumer<T extends IType<?, ?>> extends IAcceptor<T> +{ + public boolean canConsume(); + + +}
\ No newline at end of file diff --git a/src/main/java/net/transit/impl/IGenerator.java b/src/main/java/net/transit/impl/IGenerator.java new file mode 100644 index 0000000..009f268 --- /dev/null +++ b/src/main/java/net/transit/impl/IGenerator.java @@ -0,0 +1,10 @@ +package net.transit.impl; + +import net.transit.type.IType; + +public interface IGenerator<T extends IType<?, ?>> extends IProvider<T> +{ + public boolean canGenerate(); + + +}
\ No newline at end of file diff --git a/src/main/java/net/transit/impl/IProvider.java b/src/main/java/net/transit/impl/IProvider.java new file mode 100644 index 0000000..b613436 --- /dev/null +++ b/src/main/java/net/transit/impl/IProvider.java @@ -0,0 +1,17 @@ +package net.transit.impl; + +import net.transit.type.IType; +import net.minecraft.util.math.Direction; + +public interface IProvider<T extends IType<?, ?>> +{ + + // Direction given if provider is a block + public boolean canProvide(Direction d); + + // Provide the next T (should trigger ITransferEvent) + public T provide(); + + // Retain the rejected T if the acceptor did not accept it (should trigger ITransferEvent) + public void accept(T rejected); +}
\ No newline at end of file diff --git a/src/main/java/net/transit/type/IBaseType.java b/src/main/java/net/transit/type/IBaseType.java new file mode 100644 index 0000000..99ec178 --- /dev/null +++ b/src/main/java/net/transit/type/IBaseType.java @@ -0,0 +1,7 @@ +package net.transit.type; + +public interface IBaseType<T> +{ + + public T getData(); +}
\ No newline at end of file diff --git a/src/main/java/net/transit/type/IType.java b/src/main/java/net/transit/type/IType.java new file mode 100644 index 0000000..ff401f1 --- /dev/null +++ b/src/main/java/net/transit/type/IType.java @@ -0,0 +1,10 @@ +package net.transit.type; + +public interface IType<T, B> extends IBaseType<B> +{ + public String getTypeName(); + + public IBaseType<B> convertToBase(); + + public IType<T, B> convertFromBase(IBaseType<B> base); +}
\ No newline at end of file diff --git a/src/main/java/net/transit/type/typebase/MetaBase.java b/src/main/java/net/transit/type/typebase/MetaBase.java new file mode 100644 index 0000000..fdf69a8 --- /dev/null +++ b/src/main/java/net/transit/type/typebase/MetaBase.java @@ -0,0 +1,26 @@ +package net.transit.type.typebase; + +import net.transit.type.IBaseType; + +public class MetaBase<T extends IBaseType<?>> implements IBaseType<T> +{ + private T data; + private String metaData; + + public MetaBase(T dat, String meta) + { + data = dat; + metaData = meta; + } + + public T getData() + { + return data; + } + + public String getMetaData() + { + return metaData; + } + +}
\ No newline at end of file diff --git a/src/main/java/net/transit/type/typebase/NumberBase.java b/src/main/java/net/transit/type/typebase/NumberBase.java new file mode 100644 index 0000000..2a3c013 --- /dev/null +++ b/src/main/java/net/transit/type/typebase/NumberBase.java @@ -0,0 +1,18 @@ +package net.transit.type.typebase; + +import net.transit.type.IBaseType; + +public class NumberBase implements IBaseType<Number> +{ + private Number data; + + public NumberBase(Number dat) + { + data = dat; + } + + public Number getData() + { + return data; + } +}
\ No newline at end of file diff --git a/src/main/java/net/transit/type/typebase/StringBase.java b/src/main/java/net/transit/type/typebase/StringBase.java new file mode 100644 index 0000000..c1e32fe --- /dev/null +++ b/src/main/java/net/transit/type/typebase/StringBase.java @@ -0,0 +1,18 @@ +package net.transit.type.typebase; + +import net.transit.type.IBaseType; + +public class StringBase implements IBaseType<String> +{ + private String data; + + public StringBase(String dat) + { + data = dat; + } + + public String getData() + { + return data; + } +}
\ No newline at end of file diff --git a/src/main/java/net/transit/type/typegroup/TypeGroup.java b/src/main/java/net/transit/type/typegroup/TypeGroup.java new file mode 100644 index 0000000..4524ae0 --- /dev/null +++ b/src/main/java/net/transit/type/typegroup/TypeGroup.java @@ -0,0 +1,53 @@ +package net.transit.type.typegroup; + +import java.util.ArrayList; + +import net.transit.type.IType; +import net.transit.type.IBaseType; + +public class TypeGroup<B> +{ + private IBaseType<B> baseType; + + private String groupName; + + private ArrayList<IType<?, B>> types; + + /**Create a new TypeGroup + * + * @param base The base type of the group. + * @param name The identifier of the group. Should be in all caps. + */ + public TypeGroup(IBaseType<B> base, String name) + { + baseType = base; + types = new ArrayList<IType<?, B>>(0); + groupName = name; + } + + // Return the base type + public IBaseType<B> getBaseType() + { + return baseType; + } + + // Returns if the type is supported by the group + public boolean hasType(IType t) + { + + for(IType gtype : types) + { + + if(t.getTypeName() == gtype.getTypeName()) return true; + } + + return false; + } + + // Group name/identifier + public String getGroupName() + { + + return groupName; + } +}
\ No newline at end of file diff --git a/src/main/java/net/transit/type/typegroup/TypeRegister.java b/src/main/java/net/transit/type/typegroup/TypeRegister.java new file mode 100644 index 0000000..8de81a6 --- /dev/null +++ b/src/main/java/net/transit/type/typegroup/TypeRegister.java @@ -0,0 +1,42 @@ +package net.transit.type.typegroup; + +import java.util.ArrayList; + +import net.transit.type.IType; + +public final class TypeRegister +{ + private TypeRegister(){} + + // Hold all the groups + private static ArrayList<TypeGroup<?>> groups = new ArrayList<TypeGroup<?>>(0); + + // Add a group + public static void addTypeGroup(TypeGroup<?> g) + { + if(getTypeGroup(g.getGroupName()) == null) return; + + groups.add(g); + } + + // Get a group by it's identifier + public static TypeGroup<?> getTypeGroup(String name) + { + for(TypeGroup<?> g : groups) + { + if(g.getGroupName().toUpperCase() == name.toUpperCase()) return g; + } + + return null; + } + + public static String groupOf(IType<?, ?> t) + { + for(TypeGroup<?> g : groups) + { + if(g.hasType(t)) return g.getGroupName(); + } + + return null; + } +}
\ No newline at end of file |