Table of Contents

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
GodotObject
Node
CanvasItem
Control
OptionsMenu
Implements
Inherited Members
Control.NotificationResized
Control.NotificationMouseEnter
Control.NotificationMouseExit
Control.NotificationMouseEnterSelf
Control.NotificationMouseExitSelf
Control.NotificationFocusEnter
Control.NotificationFocusExit
Control.NotificationThemeChanged
Control.NotificationScrollBegin
Control.NotificationScrollEnd
Control.NotificationLayoutDirectionChanged
Control._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.ClipContents
Control.CustomMinimumSize
Control.LayoutDirection
Control.AnchorLeft
Control.AnchorTop
Control.AnchorRight
Control.AnchorBottom
Control.OffsetLeft
Control.OffsetTop
Control.OffsetRight
Control.OffsetBottom
Control.GrowHorizontal
Control.GrowVertical
Control.Size
Control.Position
Control.GlobalPosition
Control.Rotation
Control.RotationDegrees
Control.Scale
Control.PivotOffset
Control.SizeFlagsHorizontal
Control.SizeFlagsVertical
Control.SizeFlagsStretchRatio
Control.LocalizeNumeralSystem
Control.AutoTranslate
Control.TooltipText
Control.TooltipAutoTranslateMode
Control.FocusNeighborLeft
Control.FocusNeighborTop
Control.FocusNeighborRight
Control.FocusNeighborBottom
Control.FocusNext
Control.FocusPrevious
Control.FocusMode
Control.FocusBehaviorRecursive
Control.MouseFilter
Control.MouseBehaviorRecursive
Control.MouseForcePassScrollEvents
Control.MouseDefaultCursorShape
Control.ShortcutContext
Control.AccessibilityName
Control.AccessibilityDescription
Control.AccessibilityLive
Control.AccessibilityControlsNodes
Control.AccessibilityDescribedByNodes
Control.AccessibilityLabeledByNodes
Control.AccessibilityFlowToNodes
Control.Theme
Control.ThemeTypeVariation
Control.Resized
Control.GuiInput
Control.MouseEntered
Control.MouseExited
Control.FocusEntered
Control.FocusExited
Control.SizeFlagsChanged
Control.MinimumSizeChanged
Control.ThemeChanged
CanvasItem.NotificationTransformChanged
CanvasItem.NotificationLocalTransformChanged
CanvasItem.NotificationDraw
CanvasItem.NotificationVisibilityChanged
CanvasItem.NotificationEnterCanvas
CanvasItem.NotificationExitCanvas
CanvasItem.NotificationWorld2DChanged
CanvasItem._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.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.Visible
CanvasItem.Modulate
CanvasItem.SelfModulate
CanvasItem.ShowBehindParent
CanvasItem.TopLevel
CanvasItem.ClipChildren
CanvasItem.LightMask
CanvasItem.VisibilityLayer
CanvasItem.ZIndex
CanvasItem.ZAsRelative
CanvasItem.YSortEnabled
CanvasItem.TextureFilter
CanvasItem.TextureRepeat
CanvasItem.Material
CanvasItem.UseParentMaterial
CanvasItem.Draw
CanvasItem.VisibilityChanged
CanvasItem.Hidden
CanvasItem.ItemRectChanged
Node.NotificationEnterTree
Node.NotificationExitTree
Node.NotificationMovedInParent
Node.NotificationReady
Node.NotificationPaused
Node.NotificationUnpaused
Node.NotificationPhysicsProcess
Node.NotificationProcess
Node.NotificationParented
Node.NotificationUnparented
Node.NotificationSceneInstantiated
Node.NotificationDragBegin
Node.NotificationDragEnd
Node.NotificationPathRenamed
Node.NotificationChildOrderChanged
Node.NotificationInternalProcess
Node.NotificationInternalPhysicsProcess
Node.NotificationPostEnterTree
Node.NotificationDisabled
Node.NotificationEnabled
Node.NotificationResetPhysicsInterpolation
Node.NotificationEditorPreSave
Node.NotificationEditorPostSave
Node.NotificationWMMouseEnter
Node.NotificationWMMouseExit
Node.NotificationWMWindowFocusIn
Node.NotificationWMWindowFocusOut
Node.NotificationWMCloseRequest
Node.NotificationWMGoBackRequest
Node.NotificationWMSizeChanged
Node.NotificationWMDpiChange
Node.NotificationVpMouseEnter
Node.NotificationVpMouseExit
Node.NotificationWMPositionChanged
Node.NotificationOsMemoryWarning
Node.NotificationTranslationChanged
Node.NotificationWMAbout
Node.NotificationCrash
Node.NotificationOsImeUpdate
Node.NotificationApplicationResumed
Node.NotificationApplicationPaused
Node.NotificationApplicationFocusIn
Node.NotificationApplicationFocusOut
Node.NotificationTextServerChanged
Node.NotificationAccessibilityUpdate
Node.NotificationAccessibilityInvalidate
Node.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.Name
Node.UniqueNameInOwner
Node.SceneFilePath
Node.Owner
Node.Multiplayer
Node.ProcessMode
Node.ProcessPriority
Node.ProcessPhysicsPriority
Node.ProcessThreadGroup
Node.ProcessThreadGroupOrder
Node.ProcessThreadMessages
Node.PhysicsInterpolationMode
Node.AutoTranslateMode
Node.EditorDescription
Node.Ready
Node.Renamed
Node.TreeEntered
Node.TreeExiting
Node.TreeExited
Node.ChildEnteredTree
Node.ChildExitingTree
Node.ChildOrderChanged
Node.ReplacingBy
Node.EditorDescriptionChanged
Node.EditorStateChanged
GodotObject.NotificationPostinitialize
GodotObject.NotificationPredelete
GodotObject.NotificationExtensionReloaded
GodotObject.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.NativeInstance
GodotObject.ScriptChanged
GodotObject.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

inputEvent InputEvent

The 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

Event Type

OptionsMenu.BackRequestedEventHandler