mirror of
https://github.com/metrostroi-repo/MetrostroiAddon.git
synced 2026-05-02 00:42:29 +00:00
Дебаггер.
Добавлена консольная переменная metrostroi_debugger_enabled Вынос дебаггера в общую таблицу Metrostroi.Debugger Перенос создания консольных переменных в код дебаггера
This commit is contained in:
@@ -7,13 +7,16 @@ To lower net usage, an array to map variable names to indexes is send to the cli
|
|||||||
the length of the table changes. Regular data packages only contain a nameless list of data.
|
the length of the table changes. Regular data packages only contain a nameless list of data.
|
||||||
-]]
|
-]]
|
||||||
|
|
||||||
local Debugger = {}
|
local C_DebugDataTimeout = CreateClientConVar("metrostroi_debugger_data_timeout",2,true,false)
|
||||||
Debugger.DisplayGroups = {}
|
|
||||||
Debugger.EntData = {}
|
|
||||||
Debugger.EntDataTime = {}
|
|
||||||
Debugger.EntNameMap = {}
|
|
||||||
|
|
||||||
|
Metrostroi.Debugger = {}
|
||||||
|
|
||||||
|
Metrostroi.Debugger.DisplayGroups = {}
|
||||||
|
Metrostroi.Debugger.EntData = {}
|
||||||
|
Metrostroi.Debugger.EntDataTime = {}
|
||||||
|
Metrostroi.Debugger.EntNameMap = {}
|
||||||
|
|
||||||
|
local Debugger = Metrostroi.Debugger
|
||||||
local Colors = {
|
local Colors = {
|
||||||
{120,255,255},
|
{120,255,255},
|
||||||
{255,255,0},
|
{255,255,0},
|
||||||
@@ -589,7 +592,7 @@ end
|
|||||||
|
|
||||||
--Checks if we haven't gotten data from entid in a while
|
--Checks if we haven't gotten data from entid in a while
|
||||||
local function isTimedOut(id)
|
local function isTimedOut(id)
|
||||||
local timeout = GetConVar("metrostroi_debugger_data_timeout"):GetFloat()
|
local timeout = C_DebugDataTimeout:GetFloat()
|
||||||
return timeout ~= nil and timeout > 0 and CurTime() - Debugger.EntDataTime[id] > timeout
|
return timeout ~= nil and timeout > 0 and CurTime() - Debugger.EntDataTime[id] > timeout
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ end
|
|||||||
|
|
||||||
--Not sure about the quirks related to shared convars like this
|
--Not sure about the quirks related to shared convars like this
|
||||||
CreateConVar("metrostroi_train_requirethirdrail",1,FCVAR_ARCHIVE,"Whether or not Metrostroi trains require power from the third rail")
|
CreateConVar("metrostroi_train_requirethirdrail",1,FCVAR_ARCHIVE,"Whether or not Metrostroi trains require power from the third rail")
|
||||||
CreateConVar("metrostroi_debugger_update_interval",1,FCVAR_ARCHIVE,"Seconds between debugger data messages")
|
|
||||||
|
|
||||||
CreateConVar("metrostroi_arsmode",1,FCVAR_ARCHIVE)
|
CreateConVar("metrostroi_arsmode",1,FCVAR_ARCHIVE)
|
||||||
CreateConVar("metrostroi_arsmode_nogreen",0,FCVAR_ARCHIVE)
|
CreateConVar("metrostroi_arsmode_nogreen",0,FCVAR_ARCHIVE)
|
||||||
@@ -97,7 +96,6 @@ CreateClientConVar("metrostroi_cabz",0,true)
|
|||||||
CreateClientConVar("metrostroi_disablecamaccel",0,true)
|
CreateClientConVar("metrostroi_disablecamaccel",0,true)
|
||||||
CreateClientConVar("metrostroi_disablehovertext",0,true)
|
CreateClientConVar("metrostroi_disablehovertext",0,true)
|
||||||
CreateClientConVar("metrostroi_disablehovertextpos",0,true)
|
CreateClientConVar("metrostroi_disablehovertextpos",0,true)
|
||||||
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)
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
local Debugger = {}
|
local C_DebugEnabled = CreateConVar("metrostroi_debugger_enabled",0,FCVAR_ARCHIVE,"Enable train systems debugger")
|
||||||
Debugger.Clients = {}
|
local C_DebugUpdateInterval = CreateConVar("metrostroi_debugger_update_interval",1,FCVAR_ARCHIVE,"Seconds between debugger data messages")
|
||||||
Debugger.NameMap = {}
|
|
||||||
Debugger.EntVarCounts = {}
|
Metrostroi.Debugger = {}
|
||||||
|
Metrostroi.Debugger.Clients = {}
|
||||||
|
Metrostroi.Debugger.NameMap = {}
|
||||||
|
Metrostroi.Debugger.EntVarCounts = {}
|
||||||
|
local Debugger = Metrostroi.Debugger
|
||||||
|
|
||||||
|
|
||||||
util.AddNetworkString("metrostroi-debugger-dataupdate")
|
util.AddNetworkString("metrostroi-debugger-dataupdate")
|
||||||
util.AddNetworkString("metrostroi-debugger-entremoved")
|
util.AddNetworkString("metrostroi-debugger-entremoved")
|
||||||
@@ -9,10 +14,8 @@ util.AddNetworkString("metrostroi-debugger-entnamemap")
|
|||||||
|
|
||||||
|
|
||||||
if game.SinglePlayer() then
|
if game.SinglePlayer() then
|
||||||
RunConsoleCommand("metrostroi_debugger_update_interval",0)
|
C_DebugUpdateInterval:SetFloat(0.0)
|
||||||
end --[[else --Lets not reset it every time on dedicated servers
|
end
|
||||||
RunConsoleCommand("metrostroi_debugger_update_interval",0.5)
|
|
||||||
end--]]
|
|
||||||
|
|
||||||
local function SendNameMap(ply,ent)
|
local function SendNameMap(ply,ent)
|
||||||
net.Start("metrostroi-debugger-entnamemap")
|
net.Start("metrostroi-debugger-entnamemap")
|
||||||
@@ -51,6 +54,7 @@ end
|
|||||||
|
|
||||||
--Handler for adding new ents to listen to
|
--Handler for adding new ents to listen to
|
||||||
local function cmdinithandler(ply,cmd,args,fullstring)
|
local function cmdinithandler(ply,cmd,args,fullstring)
|
||||||
|
if not C_DebugEnabled:GetBool() then return end
|
||||||
local ent = ply:GetEyeTrace().Entity
|
local ent = ply:GetEyeTrace().Entity
|
||||||
if not IsValid(ent) or not ent.GetDebugVars then return end
|
if not IsValid(ent) or not ent.GetDebugVars then return end
|
||||||
|
|
||||||
@@ -69,7 +73,7 @@ end
|
|||||||
local nextthink = 0
|
local nextthink = 0
|
||||||
local function think()
|
local function think()
|
||||||
if CurTime() < nextthink then return end
|
if CurTime() < nextthink then return end
|
||||||
nextthink = CurTime() + GetConVar("metrostroi_debugger_update_interval"):GetFloat()
|
nextthink = CurTime() + C_DebugUpdateInterval:GetFloat()
|
||||||
--Loop over clients and their ents and send the collected data
|
--Loop over clients and their ents and send the collected data
|
||||||
|
|
||||||
--Check for new entity variables
|
--Check for new entity variables
|
||||||
@@ -101,9 +105,7 @@ local function think()
|
|||||||
end
|
end
|
||||||
net.Send(ply)
|
net.Send(ply)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
hook.Add("Think","metrostroi-debugger-think",think)
|
|
||||||
|
|
||||||
local function OnEntRemove(ent)
|
local function OnEntRemove(ent)
|
||||||
RemoveEnt(nil,ent)
|
RemoveEnt(nil,ent)
|
||||||
@@ -116,3 +118,21 @@ end
|
|||||||
|
|
||||||
hook.Add("EntityRemoved","metrostroi-debugger-cleanup",OnEntRemove)
|
hook.Add("EntityRemoved","metrostroi-debugger-cleanup",OnEntRemove)
|
||||||
hook.Add("PlayerDisconnected","metrstroi-debugger-plycleanup",RemoveEnt)
|
hook.Add("PlayerDisconnected","metrstroi-debugger-plycleanup",RemoveEnt)
|
||||||
|
|
||||||
|
-- Start/stop debugger think
|
||||||
|
if C_DebugEnabled:GetBool() then
|
||||||
|
hook.Add("Think","metrostroi-debugger-think",think)
|
||||||
|
end
|
||||||
|
|
||||||
|
cvars.AddChangeCallback("metrostroi_debugger_enabled", function(convar, oldValue, newValue)
|
||||||
|
if C_DebugEnabled:GetBool() then
|
||||||
|
nextthink = 0
|
||||||
|
hook.Add("Think","metrostroi-debugger-think",think)
|
||||||
|
else
|
||||||
|
hook.Remove("Think","metrostroi-debugger-think")
|
||||||
|
end
|
||||||
|
end,"sv_debugger")
|
||||||
|
|
||||||
|
cvars.AddChangeCallback("metrostroi_debugger_update_interval", function(convar, oldValue, newValue)
|
||||||
|
nextthink = CurTime() + C_DebugUpdateInterval:GetFloat()
|
||||||
|
end,"sv_debugger")
|
||||||
|
|||||||
Reference in New Issue
Block a user