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