예제 #1
0
        internal void CheckSelection(bool autoAdjust = false)
        {
            this.hasActiveSystem     = (ToolUtility.ActiveTileSystem != null);
            this.selectedSystemCount = Selection.GetFiltered(typeof(TileSystem), SelectionMode.ExcludePrefab).Length;

            if (this.targetSystems == ReplaceByBrushTarget.ActiveTileSystem && !this.hasActiveSystem)
            {
                ++this.targetSystems;
            }
            if (this.targetSystems == ReplaceByBrushTarget.SelectedTileSystems && this.selectedSystemCount == 0)
            {
                ++this.targetSystems;
            }

            if (autoAdjust)
            {
                if (this.selectedSystemCount > 1)
                {
                    this.targetSystems = ReplaceByBrushTarget.SelectedTileSystems;
                }
                else if (this.hasActiveSystem)
                {
                    this.targetSystems = ReplaceByBrushTarget.ActiveTileSystem;
                }
            }
        }
예제 #2
0
        /// <inheritdoc/>
        protected override void DoGUI()
        {
            GUILayout.Space(10);

            if (Event.current.type == EventType.Layout)
            {
                this.CheckSelection();
            }

            GUILayout.BeginHorizontal(GUILayout.Height(200));
            GUILayout.Space(5);
            this.OnGUI_BrushSelection();
            GUILayout.Space(10);
            this.OnGUI_Buttons(Event.current);
            GUILayout.Space(5);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Space(10);

            GUILayout.Label(TileLang.Text("Apply To Tile System(s):"));
            GUILayout.Space(5);

            EditorGUI.BeginDisabledGroup(!this.hasActiveSystem);
            if (GUILayout.Toggle(this.targetSystems == ReplaceByBrushTarget.ActiveTileSystem, TileLang.ParticularText("Selection", "Active"), EditorStyles.radioButton))
            {
                this.targetSystems = ReplaceByBrushTarget.ActiveTileSystem;
            }
            EditorGUI.EndDisabledGroup();

            GUILayout.Space(5);

            EditorGUI.BeginDisabledGroup(this.selectedSystemCount <= 0);
            if (GUILayout.Toggle(this.targetSystems == ReplaceByBrushTarget.SelectedTileSystems, TileLang.ParticularText("Selection", "Selected"), EditorStyles.radioButton))
            {
                this.targetSystems = ReplaceByBrushTarget.SelectedTileSystems;
            }
            EditorGUI.EndDisabledGroup();

            GUILayout.Space(5);

            if (GUILayout.Toggle(this.targetSystems == ReplaceByBrushTarget.All, TileLang.ParticularText("Selection", "All"), EditorStyles.radioButton))
            {
                this.targetSystems = ReplaceByBrushTarget.All;
            }

            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
        }