void CreateSavedComponentData(SavedComponentData componentData, BaseComponent baseComponent) { componentData.name = baseComponent.name; componentData.componentId = baseComponent.gameObject.GetInstanceID(); componentData.position = baseComponent.transform.position; componentData.rotation = baseComponent.transform.rotation.eulerAngles.z; ComponentReferences componentReferences = baseComponent.GetComponent <ComponentReferences>(); List <Connector> connectorList = componentReferences.connectorList; componentData.connectors = new SavedConnectorData[connectorList.Count]; for (int i = 0; i < connectorList.Count; ++i) { componentData.connectors[i] = new SavedConnectorData(); CreateSavedConnectorData(componentData.connectors[i], connectorList[i]); } List <PneumaticSolenoid> solenoidList = componentReferences.solenoidList; componentData.solenoids = new SavedSolenoidData[solenoidList.Count]; for (int i = 0; i < solenoidList.Count; ++i) { componentData.solenoids[i] = new SavedSolenoidData(); CreateSavedSolenoidData(componentData.solenoids[i], solenoidList[i]); } FillContactCorrelationInfo(componentData, baseComponent.GetComponent <Contact>()); FillCylinderInfo(componentData, baseComponent.GetComponent <CylinderEditing>()); FillCoilInfo(componentData, baseComponent.GetComponent <Coil>()); }
void FillCylinderInfo(SavedComponentData componentData, CylinderEditing cylinderEditing) { if (cylinderEditing) { componentData.cylinderData = new SavedCylinderData() { startingPercentage = cylinderEditing.startingPercentage, movementTime = cylinderEditing.movementTime }; } }
void FillCoilInfo(SavedComponentData componentData, Coil coil) { if (coil) { componentData.coilData = new SavedCoilData() { coilType = (int)coil.type, delay = coil.delay }; } }
void FillContactCorrelationInfo(SavedComponentData componentData, Contact contact) { componentData.isContact = false; componentData.contactTargetId = 0; if (contact != null) { if ((contact as IConfigurable).IsConfigured()) { componentData.isContact = true; componentData.contactTargetId = contact.correlationTarget.gameObject.GetInstanceID(); } } }