コード例 #1
0
        public IEnumerator UserCanRenameSceneTest()
        {
            yield return(StartCoroutine(Q.driver.Click(sceneseBtn, "Click on scenes.")));

            SceneTile sceneTile = MainScreen.Instance.GetSceneTile("test scene");

            yield return(StartCoroutine(Q.assert.IsTrue(sceneTile != null, "Scene not found!")));

            yield return(StartCoroutine(Q.driver.Click(sceneTile.GetOptionButton().gameObject, "Click on option menu.")));

            yield return(StartCoroutine(Q.assert.IsTrue(sceneOptionMenu.GetComponent <SimpleSideMenu>().CurrentState == SimpleSideMenu.State.Open, "Option menu not opened!")));

            yield return(StartCoroutine(Q.driver.Click(sceneRename, "Click on scene rename.")));

            inputDialog.GetComponent <InputDialog>().SetInputValue("test scene renamed");
            yield return(StartCoroutine(Q.driver.Click(inputDialogOKButton, "Click on Got it button")));

            // wait for server to respond
            yield return(new WaitForSeconds(2));

            sceneTile = MainScreen.Instance.GetSceneTile("test scene renamed");
            yield return(StartCoroutine(Q.assert.IsTrue(sceneTile != null, "Scene not found!")));

            bool sceneExist = false;

            foreach (IO.Swagger.Model.ListScenesResponseData scene in Base.GameManager.Instance.Scenes)
            {
                if (scene.Name == "test scene renamed")
                {
                    sceneExist = true;
                }
            }
            yield return(StartCoroutine(Q.assert.IsTrue(sceneExist, "Test scene does not exist")));
        }
コード例 #2
0
ファイル: MainScreen.cs プロジェクト: robofit/arcor2_areditor
 public void UpdateScenes(object sender, EventArgs eventArgs)
 {
     SceneTiles.Clear();
     foreach (Transform t in ScenesDynamicContent.transform)
     {
         if (t.gameObject.tag != "Persistent")
         {
             Destroy(t.gameObject);
         }
     }
     foreach (IO.Swagger.Model.ListScenesResponseData scene in Base.GameManager.Instance.Scenes)
     {
         SceneTile tile    = Instantiate(SceneTilePrefab, ScenesDynamicContent.transform).GetComponent <SceneTile>();
         bool      starred = PlayerPrefsHelper.LoadBool("scene/" + scene.Id + "/starred", false);
         if (scene.Problems == null)
         {
             tile.InitTile(scene.Name,
                           () => Base.GameManager.Instance.OpenScene(scene.Id),
                           () => SceneOptionMenu.Open(tile),
                           starred,
                           scene.Created,
                           scene.Modified,
                           scene.Id);
         }
         else
         {
             tile.InitInvalidScene(scene.Name, starred, scene.Created, scene.Modified, scene.Id, scene.Problems.FirstOrDefault());
         }
         SceneTiles.Add(tile);
     }
     SortCurrentList();
     GameManager.Instance.HideLoadingScreen();
 }
コード例 #3
0
 public void UpdateScenes(object sender, EventArgs eventArgs)
 {
     SceneTiles.Clear();
     foreach (Transform t in ScenesDynamicContent.transform)
     {
         Destroy(t.gameObject);
     }
     foreach (IO.Swagger.Model.ListScenesResponseData scene in Base.GameManager.Instance.Scenes)
     {
         SceneTile tile    = Instantiate(SceneTilePrefab, ScenesDynamicContent.transform).GetComponent <SceneTile>();
         bool      starred = PlayerPrefsHelper.LoadBool("scene/" + scene.Id + "/starred", false);
         tile.InitTile(scene.Name,
                       () => Base.GameManager.Instance.OpenScene(scene.Id),
                       () => SceneOptionMenu.Open(tile),
                       starred,
                       scene.Modified,
                       scene.Modified,
                       scene.Id);
         SceneTiles.Add(tile);
     }
     SortCurrentList();
     //Button button = Instantiate(TileNewPrefab, ScenesDynamicContent.transform).GetComponent<Button>();
     // TODO new scene
     //button.onClick.AddListener(ShowNewSceneDialog);
 }
コード例 #4
0
        public async Task <IActionResult> Save(SceneTile tile)
        {
            if (ModelState.IsValid)
            {
                return(await SaveBaseTile(ConfigStore, tile));
            }

            ViewBag.Entities = (await EntityClient.GetEntities("scene")).OrderBy(e => e).Select(e => new SelectListItem(e, e));
            return(View("Add", tile));
        }
