public void Save(string fileName) { if (!string.IsNullOrEmpty(fileName)) { LastFileName = fileName; } else if (string.IsNullOrEmpty(LastFileName)) { throw new ArgumentNullException("fileName"); } GUICircuitComponent[] components = FindObjectsOfType <GUICircuitComponent>(); Line[] lines = FindObjectsOfType <Line>(); BinaryFormatter binaryFormatter = new BinaryFormatter(); FileStream fileStream = new FileStream(LastFileName, FileMode.OpenOrCreate); List <SimulationElement> elementsToSerialize = new List <SimulationElement>(); List <LineEntity> linesToSerialize = new List <LineEntity>(); foreach (GUICircuitComponent component in components) { if (!component.CompareTag("ActiveItem")) { continue; } SimulationElement element = component.Entity; if (element != null) { elementsToSerialize.Add(element); } } foreach (Line line in lines) { linesToSerialize.Add(new LineEntity { StartConnectorId = line.Begin.GetComponentInChildren <Connector>().GetInstanceID(), EndConnectorId = line.End.GetComponentInChildren <Connector>().GetInstanceID(), LineType = line.TypeOfLine }); } SerializationPackage package = new SerializationPackage { LineEntities = linesToSerialize, SimulationElements = elementsToSerialize }; binaryFormatter.Serialize(fileStream, package); fileStream.Close(); }
protected void TransformFromEntity(SimulationElement simulationElement) { transform.position = new Vector3(simulationElement.PositionX, simulationElement.PositionY, -6); transform.rotation = new Quaternion(0, 0, simulationElement.RotationZ, simulationElement.RotationW); int indexer = 0; foreach (Connector connector in Connectors) { connector.TemporaryId = simulationElement.ConnectorIds[indexer]; indexer++; } }
protected void FillEntity(SimulationElement simulationElement) { simulationElement.PositionX = transform.position.x; simulationElement.PositionY = transform.position.y; simulationElement.RotationZ = transform.rotation.z; simulationElement.RotationW = transform.rotation.w; simulationElement.Id = GetInstanceID(); List <int> connectorIdList = new List <int>(Connectors.Count); foreach (Connector connector in Connectors) { connectorIdList.Add(connector.GetInstanceID()); } simulationElement.ConnectorIds = connectorIdList; }
void OnEnable() { profiler = GameProfiler.Get("GameProfiler"); if (profiler.GetCount() < 19) { pos = transform.position; string id = name + " speed"; var settings = profiler.Add(id); settings.min = 0; settings.max = maxSpeed; settings.height = 201; if (isSimulationElement) { id = name + " target speed"; settings = profiler.Add(id); settings.min = 0; settings.max = maxSpeed; settings.height = 101; id = name + " acceleration"; settings = profiler.Add(id); settings.min = -0.2f; settings.max = 0.2f; settings.height = 101; simElement = GetComponent <SimulationElement>(); } } else { profiler = null; enabled = false; } }
void Start() { simElement = GetComponent <SimulationElement>(); started = true; }