feature/cast-overlay #33

Merged
PeaAshMeter merged 4 commits from feature/cast-overlay into main 2026-04-13 01:19:52 +03:00
2 changed files with 14 additions and 1 deletions
Showing only changes of commit 41c7759de6 - Show all commits

View File

@ -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

View File

@ -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