package advancedsystemsmanager.api.execution;
import advancedsystemsmanager.flow.Connection;
import advancedsystemsmanager.flow.FlowComponent;
import advancedsystemsmanager.flow.execution.Executor;
import advancedsystemsmanager.flow.menus.Menu;
import advancedsystemsmanager.registry.ConnectionSet;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.ResourceLocation;
import java.util.List;
public interface ICommand
{
int getId();
public ConnectionSet[] getSets();
void getMenus(FlowComponent component, List<Menu> menus);
public String getName();
public String getLongName();
public CommandType getCommandType();
int[] getColour();
void setColour(int[] colour);
int getEnergyCost();
void setEnergyCost(int amount);
int getX();
int getY();
@SideOnly(Side.CLIENT)
ResourceLocation getTexture();
void execute(FlowComponent command, int connectionId, Executor executor);
List<Connection> getActiveChildren(FlowComponent command, int connectionId);
void moveComponent(FlowComponent component, FlowComponent oldParent, FlowComponent newParent);
public static enum CommandType
{
TRIGGER,
INPUT,
OUTPUT,
COMMAND_CONTROL,
CRAFTING,
MISC,
GROUP,
VARIABLE
}
}