Update lib/tilesheet.lua

You know.. maybe that "setting up a new one" stuff shouldn't be IN the library at all. It's just clunking up loading.
This commit is contained in:
tangent committed 2026-10-29 18:47:50 -06:00
1 parent 65ccd0e0db
commit 473cbcb82f
1 file changed
+16 -19
+16 -19
View File
@@ -19,43 +19,40 @@ local tile_metatable = {
} }
local tilesheet.load = function(data_or_path) local tilesheet.load = function(data_or_path)
local tile_image, tile_size local tile_image, tile_size, tile_usage
local tiles = {} local tiles = {}
if type(data_or_path) == "table" then if type(data_or_path) == "table" then
tile_image = load_image(data_or_path.image_path) tile_image = load_image(data_or_path.image_path)
tile_size = data_or_path.tile_size tile_size = data_or_path.tile_size
local image_width, image_height = tile_image:getDimensions()
tile_usage = {}
for x = 1, image_width / tile_size do
tile_usage[x] = {}
for y = 1, image_height / tile_size do
tile_usage[x][y] = false
end
end
for name, tile_data in pairs(data_or_path.tiles) do for name, tile_data in pairs(data_or_path.tiles) do
tiles[name] = setmetatable({ tiles[name] = setmetatable({
image = tile_image, image = tile_image,
quad = love.graphics.newQuad( (tile_data.x - 1) * tile_size, (tile_data.y - 1) * tile_size, tile_size, tile_size, tile_image ), quad = love.graphics.newQuad( (tile_data.x - 1) * tile_size, (tile_data.y - 1) * tile_size, tile_size, tile_size, tile_image ),
}, tile_metatable) }, tile_metatable)
tile_usage[tile_data.x][tile_data.y] = true
end end
else else
tile_image = load_image(data_or_path) tile_image = load_image(data_or_path)
end end
-- this mess feels kinda wasteful/repetitive
local image_width, image_height = tile_image:getDimensions()
local tile_usage = {}
for x = 1, image_width / tile_size do
tile_usage[x] = {}
for y = 1, image_height / tile_size do
tile_usage[x][y] = false
end
end
if type(data_or_path) == "table" then
for name, tile_data in pairs(data_or_path.tiles) do
tile_usage[tile_data.x][tile_data.y] = true
end
end
tilesheet.active_sheet = { tilesheet.active_sheet = {
image = tile_image, image = tile_image,
size = tile_size, size = tile_size, -- unset on new
tiles = tiles, tiles = tiles, -- empty on new
tile_usage = tile_usage, tile_usage = tile_usage, -- unset on new
} }
return tiles return tiles