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