1
0
mirror of https://github.com/metrostroi-repo/MetrostroiAddon.git synced 2026-05-02 00:42:29 +00:00

ПА маркер

Убрал кучу лишнего, движок сам вызывает Draw и DrawTranslucent, когда энтити в кадре
Оставил cvars.AddChangeCallback, чтобы включить отрисовку в момент, когда галка включена и энтити всё ещё в кадре с выключенной отрисовкой
This commit is contained in:
kosmik641
2025-11-06 09:59:01 +03:00
parent a3b01b69a4
commit 9efdfbc918

View File

@@ -1,49 +1,26 @@
include("shared.lua") include("shared.lua")
local C_SignalDebug = GetConVar("metrostroi_drawsignaldebug")
local mat = Material("vgui/bg-lines") local mat = Material("vgui/bg-lines")
--[[ function ENT:DrawTranslucent(flags)
function ENT:Draw() if not C_SignalDebug:GetBool() then
if not self.CanDraw then return end self:SetNoDraw(true)
return
end
self:DrawModel(flags)
cam.Start3D() cam.Start3D()
render.SetMaterial(mat) render.SetMaterial(mat)
--render.DrawQuadEasy(self:GetPos(),self:GetAngles():Forward(),600,600,Color(255,255,255),0)
render.DrawQuadEasy(self:GetPos(),-self:GetAngles():Forward(),600,300,Color(255,0,0),0) render.DrawQuadEasy(self:GetPos(),-self:GetAngles():Forward(),600,300,Color(255,0,0),0)
render.DrawLine(self:GetPos(), self:LocalToWorld(Vector(50,0,0)), Color(255,0,0)) render.DrawLine(self:GetPos(), self:LocalToWorld(Vector(50,0,0)), Color(255,0,0))
render.DrawLine(self:GetPos(), self:LocalToWorld(Vector(0,50,0)), Color(0,255,0)) render.DrawLine(self:GetPos(), self:LocalToWorld(Vector(0,50,0)), Color(0,255,0))
render.DrawLine(self:GetPos(), self:LocalToWorld(Vector(0,0,50)), Color(0,0,255)) render.DrawLine(self:GetPos(), self:LocalToWorld(Vector(0,0,50)), Color(0,0,255))
--render.DrawSprite( pos, 16, 16, white )
cam.End3D() cam.End3D()
self:DrawModel()
end]]
function ENT:Draw()
end end
local debug = GetConVar("metrostroi_drawsignaldebug") cvars.AddChangeCallback("metrostroi_drawsignaldebug", function (name, oldValue, newValue)
local function enableDebug() for _,ent in pairs(ents.FindByClass("gmod_track_pa_marker")) do
if debug:GetBool() then ent:SetNoDraw(newValue == 0)
hook.Add("PostDrawTranslucentRenderables","MetrostroiPAMarkerDebug",function(bDrawingDepth,bDrawingSkybox)
for _,ent in pairs(ents.FindByClass("gmod_track_autodrive_plate")) do
if bDrawingDepth and LocalPlayer():GetPos():DistToSqr(sig:GetPos()) < 262144 then
cam.Start3D()
render.SetMaterial(mat)
--render.DrawQuadEasy(self:GetPos(),self:GetAngles():Forward(),600,600,Color(255,255,255),0)
render.DrawQuadEasy(ent:GetPos(),-ent:GetAngles():Forward(),600,300,Color(255,0,0),0)
render.DrawLine( ent:GetPos(), ent:LocalToWorld(Vector(50,0,0)), Color(255,0,0))
render.DrawLine( ent:GetPos(), ent:LocalToWorld(Vector(0,50,0)), Color(0,255,0))
render.DrawLine( ent:GetPos(), ent:LocalToWorld(Vector(0,0,50)), Color(0,0,255))
--render.DrawSprite( pos, 16, 16, white )
cam.End3D()
ent:DrawModel()
end
end end
end) end)
else
hook.Remove("PostDrawTranslucentRenderables","MetrostroiPAMarkerDebug")
end
end
hook.Remove("PostDrawTranslucentRenderables","MetrostroiPAMarkerDebug")
cvars.AddChangeCallback( "metrostroi_drawsignaldebug", enableDebug)
enableDebug()