Files
FlaxEngine/Source/Editor/Windows/SceneEditorWindow.cs
envision3d b9ffb950f3 Refactor and more appropriately organize logic
- move play logic to simulation module
- update play hotkey to call play game/scene delegate function
- link hotkey tooltip text to inputOptions
2023-08-06 13:11:45 -05:00

47 lines
2.1 KiB
C#

// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
using FlaxEngine.GUI;
namespace FlaxEditor.Windows
{
/// <summary>
/// Base class for editor windows dedicated to scene editing.
/// </summary>
/// <seealso cref="FlaxEditor.Windows.EditorWindow" />
public abstract class SceneEditorWindow : EditorWindow
{
/// <summary>
/// Initializes a new instance of the <see cref="SceneEditorWindow"/> class.
/// </summary>
/// <param name="editor">The editor.</param>
/// <param name="hideOnClose">True if hide window on closing, otherwise it will be destroyed.</param>
/// <param name="scrollBars">The scroll bars.</param>
protected SceneEditorWindow(Editor editor, bool hideOnClose, ScrollBars scrollBars)
: base(editor, hideOnClose, scrollBars)
{
// Setup input actions
InputActions.Add(options => options.Save, Editor.SaveAll);
InputActions.Add(options => options.Undo, () =>
{
Editor.PerformUndo();
Focus();
});
InputActions.Add(options => options.Redo, () =>
{
Editor.PerformRedo();
Focus();
});
InputActions.Add(options => options.Cut, Editor.SceneEditing.Cut);
InputActions.Add(options => options.Copy, Editor.SceneEditing.Copy);
InputActions.Add(options => options.Paste, Editor.SceneEditing.Paste);
InputActions.Add(options => options.Duplicate, Editor.SceneEditing.Duplicate);
InputActions.Add(options => options.SelectAll, Editor.SceneEditing.SelectAllScenes);
InputActions.Add(options => options.Delete, Editor.SceneEditing.Delete);
InputActions.Add(options => options.Search, () => Editor.Windows.SceneWin.Search());
InputActions.Add(options => options.Play, Editor.Simulation.DelegatePlayOrStopPlayInEditor);
InputActions.Add(options => options.Pause, Editor.Simulation.RequestResumeOrPause);
InputActions.Add(options => options.StepFrame, Editor.Simulation.RequestPlayOneFrame);
}
}
}