garden/room.lua
2025-01-01 15:14:01 +09:00

51 lines
975 B
Lua

local window = require('window')
-- prototype of room
-- - background
-- - objects
-- - edges
local room = {
background = love.graphics.newImage("res/defaultbg.png"),
edges = {},
objects = {},
}
function edge_position(e)
local wd = screen.width - e.width
local hd = screen.height - e.height
local t = {
['left'] = { 0, hd/2 },
['right'] = { wd, hd/2 },
['up'] = { wd/2, 0 },
['down'] = { wd/2, hd },
}
local p = t[e.dir]
return p[1], p[2]
end
local mt = { __index = room }
function room:new()
local m = {}
setmetatable(m, mt)
return m
end
room.mousepressed = window.propagate{'edges', 'objects'}
function room:draw()
love.graphics.draw(self.background, 0, 0)
for i, v in ipairs(self.objects) do
v:draw()
end
for i, v in ipairs(self.edges) do
local x, y = edge_position(v)
love.graphics.draw(edge_arrow[v.dir], x, y)
end
end
return room