public List <SavedTopologyData> GetSavedTopologies() { List <SavedTopologyData> topologiesData = new List <SavedTopologyData> (); for (int i = 0; i < TOPOLOGIES_COUNT; i++) { string fileName = string.Format(topologyNameFormat, i); string path = Application.persistentDataPath + "/" + fileName; if (File.Exists(path)) { FileStream file = File.OpenRead(path); BinaryFormatter bf = new BinaryFormatter(); string json = (string)bf.Deserialize(file); file.Close(); SavedTopologyData topology = JsonUtility.FromJson <SavedTopologyData> (json); topologiesData.Add(topology); } else { topologiesData.Add(null); } } return(topologiesData); }
void saveCurrentTopologyOnSelectedSlot(string name) { int currentSelectedIndex = getCurrentSelectedIndex(); if (currentSelectedIndex != GlobalConst.INVALID_ID) { SavedTopologyData savedTopologyData = new SavedTopologyData(currentTopologyData, carsData, name); SaveManager.Instance.SaveTopologyOnSlot(savedTopologyData, currentSelectedIndex); refresh(); } }
void onNewTopologyLoaded(SavedTopologyData savedTopologyData) { if (savedTopologyData != null && savedTopologyData.TopologyData != null && savedTopologyData.CarSimpleData != null) { NetworkTopologySimpleData newTopology = savedTopologyData.TopologyData; geneticsManager.SetNetworkTopology(newTopology); geneticsManager.ResetSimulation(); geneticsManager.SetNewCars(savedTopologyData.CarSimpleData); geneticsManager.ResetCars(); geneticsManager.ActivateCars(); geneticsUIController.RefreshViews(); } }
public void SaveTopologyOnSlot(SavedTopologyData savedTopologyData, int slotId) { if (savedTopologyData != null && slotId >= 0 && slotId < TOPOLOGIES_COUNT) { string json = JsonUtility.ToJson(savedTopologyData); string fileName = string.Format(topologyNameFormat, slotId); string destination = Application.persistentDataPath + "/" + fileName; FileStream file; if (File.Exists(destination)) { file = File.OpenWrite(destination); } else { file = File.Create(destination); } BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(file, json); file.Close(); } }
public void Setup(SavedTopologyData savedTopologyData) { if (savedTopologyData != null) { SavedTopologyData = savedTopologyData; saveTopologContnet.SetActive(true); emptyListElementContent.SetActive(false); topologyName.text = savedTopologyData.TopologyName.ToUpper(); if (savedTopologyData.TopologyData != null) { sensors.text = savedTopologyData.TopologyData.SensorsCount.ToString(); hiddenLayer.text = savedTopologyData.TopologyData.HiddenLayerNeuronsCount.ToString(); int tmp = (savedTopologyData.TopologyData.MovementAngleInput ? 1 : 0) + (savedTopologyData.TopologyData.SteerAngleInput ? 1 : 0) + (savedTopologyData.TopologyData.TorqueInput ? 1 : 0) + (savedTopologyData.TopologyData.VelocityInput ? 1 : 0); additionalInputs.text = tmp.ToString(); tmp = (savedTopologyData.TopologyData.HandbrakeOutput ? 1 : 0) + (savedTopologyData.TopologyData.TorqueOutput ? 1 : 0) + 1; outputs.text = tmp.ToString(); } if (savedTopologyData.CarSimpleData != null) { carsCount.text = savedTopologyData.CarSimpleData.Count.ToString(); } } else { SavedTopologyData = null; saveTopologContnet.SetActive(false); emptyListElementContent.SetActive(true); } }