diff --git a/init.lua b/init.lua index c6a31ea..9f9fcd2 100644 --- a/init.lua +++ b/init.lua @@ -438,6 +438,15 @@ function M.has_layer(layer_name, map_id) return m.layers and m.layers[layer_name] ~= nil end +function M.cell_gid(layer_name, x, y, map_id) + local id = map_id or current_map_id + if not id then error("maps.cell_gid: no current map") end + local m = map_registry[id] + if not m.layers or not m.layers[layer_name] then return 0 end + if x < 0 or x >= m.size.w or y < 0 or y >= m.size.h then return 0 end + return m.layers[layer_name].tiles[y * m.size.w + x + 1] or 0 +end + function M.is_indoor(x, y, map_id) local id = map_id or current_map_id if not id then error("maps.is_indoor: no current map") end