class RuneRb::Item::WeightListener

Attributes

player[R]

Public Class Methods

new(player) click to toggle source
# File app/model/item.rb, line 112
def initialize(player)
  @player = player
end

Public Instance Methods

items_changed(container) click to toggle source
# File app/model/item.rb, line 124
def items_changed(container)
  update_weight
end
slot_changed(container, slot) click to toggle source
# File app/model/item.rb, line 116
def slot_changed(container, slot)
  update_weight
end
slots_changed(container, slots) click to toggle source
# File app/model/item.rb, line 120
def slots_changed(container, slots)
  update_weight
end

Private Instance Methods

calculate_weight() click to toggle source
# File app/model/item.rb, line 135
def calculate_weight
  weight = 0.0
  weight += @player.inventory.items.inject(0) {|sum, item| sum + (item ? item.definition.weight : 0) }
  weight += @player.equipment.items.inject(0) {|sum, item| sum + (item ? item.definition.weight : 0) }
  weight
end
update_weight() click to toggle source
# File app/model/item.rb, line 130
def update_weight
  weight = calculate_weight
  @player.connection.send_data RuneRb::Net::PacketBuilder.new(240).add_short(weight.to_i).to_packet
end