class

PointClickEngine::UI::MenuSystem

Inherits Reference < Object

Menu system using component-based architecture

This MenuSystem delegates responsibilities to specialized components:

  • MenuInputHandler: Processes all input (keyboard, mouse, gamepad)
  • MenuRenderer: Handles all visual rendering and themes
  • MenuNavigator: Manages navigation logic and item selection
  • ConfigurationManager: Handles game settings and configuration

Constructors

new(engine : Core::Engine | Nil = nil)
Source

Instance methods

add_menu(name : String, title : String, items : Array(String), enabled_items : Array(Bool) | Nil = nil)

Adds a menu to the system

Source
apply_configuration

Applies configuration changes to components

Source
auto_layout
Source
auto_layout=(auto_layout : Bool)
Source
config_manager
Source
config_manager=(config_manager : ConfigurationManager)
Source
current_menu

Menu state

Source
current_menu=(current_menu : String)

Menu state

Source
engine

Engine reference

Source
engine=(engine : Core::Engine | Nil)

Engine reference

Source
enter_game

Enters game mode (hides menu and sets in_game flag)

Source
execute_current_action

Executes the action for the currently selected menu item

Source
exit_game

Exits game mode (shows main menu and clears in_game flag)

Source
get_configuration_manager

Gets current configuration manager

Source
get_current_item

Gets current menu item text

Source
hide

Hides the menu system

Source
in_game
Source
in_game=(in_game : Bool)
Source
input_handler

Menu components

Source
input_handler=(input_handler : MenuInputHandler)

Menu components

Source
on_load_game
Source
on_load_game=(on_load_game : Proc(Nil) | Nil)
Source
on_new_game

Callbacks for menu actions

Source
on_new_game=(on_new_game : Proc(Nil) | Nil)

Callbacks for menu actions

Source
on_options
Source
on_options=(on_options : Proc(Nil) | Nil)
Source
on_quit
Source
on_quit=(on_quit : Proc(Nil) | Nil)
Source
on_resume
Source
on_resume=(on_resume : Proc(Nil) | Nil)
Source
on_save_game
Source
on_save_game=(on_save_game : Proc(Nil) | Nil)
Source
render

Renders the menu system

Source
renderer
Source
renderer=(renderer : MenuRenderer)
Source
set_menu_item_enabled(menu_name : String, item_index : Int32, enabled : Bool)

Sets menu item enabled state

Source
show(menu_name : String = "main")

Shows the menu system

Source
show_main_menu

Shows the main menu

Source
show_pause_menu
Source
switch_to_menu(menu_name : String)

Switches to a different menu

Source
update(dt : Float64)

Updates the menu system (input and animations)

Source
update_layout

Updates layout based on current menu content

Source
validate_system

Validates all components

Source
visible
Source
visible=(visible : Bool)
Source