Search in sources :

Example 6 with IIcon

use of mcjty.lib.gui.icons.IIcon in project RFToolsControl by McJty.

the class GuiProgrammer method tryConnectToThis.

private void tryConnectToThis(int x, int y, IIcon icon, Connection connection) {
    if (x < 0 || x >= GRID_WIDTH) {
        return;
    }
    if (y < 0 || y >= GRID_HEIGHT) {
        return;
    }
    IconHolder holder = getHolder(x, y);
    IIcon sourceIcon = holder.getIcon();
    if (sourceIcon != null) {
        Opcode opcode = Opcodes.OPCODES.get(sourceIcon.getID());
        if (opcode.getOpcodeOutput() == OpcodeOutput.NONE) {
            return;
        } else if (opcode.getOpcodeOutput() == OpcodeOutput.SINGLE) {
            int cnt = countConnections(sourceIcon);
            if (cnt == 0) {
                sourceIcon.addOverlay(CONNECTION_ICONS.get(connection));
            }
        } else if (opcode.getOpcodeOutput() == OpcodeOutput.YESNO) {
            int cnt = countPrimaryConnections(sourceIcon);
            if (cnt == 0) {
                sourceIcon.addOverlay(CONNECTION_ICONS.get(connection));
            } else {
                cnt = countSecondaryConnections(sourceIcon);
                if (cnt == 0) {
                    sourceIcon.addOverlay(CONNECTION_ICONS.get(connection.getOpposite()));
                }
            }
        }
    }
}
Also used : IIcon(mcjty.lib.gui.icons.IIcon) Opcode(mcjty.rftoolscontrol.api.code.Opcode)

Example 7 with IIcon

use of mcjty.lib.gui.icons.IIcon in project RFToolsControl by McJty.

the class GuiProgrammer method selectSequence.

private void selectSequence(GridPos pos, Set<GridPos> done, boolean select) {
    if (!checkValidGridPos(pos)) {
        return;
    }
    if (done.contains(pos)) {
        return;
    }
    IIcon icon = getHolder(pos.getX(), pos.getY()).getIcon();
    if (icon == null) {
        return;
    }
    icon.removeOverlay("S");
    if (select) {
        icon.addOverlay(selectionIcon);
    }
    done.add(pos);
    selectSequence(pos.up(), done, select);
    selectSequence(pos.down(), done, select);
    selectSequence(pos.left(), done, select);
    selectSequence(pos.right(), done, select);
}
Also used : IIcon(mcjty.lib.gui.icons.IIcon)

Example 8 with IIcon

use of mcjty.lib.gui.icons.IIcon in project RFToolsControl by McJty.

the class GuiProgrammer method createValuePanel.

