From 1d78da49f7bc0db9717bf98201cd9f2b96b0741c Mon Sep 17 00:00:00 2001 From: Pao Date: Mon, 20 Feb 2023 13:20:42 +0100 Subject: [PATCH] Refactoring even more since why not at this point pt2 --- .idea/discord.xml | 7 +++ .idea/runConfigurations/Run_Zomboid.xml | 17 ++++++ media/lua/client/TOC_Init.lua | 71 ++++++++++++------------- media/lua/shared/translate/EN/UI_EN.txt | 4 +- 4 files changed, 61 insertions(+), 38 deletions(-) create mode 100644 .idea/discord.xml create mode 100644 .idea/runConfigurations/Run_Zomboid.xml diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..8cf359d --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations/Run_Zomboid.xml b/.idea/runConfigurations/Run_Zomboid.xml new file mode 100644 index 0000000..af33f67 --- /dev/null +++ b/.idea/runConfigurations/Run_Zomboid.xml @@ -0,0 +1,17 @@ + + + + \ No newline at end of file diff --git a/media/lua/client/TOC_Init.lua b/media/lua/client/TOC_Init.lua index f882f46..0ae07e7 100644 --- a/media/lua/client/TOC_Init.lua +++ b/media/lua/client/TOC_Init.lua @@ -5,7 +5,6 @@ if not TOC then TOC = {} - end local function TocCutLimbForTrait(player, limbs_data, part_name) @@ -26,12 +25,7 @@ local function TocCutLimbForTrait(player, limbs_data, part_name) end end -local function InitSpecificPart(mod_data, part_name) - - if mod_data.TOC.Limbs[part_name] == nil then - mod_data.TOC.Limbs[part_name] = {} - end - +TOC.InitPart = function(mod_data, part_name) mod_data.TOC.Limbs[part_name].is_cut = false mod_data.TOC.Limbs[part_name].is_infected = false @@ -50,9 +44,8 @@ local function InitSpecificPart(mod_data, part_name) end - - local function TocUpdateBaseData(mod_data) + -- TODO Gonna delete this soon, overhauling the whole init thing -- TODO The prosthetic knife needs to be a weapon first and foremost, so other than a -- clothing item it needs to be a weapon too (an invisible one maybe?) @@ -70,9 +63,9 @@ local function TocUpdateBaseData(mod_data) local part_name = side .. "_" .. limb - -- Check if part was initialized + -- Check if part was initialized, in case of previous errors if mod_data.TOC.Limbs[part_name] == nil then - InitSpecificPart(mod_data, part_name) + TOC.InitPart(mod_data, part_name) end @@ -117,8 +110,7 @@ local function TocUpdateBaseData(mod_data) end -local function TocSetInitData(mod_data, player) - +TOC.SetInitData = function(mod_data, player) print("TOC: Creating mod_data.TOC") -------- -- NEW NAMING SCHEME @@ -202,30 +194,13 @@ local function TocSetInitData(mod_data, player) for _, side in pairs(TOC.side_names) do for _, limb in pairs(TOC.limb_names) do - local part_name = side .. "_" .. limb - - mod_data.TOC.Limbs[part_name].is_cut = false - mod_data.TOC.Limbs[part_name].is_infected = false - mod_data.TOC.Limbs[part_name].is_operated = false - mod_data.TOC.Limbs[part_name].is_cicatrized = false - mod_data.TOC.Limbs[part_name].is_cauterized = false - mod_data.TOC.Limbs[part_name].is_amputation_shown = false - - mod_data.TOC.Limbs[part_name].cicatrization_time = 0 - - - mod_data.TOC.Limbs[part_name].is_prosthesis_equipped = false - mod_data.TOC.Limbs[part_name].equipped_prosthesis = {} - - -- Even if there are some duplicates, this is just easier in the end since we're gonna get fairly easily part_name - - - + TOC.InitPart(mod_data, part_name) end end -- Set data like prosthesis lists, cicatrization time etc + -- TODO Change this TocUpdateBaseData(mod_data) -- Setup traits @@ -242,10 +217,13 @@ end function TOC.Init(_, player) local mod_data = player:getModData() + if mod_data.TOC == nil then - TocSetInitData(mod_data, player) + TOC.SetInitData(mod_data, player) else TocCheckCompatibilityWithOlderVersions(mod_data) + + -- TODO This is gonna be deleted and moved directly to TOC TocUpdateBaseData(mod_data) -- Since it's gonna be common to update stuff TocCheckLegsAmputations(mod_data) end @@ -283,14 +261,35 @@ end -- Rewrite 2 Electirc Bogaloo local function InitializeTheOnlyCure() - -- Initializes global lists + -- Initializes static values in a global table TOC.side_names = {"Left", "Right"} TOC.limb_names = { "Hand", "LowerArm", "UpperArm", "Foot"} + TOC.limb_parameters = {} + for _, side in pairs(TOC.side_names) do + for _, limb in pairs(TOC.limb_names) do + local part_name = side .. "_" .. limb + + if limb == "Hand" then + TOC.limb_parameters[part_name].cicatrization_base_time = 1700 + TOC.limb_parameters[part_name].depends_on = {} + elseif limb == "LowerArm" then + TOC.limb_parameters[part_name].cicatrization_base_time = 1800 + TOC.limb_parameters[part_name].depends_on = { side .. "_Hand", } + elseif limb == "UpperArm" then + TOC.limb_parameters[part_name].cicatrization_base_time = 2000 + TOC.limb_parameters[part_name].depends_on = { side .. "_Hand", side .. "_LowerArm", } + elseif limb == "Foot" then + TOC.limb_parameters[part_name].cicatrization_base_time = 1700 + TOC.limb_parameters[part_name].depends_on = {} + end + end + end + InitializeTraits() - - Events.OnCreatePlayer.Add(TOC.Init) + + end diff --git a/media/lua/shared/translate/EN/UI_EN.txt b/media/lua/shared/translate/EN/UI_EN.txt index 2f51337..ab43ff1 100644 --- a/media/lua/shared/translate/EN/UI_EN.txt +++ b/media/lua/shared/translate/EN/UI_EN.txt @@ -23,12 +23,12 @@ UI_EN = { UI_ContextMenu_Left_Hand = "Left hand", UI_ContextMenu_Left_LowerArm = "Left forearm", UI_ContextMenu_Left_UpperArm = "Left arm", + UI_ContextMenu_Left_Foot = "Left foot", + UI_ContextMenu_Right_Foot = "Right foot" UI_ContextMenu_My = "My ", UI_ContextMenu_Now_cut = " is now healed!", - UI_ContextMenu_Heal_from_zomb = "I think I'm gonna be fine!", - UI_ContextMenu_Cut_for_nothing = "I did it for nothing..."