예제 #1
0
    void CustomProperties()
    {
        EditorGUILayout.BeginHorizontal();


        if (GUILayout.Button("Toggle Blocked"))
        {
            foreach (Tile t in targets)
            {
                t.ToggleBlocked();
                SceneView.RepaintAll();
            }
        }


        if (GUILayout.Button("Toggle Camp"))
        {
            foreach (Tile t in targets)
            {
                t.ToggleCamp();
                SceneView.RepaintAll();
            }
        }

        if (GUILayout.Button("Toggle BlockSight"))
        {
            foreach (Tile t in targets)
            {
                t.ToggleBlockSight();
                SceneView.RepaintAll();
            }
        }
        EditorGUILayout.EndHorizontal();

        if (targets.Length > 1)
        {
            if (GUILayout.Button("Reset Custom Settings"))
            {
                foreach (Tile t in targets)
                {
                    BakeGrid.ResetTile(t);

                    SceneView.RepaintAll();
                }
            }

            EditorGUILayout.HelpBox(".. not supported in multiselect", MessageType.Info, true);
        }
        else if ((target as Tile).customTile)
        {
            if (GUILayout.Button("Reset Custom Settings"))
            {
                BakeGrid.ResetTile(target as Tile);
            }
            EditorGUILayout.HelpBox("CUSTOM SETTINGS! \nCustom tile settings will not get properties from props", MessageType.Warning, true);
            SceneView.RepaintAll();
        }
    }
예제 #2
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        if (GUILayout.Button("Reset Grid"))
        {
            (target as TileManager).SpawnBaseGrid();
            BakeGrid.Bake(target as TileManager);
        }
        // if (GUILayout.Button("Fetch Tiles Grid")) (target as TileManager).FetchTiles();
        if (GUILayout.Button("Update Positions"))
        {
            (target as TileManager).SetTilesToGridPosition((target as TileManager).FetchTiles());
        }
    }
예제 #3
0
    void TileManagerTools()
    {
        if (Grid == null)
        {
            return;
        }

        if (Selection.activeGameObject != null &&
            Selection.activeGameObject != Grid.gameObject &&
            Selection.activeGameObject.GetComponent <TileManager>() != null &&
            GUILayout.Button("Append Grid Test", GUILayout.Width(100))
            )
        {
            Grid.AppendGrid(Selection.activeGameObject.GetComponent <TileManager>());
        }


        if (GUILayout.Button("Spawn Random Region"))
        {
            //  WorldExtender.SpawnRegion(  RegionLoader.GetWeightedRegionForLevel(0, new List<RegionConfig>()), Grid);

            if (CurrentTileSelection != null)
            {
                CurrentTileSelection.Clear();
            }
        }

        if (GUILayout.Button("Spawn Next Region"))
        {
            WorldExtender.Instance.SpawnNext();

            if (CurrentTileSelection != null)
            {
                CurrentTileSelection.Clear();
            }
        }

        if (GUILayout.Button("Spawn Camp Region"))
        {
            // WorldExtender.SpawnRegion(RegionLoader.GetCamp(0), Grid);

            if (CurrentTileSelection != null)
            {
                CurrentTileSelection.Clear();
            }
        }

        if (GUILayout.Button("Select All"))
        {
            CurrentTileSelection.Clear();
            CurrentTileSelection.AddRange(Grid.GetTileList());
            SelectCurrentTilesInEditor();
        }
        if (GUILayout.Button("Select Border"))
        {
            List <Tile> border = TileManager.GetBorderTiles(CurrentTileSelection, Grid, true);
            CurrentTileSelection.Clear();
            CurrentTileSelection.AddRange(border);
            SelectCurrentTilesInEditor();
        }


        if (GUILayout.Button("Show Current Crumble Weights"))
        {
            if (weighted == null)
            {
                weighted = TileWeighted.GetWeightedTiles(Grid);
            }
            else
            {
                weighted = null;
            }
            SceneView.RepaintAll();
        }

        if (GUILayout.Button("Reset Tile Visual States"))
        {
            foreach (Tile t in Grid.FetchTiles())
            {
                t.SetBaseState();
            }
        }

        if (Application.isPlaying && GUILayout.Button("Test Crumble"))
        {
            TileWeighted.GetCrumbleTiles(20, Grid).ForEach(t => t.StartCrumble());

            //  MDebug.Log(Grid.GetLastActiveRow());

            Grid.GetTileList().ForEach(t => t.OnCrumbleTurn(0));
            SceneView.RepaintAll();
        }

        if (GUILayout.Button("Spawn Meshes"))
        {
            List <Tile> tiles = Grid.GetTileList();
            foreach (Tile t in tiles)
            {
                TileEditor.SpawnMesh(t);
            }
            SceneView.RepaintAll();
        }

        if (GUILayout.Button("Bake"))
        {
            BakeGrid.Bake(Grid);
            SceneView.RepaintAll();
        }
    }