garden/room.lua
Hyeonung Baek 340ff8f519 A set of updates
- add object door
- refactor log
- etc
2025-01-04 15:53:45 +09:00

50 lines
884 B
Lua

local window = require('window')
local entity = require('entity')
-- prototype of room
-- - background
-- - objects
-- - edges
local room = entity:from{
background = love.graphics.newImage("res/defaultbg.png"),
edges = {},
objects = {},
}
local oldnew = room.new
function room:new()
local r = oldnew(room)
r.edges = {}
r.objects = {}
return r
end
function room:insert(obj)
table.insert(self.objects, obj)
obj.idx = #self.objects
end
function room:remove(obj)
table.remove(self.objects, obj.idx)
for i, v in ipairs(self.objects) do
v.idx = i
end
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
v:draw()
end
end
return room