From 473cbcb82f71cd1c85ae56ea0215c1f42282f282 Mon Sep 17 00:00:00 2001 From: tangent Date: Thu, 29 Oct 2026 18:47:50 -0600 Subject: [PATCH] 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. --- lib/tilesheet.lua | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/lib/tilesheet.lua b/lib/tilesheet.lua index 4ddf902..887ff39 100644 --- a/lib/tilesheet.lua +++ b/lib/tilesheet.lua @@ -19,43 +19,40 @@ local tile_metatable = { } local tilesheet.load = function(data_or_path) - local tile_image, tile_size + local tile_image, tile_size, tile_usage local tiles = {} if type(data_or_path) == "table" then tile_image = load_image(data_or_path.image_path) 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 tiles[name] = setmetatable({ 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 ), }, tile_metatable) + + tile_usage[tile_data.x][tile_data.y] = true end + else tile_image = load_image(data_or_path) 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 = { image = tile_image, - size = tile_size, - tiles = tiles, - tile_usage = tile_usage, + size = tile_size, -- unset on new + tiles = tiles, -- empty on new + tile_usage = tile_usage, -- unset on new } return tiles