class Core::States::OptionMenu
Public Class Methods
new(window)
click to toggle source
Calls superclass method
# File lib/states/menus/options.rb, line 7 def initialize(window) super(window) @background = Core.sprite("menu/ingame_background") @restart = false @w = Core::GUI::Window.new(0, 0, 1024, 768, Trans.menu(:options)) @w.add(:details, Window.new(288, 56, 704, 128, Trans.menu(:options_details), false, "gui/options_details")) @w.add(:language, Button.new(32, 32, 224, 32, Trans.menu(:language), lambda {swap(:language)}, true, :left)) @w.add(:volume, Button.new(32, 80, 224, 32, Trans.menu(:volume), lambda {swap(:volume)}, true, :left)) end
Public Instance Methods
draw()
click to toggle source
# File lib/states/menus/options.rb, line 47 def draw @background.draw(0, 0, 0) @w.draw draw_cursor end
language(sym)
click to toggle source
# File lib/states/menus/options.rb, line 28 def language(sym) Core.config[:language] = sym.to_s swap(:language) @restart = true end
swap(sym)
click to toggle source
# File lib/states/menus/options.rb, line 16 def swap(sym) detail = @w[:details] detail.empty case sym when :language detail.add(:en, Button.new(16, 16, 96, 24, Trans.menu(:lang_english), lambda {language(:en)}, true, :left)) detail.add(:de, Button.new(16, 48, 96, 24, Trans.menu(:lang_german), lambda {language(:de)}, true, :left)) detail[Core.config[:language].to_sym].disable when :volume detail.add(:slider, Slider.new(16, 16, 128, 32)) end end
update()
click to toggle source
# File lib/states/menus/options.rb, line 33 def update if @window.pressed?(Gosu::KbEscape) or @w.remove? if @restart Core.exit(0) else Core.window.advance(StartMenu.new(Core.window)) end end @w.update if @restart and !@w[:details].include?(:warning) @w[:details].add(:warning, Textfield.new(384, 16, 320, 96, Trans.menu(:restart_warning))) end update_cursor end