Пример #1
0
        Task IDatabaseAgent.CreateScene(DatabaseScene scene)
        {
            var collection = database.GetCollection <DatabaseScene>("scenes");

            collection.InsertOne(scene);
            return(Task.FromResult(true));
        }
Пример #2
0
        public ServerSceneActor(DatabaseScene dscene, DatabaseAgentRef database, IConnection conn)

        {
            _logger     = LogManager.GetLogger($"[Scene: {dscene.ServerName}]");
            _serverName = dscene.ServerName;
            _sceneName  = dscene.SceneName;
            _bundleId   = dscene.BundleId;
            _database   = database;
            _conn       = conn;
            _localId    = dscene.LocalId;
            _ownerId    = Guid.Empty;
        }
Пример #3
0
        public ServerSceneActor(DatabaseScene dscene, IDatabaseAgent database, IConnection conn)
            : base(dscene.LocalId, GenerateGuids.GetActorGuid(TYPEACTOR.EMPTY))
        {
            _logger     = LogManager.GetLogger($"[Scene: {dscene.ServerName}]");
            _serverName = dscene.ServerName;
            _sceneName  = dscene.SceneName;
            _bundleId   = dscene.BundleId;
            _database   = database;
            _conn       = conn;

            _logger.Info("is online");
        }
Пример #4
0
        async Task IDatabaseAgent.CreateScene(DatabaseScene scene)
        {
            var collection = database.GetCollection <DatabaseScene>("scenes");

            collection.InsertOne(scene);
        }
Пример #5
0
        public static void CB_Scene_UpdateDatabase()
        {
            cb_scenes_displayProgressBar = true;
            cb_scenes_action             = "Part 1 of 3: Getting scenes database...";
            cb_scenes_progress           = 1 / 2;
            if (!E_Helpers.DirExists(string.Format("Assets{0}Resources{0}ScenesDatabase{0}", Path.DirectorySeparatorChar)))
            {
                E_Helpers.CreateDirectory(string.Format("Assets{0}Resources{0}ScenesDatabase{0}", Path.DirectorySeparatorChar));
            }
            SceneDatabase database;

            if (E_Helpers.FileExists(string.Format("Assets{0}Resources{0}ScenesDatabase{0}ScenesDatabase.asset", Path.DirectorySeparatorChar)))
            {
                database = (SceneDatabase)AssetDatabase.LoadAssetAtPath(string.Format("Assets{0}Resources{0}ScenesDatabase{0}ScenesDatabase.asset", Path.DirectorySeparatorChar), typeof(SceneDatabase));
            }
            else
            {
                database = ScriptableObject.CreateInstance <SceneDatabase>();
                AssetDatabase.CreateAsset(database, string.Format("Assets{0}Resources{0}ScenesDatabase{0}ScenesDatabase.asset", Path.DirectorySeparatorChar));
            }
            cb_scenes_action   = "Part 1 of 3: Gathering Scenes List...";
            cb_scenes_progress = 2 / 2;
            List <DatabaseScene> scenes = (database.storedScenesData != null) ? database.storedScenesData : new List <DatabaseScene>();

            scenes = scenes.Where(item => item != null).ToList();
            EditorBuildSettingsScene[] editorScenes = EditorBuildSettings.scenes;
            for (int i = 0; i < editorScenes.Length; i++)
            {
                string sceneName = editorScenes[i].path.Split('/')[editorScenes[i].path.Split('/').Length - 1];
                sceneName          = sceneName.Replace(".unity", "");
                cb_scenes_action   = "Part 2 of 3: Adding Scene: " + sceneName;
                cb_scenes_progress = i / editorScenes.Length;
                int foundSceneIndex = scenes.FindIndex(target => target.name == sceneName);
                if (foundSceneIndex > -1)
                {
                    scenes[foundSceneIndex].path    = editorScenes[i].path;
                    scenes[foundSceneIndex].index   = i;
                    scenes[foundSceneIndex].enabled = editorScenes[i].enabled;
                    EditorUtility.SetDirty(scenes[foundSceneIndex]);
                }
                else
                {
                    DatabaseScene newScene = ScriptableObject.CreateInstance <DatabaseScene>();
                    newScene.name      = sceneName;
                    newScene.path      = editorScenes[i].path;
                    newScene.sceneName = sceneName;
                    newScene.index     = i;
                    newScene.enabled   = editorScenes[i].enabled;
                    AssetDatabase.CreateAsset(newScene, string.Format("Assets{0}Resources{0}ScenesDatabase{0}{1}.asset", Path.DirectorySeparatorChar, sceneName));
                    Debug.Log("Create " + sceneName + " scene asset.");
                    scenes.Add(newScene);
                    Debug.Log("Added " + sceneName + " scene asset to scene database.");
                }
            }
            SetAllLoadPointsInAllScenes(ref scenes);
            cb_scenes_action          = "Part 3 of 3: Saving built database.. ";
            cb_scenes_progress        = 1 / 1;
            database.storedScenesData = scenes;
            EditorUtility.SetDirty(database);
            AssetDatabase.SaveAssets();
            cb_scenes_displayProgressBar = false;

            GameObject roomButton = E_Helpers.GetPrefabReference("Assets/InvectorMultiplayer/UI/RoomButton.prefab");

            roomButton.GetComponent <RoomButton>().database = database;
            E_Helpers.SaveAsPrefab(roomButton, "Assets/InvectorMultiplayer/UI/RoomButton.prefab");
            if (EditorUtility.DisplayDialog("Success!", "The scene database has successfully been updated!",
                                            "Okay"))
            {
            }

            Debug.Log("Successfully updated the ScenesDatabase!");
        }