Class OptionsMenu
- Namespace
- AshesOfVelsingrad.UI.Menus
- Assembly
- Ashes of Velsingrad.dll
Options menu that allows players to configure game settings. Follows the Component-Based Architecture and event-driven communication. Implements the Manager Pattern for centralized settings management.
[ScriptPath("res://scripts/ui/menus/OptionsMenu.cs")]
public class OptionsMenu : Control, IDisposable
- Inheritance
-
GodotObjectNodeCanvasItemControlOptionsMenu
- Implements
- Inherited Members
-
Control.NotificationResizedControl.NotificationMouseEnterControl.NotificationMouseExitControl.NotificationMouseEnterSelfControl.NotificationMouseExitSelfControl.NotificationFocusEnterControl.NotificationFocusExitControl.NotificationThemeChangedControl.NotificationScrollBeginControl.NotificationScrollEndControl.NotificationLayoutDirectionChangedControl._AccessibilityGetContextualInfo()Control._CanDropData(Vector2, Variant)Control._DropData(Vector2, Variant)Control._GetAccessibilityContainerName(Node)Control._GetDragData(Vector2)Control._GetMinimumSize()Control._GetTooltip(Vector2)Control._GuiInput(InputEvent)Control._HasPoint(Vector2)Control.AcceptEvent()Control.GetMinimumSize()Control.GetCombinedMinimumSize()Control.SetBegin(Vector2)Control.SetEnd(Vector2)Control.ResetSize()Control.GetBegin()Control.GetEnd()Control.GetParentAreaSize()Control.GetScreenPosition()Control.GetRect()Control.GetGlobalRect()Control.GetFocusModeWithOverride()Control.HasFocus()Control.GrabFocus()Control.ReleaseFocus()Control.FindPrevValidFocus()Control.FindNextValidFocus()Control.FindValidFocusNeighbor(Side)Control.BeginBulkThemeOverride()Control.EndBulkThemeOverride()Control.AddThemeIconOverride(StringName, Texture2D)Control.AddThemeStyleboxOverride(StringName, StyleBox)Control.AddThemeFontOverride(StringName, Font)Control.AddThemeColorOverride(StringName, Color)Control.RemoveThemeIconOverride(StringName)Control.RemoveThemeStyleboxOverride(StringName)Control.RemoveThemeFontOverride(StringName)Control.RemoveThemeFontSizeOverride(StringName)Control.RemoveThemeColorOverride(StringName)Control.RemoveThemeConstantOverride(StringName)Control.GetThemeIcon(StringName, StringName)Control.GetThemeStylebox(StringName, StringName)Control.GetThemeFont(StringName, StringName)Control.GetThemeFontSize(StringName, StringName)Control.GetThemeColor(StringName, StringName)Control.GetThemeConstant(StringName, StringName)Control.HasThemeIconOverride(StringName)Control.HasThemeStyleboxOverride(StringName)Control.HasThemeFontOverride(StringName)Control.HasThemeFontSizeOverride(StringName)Control.HasThemeColorOverride(StringName)Control.HasThemeConstantOverride(StringName)Control.HasThemeIcon(StringName, StringName)Control.HasThemeStylebox(StringName, StringName)Control.HasThemeFont(StringName, StringName)Control.HasThemeFontSize(StringName, StringName)Control.HasThemeColor(StringName, StringName)Control.HasThemeConstant(StringName, StringName)Control.GetThemeDefaultBaseScale()Control.GetThemeDefaultFont()Control.GetThemeDefaultFontSize()Control.GetParentControl()Control.GetTooltip(Vector2?)Control.GetCursorShape(Vector2?)Control.ForceDrag(Variant, Control)Control.AccessibilityDrag()Control.AccessibilityDrop()Control.GetMouseFilterWithOverride()Control.GrabClickFocus()Control.SetDragForwarding(Callable, Callable, Callable)Control.SetDragPreview(Control)Control.IsDragSuccessful()Control.WarpMouse(Vector2)Control.UpdateMinimumSize()Control.IsLayoutRtl()Control.EmitSignalResized()Control.EmitSignalGuiInput(InputEvent)Control.EmitSignalMouseEntered()Control.EmitSignalMouseExited()Control.EmitSignalFocusEntered()Control.EmitSignalFocusExited()Control.EmitSignalSizeFlagsChanged()Control.EmitSignalMinimumSizeChanged()Control.EmitSignalThemeChanged()Control.InvokeGodotClassMethod(in godot_string_name, NativeVariantPtrArgs, out godot_variant)Control.HasGodotClassMethod(in godot_string_name)Control.HasGodotClassSignal(in godot_string_name)Control.ClipContentsControl.CustomMinimumSizeControl.LayoutDirectionControl.AnchorLeftControl.AnchorTopControl.AnchorRightControl.AnchorBottomControl.OffsetLeftControl.OffsetTopControl.OffsetRightControl.OffsetBottomControl.GrowHorizontalControl.GrowVerticalControl.SizeControl.PositionControl.GlobalPositionControl.RotationControl.RotationDegreesControl.ScaleControl.PivotOffsetControl.SizeFlagsHorizontalControl.SizeFlagsVerticalControl.SizeFlagsStretchRatioControl.LocalizeNumeralSystemControl.AutoTranslateControl.TooltipTextControl.TooltipAutoTranslateModeControl.FocusNeighborLeftControl.FocusNeighborTopControl.FocusNeighborRightControl.FocusNeighborBottomControl.FocusNextControl.FocusPreviousControl.FocusModeControl.FocusBehaviorRecursiveControl.MouseFilterControl.MouseBehaviorRecursiveControl.MouseForcePassScrollEventsControl.MouseDefaultCursorShapeControl.ShortcutContextControl.AccessibilityNameControl.AccessibilityDescriptionControl.AccessibilityLiveControl.AccessibilityControlsNodesControl.AccessibilityDescribedByNodesControl.AccessibilityLabeledByNodesControl.AccessibilityFlowToNodesControl.ThemeControl.ThemeTypeVariationControl.ResizedControl.GuiInputControl.MouseEnteredControl.MouseExitedControl.FocusEnteredControl.FocusExitedControl.SizeFlagsChangedControl.MinimumSizeChangedControl.ThemeChangedCanvasItem.NotificationTransformChangedCanvasItem.NotificationLocalTransformChangedCanvasItem.NotificationDrawCanvasItem.NotificationVisibilityChangedCanvasItem.NotificationEnterCanvasCanvasItem.NotificationExitCanvasCanvasItem.NotificationWorld2DChangedCanvasItem._Draw()CanvasItem.GetCanvasItem()CanvasItem.IsVisibleInTree()CanvasItem.Show()CanvasItem.Hide()CanvasItem.QueueRedraw()CanvasItem.MoveToFront()CanvasItem.DrawTexture(Texture2D, Vector2, Color?)CanvasItem.DrawLcdTextureRectRegion(Texture2D, Rect2, Rect2, Color?)CanvasItem.DrawStyleBox(StyleBox, Rect2)CanvasItem.DrawPrimitive(Vector2[], Color[], Vector2[], Texture2D)CanvasItem.DrawPolygon(Vector2[], Color[], Vector2[], Texture2D)CanvasItem.DrawPolygon(ReadOnlySpan<Vector2>, ReadOnlySpan<Color>, ReadOnlySpan<Vector2>, Texture2D)CanvasItem.DrawColoredPolygon(Vector2[], Color, Vector2[], Texture2D)CanvasItem.DrawMesh(Mesh, Texture2D, Transform2D?, Color?)CanvasItem.DrawMultimesh(MultiMesh, Texture2D)CanvasItem.DrawSetTransformMatrix(Transform2D)CanvasItem.DrawEndAnimation()CanvasItem.GetTransform()CanvasItem.GetGlobalTransform()CanvasItem.GetGlobalTransformWithCanvas()CanvasItem.GetViewportTransform()CanvasItem.GetViewportRect()CanvasItem.GetCanvasTransform()CanvasItem.GetScreenTransform()CanvasItem.GetLocalMousePosition()CanvasItem.GetGlobalMousePosition()CanvasItem.GetCanvas()CanvasItem.GetCanvasLayerNode()CanvasItem.GetWorld2D()CanvasItem.SetInstanceShaderParameter(StringName, Variant)CanvasItem.GetInstanceShaderParameter(StringName)CanvasItem.IsLocalTransformNotificationEnabled()CanvasItem.IsTransformNotificationEnabled()CanvasItem.ForceUpdateTransform()CanvasItem.MakeCanvasPositionLocal(Vector2)CanvasItem.MakeInputLocal(InputEvent)CanvasItem.EmitSignalDraw()CanvasItem.EmitSignalVisibilityChanged()CanvasItem.EmitSignalHidden()CanvasItem.EmitSignalItemRectChanged()CanvasItem.VisibleCanvasItem.ModulateCanvasItem.SelfModulateCanvasItem.ShowBehindParentCanvasItem.TopLevelCanvasItem.ClipChildrenCanvasItem.LightMaskCanvasItem.VisibilityLayerCanvasItem.ZIndexCanvasItem.ZAsRelativeCanvasItem.YSortEnabledCanvasItem.TextureFilterCanvasItem.TextureRepeatCanvasItem.MaterialCanvasItem.UseParentMaterialCanvasItem.DrawCanvasItem.VisibilityChangedCanvasItem.HiddenCanvasItem.ItemRectChangedNode.NotificationEnterTreeNode.NotificationExitTreeNode.NotificationMovedInParentNode.NotificationReadyNode.NotificationPausedNode.NotificationUnpausedNode.NotificationPhysicsProcessNode.NotificationProcessNode.NotificationParentedNode.NotificationUnparentedNode.NotificationSceneInstantiatedNode.NotificationDragBeginNode.NotificationDragEndNode.NotificationPathRenamedNode.NotificationChildOrderChangedNode.NotificationInternalProcessNode.NotificationInternalPhysicsProcessNode.NotificationPostEnterTreeNode.NotificationDisabledNode.NotificationEnabledNode.NotificationResetPhysicsInterpolationNode.NotificationEditorPreSaveNode.NotificationEditorPostSaveNode.NotificationWMMouseEnterNode.NotificationWMMouseExitNode.NotificationWMWindowFocusInNode.NotificationWMWindowFocusOutNode.NotificationWMCloseRequestNode.NotificationWMGoBackRequestNode.NotificationWMSizeChangedNode.NotificationWMDpiChangeNode.NotificationVpMouseEnterNode.NotificationVpMouseExitNode.NotificationWMPositionChangedNode.NotificationOsMemoryWarningNode.NotificationTranslationChangedNode.NotificationWMAboutNode.NotificationCrashNode.NotificationOsImeUpdateNode.NotificationApplicationResumedNode.NotificationApplicationPausedNode.NotificationApplicationFocusInNode.NotificationApplicationFocusOutNode.NotificationTextServerChangedNode.NotificationAccessibilityUpdateNode.NotificationAccessibilityInvalidateNode.GetNode<T>(NodePath)Node.GetNodeOrNull<T>(NodePath)Node.GetOwner<T>()Node.GetOwnerOrNull<T>()Node.GetParent<T>()Node.GetParentOrNull<T>()Node._EnterTree()Node._GetAccessibilityConfigurationWarnings()Node._GetConfigurationWarnings()Node._GetFocusedAccessibilityElement()Node._ShortcutInput(InputEvent)Node._UnhandledInput(InputEvent)Node._UnhandledKeyInput(InputEvent)Node.PrintOrphanNodes()Node.GetOrphanNodeIds()Node.RemoveChild(Node)Node.HasNode(NodePath)Node.GetNode(NodePath)Node.GetNodeOrNull(NodePath)Node.GetParent()Node.HasNodeAndResource(NodePath)Node.GetNodeAndResource(NodePath)Node.IsInsideTree()Node.IsPartOfEditedScene()Node.IsAncestorOf(Node)Node.IsGreaterThan(Node)Node.GetPath()Node.RemoveFromGroup(StringName)Node.IsInGroup(StringName)Node.GetGroups()Node.PrintTree()Node.PrintTreePretty()Node.GetTreeString()Node.GetTreeStringPretty()Node.GetPhysicsProcessDeltaTime()Node.IsPhysicsProcessing()Node.GetProcessDeltaTime()Node.IsProcessing()Node.IsProcessingInput()Node.IsProcessingShortcutInput()Node.IsProcessingUnhandledInput()Node.IsProcessingUnhandledKeyInput()Node.CanProcess()Node.QueueAccessibilityUpdate()Node.GetAccessibilityElement()Node.IsDisplayedFolded()Node.IsProcessingInternal()Node.IsPhysicsProcessingInternal()Node.IsPhysicsInterpolated()Node.IsPhysicsInterpolatedAndEnabled()Node.ResetPhysicsInterpolation()Node.CanAutoTranslate()Node.SetTranslationDomainInherited()Node.GetWindow()Node.GetLastExclusiveWindow()Node.GetTree()Node.CreateTween()Node.GetSceneInstanceLoadPlaceholder()Node.IsEditableInstance(Node)Node.GetViewport()Node.QueueFree()Node.RequestReady()Node.IsNodeReady()Node.GetMultiplayerAuthority()Node.IsMultiplayerAuthority()Node.RpcConfig(StringName, Variant)Node.GetNodeRpcConfig()Node.Rpc(StringName, params Variant[])Node.UpdateConfigurationWarnings()Node.CallDeferredThreadGroup(StringName, params Variant[])Node.SetDeferredThreadGroup(StringName, Variant)Node.CallThreadSafe(StringName, params Variant[])Node.SetThreadSafe(StringName, Variant)Node.EmitSignalReady()Node.EmitSignalRenamed()Node.EmitSignalTreeEntered()Node.EmitSignalTreeExiting()Node.EmitSignalTreeExited()Node.EmitSignalChildEnteredTree(Node)Node.EmitSignalChildExitingTree(Node)Node.EmitSignalChildOrderChanged()Node.EmitSignalReplacingBy(Node)Node.EmitSignalEditorDescriptionChanged(Node)Node.EmitSignalEditorStateChanged()Node.NameNode.UniqueNameInOwnerNode.SceneFilePathNode.OwnerNode.MultiplayerNode.ProcessModeNode.ProcessPriorityNode.ProcessPhysicsPriorityNode.ProcessThreadGroupNode.ProcessThreadGroupOrderNode.ProcessThreadMessagesNode.PhysicsInterpolationModeNode.AutoTranslateModeNode.EditorDescriptionNode.ReadyNode.RenamedNode.TreeEnteredNode.TreeExitingNode.TreeExitedNode.ChildEnteredTreeNode.ChildExitingTreeNode.ChildOrderChangedNode.ReplacingByNode.EditorDescriptionChangedNode.EditorStateChangedGodotObject.NotificationPostinitializeGodotObject.NotificationPredeleteGodotObject.NotificationExtensionReloadedGodotObject.IsInstanceValid(GodotObject)GodotObject.WeakRef(GodotObject)GodotObject.Dispose()GodotObject.ToString()GodotObject.ToSignal(GodotObject, StringName)GodotObject._Get(StringName)GodotObject._GetPropertyList()GodotObject._IterGet(Variant)GodotObject._IterInit(Array)GodotObject._IterNext(Array)GodotObject._PropertyCanRevert(StringName)GodotObject._PropertyGetRevert(StringName)GodotObject._Set(StringName, Variant)GodotObject._ValidateProperty(Dictionary)GodotObject.Free()GodotObject.GetClass()GodotObject.Set(StringName, Variant)GodotObject.Get(StringName)GodotObject.SetIndexed(NodePath, Variant)GodotObject.GetIndexed(NodePath)GodotObject.GetPropertyList()GodotObject.GetMethodList()GodotObject.PropertyCanRevert(StringName)GodotObject.PropertyGetRevert(StringName)GodotObject.GetInstanceId()GodotObject.SetScript(Variant)GodotObject.GetScript()GodotObject.SetMeta(StringName, Variant)GodotObject.RemoveMeta(StringName)GodotObject.GetMeta(StringName, Variant)GodotObject.HasMeta(StringName)GodotObject.GetMetaList()GodotObject.HasUserSignal(StringName)GodotObject.RemoveUserSignal(StringName)GodotObject.EmitSignal(StringName, params Variant[])GodotObject.Call(StringName, params Variant[])GodotObject.CallDeferred(StringName, params Variant[])GodotObject.SetDeferred(StringName, Variant)GodotObject.Callv(StringName, Array)GodotObject.HasMethod(StringName)GodotObject.GetMethodArgumentCount(StringName)GodotObject.HasSignal(StringName)GodotObject.GetSignalList()GodotObject.GetSignalConnectionList(StringName)GodotObject.GetIncomingConnections()GodotObject.Disconnect(StringName, Callable)GodotObject.IsConnected(StringName, Callable)GodotObject.HasConnections(StringName)GodotObject.IsBlockingSignals()GodotObject.NotifyPropertyListChanged()GodotObject.CanTranslateMessages()GodotObject.Tr(StringName, StringName)GodotObject.GetTranslationDomain()GodotObject.SetTranslationDomain(StringName)GodotObject.IsQueuedForDeletion()GodotObject.CancelFree()GodotObject.EmitSignalScriptChanged()GodotObject.EmitSignalPropertyListChanged()GodotObject.NativeInstanceGodotObject.ScriptChangedGodotObject.PropertyListChanged
Methods
EmitSignalBackRequested()
protected void EmitSignalBackRequested()
HideMenu()
Hides the options menu with a fade-out animation effect.
public void HideMenu()
Remarks
This method animates the menu from fully visible to transparent, then hides it. Uses a Godot Tween for smooth visual transition over 0.3 seconds. The menu is actually hidden after the fade-out animation completes. Provides a polished user experience with smooth transitions.
ShowMenu()
Shows the options menu with a fade-in animation effect.
public void ShowMenu()
Remarks
This method makes the menu visible and animates it from transparent to fully opaque. Uses a Godot Tween for smooth visual transition over 0.3 seconds. The menu starts completely transparent and fades to full visibility.
_ExitTree()
Cleanup when the node exits the tree.
public override void _ExitTree()
_Input(InputEvent)
Captures input for remapping actions.
public override void _Input(InputEvent inputEvent)
Parameters
inputEventInputEventThe input event to process.
Remarks
This method listens for input events when remapping is active. It updates the binding in SettingsManager and refreshes the button display. It ignores certain inputs like Escape or specific joypad buttons to prevent unwanted bindings.
_Ready()
Called when the node is ready. Initializes the options menu by calling deferred setup.
public override void _Ready()
Remarks
This method is called when both the node and its children have entered the scene tree. It uses CallDeferred to ensure all UI elements are properly initialized.
Events
BackRequested
public event OptionsMenu.BackRequestedEventHandler BackRequested