doors worxlove .
This commit is contained in:
parent
7fcbd9e5da
commit
85dd66b1e4
8 changed files with 105 additions and 24 deletions
61
door.lua
61
door.lua
|
|
@ -2,14 +2,69 @@ require "entity"
|
|||
|
||||
Door = class("Door", Entity)
|
||||
|
||||
function Door:initialize()
|
||||
function Door:initialize(x, y, colors)
|
||||
Entity.initialize(self, {
|
||||
x = x,
|
||||
y = y,
|
||||
color = "white",
|
||||
collision = "unmoveable",
|
||||
sprite = doorSprite["white"] --doesn't matter for now which we put here b/c, we override the draw function neway
|
||||
})
|
||||
self.locked = true
|
||||
|
||||
self.colors = {}
|
||||
for _, color in pairs(colors) do
|
||||
self.colors[color] = true --these are currently loc_ed
|
||||
end
|
||||
end
|
||||
|
||||
function Door:unloc()
|
||||
function Door:draw()
|
||||
if self.locked then
|
||||
for color, active in pairs(self.colors) do
|
||||
if active then
|
||||
love.graphics.setColor(gColor[color]:set())
|
||||
local p = self:getDrawPos()
|
||||
love.graphics.draw(doorSprite[color], p.x + self.drawOffset.x, p.y + self.drawOffset.y, 0, drawScale, drawScale)
|
||||
end
|
||||
end
|
||||
love.graphics.setColor(gColor.white:set())
|
||||
local p = self:getDrawPos()
|
||||
love.graphics.draw(doorSprite["white"], p.x + self.drawOffset.x, p.y + self.drawOffset.y, 0, drawScale, drawScale)
|
||||
else
|
||||
for color, active in pairs(self.colors) do
|
||||
love.graphics.setColor(gColor[color]:set())
|
||||
local p = self:getDrawPos()
|
||||
love.graphics.draw(doorSprite["unlocked"], p.x + self.drawOffset.x, p.y + self.drawOffset.y, 0, drawScale, drawScale)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Door:setColors(colors)
|
||||
local offColors = {}
|
||||
for color, off in pairs(colors) do
|
||||
print(color, active)
|
||||
if off then
|
||||
if self.colors[color] then self.colors[color] = false end
|
||||
table.insert(offColors, color)
|
||||
else
|
||||
if not self.colors[color] then self.colors[color] = true end
|
||||
end
|
||||
end
|
||||
|
||||
if #offColors == 3 then
|
||||
if self.locked then self:unlock() end
|
||||
else
|
||||
if not self.locked then self:lock() end
|
||||
end
|
||||
end
|
||||
|
||||
function Door:unlock()
|
||||
print("wow")
|
||||
self.locked = false
|
||||
self.collision = "none"
|
||||
end
|
||||
|
||||
function Door:loc()
|
||||
function Door:lock()
|
||||
self.locked = true
|
||||
self.collision = "unmoveable"
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue