Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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");
        }
Exemplo n.º 3
0
        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;
            }
        }