Refactor Editor gizmo modes ownership to support using them in prefab window
This commit is contained in:
@@ -10,6 +10,7 @@ using FlaxEditor.SceneGraph;
|
||||
using FlaxEditor.SceneGraph.Actors;
|
||||
using FlaxEditor.Scripting;
|
||||
using FlaxEditor.Viewport.Cameras;
|
||||
using FlaxEditor.Viewport.Modes;
|
||||
using FlaxEditor.Viewport.Widgets;
|
||||
using FlaxEditor.Windows;
|
||||
using FlaxEngine;
|
||||
@@ -22,7 +23,7 @@ namespace FlaxEditor.Viewport
|
||||
/// Main editor gizmo viewport used by the <see cref="EditGameWindow"/>.
|
||||
/// </summary>
|
||||
/// <seealso cref="FlaxEditor.Viewport.EditorGizmoViewport" />
|
||||
public partial class MainEditorGizmoViewport : EditorGizmoViewport, IEditorPrimitivesOwner, IGizmoOwner
|
||||
public class MainEditorGizmoViewport : EditorGizmoViewport, IEditorPrimitivesOwner
|
||||
{
|
||||
private readonly Editor _editor;
|
||||
|
||||
@@ -183,6 +184,31 @@ namespace FlaxEditor.Viewport
|
||||
set => _showNavigationButton.Checked = value;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The sculpt terrain gizmo.
|
||||
/// </summary>
|
||||
public Tools.Terrain.SculptTerrainGizmoMode SculptTerrainGizmo;
|
||||
|
||||
/// <summary>
|
||||
/// The paint terrain gizmo.
|
||||
/// </summary>
|
||||
public Tools.Terrain.PaintTerrainGizmoMode PaintTerrainGizmo;
|
||||
|
||||
/// <summary>
|
||||
/// The edit terrain gizmo.
|
||||
/// </summary>
|
||||
public Tools.Terrain.EditTerrainGizmoMode EditTerrainGizmo;
|
||||
|
||||
/// <summary>
|
||||
/// The paint foliage gizmo.
|
||||
/// </summary>
|
||||
public Tools.Foliage.PaintFoliageGizmoMode PaintFoliageGizmo;
|
||||
|
||||
/// <summary>
|
||||
/// The edit foliage gizmo.
|
||||
/// </summary>
|
||||
public Tools.Foliage.EditFoliageGizmoMode EditFoliageGizmo;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="MainEditorGizmoViewport"/> class.
|
||||
/// </summary>
|
||||
@@ -380,7 +406,20 @@ namespace FlaxEditor.Viewport
|
||||
DragHandlers.Add(_dragActorType);
|
||||
DragHandlers.Add(_dragAssets);
|
||||
|
||||
InitModes();
|
||||
// Init gizmo modes
|
||||
{
|
||||
// Add default modes used by the editor
|
||||
Gizmos.AddMode(new TransformGizmoMode());
|
||||
Gizmos.AddMode(new NoGizmoMode());
|
||||
Gizmos.AddMode(SculptTerrainGizmo = new Tools.Terrain.SculptTerrainGizmoMode());
|
||||
Gizmos.AddMode(PaintTerrainGizmo = new Tools.Terrain.PaintTerrainGizmoMode());
|
||||
Gizmos.AddMode(EditTerrainGizmo = new Tools.Terrain.EditTerrainGizmoMode());
|
||||
Gizmos.AddMode(PaintFoliageGizmo = new Tools.Foliage.PaintFoliageGizmoMode());
|
||||
Gizmos.AddMode(EditFoliageGizmo = new Tools.Foliage.EditFoliageGizmoMode());
|
||||
|
||||
// Activate transform mode first
|
||||
Gizmos.SetActiveMode<TransformGizmoMode>();
|
||||
}
|
||||
|
||||
// Setup input actions
|
||||
InputActions.Add(options => options.TranslateMode, () => TransformGizmo.ActiveMode = TransformGizmoBase.Mode.Translate);
|
||||
@@ -1117,7 +1156,6 @@ namespace FlaxEditor.Viewport
|
||||
if (IsDisposing)
|
||||
return;
|
||||
|
||||
DisposeModes();
|
||||
_debugDrawData.Dispose();
|
||||
if (_task != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user