class Table
Public Class Methods
_load(obj)
click to toggle source
# File lib/rmxp_extractor/classnames.rb, line 105 def self._load(obj) data = obj.unpack("VVVVVv*") @num_of_dimensions, @xsize, @ysize, @zsize, @num_of_elements, *@elements = *data s_hash = { dimensions: @num_of_dimensions, width: @xsize, height: @ysize, depth: @zsize, size: @num_of_elements, elements: [], } hash = {} s_hash.each do |key, value| hash[key.to_s] = value end hash["elements"] = *@elements Table.new(hash) end
new(hash, resize = true)
click to toggle source
# File lib/rmxp_extractor/classnames.rb, line 41 def initialize(hash, resize = true) @num_of_dimensions = hash["dimensions"] @xsize = hash["width"] @ysize = hash["height"] @zsize = hash["depth"] @num_of_elements = hash["size"] @elements = [] if @num_of_dimensions > 1 && !resize hash["elements"].each_with_index do |value, uindex| @elements << [] value.each_with_index do |value, index| @elements[uindex] << eval(value) #!Yep, you can do this to turn strings back into arrays end end else @elements = hash["elements"] end if resize if @num_of_dimensions > 1 if @xsize > 1 @elements = @elements.each_slice(@xsize).to_a else @elements = @elements.map { |element| [element] } end end if @num_of_dimensions > 2 if @ysize > 1 @elements = @elements.each_slice(@ysize).to_a else @elements = @elements.map { |element| [element] } end end end end
Public Instance Methods
_dump(limit)
click to toggle source
# File lib/rmxp_extractor/classnames.rb, line 101 def _dump(limit) [@num_of_dimensions, @xsize, @ysize, @zsize, @num_of_elements, *@elements.flatten].pack("VVVVVv*") end
hash()
click to toggle source
# File lib/rmxp_extractor/classnames.rb, line 77 def hash dump = { dimensions: @num_of_dimensions, width: @xsize, height: @ysize, depth: @zsize, size: @num_of_elements, elements: [], } #.pack("VVVVVv*") if @num_of_dimensions > 1 @elements.each_with_index do |value, uindex| dump[:elements] << [] value.each_with_index do |value, index| dump[:elements][uindex] << value.to_s end end else dump[:elements] = *@elements end dump end