-
Notifications
You must be signed in to change notification settings - Fork 497
/
DefaultTriggerProvider.java
62 lines (51 loc) · 1.93 KB
/
DefaultTriggerProvider.java
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package buildcraft.core.triggers;
import java.util.LinkedList;
import net.minecraft.block.Block;
import net.minecraft.inventory.IInventory;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.liquids.ILiquidTank;
import net.minecraftforge.liquids.ITankContainer;
import buildcraft.BuildCraftCore;
import buildcraft.api.gates.IOverrideDefaultTriggers;
import buildcraft.api.gates.ITrigger;
import buildcraft.api.gates.ITriggerProvider;
import buildcraft.api.transport.IPipe;
import buildcraft.core.IMachine;
public class DefaultTriggerProvider implements ITriggerProvider {
@Override
public LinkedList<ITrigger> getNeighborTriggers(Block block, TileEntity tile) {
if (tile instanceof IOverrideDefaultTriggers) {
return ((IOverrideDefaultTriggers) tile).getTriggers();
}
LinkedList<ITrigger> res = new LinkedList<ITrigger>();
if (tile instanceof IInventory && ((IInventory) tile).getSizeInventory() > 0) {
res.add(BuildCraftCore.triggerEmptyInventory);
res.add(BuildCraftCore.triggerContainsInventory);
res.add(BuildCraftCore.triggerSpaceInventory);
res.add(BuildCraftCore.triggerFullInventory);
}
if (tile instanceof ITankContainer) {
ILiquidTank[] tanks = ((ITankContainer) tile).getTanks(ForgeDirection.UNKNOWN);
if (tanks != null && tanks.length > 0) {
res.add(BuildCraftCore.triggerEmptyLiquid);
res.add(BuildCraftCore.triggerContainsLiquid);
res.add(BuildCraftCore.triggerSpaceLiquid);
res.add(BuildCraftCore.triggerFullLiquid);
}
}
if (tile instanceof IMachine) {
res.add(BuildCraftCore.triggerMachineActive);
res.add(BuildCraftCore.triggerMachineInactive);
}
if (block != null && block.canProvidePower()) {
// res.add(BuildCraftCore.triggerRedstoneActive);
// res.add(BuildCraftCore.triggerRedstoneInactive);
}
return res;
}
@Override
public LinkedList<ITrigger> getPipeTriggers(IPipe pipe) {
return null;
}
}