Added initial dialog support

This commit is contained in:
2026-04-17 18:46:27 -05:00
parent d158d2fdd2
commit 512d8a5c0f
3 changed files with 29 additions and 0 deletions

View File

@@ -67,6 +67,7 @@ require_relative "cyberarm_engine/ui/elements/menu_item"
require_relative "cyberarm_engine/game_state" require_relative "cyberarm_engine/game_state"
require_relative "cyberarm_engine/ui/gui_state" require_relative "cyberarm_engine/ui/gui_state"
require_relative "cyberarm_engine/ui/dialog"
require_relative "cyberarm_engine/ui/page" require_relative "cyberarm_engine/ui/page"
require_relative "cyberarm_engine/builtin/intro_state" require_relative "cyberarm_engine/builtin/intro_state"

View File

@@ -0,0 +1,24 @@
module CyberarmEngine
class Dialog < CyberarmEngine::GuiState
def draw
previous_state&.draw
Gosu.flush
super
end
def update
super
return unless window.current_state == self
window.states.reverse.each do |state|
# Don't update ourselves, forever
next if state == self && state.is_a?(CyberarmEngine::GuiState)
state.update
end
end
end
end

View File

@@ -120,6 +120,10 @@ module CyberarmEngine
element_parent.root.gui_state.current_page element_parent.root.gui_state.current_page
end end
def dialog(klass, options = {})
element_parent.root.gui_state.window.push_state(klass, options)
end
def background(color = Gosu::Color::NONE) def background(color = Gosu::Color::NONE)
element_parent.style.background = color element_parent.style.background = color
end end