package buildcraftAdditions.compat.buildcraft.triggers;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import buildcraft.api.statements.IStatement;
import buildcraft.api.statements.IStatementParameter;
import buildcraft.api.statements.ITriggerExternal;
import buildcraftAdditions.reference.Variables;
import buildcraftAdditions.utils.RenderUtils;
import buildcraftAdditions.utils.Utils;
/**
* Copyright (c) 2014-2015, AEnterprise
* http://buildcraftadditions.wordpress.com/
* Buildcraft Additions is distributed under the terms of GNU GPL v3.0
* Please check the contents of the license located in
* http://buildcraftadditions.wordpress.com/wiki/licensing-stuff/
*/
public abstract class BasicTrigger implements ITriggerExternal {
private final String name, iconName;
@SideOnly(Side.CLIENT)
private IIcon icon;
public BasicTrigger(String name) {
this(name, name);
}
public BasicTrigger(String name, String iconName) {
this.name = name;
this.iconName = iconName;
}
@Override
public String getUniqueTag() {
return Variables.MOD.ID + ":" + name;
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon() {
return icon;
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister register) {
icon = RenderUtils.registerIcon(register, iconName);
}
@Override
public int maxParameters() {
return 0;
}
@Override
public int minParameters() {
return 0;
}
@Override
public String getDescription() {
return Utils.localize("trigger." + name);
}
@Override
public IStatementParameter createParameter(int index) {
return null;
}
@Override
public IStatement rotateLeft() {
return this;
}
}