public void GeneratedWorld_Reserialization_DontChange() { //Note: this test can't check if some information is missing in ***Data. //It only checks correctness of data transfer between WorldContext and WorldContextData and (just in case) Json serialization between it. //Serialize generated world to stream1 -> deserialize -> serialize again to stream2 -> compare streams var sourceWorld = UniverseGeneration.GenerateWorld((ShipData)SpacecraftStructureHelper.GetTestSpacecraftData()); var stream1 = new MemoryStream(); sourceWorld.SerializeTo(stream1); stream1.Position = 0; var streamReader1 = new StreamReader(stream1); String str1 = streamReader1.ReadToEnd(); stream1.Position = 0; var deserializedWorld = WorldContext.DeserializeFrom(stream1); //Stream1 is disposed after this, but we already have str1 var stream2 = new MemoryStream(); deserializedWorld.SerializeTo(stream2); stream2.Position = 0; var streamReader2 = new StreamReader(stream2); String str2 = streamReader2.ReadToEnd(); streamReader1.Close(); streamReader2.Close(); Assert.AreEqual(str1, str2); }
public void StartNewGame() { var worldContext = UniverseGeneration.GenerateWorld(); var worldHolder = WorldHolder.GetWorldHolderInCurrentScene(); Assert.IsFalse(worldHolder.IsWorldLoaded, "Some world was already loaded in WorldHolder while started a new game from main menu."); worldHolder.WorldContext = worldContext; SceneManager.LoadScene("Space"); }
private void InitializeSharedGO() { var found = GameObject.Find(_sharedGOPrefab.name); if (found == null) { SharedGO = Instantiate(_sharedGOPrefab); SharedGO.name = "SharedGO"; DontDestroyOnLoad(SharedGO); if (SceneManager.GetActiveScene().name == "Space") //Crutch for generating world not only from main menu { SharedGO.GetComponent <WorldHolder>().WorldContext = UniverseGeneration.GenerateWorld(); } } else { SharedGO = found; } }