forked from Simnation/Main
43 lines
No EOL
1.2 KiB
Lua
43 lines
No EOL
1.2 KiB
Lua
local points = {}
|
|
|
|
---@param id string
|
|
---@param coords table
|
|
---@param distance number
|
|
---@param label string
|
|
---@param key number
|
|
---@param keyLabel string
|
|
---@param onClick function
|
|
---@param canInteract function | boolean
|
|
local createInteractionPoint = function(id, coords, distance, label, key, keyLabel, onClick, canInteract)
|
|
points[id] = lib.points.new({
|
|
coords = coords,
|
|
distance = distance,
|
|
onEnter = function()
|
|
if not canInteract then return end
|
|
exports.mt_lib:showTextUI(label, keyLabel, 'bottom')
|
|
end,
|
|
onExit = function()
|
|
exports.mt_lib:hideTextUI()
|
|
end,
|
|
nearby = function()
|
|
if canInteract and IsControlJustPressed(0, key) then
|
|
onClick()
|
|
end
|
|
end
|
|
})
|
|
end
|
|
exports("createInteractionPoint", createInteractionPoint)
|
|
|
|
---@param id string
|
|
local removeInteractionPoint = function(id)
|
|
if not points[id] then return end
|
|
points[id]:remove()
|
|
exports.mt_lib:hideTextUI()
|
|
end
|
|
exports("removeInteractionPoint", removeInteractionPoint)
|
|
|
|
---@return table | nil
|
|
local getCreatedPoints = function()
|
|
return points
|
|
end
|
|
exports("getCreatedPoints", getCreatedPoints) |