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

Added ConVar metrostroi_signal_distance

This commit is contained in:
Hellss
2022-07-31 22:35:55 +03:00
parent f131d17eaf
commit 47eb7f252b
12 changed files with 29 additions and 2 deletions

View File

@@ -198,14 +198,30 @@ net.Receive("metrostroi-signal", function()
if ent.RemoveModels then ent:RemoveModels() end if ent.RemoveModels then ent:RemoveModels() end
end) end)
local C_RenderDistance = GetConVar("metrostroi_signal_distance")
local timer = CurTime()
hook.Add("Think","MetrostroiRenderSignals", function()
if CurTime() - timer < 1.5 or not IsValid(LocalPlayer()) then return end
timer = CurTime()
local plyPos = LocalPlayer():GetPos()
local dist = C_RenderDistance:GetInt()
for _,sig in pairs(ents.FindByClass("gmod_track_signal")) do
if not IsValid(sig) then continue end
local sigPos = sig:GetPos()
sig.RenderDisable = sigPos:Distance(plyPos) > dist or math.abs(plyPos.z - sigPos.z) > 1500
end
end)
function ENT:Think() function ENT:Think()
local CurTime = CurTime() local CurTime = CurTime()
self:SetNextClientThink(CurTime + 0.0333) self:SetNextClientThink(CurTime + 0.0333)
self.PrevTime = self.PrevTime or RealTime() self.PrevTime = self.PrevTime or RealTime()
self.DeltaTime = (RealTime() - self.PrevTime) self.DeltaTime = (RealTime() - self.PrevTime)
self.PrevTime = RealTime() self.PrevTime = RealTime()
if self:IsDormant() or Metrostroi and Metrostroi.ReloadClientside then if (self:IsDormant() or Metrostroi and Metrostroi.ReloadClientside or self.RenderDisable) and not self.ReloadModels then
if not self.ReloadModels and self.ModelsCreated then if self.ModelsCreated then
self:RemoveModels() self:RemoveModels()
end end
return true return true

View File

@@ -42,6 +42,7 @@ local function ClientPanel(panel)
panel:NumSlider(Metrostroi.GetPhrase("Panel.FOV"),"metrostroi_cabfov",65,100) panel:NumSlider(Metrostroi.GetPhrase("Panel.FOV"),"metrostroi_cabfov",65,100)
panel:NumSlider(Metrostroi.GetPhrase("Panel.Z"),"metrostroi_cabz",-10,10) panel:NumSlider(Metrostroi.GetPhrase("Panel.Z"),"metrostroi_cabz",-10,10)
panel:NumSlider(Metrostroi.GetPhrase("Panel.RenderDistance"),"metrostroi_renderdistance",960,3072) panel:NumSlider(Metrostroi.GetPhrase("Panel.RenderDistance"),"metrostroi_renderdistance",960,3072)
panel:NumSlider(Metrostroi.GetPhrase("Panel.RenderSignals"),"metrostroi_signal_distance",6144,16384)
panel:Button(Metrostroi.GetPhrase("Panel.ReloadClient"),"metrostroi_reload_client",true) panel:Button(Metrostroi.GetPhrase("Panel.ReloadClient"),"metrostroi_reload_client",true)
function DRouteNumber:OnChange() function DRouteNumber:OnChange()

View File

@@ -101,6 +101,7 @@ CreateClientConVar("metrostroi_debugger_data_timeout",2,true,false)
CreateClientConVar("metrostroi_disablehud",0,true) CreateClientConVar("metrostroi_disablehud",0,true)
CreateClientConVar("metrostroi_renderdistance",1024,true) CreateClientConVar("metrostroi_renderdistance",1024,true)
CreateClientConVar("metrostroi_signal_distance",8192,true)
CreateClientConVar("metrostroi_screenshotmode",0,true) CreateClientConVar("metrostroi_screenshotmode",0,true)
CreateClientConVar("metrostroi_disableseatshadows",0,true) CreateClientConVar("metrostroi_disableseatshadows",0,true)
CreateClientConVar("metrostroi_softdrawmultipier",100,true) CreateClientConVar("metrostroi_softdrawmultipier",100,true)

View File

@@ -43,6 +43,7 @@ Panel.RouteNumber = Route number #NEW
Panel.FOV = FOV Panel.FOV = FOV
Panel.Z = Výška kamery Panel.Z = Výška kamery
Panel.RenderDistance = Vykreslovací\nvzdálenost Panel.RenderDistance = Vykreslovací\nvzdálenost
Panel.RenderSignals = Traced signals #NEW #FIXME
Panel.ReloadClient = Znovu načíst klienta Panel.ReloadClient = Znovu načíst klienta
Panel.ClientAdvanced = Klient (pokročilý) Panel.ClientAdvanced = Klient (pokročilý)

View File

