Sha256: 4eeaad48c75799e09787f1f914e70c0f9d081a721414312afee219b72cecad34

Contents?: true

Size: 736 Bytes

Versions: 7

Compression:

Stored size: 736 Bytes

Contents

class ProconBypassMan::Procon::AnalogStick
  attr_accessor :neutral_position
  attr_accessor :bin_x, :bin_y

  def initialize(binary: )
    @neutral_position = ProconBypassMan::ButtonsSettingConfiguration.instance.neutral_position
    bytes = binary[ProconBypassMan::Procon::ButtonCollection::LEFT_ANALOG_STICK.fetch(:byte_position)]
    byte6, byte7, byte8 = bytes.each_char.map { |x| x.unpack("C").first.to_s(2).rjust(8, "0") }

    self.bin_x = "#{byte7[4..7]}#{byte6}"
    self.bin_y = "#{byte8}#{byte7[0..3]}"
    freeze
  end

  def abs_x
    bin_x.to_i(2)
  end

  def abs_y
    bin_y.to_i(2)
  end

  def relative_x
    bin_x.to_i(2) - neutral_position.x
  end

  def relative_y
    bin_y.to_i(2) - neutral_position.y
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
procon_bypass_man-0.1.20.2 lib/procon_bypass_man/procon/value_objects/analog_stick.rb
procon_bypass_man-0.1.20.1 lib/procon_bypass_man/procon/value_objects/analog_stick.rb
procon_bypass_man-0.1.20 lib/procon_bypass_man/procon/value_objects/analog_stick.rb
procon_bypass_man-0.1.19.1 lib/procon_bypass_man/procon/value_objects/analog_stick.rb
procon_bypass_man-0.1.19 lib/procon_bypass_man/procon/value_objects/analog_stick.rb
procon_bypass_man-0.1.18 lib/procon_bypass_man/procon/value_objects/analog_stick.rb
procon_bypass_man-0.1.17 lib/procon_bypass_man/procon/value_objects/analog_stick.rb