public void GenerateFromSeed(string _jsonSeed) { ResetWorld(); SerializedWorld sWorld = JsonUtility.FromJson <SerializedWorld>(_jsonSeed); foreach (SerializedModule sMod in sWorld.modules) { RoomModule newModule = Instantiate(GetSpecificModule(sMod.code), sMod.position, Quaternion.Euler(0, sMod.rotation, 0), transform).GetComponent <RoomModule>(); newModule.gameObject.SetActive(true); m_spawnedModules.Add(newModule); m_roomCount++; newModule.SetId(m_roomCount); newModule.gameObject.name = ("Room " + m_roomCount + " : " + newModule.moduleCode); } for (int m = 0; m < m_spawnedModules.Count; m++) { for (int c = 0; c < m_spawnedModules[m].connectors.Count; c++) { if (m_spawnedModules[m].connectors[c].linkedModule == null) { m_spawnedModules[m].connectors[c].parentModule = m_spawnedModules[m]; m_spawnedModules[m].connectors[c].UniqueId = sWorld.modules[m].connections[c].uniqueId; m_spawnedModules[m].connectors[c].LinkedUniqueId = sWorld.modules[m].connections[c].linkedUniqueId; LinkModules(GetConnectorFromId(m_spawnedModules[m].connectors[c].UniqueId), GetConnectorFromId(m_spawnedModules[m].connectors[c].LinkedUniqueId)); } } } timeUi.text = "Time : 0"; genUi.text = "Generation : " + m_currentAttempts; modulesUi.text = "Modules : " + m_spawnedModules.Count; Debug.Log("SPAWNED WORLD FROM SEED"); }
public void CreateWorldSeed() { if (m_spawnedModules.Count >= 1) { SerializedWorld sWorld = new SerializedWorld(); sWorld.modules = new SerializedModule[m_spawnedModules.Count]; for (int m = 0; m < m_spawnedModules.Count; m++) { SerializedModule sMod = new SerializedModule(); RoomModule mod = m_spawnedModules[m]; sMod.id = mod.GetId(); sMod.code = mod.moduleCode; sMod.position = mod.transform.position; sMod.rotation = Mathf.RoundToInt(mod.transform.eulerAngles.y); sMod.connectedModuleId = new int[mod.connectors.Count]; sMod.connectedModuleCodes = new string[mod.connectors.Count]; sMod.connections = new SerializedConnector[mod.connectors.Count]; for (int c = 0; c < mod.connectors.Count; c++) { sMod.connectedModuleId[c] = mod.connectors[c].linkedModule.GetId(); sMod.connectedModuleCodes[c] = mod.connectors[c].linkedModule.moduleCode; sMod.connections[c] = new SerializedConnector(mod.connectors[c].UniqueId, mod.connectors[c].LinkedUniqueId); } sWorld.modules[m] = sMod; } string jsonWorld = JsonUtility.ToJson(sWorld); worldSeed = jsonWorld; Debug.Log("CREATED WORLD SEED : " + jsonWorld); } }
public void Save(Model.World world, FileInfo file) { var serializer = createXmlSerializer(); using (var fs = file.Create()) serializer.Serialize(fs, SerializedWorld.FromWorld(world)); var doc = new XDocument(genericDatastore.Serialize()); doc.Save(Path.ChangeExtension(file.FullName, "data.xml")); }