heroes-of-nerevelon/lib/selector.lua
Neckrat d07d26680c implemented character movement & initial selector
Co-authored-by: Ivan Yuriev <ivanyr44@gmail.com>
2025-08-09 02:32:15 +03:00

36 lines
811 B
Lua

--- @class Selector
--- @field id integer
local selector = {}
local function new()
return setmetatable({}, selector)
end
--- @param characterId integer
function selector:select(characterId)
self.id = characterId
end
function selector:deselect()
self.id = nil
end
--- TODO: сделать обработчик селектора
--- @param camera Camera
function selector:update(camera, dt)
if self.id then
return
end
local mousePosition = camera:toWorldPosition(Vec3 { love.mouse.getX(), love.mouse.getY() }):floor()
local characterPosition = Tree.level.positionGrid[mousePosition.x][mousePosition.y]
if Tree.controls:isDown("select") then
if characterPosition then
self:select(characterPosition)
end
end
end
return {
new = new
}