class Gosu::Tiled::Tilesets

Public Class Methods

new(window, data, data_dir) click to toggle source
# File lib/gosu_tiled/tilesets.rb, line 4
def initialize(window, data, data_dir)
  @root_dir = data_dir
  @window = window
  @data = data
  @tilesets = {}
  @data.each do |t|
    tileset = Gosu::Image.load_tiles(
      @window, File.join(data_dir, t['image']), t['tilewidth'], t['tileheight'], true)
    @tilesets[t['firstgid']] = {
      'data' => t,
      'tiles' => tileset
    }
  end
end

Public Instance Methods

get(index) click to toggle source
# File lib/gosu_tiled/tilesets.rb, line 23
def get(index)
  return empty_tile if index == 0 || index.nil?
  key = closest_key(index)
  @tilesets[key]['tiles'][index - key]
end
properties(index) click to toggle source
# File lib/gosu_tiled/tilesets.rb, line 29
def properties(index)
  return {} if index == 0
  key = closest_key(index)
  props = @tilesets[key]['data']['tileproperties']
  return {} unless props
  props[(index - key).to_s]
end
size() click to toggle source
# File lib/gosu_tiled/tilesets.rb, line 19
def size
  @data.size
end

Private Instance Methods

closest_key(index) click to toggle source
# File lib/gosu_tiled/tilesets.rb, line 43
def closest_key(index)
  @tilesets.keys.select { |k| k <= index }.max
end
empty_tile() click to toggle source
# File lib/gosu_tiled/tilesets.rb, line 39
def empty_tile
  @empty_tile ||= EmptyTile.new
end