diff --git a/media/lua/client/TOC/Handlers/AmputationHandler.lua b/media/lua/client/TOC/Handlers/AmputationHandler.lua index 6d62a30..fd1fe30 100644 --- a/media/lua/client/TOC/Handlers/AmputationHandler.lua +++ b/media/lua/client/TOC/Handlers/AmputationHandler.lua @@ -86,7 +86,7 @@ function AmputationHandler:execute(damagePlayer) ItemsHandler.SpawnAmputationItem(self.patient, self.limbName) -- Add it to the list of cut limbs - PlayerHandler.AddLocalAmputatedLimb(self.limbName) + PlayerHandler.AddLocalAmputatedLimb(self.patient:getUsername(), self.limbName) -- Set the highest amputation and caches them. --ISHealthPanel.GetHighestAmputation() diff --git a/media/lua/server/TOC/DebugCommands.lua b/media/lua/server/TOC/DebugCommands.lua new file mode 100644 index 0000000..b0cbd44 --- /dev/null +++ b/media/lua/server/TOC/DebugCommands.lua @@ -0,0 +1,23 @@ +local CommandsData = require("TOC/CommandsData") + +local DebugCommands = {} + + + +---comment +---@param playerObj IsoPlayer +---@param args {username : string} +function DebugCommands.PrintTocData(playerObj, args) + local data = ModData.get(CommandsData.GetKey(args.username)) + TOC_DEBUG.printTable(data) +end + +-------------------- + +local function OnClientDebugCommand(module, command, playerObj, args) + if module == CommandsData.modules.TOC_DEBUG and DebugCommands[command] then + DebugCommands[command](playerObj, args) + end +end + +Events.OnClientCommand.Add(OnClientDebugCommand) diff --git a/media/lua/shared/TOC/CommandsData.lua b/media/lua/shared/TOC/CommandsData.lua index 41458dd..871ec0f 100644 --- a/media/lua/shared/TOC/CommandsData.lua +++ b/media/lua/shared/TOC/CommandsData.lua @@ -4,7 +4,8 @@ local CommandsData = {} CommandsData.modules = { - TOC_SYNC = "TOC_SYNC" + TOC_SYNC = "TOC_SYNC", + TOC_DEBUG = "TOC_DEBUG" } @@ -19,6 +20,10 @@ CommandsData.server = { Sync = { AskPlayerData = "AskPlayerData", ---@alias askPlayerDataParams {patientNum : number} RelayPlayerData = "RelayPlayerData" ---@alias relayPlayerDataParams {surgeonNum : number, tocData : tocModData} + }, + + Debug = { + PrintTocData = "PrintTocData" ---@alias printTocDataParams {username : string} } } diff --git a/media/lua/shared/TOC/Debug.lua b/media/lua/shared/TOC/Debug.lua index 695ee6c..8256cd9 100644 --- a/media/lua/shared/TOC/Debug.lua +++ b/media/lua/shared/TOC/Debug.lua @@ -6,10 +6,32 @@ function TOC_DEBUG.togglePaneMod() TOC_DEBUG.disablePaneMod = not TOC_DEBUG.disablePaneMod end ----comment +---Print debug ---@param string string function TOC_DEBUG.print(string) if isDebugEnabled() then print("TOC: " .. string) end +end + +function TOC_DEBUG.printTable(table, indent) + if not table then return end + indent = indent or "" + + for key, value in pairs(table) do + if type(value) == "table" then + print(indent .. key .. " (table):") + TOC_DEBUG.printTable(value, indent .. " ") + else + print(indent .. key .. ":", value) + end + end +end + +function TOC_DEBUG.printGlobalModDataServer(username) + local CommandsData = require("TOC/CommandsData") + + ---@type printTocDataParams + local params = {username = username} + sendClientCommand(CommandsData.modules.TOC_DEBUG, CommandsData.server.Debug.PrintTocData, params) end \ No newline at end of file