From ffbb0eb24842e51aa3b3a6965b0d176a76a01c4d Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Mon, 18 Nov 2019 23:20:53 -0500 Subject: [Update] Change class path from corecg.transit to transit --- src/main/java/net/transit/impl/IAcceptor.java | 13 ++++++ src/main/java/net/transit/impl/IConsumer.java | 10 ++++ src/main/java/net/transit/impl/IGenerator.java | 10 ++++ src/main/java/net/transit/impl/IProvider.java | 17 +++++++ src/main/java/net/transit/type/IBaseType.java | 7 +++ src/main/java/net/transit/type/IType.java | 10 ++++ .../java/net/transit/type/typebase/MetaBase.java | 26 +++++++++++ .../java/net/transit/type/typebase/NumberBase.java | 18 ++++++++ .../java/net/transit/type/typebase/StringBase.java | 18 ++++++++ .../java/net/transit/type/typegroup/TypeGroup.java | 53 ++++++++++++++++++++++ .../net/transit/type/typegroup/TypeRegister.java | 42 +++++++++++++++++ 11 files changed, 224 insertions(+) create mode 100644 src/main/java/net/transit/impl/IAcceptor.java create mode 100644 src/main/java/net/transit/impl/IConsumer.java create mode 100644 src/main/java/net/transit/impl/IGenerator.java create mode 100644 src/main/java/net/transit/impl/IProvider.java create mode 100644 src/main/java/net/transit/type/IBaseType.java create mode 100644 src/main/java/net/transit/type/IType.java create mode 100644 src/main/java/net/transit/type/typebase/MetaBase.java create mode 100644 src/main/java/net/transit/type/typebase/NumberBase.java create mode 100644 src/main/java/net/transit/type/typebase/StringBase.java create mode 100644 src/main/java/net/transit/type/typegroup/TypeGroup.java create mode 100644 src/main/java/net/transit/type/typegroup/TypeRegister.java (limited to 'src/main/java/net/transit') 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> +{ + // 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> extends IAcceptor +{ + 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> extends IProvider +{ + 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> +{ + + // 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 +{ + + 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 extends IBaseType +{ + public String getTypeName(); + + public IBaseType convertToBase(); + + public IType convertFromBase(IBaseType 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> implements IBaseType +{ + 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 +{ + 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 +{ + 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 +{ + private IBaseType baseType; + + private String groupName; + + private ArrayList> 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 base, String name) + { + baseType = base; + types = new ArrayList>(0); + groupName = name; + } + + // Return the base type + public IBaseType 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> groups = new ArrayList>(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 -- cgit v1.2.3