示例#1
0
        public virtual void Load(string filename, WorldSaveData saveData)
        {
            _context.SetStore(nameof(World), this);
            _context.SetStore(nameof(Player), Player.Instance);

            if (AudioManager.Instance && World.BackgroundMusic)
            {
                AudioManager.Instance.Push(World.BackgroundMusic, 0.0f, 1.0f, 0.0f);
            }

            _variables.LoadFrom(saveData.PersistentVariables, VariableDefinition.Saved);

            foreach (var zoneData in saveData.Zones)
            {
                var zone = World.GetZoneByName(zoneData.Name);
                var data = zone != null?GetZone(zone) : null;

                if (data != null)
                {
                    data.Load(zoneData);
                }
            }

            SaveFilename = filename;
        }