public static void Deserialize(byte[] data)
        {
            if (data == null)
            {
                Log.Debug($"NCState.Deserialize(data=null)");
                Instance = new NCState();
            }
            else
            {
                Log.Debug($"NCState.Deserialize(data): data.Length={data?.Length}");
                Instance = SerializationUtil.Deserialize(data, default) as NCState;
                if (Instance?.Version != null)   //2.1.1 or above
                {
                    Log.Debug("Deserializing V" + Instance.Version);
                    SerializationUtil.DeserializationVersion = new Version(Instance.Version);
                }
                else
                {
                    // 2.0
                    Log.Debug("Deserializing version 2.0");
                    Instance.Version    = "2.0";
                    Instance.GameConfig = GameConfigT.LoadGameDefault; // for the sake of feature proofing.
                    Instance.GameConfig.UnviversalSlopeFixes = true;   // in this version I do apply slope fixes.
                }
            }
            Log.Debug($"setting UnviversalSlopeFixes to {Instance.GameConfig.UnviversalSlopeFixes}");
            Settings.GameConfig = Instance.GameConfig;
            Settings.UpdateGameSettings();
            var version = new Version(Instance.Version);

            SegmentEndManager.Deserialize(Instance.SegmentEndManagerData, version);
            NodeManager.Deserialize(Instance.NodeManagerData, version);
        }
Esempio n. 2
0
 public static byte[] Serialize()
 {
     Instance = new NCState {
         NodeManagerData       = NodeManager.Serialize(),
         SegmentEndManagerData = SegmentEndManager.Serialize(),
         GameConfig            = Settings.GameConfig,
     };
     return(SerializationUtil.Serialize(Instance));
 }
        public static byte[] Serialize()
        {
            NodeManager.ValidateAndHeal(false);
            Instance = new NCState {
                NodeManagerData       = NodeManager.Serialize(),
                SegmentEndManagerData = SegmentEndManager.Serialize(),
                GameConfig            = Settings.GameConfig,
            };

            Log.Debug("NCState.Serialize(): saving UnviversalSlopeFixes as " +
                      Instance.GameConfig.UnviversalSlopeFixes);

            return(SerializationUtil.Serialize(Instance));
        }