Example #1
0
    public override void OnInspectorGUI()
    {
        if (PlanetEditor == null)
        {
            PlanetEditor = target as PlanetTools;
        }

        if (Planet == null)
        {
            Planet = PlanetEditor.GetComponent <Hexsphere>();
        }

        if (ToggleButtonStyleNormal == null)
        {
            ToggleButtonStyleNormal  = "Button";
            ToggleButtonStyleToggled = new GUIStyle(ToggleButtonStyleNormal);
            ToggleButtonStyleToggled.normal.background = ToggleButtonStyleToggled.active.background;
        }

        GUILayout.Label("Tile Tools", EditorStyles.boldLabel);
        GUILayout.BeginVertical(EditorStyles.helpBox);
        GUILayout.BeginHorizontal();

        //if(GUILayout.Button("Select", Mode == ToolMode.Select ? ToggleButtonStyleToggled : ToggleButtonStyleNormal))
        //{
        //    Mode = ToolMode.Select;
        //}

        //if (GUILayout.Button("Paint Material", Mode == ToolMode.PaintMaterial ? ToggleButtonStyleToggled : ToggleButtonStyleNormal))
        //{
        //    Mode = ToolMode.PaintMaterial;
        //}

        if (GUILayout.Button("Paint Group ID", PlanetEditor.Mode == ToolMode.PaintGroupID ? ToggleButtonStyleToggled : ToggleButtonStyleNormal))
        {
            PlanetEditor.Mode = ToolMode.PaintGroupID;
        }

        if (GUILayout.Button("Paint Height", PlanetEditor.Mode == ToolMode.PaintHeight ? ToggleButtonStyleToggled : ToggleButtonStyleNormal))
        {
            PlanetEditor.Mode = ToolMode.PaintHeight;
        }

        if (GUILayout.Button("Paint Object", PlanetEditor.Mode == ToolMode.PaintObject ? ToggleButtonStyleToggled : ToggleButtonStyleNormal))
        {
            PlanetEditor.Mode = ToolMode.PaintObject;
        }

        if (GUILayout.Button("Paint Nav Weight", PlanetEditor.Mode == ToolMode.PaintNavWeight ? ToggleButtonStyleToggled : ToggleButtonStyleNormal))
        {
            PlanetEditor.Mode      = ToolMode.PaintNavWeight;
            SelectedTileInfoOption = TileDisplayOptions.NavWeight;
        }

        GUILayout.EndHorizontal();
        GUILayout.EndVertical();

        switch (PlanetEditor.Mode)
        {
        case ToolMode.Select:
            break;

        case ToolMode.PaintMaterial:
            DrawPaintMaterialInspector();
            break;

        case ToolMode.PaintHeight:
            DrawPaintHeightInspector();
            break;

        case ToolMode.PaintGroupID:
            DrawPaintGroupInspector();
            break;

        case ToolMode.PaintObject:
            DrawPaintObjectInspector();
            break;

        case ToolMode.PaintNavWeight:
            DrawPaintNavWeightInspector();
            break;
        }
    }
    private void OnSceneGUI()
    {
        if (PlanetEditor == null)
        {
            PlanetEditor = target as PlanetTools;
        }

        if (Planet == null)
        {
            Planet = PlanetEditor.GetComponent <Hexsphere>();
        }

        int controlId = GUIUtility.GetControlID(FocusType.Passive);

        // Shift to allow editing
        if (Event.current.shift)
        {
            IsEditing = true;

            if (Event.current.type == EventType.MouseDown)
            {
                MouseIsDown           = true;
                GUIUtility.hotControl = controlId;
                // Use the event
                Event.current.Use();
            }
            else if (Event.current.type == EventType.MouseUp)
            {
                MouseIsDown           = false;
                GUIUtility.hotControl = 0;
                // Use the event
                Event.current.Use();
            }

            if (Event.current.type == EventType.ScrollWheel && Event.current.control)
            {
                SetSelectCircleRadius(PlanetEditor.SelectRadius + Event.current.delta.y * 0.01f);
                GUIUtility.hotControl = controlId;
                Event.current.Use();
            }
            else
            {
                GUIUtility.hotControl = 0;
            }

            //RaycastSelect();
            CircleSelect();
        }
        // Shift is released
        else if (IsEditing)
        {
            IsEditing = false;

            if (LastHilightedTile != null)
            {
                LastHilightedTile.SetHighlight(false);
                LastHilightedTile = null;
            }

            foreach (Tile lastT in LastHilightedTiles)
            {
                lastT.SetHighlight(false);
            }
            LastHilightedTiles.Clear();

            AppliedActionTiles.Clear();
        }
    }