Sha256: b2daa5317087830e6120732ce80746dac69427d7df07d22b991695c0b56104f4

Contents?: true

Size: 1.08 KB

Versions: 15

Compression:

Stored size: 1.08 KB

Contents

#
#
module Controllable
  
  def self.included controllable
    controllable.extend ClassMethods
  end
  
  module ClassMethods
    
    # TODO alternate controls handling!
    #
    
    def controls mapping
      attr_accessor :controls_mapping
      hook = lambda do
        if self.controls_mapping
          # primary controls taken, use alternate controls
          self.controls_mapping = self.alternate_controls_mapping if self.respond_to? :alternate_controls_mapping
        else
          self.controls_mapping = mapping
        end
        self.window.add_controls_for self
      end
      InitializerHooks.register self, &hook
    end
    
    def alternate_controls mapping
      attr_accessor :alternate_controls_mapping
      hook = lambda do
        if self.controls_mapping
          # primary controls taken, use alternate controls
          self.controls_mapping = self.alternate_controls_mapping if self.respond_to? :alternate_controls_mapping
        else
          self.controls_mapping = mapping
        end
      end
      InitializerHooks.register self, &hook
    end
    
  end
  
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
gosu_extensions-0.1.14 lib/traits/controllable.rb
gosu_extensions-0.1.13 lib/traits/controllable.rb
gosu_extensions-0.1.12 lib/traits/controllable.rb
gosu_extensions-0.1.11 lib/traits/controllable.rb
gosu_extensions-0.1.10 lib/traits/controllable.rb
gosu_extensions-0.1.9 lib/traits/controllable.rb
gosu_extensions-0.1.8 lib/traits/controllable.rb
gosu_extensions-0.1.7 lib/traits/controllable.rb
gosu_extensions-0.1.6 lib/traits/controllable.rb
gosu_extensions-0.1.5 lib/traits/controllable.rb
gosu_extensions-0.1.4 lib/traits/controllable.rb
gosu_extensions-0.1.3 lib/traits/controllable.rb
gosu_extensions-0.1.2 lib/traits/controllable.rb
gosu_extensions-0.1.1 lib/traits/controllable.rb
gosu_extensions-0.1.0 lib/traits/controllable.rb