Sha256: 6528f70a808f368541bfd240a0c740a4ac40cb5d53ac2a93d9043e734553219a

Contents?: true

Size: 845 Bytes

Versions: 4

Compression:

Stored size: 845 Bytes

Contents

class ProconBypassMan::ProconReader
  def initialize(binary: )
    @binary = binary
    @analog_stick = ProconBypassMan::Procon::AnalogStick.new(binary: binary)
  end

  # @return [Array<Symbol>]
  def pressed
    aware = ProconBypassMan::PpressButtonAware.new(@binary)
    pressed_table = ::ProconBypassMan::Procon::ButtonCollection::BUTTONS.reduce({}) do |acc, button|
      acc[button] = aware.pressed_button?(button)
      acc
    end
    pressed_table.select { |_key, value| value }.keys
  end

  def left_analog_stick
    { x: @analog_stick.relative_x, y: @analog_stick.relative_y }
  end

  def left_analog_stick_by_abs
    { x: @analog_stick.abs_x, y: @analog_stick.abs_y }
  end

  def to_hash
    { left_analog_stick: left_analog_stick,
      left_analog_stick_by_abs: left_analog_stick_by_abs,
      buttons: pressed,
    }
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
procon_bypass_man-0.1.15 lib/procon_bypass_man/procon_reader.rb
procon_bypass_man-0.1.14 lib/procon_bypass_man/procon_reader.rb
procon_bypass_man-0.1.13 lib/procon_bypass_man/procon_reader.rb
procon_bypass_man-0.1.12 lib/procon_bypass_man/procon_reader.rb