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