From 73fdbb11e00ca90a8d90ce5b7648457cfbc2fe21 Mon Sep 17 00:00:00 2001 From: Pao Date: Mon, 23 Jan 2023 00:34:44 +0100 Subject: [PATCH] Working stuff --- media/lua/client/TOC_Checks.lua | 24 ++++++------- media/lua/client/TOC_ContextMenus.lua | 16 +-------- media/lua/client/TOC_UI.lua | 49 +++++++++++++++------------ media/lua/server/TOC_MP_server.lua | 12 +++---- 4 files changed, 46 insertions(+), 55 deletions(-) diff --git a/media/lua/client/TOC_Checks.lua b/media/lua/client/TOC_Checks.lua index 6a0e3cc..95261b4 100644 --- a/media/lua/client/TOC_Checks.lua +++ b/media/lua/client/TOC_Checks.lua @@ -6,27 +6,27 @@ end ----------------------------------------- -- MP HANDLING CHECKS -function CheckIfCanBeCut(part_name, part_data) +function CheckIfCanBeCut(part_name, limbs_data) - if part_data == nil then - part_data = getPlayer():getModData().TOC.Limbs + if limbs_data == nil then + limbs_data = getPlayer():getModData().TOC.Limbs end - local check = (not part_data[part_name].is_cut) and - (not CheckIfProsthesisAlreadyInstalled(part_data, part_name)) + local check = (not limbs_data[part_name].is_cut) and + (not CheckIfProsthesisAlreadyInstalled(limbs_data, part_name)) return check end -function CheckIfCanBeOperated(part_name, part_data) +function CheckIfCanBeOperated(part_name, limbs_data) - if part_data == nil then - part_data = getPlayer():getModData().TOC.Limbs + if limbs_data == nil then + limbs_data = getPlayer():getModData().TOC.Limbs end - return part_data[part_name].is_operated == false and part_data[part_name].is_amputation_shown + return limbs_data[part_name].is_operated == false and limbs_data[part_name].is_amputation_shown end @@ -54,17 +54,17 @@ end -function CheckIfProsthesisAlreadyInstalled(part_data, part_name) +function CheckIfProsthesisAlreadyInstalled(limbs_data, part_name) local r = "Right" local l = "Left" if string.find(part_name, r) then - return (part_data[r .. "_Hand"].is_prosthesis_equipped or part_data[r .. "_LowerArm"].is_prosthesis_equipped) + return (limbs_data[r .. "_Hand"].is_prosthesis_equipped or limbs_data[r .. "_LowerArm"].is_prosthesis_equipped) elseif string.find(part_name, l) then - return (part_data[l .. "_Hand"].is_prosthesis_equipped or part_data[l .. "_LowerArm"].is_prosthesis_equipped) + return (limbs_data[l .. "_Hand"].is_prosthesis_equipped or limbs_data[l .. "_LowerArm"].is_prosthesis_equipped) end diff --git a/media/lua/client/TOC_ContextMenus.lua b/media/lua/client/TOC_ContextMenus.lua index 17a47e2..e98463a 100644 --- a/media/lua/client/TOC_ContextMenus.lua +++ b/media/lua/client/TOC_ContextMenus.lua @@ -118,10 +118,8 @@ end TocContextMenus.FillCutAndOperateMenus = function(local_player, clicked_player, world_objects, cut_menu, operate_menu) local local_part_data = local_player:getModData().TOC.Limbs - + for _, v in ipairs(GetBodyParts()) do - - if local_player == clicked_player then -- Local player if CheckIfCanBeCut(v) and TocGetSawInInventory(local_player) ~= nil then @@ -145,21 +143,9 @@ TocContextMenus.FillCutAndOperateMenus = function(local_player, clicked_player, operate_menu:addOption(getText('UI_ContextMenu_' .. v), world_objects, TryTocAction, v, "Operate", local_player, clicked_player) end - - - - - - - end - - - end - end - end diff --git a/media/lua/client/TOC_UI.lua b/media/lua/client/TOC_UI.lua index f9e0acd..e0a5882 100644 --- a/media/lua/client/TOC_UI.lua +++ b/media/lua/client/TOC_UI.lua @@ -31,9 +31,11 @@ end ------------------------------ -- UI Visible stuff functions -local function GetImageName(part_name, part_data) +local function GetImageName(part_name, limbs_data) local name = "" + local part_data = limbs_data[part_name] + if part_data.is_cut and part_data.is_cicatrized and part_data.is_prosthesis_equipped then -- Cut and equip if part_name == "Right_Hand" or part_name == "Left_Hand" then name = "media/ui/TOC/" .. part_name .. "/Hook.png" @@ -58,9 +60,9 @@ local function GetImageName(part_name, part_data) end -- If foreaerm equip, change hand - if part_name == "Right_Hand" and part_data["Right_LowerArm"].is_prosthesis_equipped then + if part_name == "Right_Hand" and limbs_data["Right_LowerArm"].is_prosthesis_equipped then name = "media/ui/TOC/" .. part_name .. "/Hook.png" - elseif part_name == "Left_Hand" and part_data["Left_LowerArm"].is_prosthesis_equipped then + elseif part_name == "Left_Hand" and limbs_data["Left_LowerArm"].is_prosthesis_equipped then name = "media/ui/TOC/" .. part_name .. "/Hook.png" end return name @@ -136,7 +138,7 @@ local function OnClickTocMainUI(button, args) desc_ui:open() desc_ui:setPositionPixel(main_ui:getRight(), main_ui:getY()) - SetupTocDescUI(main_ui.surgeon, main_ui.patient, args.part_data, args.part_name) -- surgeon is generic. + SetupTocDescUI(main_ui.surgeon, main_ui.patient, args.limbs_data, args.part_name) -- surgeon is generic. end @@ -350,41 +352,43 @@ end ----------------------------------------- -- Setup stuff with variables and shit -function SetupTocMainUI(surgeon, patient, part_data) +function SetupTocMainUI(surgeon, patient, limbs_data) -- TODO add a ontick to update it regularly main_ui.surgeon = surgeon -- we shouldn't need an arg for this main_ui.patient = patient - if part_data then - main_ui["b11"]:addArg("part_data", part_data) - main_ui["b12"]:addArg("part_data", part_data) - main_ui["b21"]:addArg("part_data", part_data) - main_ui["b22"]:addArg("part_data", part_data) - main_ui["b31"]:addArg("part_data", part_data) - main_ui["b32"]:addArg("part_data", part_data) + if limbs_data then + main_ui["b11"]:addArg("limbs_data", limbs_data) + main_ui["b12"]:addArg("limbs_data", limbs_data) + main_ui["b21"]:addArg("limbs_data", limbs_data) + main_ui["b22"]:addArg("limbs_data", limbs_data) + main_ui["b31"]:addArg("limbs_data", limbs_data) + main_ui["b32"]:addArg("limbs_data", limbs_data) - main_ui["b11"]:setPath(GetImageName("Right_UpperArm", part_data)) - main_ui["b12"]:setPath(GetImageName("Left_UpperArm", part_data)) + main_ui["b11"]:setPath(GetImageName("Right_UpperArm", limbs_data)) + main_ui["b12"]:setPath(GetImageName("Left_UpperArm", limbs_data)) - main_ui["b21"]:setPath(GetImageName("Right_LowerArm", part_data)) - main_ui["b22"]:setPath(GetImageName("Left_LowerArm", part_data)) + main_ui["b21"]:setPath(GetImageName("Right_LowerArm", limbs_data)) + main_ui["b22"]:setPath(GetImageName("Left_LowerArm", limbs_data)) - main_ui["b31"]:setPath(GetImageName("Right_Hand", part_data)) - main_ui["b32"]:setPath(GetImageName("Left_Hand", part_data)) + main_ui["b31"]:setPath(GetImageName("Right_Hand", limbs_data)) + main_ui["b32"]:setPath(GetImageName("Left_Hand", limbs_data)) end end -function SetupTocDescUI(surgeon, patient, part_data, part_name) +function SetupTocDescUI(surgeon, patient, limbs_data, part_name) desc_ui["textTitle"]:setText(getText("UI_ContextMenu_" .. part_name)) desc_ui.part_name = part_name desc_ui.surgeon = surgeon desc_ui.patient = patient + local part_data = limbs_data[part_name] + if IsProsthesisInstalled(part_data) then -- Limb cut with prosthesis desc_ui["status"]:setText("Prosthesis equipped") @@ -447,16 +451,16 @@ function SetupTocDescUI(surgeon, patient, part_data, part_name) desc_ui["status"]:setText("Nothing here") desc_ui["status"]:setColor(1, 1, 1, 1) desc_ui["b1"]:setVisible(false) - elseif CheckIfCanBeCut(part_name) then + elseif CheckIfCanBeCut(part_name, limbs_data) then -- Everything else -- TODO add check for cuts and scratches desc_ui["status"]:setText("Not cut") desc_ui["status"]:setColor(1, 1, 1, 1) - if TocGetSawInInventory(surgeon) and not CheckIfProsthesisAlreadyInstalled(part_data, part_name) then + if TocGetSawInInventory(surgeon) and not CheckIfProsthesisAlreadyInstalled(limbs_data, part_name) then desc_ui["b1"]:setVisible(true) desc_ui["b1"]:setText("Cut") desc_ui["b1"]:addArg("option", "Cut") - elseif TocGetSawInInventory(surgeon) and CheckIfProsthesisAlreadyInstalled(part_data, part_name) then + elseif TocGetSawInInventory(surgeon) and CheckIfProsthesisAlreadyInstalled(limbs_data, part_name) then desc_ui["b1"]:setVisible(true) desc_ui["b1"]:setText("Remove prosthesis before") desc_ui["b1"]:addArg("option", "Nothing") @@ -548,6 +552,7 @@ function ISNewHealthPanel.onClick_TOC(button) SetupTocMainUI(surgeon, surgeon, surgeon:getModData().TOC.Limbs) else -- MP stuff, try to get the other player data and display it on the surgeon display + print("TOC: Checking part_data for " .. patient:getUsername()) if ModData.get("TOC_PLAYER_DATA")[patient:getUsername()] ~= nil then local other_player_part_data = ModData.get("TOC_PLAYER_DATA")[patient:getUsername()] diff --git a/media/lua/server/TOC_MP_server.lua b/media/lua/server/TOC_MP_server.lua index 4ee4239..1d13df7 100644 --- a/media/lua/server/TOC_MP_server.lua +++ b/media/lua/server/TOC_MP_server.lua @@ -2,11 +2,11 @@ --if isClient() then return end ---Server side -local Commands = {} +local TOC_Commands = {} --TODO how does this work -Commands["SendServer"] = function(player, arg) +TOC_Commands["SendServer"] = function(player, arg) local otherPlayer = getPlayerByOnlineID(arg["To"]) print("The Only Cure Command: ", arg['command']) sendServerCommand(otherPlayer, "TOC", arg["command"], arg) @@ -14,14 +14,14 @@ end -- To make the UI Work -Commands["GetPlayerData"] = function(_, arg) +TOC_Commands["GetPlayerData"] = function(_, arg) local surgeon_id = arg[1] local patient_id = arg[2] local patient = getPlayerByOnlineID(arg[2]) sendServerCommand(patient, "TOC", "GivePlayerData", { surgeon_id, patient_id }) end -Commands["SendPlayerData"] = function(_, arg) +TOC_Commands["SendPlayerData"] = function(_, arg) local surgeon = getPlayerByOnlineID(arg[1]) local surgeon_id = arg[1] local toc_data = arg[2] @@ -31,7 +31,7 @@ end -- CHEATING STUFF -Commands["AskToResetEverything"] = function(_, arg) +TOC_Commands["AskToResetEverything"] = function(_, arg) local clicked_player = getPlayerByOnlineID(arg[1]) local clicked_player_id = arg[1] @@ -55,7 +55,7 @@ end -------------------------------- TEST ------------------------ -TOC_Commands = {} + function TOC_OnInitGlobalModData() ModData.getOrCreate("TOC_PLAYER_DATA")