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;
}
Aggregations