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:
1 parent
65ccd0e0db
commit
473cbcb82f
1 file changed
+14
-17
+14
-17
@@ -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
|
||||
|
||||
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)
|
||||
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 = {}
|
||||
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
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
Reference in new issue
Block a user