---@module 'obj/Room' ---@class Room:Object ---@field area Area room area ---@field id string room id ---@field super Room ---@field main_canvas love.Canvas local Room = Object:extend() ---Instantiates room. function Room:new() self.area = Area(self) self.id = UUID() self.main_canvas = love.graphics.newCanvas(gw, gh) end ---Updates room (see [love.update()](lua://love.update)) ---@param dt number delta time function Room:update(dt) self.area:update(dt) end ---Draws graphics (see [love.draw()](lua://love.draw)) ---**DO NOT OVERRIDE:** use Room:canvasDraw() instead function Room:draw() love.graphics.setCanvas(self.main_canvas) love.graphics.clear() self:canvasDraw() love.graphics.setCanvas() love.graphics.setColor(255, 255, 255, 255) love.graphics.setBlendMode('alpha', 'premultiplied') love.graphics.draw(self.main_canvas, 0, 0, 0, sx, sy) love.graphics.setBlendMode('alpha') end ---Draw to the canvas function Room:canvasDraw() self.area:draw() end return Room