class AdventureRL::EventHandlers::MouseButtons
Constants
- DEFAULT_SETTINGS
- MOUSE_BUTTON_IDS
This constant contains the IDs of all mouse buttons.
Public Class Methods
new(settings = {})
click to toggle source
Calls superclass method
AdventureRL::EventHandlers::Buttons::new
# File lib/AdventureRL/EventHandlers/MouseButtons.rb, line 19 def initialize settings = {} @settings = DEFAULT_SETTINGS.merge settings @only_mouse_buttons = @settings.get :only_mouse_buttons super @settings end
Public Instance Methods
update()
click to toggle source
# File lib/AdventureRL/EventHandlers/MouseButtons.rb, line 47 def update pressed_btnids = MOUSE_BUTTON_IDS.select do |btnid| next Gosu.button_down?(btnid) end return unless (pressed_btnids.any?) pressed_btnids.each do |btnid| trigger( :mouse_press, get_semantic_button_name(btnid), shift: shift_button_pressed?, control: control_button_pressed?, alt: alt_button_pressed? ) end end
Private Instance Methods
get_event_mouse_down()
click to toggle source
# File lib/AdventureRL/EventHandlers/MouseButtons.rb, line 79 def get_event_mouse_down event = Events::Mouse.new(:mouse_down) event.on_trigger do |object, btn_name, mod_keys| next unless (object.methods.include?(:on_mouse_down) && object.collides_with?(get_mouse_point)) case object.method(:on_mouse_down).arity.abs when 0 object.on_mouse_down when 1 object.on_mouse_down btn_name when 2 object.on_mouse_down btn_name, mod_keys end end return event end
get_event_mouse_press()
click to toggle source
# File lib/AdventureRL/EventHandlers/MouseButtons.rb, line 111 def get_event_mouse_press event = Events::Mouse.new(:mouse_press) event.on_trigger do |object, btn_name, mod_keys| next unless (object.methods.include?(:on_mouse_press) && object.collides_with?(get_mouse_point)) case object.method(:on_mouse_press).arity.abs when 0 object.on_mouse_press when 1 object.on_mouse_press btn_name when 2 object.on_mouse_press btn_name, mod_keys end end return event end
get_event_mouse_up()
click to toggle source
# File lib/AdventureRL/EventHandlers/MouseButtons.rb, line 95 def get_event_mouse_up event = Events::Mouse.new(:mouse_up) event.on_trigger do |object, btn_name, mod_keys| next unless (object.methods.include?(:on_mouse_up) && object.collides_with?(get_mouse_point)) case object.method(:on_mouse_up).arity.abs when 0 object.on_mouse_up when 1 object.on_mouse_up btn_name when 2 object.on_mouse_up btn_name, mod_keys end end return event end
get_events()
click to toggle source
Calls superclass method
AdventureRL::EventHandlers::Buttons#get_events
# File lib/AdventureRL/EventHandlers/MouseButtons.rb, line 71 def get_events return super.concat([ get_event_mouse_down, get_event_mouse_up, get_event_mouse_press ]) end
get_mouse_point()
click to toggle source
# File lib/AdventureRL/EventHandlers/MouseButtons.rb, line 127 def get_mouse_point window = Window.get_window return nil unless (window) return Point.new(window.mouse_x, window.mouse_y) end