69 lines
2.2 KiB
Java
69 lines
2.2 KiB
Java
/**
|
|
* Copyright (c) 2011-2017, SpaceToad and the BuildCraft Team
|
|
* http://www.mod-buildcraft.com
|
|
* <p/>
|
|
* BuildCraft is distributed under the terms of the Minecraft Mod Public
|
|
* License 1.0, or MMPL. Please check the contents of the license located in
|
|
* http://www.mod-buildcraft.com/MMPL-1.0.txt
|
|
*/
|
|
package buildcraft.transport;
|
|
|
|
import java.util.LinkedList;
|
|
|
|
import net.minecraft.tileentity.TileEntity;
|
|
|
|
import net.minecraftforge.common.util.ForgeDirection;
|
|
|
|
import buildcraft.api.statements.IStatementContainer;
|
|
import buildcraft.api.statements.ITriggerExternal;
|
|
import buildcraft.api.statements.ITriggerInternal;
|
|
import buildcraft.api.statements.ITriggerProvider;
|
|
import buildcraft.transport.statements.TriggerPipeContents;
|
|
|
|
public class PipeTriggerProvider implements ITriggerProvider {
|
|
@Override
|
|
public LinkedList<ITriggerInternal> getInternalTriggers(IStatementContainer container) {
|
|
LinkedList<ITriggerInternal> result = new LinkedList<ITriggerInternal>();
|
|
Pipe<?> pipe = null;
|
|
TileEntity tile = container.getTile();
|
|
|
|
if (tile instanceof TileGenericPipe) {
|
|
pipe = ((TileGenericPipe) tile).pipe;
|
|
}
|
|
|
|
if (pipe == null) {
|
|
return result;
|
|
}
|
|
|
|
if (container instanceof Gate) {
|
|
((Gate) container).addTriggers(result);
|
|
}
|
|
|
|
switch (((TileGenericPipe) tile).getPipeType()) {
|
|
case ITEM:
|
|
result.add(TriggerPipeContents.PipeContents.empty.trigger);
|
|
result.add(TriggerPipeContents.PipeContents.containsItems.trigger);
|
|
break;
|
|
case FLUID:
|
|
result.add(TriggerPipeContents.PipeContents.empty.trigger);
|
|
result.add(TriggerPipeContents.PipeContents.containsFluids.trigger);
|
|
break;
|
|
case POWER:
|
|
result.add(TriggerPipeContents.PipeContents.empty.trigger);
|
|
result.add(TriggerPipeContents.PipeContents.containsEnergy.trigger);
|
|
result.add(TriggerPipeContents.PipeContents.tooMuchEnergy.trigger);
|
|
result.add(TriggerPipeContents.PipeContents.requestsEnergy.trigger);
|
|
break;
|
|
case STRUCTURE:
|
|
break;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
@Override
|
|
public LinkedList<ITriggerExternal> getExternalTriggers(ForgeDirection side, TileEntity tile) {
|
|
LinkedList<ITriggerExternal> result = new LinkedList<ITriggerExternal>();
|
|
|
|
return result;
|
|
}
|
|
}
|