feature/cast-overlay #33
@ -24,6 +24,8 @@ spell.targetQuery = Query(targetTest.any)
|
||||
spell.previewType = "default"
|
||||
|
||||
function spell:update(caster, dt)
|
||||
self.targets = self.targetQuery:asSet(caster)
|
||||
|
||||
if self.previewType == "path" then
|
||||
local charPos = caster:has(Tree.behaviors.positioned).position:floor()
|
||||
--- @type Vec3
|
||||
@ -37,6 +39,17 @@ function spell:update(caster, dt)
|
||||
end
|
||||
|
||||
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
|
||||
local path = self.path --[[@as Deque?]]
|
||||
if not path then return end
|
||||
|
||||
@ -48,7 +48,7 @@ end
|
||||
function query:asSet(caster)
|
||||
--- @TODO: оптимизировать и брать не всю карту для выборки
|
||||
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
|
||||
table.insert(res, tile.position)
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user