package advancedsystemsmanager.flow.execution.commands; import advancedsystemsmanager.flow.FlowComponent; import advancedsystemsmanager.flow.execution.Executor; import advancedsystemsmanager.flow.menus.*; import advancedsystemsmanager.reference.Names; import advancedsystemsmanager.registry.ConnectionSet; import advancedsystemsmanager.registry.SystemTypeRegistry; import advancedsystemsmanager.tileentities.TileEntityEmitter; import advancedsystemsmanager.util.SystemCoord; import java.util.List; public class CommandRedstoneOutput extends CommandBase { public CommandRedstoneOutput() { super(REDSTONE_OUTPUT, Names.REDSTONE_EMITTER, CommandType.OUTPUT, ConnectionSet.STANDARD); } @Override public void getMenus(FlowComponent component, List<Menu> menus) { menus.add(new MenuContainer(component, SystemTypeRegistry.EMITTER)); menus.add(new MenuRedstoneSidesEmitter(component)); menus.add(new MenuRedstoneOutput(component)); menus.add(new MenuPulse(component)); } @Override public void execute(FlowComponent command, int connectionId, Executor executor) { List<SystemCoord> coords = getContainers(command.getManager(), (MenuContainer)command.menus.get(0)); if (coords != null) { for (SystemCoord coord : coords) { ((TileEntityEmitter)coord.getTileEntity()).updateState((MenuRedstoneSidesEmitter)command.getMenus().get(1), (MenuRedstoneOutput)command.getMenus().get(2), (MenuPulse)command.getMenus().get(3)); } } } }