/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mods.railcraft.common.plugins.buildcraft.actions;
import buildcraft.api.statements.IActionExternal;
import buildcraft.api.statements.IStatementContainer;
import buildcraft.api.statements.IStatementParameter;
import buildcraft.api.statements.StatementManager;
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 Actions implements IActionExternal {
PAUSE("pause"),
SEND_CART("sendcart");
public static final Actions[] VALUES = values();
private final String tag;
private IIcon icon;
private Actions(String tag) {
this.tag = tag;
}
public static void init() {
for (Actions action : VALUES) {
StatementManager.registerStatement(action);
StatementManager.statements.put("railcraft." + action.tag, action);
}
}
@Override
public String getUniqueTag() {
return "railcraft:" + tag;
}
@Override
public final IIcon getIcon() {
return icon;
}
@Override
public String getDescription() {
return LocalizationPlugin.translate("gates.action." + tag);
}
@Override
public void registerIcons(IIconRegister iconRegister) {
icon = iconRegister.registerIcon("railcraft:buildcraft.gate.action." + tag);
}
@Override
public IActionExternal rotateLeft() {
return this;
}
@Override
public void actionActivate(TileEntity tile, ForgeDirection side, IStatementContainer isc, IStatementParameter[] isps) {
if (tile instanceof IActionReceptor)
((IActionReceptor) tile).actionActivated(this);
}
@Override
public int maxParameters() {
return 0;
}
@Override
public int minParameters() {
return 0;
}
@Override
public IStatementParameter createParameter(int i) {
return null;
}
}