1
0
mirror of https://github.com/metrostroi-repo/MetrostroiAddon.git synced 2026-05-02 00:42:29 +00:00
Files
MetrostroiAddon/lua/entities/gmod_track_pa_marker/init.lua
g_brzhezinskiy 1d05caf866 init
2021-01-02 12:51:45 +03:00

50 lines
1.6 KiB
Lua

AddCSLuaFile("shared.lua")
AddCSLuaFile("cl_init.lua")
include("shared.lua")
util.AddNetworkString("metrostroi_auodrive_coils")
function ENT:Initialize()
self:DrawShadow(false)
self:SetModel("models/mechanics/roboticslarge/xfoot.mdl")
self:SetColor(Color(200,50,50,100))
self:SetRenderMode(RENDERMODE_TRANSALPHA)
end
function ENT:Think()
end
function ENT:UpdateTrackPos(pos,ang)
local results = Metrostroi.GetPositionOnTrack(pos or self:GetPos(),ang or self:GetAngles())
if #results > 0 then
pos,ang = Metrostroi.GetTrackPosition(results[1].node1.path,results[1].x)
self:SetPos(pos)
self:SetAngles(ang:Angle())
self.TrackPosition = results[1]
self.TrackPath = self.TrackPosition.node1.path.id
self.TrackX = self.TrackPosition.x
else
self:SetPos(pos)
self:SetAngles(ang)
end
end
function ENT:SetTrackPosition(path,x)
local results = Metrostroi.GetPositionOnTrack(self:GetPos(),self:GetAngles())
local pos,ang = Metrostroi.GetTrackPosition(path,x)
if not pos then
pos,ang = Metrostroi.GetTrackPosition(results[1].path,results[1].x)
if not pos then
ErrorNoHalt(Format("Metrostroi: Can't find PA track position: %s!\n",self:GetPos()))
return
else
ErrorNoHalt(Format("Metrostroi: Can't find PA track position: %s, using standart...\n",self:GetPos()))
end
--pos,ang = Metrostroi.GetTrackPosition(path,x)
end
self.TrackPosition = results[1]
if self:GetPos():Distance(pos) > 1 then
self:SetPos(pos)
self:SetAngles(ang:Angle())
end
end