示例#1
0
    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>());
    }
示例#2
0
 void FillCylinderInfo(SavedComponentData componentData, CylinderEditing cylinderEditing)
 {
     if (cylinderEditing)
     {
         componentData.cylinderData = new SavedCylinderData()
         {
             startingPercentage = cylinderEditing.startingPercentage,
             movementTime       = cylinderEditing.movementTime
         };
     }
 }
示例#3
0
 void FillCoilInfo(SavedComponentData componentData, Coil coil)
 {
     if (coil)
     {
         componentData.coilData = new SavedCoilData()
         {
             coilType = (int)coil.type,
             delay    = coil.delay
         };
     }
 }
示例#4
0
 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();
         }
     }
 }