Sha256: d3a4d0afc72a85293926198be3f6ed71f4929877b22d6f5d667793a6305469d1

Contents?: true

Size: 743 Bytes

Versions: 5

Compression:

Stored size: 743 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

    byte6 = binary[6].unpack("H*").first.to_i(16).to_s(2).rjust(8, "0")
    byte7 = binary[7].unpack("H*").first.to_i(16).to_s(2).rjust(8, "0")
    byte8 = binary[8].unpack("H*").first.to_i(16).to_s(2).rjust(8, "0")

    self.bin_x = "#{byte7[4..7]}#{byte6}"
    self.bin_y = "#{byte8}#{byte7[0..3]}"
  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

5 entries across 5 versions & 1 rubygems

Version Path
procon_bypass_man-0.1.15 lib/procon_bypass_man/procon/analog_stick.rb
procon_bypass_man-0.1.14 lib/procon_bypass_man/procon/analog_stick.rb
procon_bypass_man-0.1.13 lib/procon_bypass_man/procon/analog_stick.rb
procon_bypass_man-0.1.12 lib/procon_bypass_man/procon/analog_stick.rb
procon_bypass_man-0.1.11 lib/procon_bypass_man/procon/analog_stick.rb