- SubmodelParameters submodelParams = new SubmodelParameters();
- submodelParams.innerScale = comp.getSubmodelScale();
-
- Map<String, GUIComponent> components = new HashMap<>(comp.submodel.getComponentsByName());
- components.remove(SubmodelComponent.SUBMODEL_INTERFACE_NAME);
- InnerComponentParams[] comps = new InnerComponentParams[components.size()];
- int i1 = 0;
- for (GUIComponent innerComp : components.values())
- {
- InnerComponentParams innerParams = new InnerComponentParams();
- comps[i1] = innerParams;
- innerParams.pos = new Point(innerComp.getPosX(), innerComp.getPosY());
- DeserializedSubmodelComponent innerCompCasted;
- if (innerComp instanceof DeserializedSubmodelComponent
- && (innerCompCasted = (DeserializedSubmodelComponent) innerComp).idForSerializingOverride != null)
- {
- innerParams.id = innerCompCasted.idForSerializingOverride;
- innerParams.params = innerCompCasted.paramsForSerializingOverride;
- } else
- {
- innerParams.id = getIdentifier.apply(innerComp);
- innerParams.params = innerComp.getParamsForSerializing();
- }
- innerParams.name = innerComp.name;
- i1++;
- }
- submodelParams.subComps = comps;
-
- List<GUIWire> wireList = comp.submodel.getWires();
- InnerWireParams wires[] = new InnerWireParams[wireList.size()];
- i1 = 0;
- for (GUIWire wire : wireList)
- {
- InnerWireParams inner = new InnerWireParams();
- wires[i1] = inner;
- InnerPinParams pin1Params = new InnerPinParams(), pin2Params = new InnerPinParams();
-
- pin1Params.pinName = wire.getPin1().name;
- pin1Params.compName = wire.getPin1().component.name;
- pin2Params.pinName = wire.getPin2().name;
- pin2Params.compName = wire.getPin2().component.name;
- inner.pin1 = pin1Params;
- inner.pin2 = pin2Params;
- inner.path = wire.getPath();
- i1++;
- }
- submodelParams.innerWires = wires;
-
- SubmodelComponentParams params = new SubmodelComponentParams();
- params.submodel = submodelParams;