summaryrefslogtreecommitdiff
path: root/src/main/java/net/cshift/transit/basic/AbstractProviderNode.java
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2021-01-16 01:12:04 -0500
committerKyle Gunger <kgunger12@gmail.com>2021-01-16 01:12:04 -0500
commite0a6cfb0aba631d3a1cd27971f87b0d4a677f294 (patch)
treec87a18f10a1cb7b0cab4b278a4b6b424cefcebc7 /src/main/java/net/cshift/transit/basic/AbstractProviderNode.java
parentbfe0005433f5fd84d47a310578e6d4da4cfcc43d (diff)
Update include paths
Diffstat (limited to 'src/main/java/net/cshift/transit/basic/AbstractProviderNode.java')
-rw-r--r--src/main/java/net/cshift/transit/basic/AbstractProviderNode.java47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/main/java/net/cshift/transit/basic/AbstractProviderNode.java b/src/main/java/net/cshift/transit/basic/AbstractProviderNode.java
new file mode 100644
index 0000000..cc81544
--- /dev/null
+++ b/src/main/java/net/cshift/transit/basic/AbstractProviderNode.java
@@ -0,0 +1,47 @@
+package net.cshift.transit.basic;
+
+import net.cshift.transit.network.system.*;
+import net.cshift.transit.network.system.swap.*;
+import net.minecraft.block.entity.*;
+
+public abstract class AbstractProviderNode extends AbstractNode implements IProviderNode {
+
+ public AbstractProviderNode(BlockEntityType<?> type) {
+ super(type);
+ }
+
+ @Override
+ public boolean linkAcceptor(IAcceptorNode requestor, String group) {
+ if(this.hasGroup(group))
+ {
+ for (Connection c : connections) {
+ if(c.getNode() == requestor)
+ return false;
+ }
+
+ connections.add(new Connection(requestor, (short) 1));
+
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public boolean unlinkAcceptor(IAcceptorNode requestor) {
+ for (Connection c : connections) {
+ if(c.getNode() == requestor)
+ {
+ if(c.isProviding())
+ c.setAccepting(false);
+ else
+ connections.remove(c);
+
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+}