private Panel createValuePanel(ParameterDescription parameter, IIcon icon, IconHolder iconHolder, String tempDefault, boolean constantOnly) {
    Label<?> label = (Label<?>) new Label(mc, this).setText(StringUtils.capitalize(parameter.getName()) + ":").setHorizontalAlignment(HorizontalAlignment.ALIGH_LEFT).setDesiredHeight(13).setLayoutHint(new PositionalLayout.PositionalHint(0, 0, 53, 13));
    List<String> description = new ArrayList<>(parameter.getDescription());
    if (parameter.isOptional()) {
        description.set(description.size() - 1, description.get(description.size() - 1) + TextFormatting.GOLD + " [Optional]");
    }
    if (tempDefault != null && !tempDefault.isEmpty()) {
        description.add(TextFormatting.BLUE + tempDefault);
    }
    String[] tooltips = description.toArray(new String[description.size()]);
    TextField field = new TextField(mc, this).setText(tempDefault).setTooltips(tooltips).setDesiredHeight(13).setEditable(false).setLayoutHint(new PositionalLayout.PositionalHint(0, 12, 68, 13));
    Button button = new Button(mc, this).setText("...").setDesiredHeight(13).setTooltips(tooltips).addButtonEvent(w -> openValueEditor(icon, iconHolder, parameter, field, constantOnly)).setLayoutHint(new PositionalLayout.PositionalHint(58, 0, 11, 13));
    return new Panel(mc, this).setLayout(new PositionalLayout()).addChild(label).addChild(field).addChild(button).setDesiredWidth(68);
}
Also used : GenericGuiContainer(mcjty.lib.container.GenericGuiContainer) ProgramCardInstance(mcjty.rftoolscontrol.logic.grid.ProgramCardInstance) GeneralConfiguration(mcjty.rftoolscontrol.config.GeneralConfiguration) OpcodeCategory(mcjty.rftoolscontrol.api.code.OpcodeCategory) Opcode(mcjty.rftoolscontrol.api.code.Opcode) ParameterDescription(mcjty.rftoolscontrol.api.parameters.ParameterDescription) ParameterEditors(mcjty.rftoolscontrol.logic.editors.ParameterEditors) Keyboard(org.lwjgl.input.Keyboard) StringUtils(org.apache.commons.lang3.StringUtils) StyleConfig(mcjty.lib.base.StyleConfig) Panel(mcjty.lib.gui.widgets.Panel) Pair(org.apache.commons.lang3.tuple.Pair) PositionalLayout(mcjty.lib.gui.layout.PositionalLayout) ParameterEditor(mcjty.rftoolscontrol.logic.editors.ParameterEditor) Clipboard(java.awt.datatransfer.Clipboard) UnsupportedFlavorException(java.awt.datatransfer.UnsupportedFlavorException) ParameterTypeTools(mcjty.rftoolscontrol.logic.registry.ParameterTypeTools) VerticalLayout(mcjty.lib.gui.layout.VerticalLayout) List(java.util.List) Button(mcjty.lib.gui.widgets.Button) IIcon(mcjty.lib.gui.icons.IIcon) Connection(mcjty.rftoolscontrol.logic.Connection) TextField(mcjty.lib.gui.widgets.TextField) java.util(java.util) mcjty.lib.gui.widgets(mcjty.lib.gui.widgets) ParameterValue(mcjty.rftoolscontrol.api.parameters.ParameterValue) DataFlavor(java.awt.datatransfer.DataFlavor) HorizontalAlignment(mcjty.lib.gui.layout.HorizontalAlignment) OpcodeOutput(mcjty.rftoolscontrol.api.code.OpcodeOutput) Label(mcjty.lib.gui.widgets.Label) Window(mcjty.lib.gui.Window) GridInstance(mcjty.rftoolscontrol.logic.grid.GridInstance) ItemStack(net.minecraft.item.ItemStack) HorizontalLayout(mcjty.lib.gui.layout.HorizontalLayout) ProgramValidator(mcjty.rftoolscontrol.logic.compiled.ProgramValidator) GuiTools(mcjty.rftoolscontrol.gui.GuiTools) Logging(mcjty.lib.varia.Logging) ProgramCardItem(mcjty.rftoolscontrol.items.ProgramCardItem) StringSelection(java.awt.datatransfer.StringSelection) RFToolsControl(mcjty.rftoolscontrol.RFToolsControl) Parameter(mcjty.rftoolscontrol.api.parameters.Parameter) RFToolsCtrlMessages(mcjty.rftoolscontrol.network.RFToolsCtrlMessages) GridPos(mcjty.rftoolscontrol.logic.grid.GridPos) SelectionEvent(mcjty.lib.gui.events.SelectionEvent) Opcodes(mcjty.rftoolscontrol.logic.registry.Opcodes) TextFormatting(net.minecraft.util.text.TextFormatting) IOException(java.io.IOException) WindowManager(mcjty.lib.gui.WindowManager) java.awt(java.awt) Slot(net.minecraft.inventory.Slot) ResourceLocation(net.minecraft.util.ResourceLocation) ImageIcon(mcjty.lib.gui.icons.ImageIcon) ClickType(net.minecraft.inventory.ClickType) Label(mcjty.lib.gui.widgets.Label) PositionalLayout(mcjty.lib.gui.layout.PositionalLayout) Panel(mcjty.lib.gui.widgets.Panel) Button(mcjty.lib.gui.widgets.Button) TextField(mcjty.lib.gui.widgets.TextField)

Aggregations

IIcon (mcjty.lib.gui.icons.IIcon)8 Opcode (mcjty.rftoolscontrol.api.code.Opcode)6 Parameter (mcjty.rftoolscontrol.api.parameters.Parameter)4 ParameterDescription (mcjty.rftoolscontrol.api.parameters.ParameterDescription)4 ParameterValue (mcjty.rftoolscontrol.api.parameters.ParameterValue)4 GridInstance (mcjty.rftoolscontrol.logic.grid.GridInstance)4 Connection (mcjty.rftoolscontrol.logic.Connection)3 java.awt (java.awt)2 Clipboard (java.awt.datatransfer.Clipboard)2 DataFlavor (java.awt.datatransfer.DataFlavor)2 StringSelection (java.awt.datatransfer.StringSelection)2 UnsupportedFlavorException (java.awt.datatransfer.UnsupportedFlavorException)2 IOException (java.io.IOException)2 java.util (java.util)2 List (java.util.List)2 StyleConfig (mcjty.lib.base.StyleConfig)2 GenericGuiContainer (mcjty.lib.container.GenericGuiContainer)2 Window (mcjty.lib.gui.Window)2 WindowManager (mcjty.lib.gui.WindowManager)2 SelectionEvent (mcjty.lib.gui.events.SelectionEvent)2