コード例 #5
0
        public IEnumerator UserCanRemoveSceneTest()
        {
            yield return(StartCoroutine(Q.driver.Click(sceneseBtn, "Click on scenes.")));

            SceneTile sceneTile = MainScreen.Instance.GetSceneTile("test scene renamed");

            yield return(StartCoroutine(Q.assert.IsTrue(sceneTile != null, "Scene not found!")));

            yield return(StartCoroutine(Q.driver.Click(sceneTile.GetOptionButton().gameObject, "Click on option menu.")));

            yield return(StartCoroutine(Q.assert.IsTrue(sceneOptionMenu.GetComponent <SimpleSideMenu>().CurrentState == SimpleSideMenu.State.Open, "Option menu not opened!")));

            yield return(StartCoroutine(Q.driver.Click(sceneRemove, "Click on scene remove.")));

            yield return(StartCoroutine(Q.driver.Click(confirmationDialogOKButton, "Click on ok button")));

            // wait for server to respond
            yield return(new WaitForSeconds(2));

            try {
                sceneTile = MainScreen.Instance.GetSceneTile("test scene renamed");
            } catch (ItemNotFoundException) {
                sceneTile = null;
            }
            yield return(StartCoroutine(Q.assert.IsTrue(sceneTile == null, "Scene should be removed but it is not!")));

            bool sceneExist = false;

            foreach (IO.Swagger.Model.ListScenesResponseData scene in Base.GameManager.Instance.Scenes)
            {
                if (scene.Name == "test scene renamed")
                {
                    sceneExist = true;
                }
            }
            yield return(StartCoroutine(Q.assert.IsTrue(!sceneExist, "Test scene should not exist")));
        }
コード例 #6
0
 public void Open(SceneTile sceneTile)
 {
     this.sceneTile = sceneTile;
     Open((Tile)sceneTile);
 }
コード例 #7
0
ファイル: SceneManager.cs プロジェクト: jayrulez/TOMClassic
        public static List <SceneObject> RefreshSceneObjects(int id, int mapWidth, int mapHeight, SceneFreshReason reason)
        {
            List <ScenePosData> cachedMapData = new List <ScenePosData>();
            var cachedSpecialData             = new Dictionary <int, DbSceneSpecialPosData>();
            var filePath = ConfigData.GetSceneConfig(id).TilePath;

            List <DbSceneSpecialPosData> specialDataList = new List <DbSceneSpecialPosData>();

            if (reason != SceneFreshReason.Load || UserProfile.Profile.InfoWorld.PosInfos == null || UserProfile.Profile.InfoWorld.PosInfos.Count <= 0)
            {//重新生成
                UserProfile.InfoBasic.DungeonRandomSeed = MathTool.GetRandom(int.MaxValue);
                Random r = new Random(UserProfile.InfoBasic.DungeonRandomSeed);
                SceneQuestBook.LoadSceneFile(mapWidth, mapHeight, filePath, r, cachedMapData, specialDataList);
                FilterSpecialData(specialDataList, cachedSpecialData);
                var questCellCount = cachedMapData.Count - cachedSpecialData.Count;
                GenerateSceneRandomInfo(id, questCellCount, cachedMapData, cachedSpecialData);
            }
            else
            {//从存档加载
                Random r = new Random(UserProfile.InfoBasic.DungeonRandomSeed);
                SceneQuestBook.LoadSceneFile(mapWidth, mapHeight, filePath, r, cachedMapData, specialDataList);
                foreach (var posData in UserProfile.Profile.InfoWorld.PosInfos)
                {
                    cachedSpecialData[posData.Id] = posData;
                }
            }

            List <SceneObject> sceneObjects = new List <SceneObject>();

            foreach (var scenePosData in cachedMapData)
            {
                DbSceneSpecialPosData cachedData;
                cachedSpecialData.TryGetValue(scenePosData.Id, out cachedData);

                SceneObject so;
                if (cachedData != null)
                {
                    switch (cachedData.Type)
                    {
                    case "Quest":
                        so          = new SceneQuest(scenePosData.Id, scenePosData.X, scenePosData.Y, scenePosData.Width, scenePosData.Height, cachedData.Info);
                        so.Disabled = cachedData.Disabled; break;

                    case "Warp":
                        so          = new SceneWarp(scenePosData.Id, scenePosData.X, scenePosData.Y, scenePosData.Width, scenePosData.Height, cachedData.Info);
                        so.Disabled = cachedData.Disabled;
                        if (ConfigData.GetSceneConfig(id).Type == SceneTypes.Common && reason == SceneFreshReason.Warp)
                        {
                            cachedData.Disabled = true;
                            so.Disabled         = true;//如果是切场景,切到战斗场景,所有传送门自动关闭
                        }
                        break;

                    default:
                        so = new SceneTile(scenePosData.Id, scenePosData.X, scenePosData.Y, scenePosData.Width, scenePosData.Height); break;
                    }
                    so.Flag       = cachedData.Flag;
                    so.MapSetting = cachedData.MapSetting;
                }
                else
                {
                    so          = new SceneTile(scenePosData.Id, scenePosData.X, scenePosData.Y, scenePosData.Width, scenePosData.Height); break;
                    so.Disabled = true;
                    //throw new Exception("RefreshSceneObjects error");
                }
                sceneObjects.Add(so);
            }

            return(sceneObjects);
        }
