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; } } }
/// <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(); }