initial commit

This commit is contained in:
achmad
2026-05-29 15:11:31 +07:00
commit 777ee9bad8
1539 changed files with 172449 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
--[[ Generated with https://github.com/TypeScriptToLua/TypeScriptToLua ]]
local ____exports = {}
--- Серверный спавн карты `light_fix` в центре мира по X/Y, якорь Z = LIGHT_FIX_SPAWN_Z под землёй.
-- Один экземпляр на матч: повторные вызовы снимают предыдущий spawn group и спавнят снова.
local function ceilMapNumber(____, value)
return value + (64 - value % 64) % 64
end
--- Опциональная точка на карте маппера (если есть — X/Y, со снапом по сетке; Z задаётся отдельно).
local LIGHT_FIX_WORLD_ENTITY = "point_light_fix_world_center"
--- Высота якоря под картой: не видно игрокам, логика освещения может подтягиваться.
local LIGHT_FIX_SPAWN_Z = -1000
local lightFixSpawnGroupHandle
--- Центр мира по границам карты + снап 64 по X/Y; Z под землёй.
local function getLightFixSpawnOrigin(self)
local named = Entities:FindByName(nil, LIGHT_FIX_WORLD_ENTITY)
if named and named.GetAbsOrigin then
local o = named:GetAbsOrigin()
return Vector(
ceilMapNumber(nil, o.x),
ceilMapNumber(nil, o.y),
LIGHT_FIX_SPAWN_Z
)
end
local cx = (GetWorldMinX() + GetWorldMaxX()) * 0.5
local cy = (GetWorldMinY() + GetWorldMaxY()) * 0.5
local x = ceilMapNumber(nil, cx)
local y = ceilMapNumber(nil, cy)
return Vector(x, y, LIGHT_FIX_SPAWN_Z)
end
--- Спавнит `light_fix` в центре мира (коллбеки пустые — полный цикл загрузки).
-- `playerId` оставлен в сигнатуре для вызывающего кода; позиция не зависит от игрока.
function ____exports.spawnLightFixForPlayer(self, _playerId)
if not IsServer() then
return
end
local origin = getLightFixSpawnOrigin(nil)
lightFixSpawnGroupHandle = DOTA_SpawnMapAtPosition(
"light_fix",
origin,
false,
function()
end,
function()
end,
nil
)
end
return ____exports