コード例 #8
0
        /// <summary>
        /// 创建地形分块
        /// </summary>
        public void TerrainTileCreate(Vector2 rOffset)
        {
            if (mTerrainData == null)
            {
                return;
            }

            var   rSplatMaps = mTerrainData.splatPrototypes;
            Scene rScene     = EditorSceneManager.GetActiveScene();

            LargeScene rLargeScene = ScriptableObject.CreateInstance <LargeScene>();

            rLargeScene.ID       = rScene.name;
            rLargeScene.Size     = mTerrainData.size;
            rLargeScene.TileRows = mTileNumHeight;
            rLargeScene.TileCols = mTileNumWidth;
            rLargeScene.Offset   = rOffset;

            // 保存大场景数据
            string rLargeSceneConfigPath = string.Format(MultiSceneDir + "MultiScene/{0}.asset", rScene.name);

            AssetDatabase.CreateAsset(rLargeScene, rLargeSceneConfigPath);
            AssetDatabase.Refresh();

            int            k         = 0;
            List <Terrain> rTerrains = new List <Terrain>();

            for (int i = 0; i < mTileNumHeight; i++)
            {
                for (int j = 0; j < mTileNumWidth; j++)
                {
                    TerrainData rTerrainData = new TerrainData();
                    rTerrainData.heightmapResolution = mTileSize;
                    rTerrainData.baseMapResolution   = mTerrainData.baseMapResolution;
                    rTerrainData.SetDetailResolution(mTerrainData.detailResolution, 8);
                    float[,] rHeights = mTerrainData.GetHeights((mTileSize - 1) * i, (mTileSize - 1) * j, mTileSize, mTileSize);
                    rTerrainData.SetHeights(0, 0, rHeights);
                    rTerrainData.size            = new Vector3(mTerrainData.size.x / mTileNumWidth, mTerrainData.size.y, mTerrainData.size.z / mTileNumHeight);
                    rTerrainData.splatPrototypes = CreateSplatPrototypes(rSplatMaps, mTerrainData.baseMapResolution, i, j);
                    float[,,] rAlphaMaps         = mTerrainData.GetAlphamaps((mTileSize - 1) * i, (mTileSize - 1) * j, mTileSize - 1, mTileSize - 1);

                    string rTerrainPath       = string.Format(MultiSceneDir + "{0}/tile_{1}_{2}.asset", rScene.name, i, j);
                    string rTerrainConfigPath = string.Format(MultiSceneDir + "{0}/tile_{1}_{2}_config.asset", rScene.name, i, j);

                    if (!Directory.Exists(Path.GetDirectoryName(rTerrainPath)))
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(rTerrainPath));
                    }

                    SceneTile rTile = ScriptableObject.CreateInstance <SceneTile>();
                    rTile.ID       = k;
                    rTile.Row      = i;
                    rTile.Col      = j;
                    rTile.ParentID = rLargeScene.ID;
                    rTile.Size     = mTileSize;
                    rTile.Offset   = new Vector2(rTerrainData.size.x * i, rTerrainData.size.z * j);

                    AssetDatabase.CreateAsset(rTerrainData, rTerrainPath);
                    AssetDatabase.CreateAsset(rTile, rTerrainConfigPath);
                    AssetDatabase.Refresh();

                    rTerrainData = AssetDatabase.LoadAssetAtPath(rTerrainPath, typeof(TerrainData)) as TerrainData;
                    var rTerrainObj = Terrain.CreateTerrainGameObject(rTerrainData);
                    rTerrainObj.name = string.Format("tile_{0}_{1}", i, j);
                    rTerrainObj.transform.position = new Vector3(rTile.Offset.x + rOffset.x, 0, rTile.Offset.y + rOffset.y);
                    Terrain rTerrain = rTerrainObj.GetComponent <Terrain>();
                    rTerrain.materialType = Terrain.MaterialType.BuiltInLegacyDiffuse;
                    rTerrain.terrainData.alphamapResolution = mTileSize - 1;
                    rTerrain.terrainData.SetAlphamaps(0, 0, rAlphaMaps);

                    rTerrains.Add(rTerrain);

                    AssetDatabase.Refresh();
                    AssetDatabase.SaveAssets();

                    k++;
                }
            }
        }