Exemplo n.º 1
0
        public static void EnsureDatabase()
        {
            if (db != null)
            {
                return;
            }

            GameDataFile gameData = Resources.Load <GameDataFile>("Data/GameDatabase");

            if (gameData == null)
            {
                gameData = ScriptableObject.CreateInstance <GameDataFile>();
                AssetDatabase.CreateAsset(gameData, "Assets/Resources/Data/GameDatabase.asset");
                EditorUtility.SetDirty(gameData);
                AssetDatabase.SaveAssets();
            }

            db = Snapshot <GameDatabase> .Deserialize(gameData.database);

            GameDatabase.ActiveInstance = db;

            if (gameData.debugReset)
            {
                db = Snapshot <GameDatabase> .DeserializeDefault();
            }
            else
            {
                db = Snapshot <GameDatabase> .Deserialize(gameData.database);
            }
            db.UpdateSceneEntities();
            db.UpdateProjectAssets();
        }
        private void LoadGameDataFile(string file, bool isUserData)
        {
            if (string.IsNullOrWhiteSpace(file) || !File.Exists(file))
            {
                return;
            }

            BaseGameData baseGameData = null;

            try
            {
                baseGameData = BaseGameData.Load(file);
            }
            catch
            {
                // do nothing, just swallow the error
            }

            var gameDataFile = new GameDataFile
            {
                CreatedDate = baseGameData?.Created ?? DateTime.MinValue,
                File        = file,
                FileName    = string.IsNullOrWhiteSpace(file) ? string.Empty : Path.GetFileNameWithoutExtension(file),
                IsUserData  = isUserData,
                Version     = baseGameData?.Version ?? "0.0.0",
                HasError    = baseGameData == null,
            };

            GameDataFiles.Add(gameDataFile);
        }
Exemplo n.º 3
0
        private void Save()
        {
            gameData          = Resources.Load <GameDataFile>("Data/GameDatabase");
            gameData.database = Snapshot <GameDatabase> .Serialize(GameDatabase.ActiveInstance);

            EditorUtility.SetDirty(gameData);
            state.Save();
        }
 private void Start()
 {
     #region Testing
     doesPlayerHaveControl = false;
     isInCombat            = false;
     isInDigitalWorld      = false;
     currentFile           = GameDataFile.Aplha;
     GameData.Instance.InitializeGameData();
     overworldPlayer = GameObject.FindGameObjectWithTag("Overworld_Controller").GetComponent <OverworldController>();
     inputState      = InputStates.Overworld;
     #endregion
 }