package mods.railcraft.common.plugins.buildcraft.triggers; import buildcraft.api.statements.IStatementContainer; import buildcraft.api.statements.ITriggerExternal; import buildcraft.api.statements.ITriggerInternal; import buildcraft.api.statements.ITriggerProvider; import java.util.Collection; import java.util.LinkedList; import net.minecraft.tileentity.TileEntity; import mods.railcraft.common.blocks.machine.beta.TileEngine; import net.minecraftforge.common.util.ForgeDirection; /** * * @author CovertJaguar <http://www.railcraft.info> */ public class TriggerProvider implements ITriggerProvider { public TriggerProvider() { Triggers.init(); } @Override public Collection<ITriggerInternal> getInternalTriggers(IStatementContainer isc) { return null; } @Override public Collection<ITriggerExternal> getExternalTriggers(ForgeDirection side, TileEntity tile) { LinkedList<ITriggerExternal> triggers = new LinkedList<ITriggerExternal>(); if (tile instanceof IHasWork) triggers.add(Triggers.HAS_WORK); if (tile instanceof IHasCart) triggers.add(Triggers.HAS_CART); if (tile instanceof INeedsFuel) triggers.add(Triggers.LOW_FUEL); if (tile instanceof TileEngine) { triggers.add(Triggers.ENGINE_BLUE); triggers.add(Triggers.ENGINE_GREEN); triggers.add(Triggers.ENGINE_YELLOW); triggers.add(Triggers.ENGINE_ORANGE); triggers.add(Triggers.ENGINE_RED); } if (tile instanceof ITemperature) { triggers.add(Triggers.TEMP_COLD); triggers.add(Triggers.TEMP_WARM); triggers.add(Triggers.TEMP_HOT); } if (tile instanceof INeedsMaintenance) triggers.add(Triggers.NEEDS_MAINT); if (tile instanceof IAspectProvider) { triggers.add(Triggers.ASPECT_GREEN); triggers.add(Triggers.ASPECT_BLINK_YELLOW); triggers.add(Triggers.ASPECT_YELLOW); triggers.add(Triggers.ASPECT_BLINK_RED); triggers.add(Triggers.ASPECT_RED); triggers.add(Triggers.ASPECT_OFF); } return triggers; } }