feature/cast-overlay #33
@ -24,6 +24,8 @@ spell.targetQuery = Query(targetTest.any)
|
|||||||
spell.previewType = "default"
|
spell.previewType = "default"
|
||||||
|
|
||||||
function spell:update(caster, dt)
|
function spell:update(caster, dt)
|
||||||
|
self.targets = self.targetQuery:asSet(caster)
|
||||||
|
|
||||||
if self.previewType == "path" then
|
if self.previewType == "path" then
|
||||||
local charPos = caster:has(Tree.behaviors.positioned).position:floor()
|
local charPos = caster:has(Tree.behaviors.positioned).position:floor()
|
||||||
--- @type Vec3
|
--- @type Vec3
|
||||||
@ -37,6 +39,17 @@ function spell:update(caster, dt)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function spell:draw()
|
function spell:draw()
|
||||||
|
Tree.level.camera:attach()
|
||||||
|
love.graphics.setCanvas(Tree.level.render.textures.overlayLayer)
|
||||||
|
love.graphics.setColor(0.3, 1, 0.3, 0.5)
|
||||||
|
for _, p in pairs(self.targets) do
|
||||||
|
love.graphics.rectangle("fill", p.x, p.y, 1, 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
love.graphics.setCanvas()
|
||||||
|
Tree.level.camera:detach()
|
||||||
|
love.graphics.setColor(1, 1, 1)
|
||||||
|
|
||||||
if self.previewType == "path" then
|
if self.previewType == "path" then
|
||||||
local path = self.path --[[@as Deque?]]
|
local path = self.path --[[@as Deque?]]
|
||||||
if not path then return end
|
if not path then return end
|
||||||
|
|||||||
@ -48,7 +48,7 @@ end
|
|||||||
function query:asSet(caster)
|
function query:asSet(caster)
|
||||||
--- @TODO: оптимизировать и брать не всю карту для выборки
|
--- @TODO: оптимизировать и брать не всю карту для выборки
|
||||||
local res = {}
|
local res = {}
|
||||||
for _, tile in pairs(Tree.level.tileGrid) do
|
for _, tile in pairs(Tree.level.tileGrid.__grid) do
|
||||||
if self.test(caster, tile.position) then
|
if self.test(caster, tile.position) then
|
||||||
table.insert(res, tile.position)
|
table.insert(res, tile.position)
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user