summaryrefslogtreecommitdiff
path: root/src/main/java/net/cshift/transit/basic/AbstractTwoWayNode.java
blob: cc06eebf1929ff58de351ecb4ea91ca5f6cedc2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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 AbstractTwoWayNode extends AbstractAcceptorNode implements IProviderNode {

    public AbstractTwoWayNode(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;
    }

}