@@ -43,6 +43,7 @@ Panel.RouteNumber = Route number #NEW
Panel.FOV = Sichtfeld Panel.FOV = Sichtfeld
Panel.Z = Camera height #NEW Panel.Z = Camera height #NEW
Panel.RenderDistance = Render distanz Panel.RenderDistance = Render distanz
Panel.RenderSignals = Traced signals #NEW #FIXME
Panel.ReloadClient = Clientseitig neuladen Panel.ReloadClient = Clientseitig neuladen
Panel.ClientAdvanced = Client (Fortgeschritten) Panel.ClientAdvanced = Client (Fortgeschritten)

View File

@@ -52,6 +52,7 @@ Panel.RouteNumber = Route number #NEW
Panel.FOV = FOV Panel.FOV = FOV
Panel.Z = Camera height #NEW Panel.Z = Camera height #NEW
Panel.RenderDistance = Render distance Panel.RenderDistance = Render distance
Panel.RenderSignals = Traced signals #NEW #FIXME
Panel.ReloadClient = Reload client side Panel.ReloadClient = Reload client side
Panel.ClientAdvanced = Client (advanced) Panel.ClientAdvanced = Client (advanced)

View File

@@ -43,6 +43,7 @@ Panel.RouteNumber = Route number #NEW
Panel.FOV = Champ de vision (FOV) Panel.FOV = Champ de vision (FOV)
Panel.Z = Hauteur de caméra Panel.Z = Hauteur de caméra
Panel.RenderDistance = Rendu à distance Panel.RenderDistance = Rendu à distance
Panel.RenderSignals = Traced signals #NEW #FIXME
Panel.ReloadClient = Redémarrer le client Panel.ReloadClient = Redémarrer le client
Panel.ClientAdvanced = Client (avancé) Panel.ClientAdvanced = Client (avancé)

View File

@@ -41,6 +41,7 @@ Panel.MinimizedShow = Ne töltse be az elemeket, \nha a program tálcán van
Panel.FOV = FOV Panel.FOV = FOV
Panel.Z = Kamera magassága Panel.Z = Kamera magassága
Panel.RenderDistance = Renderelési távolság Panel.RenderDistance = Renderelési távolság
Panel.RenderSignals = Traced signals #NEW #FIXME
Panel.ReloadClient = Kliens oldal újraindítása Panel.ReloadClient = Kliens oldal újraindítása
Panel.ClientAdvanced = Kliens (haladó) Panel.ClientAdvanced = Kliens (haladó)

View File

@@ -40,6 +40,7 @@ Panel.MinimizedShow = Non scaricare nessun elemento\nwhen minimizzato
Panel.FOV = FOV Panel.FOV = FOV
Panel.Z = Altezza della videocamera Panel.Z = Altezza della videocamera
Panel.RenderDistance = Distanza di rendering Panel.RenderDistance = Distanza di rendering
Panel.RenderSignals = Traced signals #NEW #FIXME
Panel.ReloadClient = Ricarica lato utente Panel.ReloadClient = Ricarica lato utente
Panel.ClientAdvanced = Utente (Avanzato) Panel.ClientAdvanced = Utente (Avanzato)

View File

@@ -41,6 +41,7 @@ Panel.MinimizedShow = 창 최소화시 구성요소 언로드 하지 않기
Panel.FOV = 시야각(FOV) Panel.FOV = 시야각(FOV)
Panel.Z = 시점 높이 Panel.Z = 시점 높이
Panel.RenderDistance = 렌더링 거리 Panel.RenderDistance = 렌더링 거리
Panel.RenderSignals = Traced signals #NEW #FIXME
Panel.ReloadClient = 사용자 시스템 다시 불러오기 Panel.ReloadClient = 사용자 시스템 다시 불러오기
Panel.ClientAdvanced = 사용자 (고급설정) Panel.ClientAdvanced = 사용자 (고급설정)

View File

@@ -43,6 +43,7 @@ Panel.RouteNumber = Route number #NEW
Panel.FOV = FOV (pole widzenia) Panel.FOV = FOV (pole widzenia)
Panel.Z = Camera height #NEW Panel.Z = Camera height #NEW
Panel.RenderDistance = Odległość rysowania Panel.RenderDistance = Odległość rysowania
Panel.RenderSignals = Traced signals #NEW #FIXME
Panel.ReloadClient = Przeładuj zasoby (klient) Panel.ReloadClient = Przeładuj zasoby (klient)
Panel.ClientAdvanced = Klient (zaawansowane) Panel.ClientAdvanced = Klient (zaawansowane)

View File

@@ -52,6 +52,7 @@ Panel.RouteNumber = Номер маршрута
Panel.FOV = Поле зрения Panel.FOV = Поле зрения
Panel.Z = Высота камеры Panel.Z = Высота камеры
Panel.RenderDistance = Дальность прорисовки Panel.RenderDistance = Дальность прорисовки
Panel.RenderSignals = Прорисовка светофоров
Panel.ReloadClient = Перезагрузить клиентскую часть Panel.ReloadClient = Перезагрузить клиентскую часть
Panel.ClientAdvanced = Клиент (дополнительно) Panel.ClientAdvanced = Клиент (дополнительно)