Search in sources :

Example 1 with GuiElementSimple

use of buildcraft.lib.gui.GuiElementSimple in project BuildCraft by BuildCraft.

the class ElementType method deserialize.

public final IGuiElement deserialize(BuildCraftJsonGui gui, IGuiPosition parent, JsonGuiInfo info, JsonGuiElement json) {
    IGuiElement element = deserialize0(gui, parent, info, json);
    if (element instanceof GuiElementSimple) {
        ((GuiElementSimple) element).name = json.fullName;
    }
    gui.context.putConstant(json.fullName + ".pos", IGuiPosition.class, element);
    gui.context.putConstant(json.fullName + ".area", IGuiArea.class, element);
    gui.varData.addNodes(json.createTickableNodes());
    List<IGuiElement> children = new ArrayList<>();
    IContainingElement container;
    if (element instanceof IContainingElement) {
        container = (IContainingElement) element;
    } else {
        container = new GuiElementContainerResizing(gui, element);
        container.getChildElements().add(element);
    }
    addChildren(gui, container.getChildElementPosition(), info, json, "children", children::add);
    // Special case tooltips + help
    if (json.json.has("help") && !(this instanceof ElementTypeHelp)) {
        addType(gui, parent, info, json, "help", children::add, ElementTypeHelp.INSTANCE);
    }
    if (json.json.has("tooltip") && !(this instanceof ElementTypeToolTip)) {
        addType(gui, parent, info, json, "tooltip", children::add, ElementTypeToolTip.INSTANCE);
    }
    if (!children.isEmpty()) {
        element = container;
        container.getChildElements().addAll(children);
        container.calculateSizes();
    }
    return element;
}
Also used : IContainingElement(buildcraft.lib.gui.IContainingElement) GuiElementSimple(buildcraft.lib.gui.GuiElementSimple) ArrayList(java.util.ArrayList) IGuiElement(buildcraft.lib.gui.IGuiElement) GuiElementContainerResizing(buildcraft.lib.gui.elem.GuiElementContainerResizing)

Aggregations

GuiElementSimple (buildcraft.lib.gui.GuiElementSimple)1 IContainingElement (buildcraft.lib.gui.IContainingElement)1 IGuiElement (buildcraft.lib.gui.IGuiElement)1 GuiElementContainerResizing (buildcraft.lib.gui.elem.GuiElementContainerResizing)1 ArrayList (java.util.ArrayList)1