/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package mods.railcraft.common.plugins.buildcraft.triggers; import buildcraft.api.statements.*; import java.util.EnumSet; import mods.railcraft.api.signals.SignalAspect; import mods.railcraft.common.blocks.machine.beta.TileEngine.EnergyStage; import mods.railcraft.common.plugins.forge.LocalizationPlugin; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraftforge.common.util.ForgeDirection; /** * * @author CovertJaguar <http://www.railcraft.info> */ public enum Triggers implements ITriggerExternal { HAS_WORK("work", new TriggerHasWork()), HAS_CART("cart", new TriggerHasCart()), ENGINE_BLUE("engine.blue", new TriggerEngine(EnumSet.of(EnergyStage.BLUE))), ENGINE_GREEN("engine.green", new TriggerEngine(EnumSet.of(EnergyStage.GREEN))), ENGINE_YELLOW("engine.yellow", new TriggerEngine(EnumSet.of(EnergyStage.YELLOW))), ENGINE_ORANGE("engine.orange", new TriggerEngine(EnumSet.of(EnergyStage.ORANGE))), ENGINE_RED("engine.red", new TriggerEngine(EnumSet.of(EnergyStage.RED, EnergyStage.OVERHEAT))), LOW_FUEL("fuel", new TriggerLowFuel()), TEMP_COLD("temp.cold", new TriggerTemp(0, 100)), TEMP_WARM("temp.warm", new TriggerTemp(100, 300)), TEMP_HOT("temp.hot", new TriggerTemp(300, Integer.MAX_VALUE)), NEEDS_MAINT("maintenance", new TriggerMaintenance()), ASPECT_GREEN("aspect.green", new TriggerAspect(SignalAspect.GREEN)), ASPECT_BLINK_YELLOW("aspect.yellow.blink", new TriggerAspect(SignalAspect.BLINK_YELLOW)), ASPECT_YELLOW("aspect.yellow", new TriggerAspect(SignalAspect.YELLOW)), ASPECT_BLINK_RED("aspect.red.blink", new TriggerAspect(SignalAspect.BLINK_RED)), ASPECT_RED("aspect.red", new TriggerAspect(SignalAspect.RED)), ASPECT_OFF("aspect.off", new TriggerAspect(SignalAspect.OFF)); public static final Triggers[] VALUES = values(); private final Trigger trigger; private final String tag; private IIcon icon; private Triggers(String tag, Trigger trigger) { this.tag = tag; this.trigger = trigger; } public static void init() { for (Triggers trigger : VALUES) { StatementManager.registerStatement(trigger); StatementManager.statements.put("railcraft." + trigger.tag, trigger); } } @Override public String getUniqueTag() { return "railcraft:" + tag; } @Override public IIcon getIcon() { return icon; } @Override public String getDescription() { return LocalizationPlugin.translate("gates.trigger." + tag); } @Override public boolean isTriggerActive(TileEntity tile, ForgeDirection side, IStatementContainer isc, IStatementParameter[] parameter) { return trigger.isTriggerActive(side, tile, parameter); } @Override public void registerIcons(IIconRegister iconRegister) { icon = iconRegister.registerIcon("railcraft:buildcraft.gate.trigger." + tag); } @Override public int maxParameters() { return 0; } @Override public int minParameters() { return 0; } @Override public IStatementParameter createParameter(int i) { return null; } @Override public IStatement rotateLeft() { return this; } }