diff --git a/media/lua/client/TOC/Handlers/ModDataHandler.lua b/media/lua/client/TOC/Handlers/ModDataHandler.lua index c8c799e..3432769 100644 --- a/media/lua/client/TOC/Handlers/ModDataHandler.lua +++ b/media/lua/client/TOC/Handlers/ModDataHandler.lua @@ -48,11 +48,8 @@ function ModDataHandler:setup(key) -- Generic stuff that does not belong anywhere else isIgnoredPartInfected = false, isAnyLimbCut = false, - - prosthesis = { - top = {}, - bottom = {} - } + limbs = {}, + prostheses = {} } ---@type partData @@ -62,16 +59,24 @@ function ModDataHandler:setup(key) } - -- TODO Set this up for legs crap -- Initialize limbs - --self.tocData.limbs = {} for i=1, #StaticData.LIMBS_STRINGS do local limbName = StaticData.LIMBS_STRINGS[i] - self.tocData[limbName] = {} + self.tocData.limbs[limbName] = {} self:setLimbParams(StaticData.LIMBS_STRINGS[i], defaultParams, 0) end + local prosthesesGroups = {"top", "bottom"} + for i=1, #prosthesesGroups do + local group = prosthesesGroups[i] + self.tocData.prostheses[group] = { + isEquipped = false, + prostFactor = 0 + } + -- TODO Make this more modular instead of this crap + end + -- Add it to global mod data ModData.add(key, self.tocData) @@ -98,28 +103,28 @@ end ---@param limbName string ---@param isCut boolean function ModDataHandler:setIsCut(limbName, isCut) - self.tocData[limbName].isCut = isCut + self.tocData.limbs[limbName].isCut = isCut end ---Set isInfected ---@param limbName string ---@param isInfected boolean function ModDataHandler:setIsInfected(limbName, isInfected) - self.tocData[limbName].isInfected = isInfected + self.tocData.limbs[limbName].isInfected = isInfected end ---Set isProstEquipped ----@param limbName string +---@param group string ---@param isProstEquipped boolean -function ModDataHandler:setIsProstEquipped(limbName, isProstEquipped) - self.tocData[limbName].isProstEquipped = isProstEquipped +function ModDataHandler:setIsProstEquipped(group, isProstEquipped) + self.tocData.prostheses[group].isProstEquipped = isProstEquipped end ---Set prostFactor ----@param limbName string +---@param group string ---@param prostFactor number -function ModDataHandler:setProstFactor(limbName, prostFactor) - self.tocData[limbName].prostFactor = prostFactor +function ModDataHandler:setProstFactor(group, prostFactor) + self.tocData.prostheses[group].prostFactor = prostFactor end ----------------- @@ -141,28 +146,28 @@ end ---@param limbName string ---@return boolean function ModDataHandler:getIsCut(limbName) - return self.tocData[limbName].isCut + return self.tocData.limbs[limbName].isCut end ---Get isVisible ---@param limbName string ---@return boolean function ModDataHandler:getIsVisible(limbName) - return self.tocData[limbName].isVisible + return self.tocData.limbs[limbName].isVisible end ---Get isProstEquipped ----@param limbName string +---@param group string ---@return boolean -function ModDataHandler:getIsProstEquipped(limbName) - return self.tocData[limbName].isProstEquipped +function ModDataHandler:getIsProstEquipped(group) + return self.tocData.prostheses[group].isProstEquipped end ---Get prostFactor ----@param limbName string +---@param group string ---@return number -function ModDataHandler:getProstFactor(limbName) - return self.tocData[limbName].getProstFactor +function ModDataHandler:getProstFactor(group) + return self.tocData.prostheses[group].getProstFactor end --* Limbs data handling *-- @@ -201,7 +206,7 @@ end ---@param ampStatus partData {isCut, isInfected, isOperated, isCicatrized, isCauterized, isVisible} ---@param cicatrizationTime integer? function ModDataHandler:setLimbParams(limbName, ampStatus, cicatrizationTime) - local limbData = self.tocData[limbName] + local limbData = self.tocData.limbs[limbName] if ampStatus.isCut ~= nil then limbData.isCut = ampStatus.isCut end if ampStatus.isInfected ~= nil then limbData.isInfected = ampStatus.isInfected end if ampStatus.isOperated ~= nil then limbData.isOperated = ampStatus.isOperated end diff --git a/media/lua/shared/TOC/StaticData.lua b/media/lua/shared/TOC/StaticData.lua index ed73ca4..98b4d42 100644 --- a/media/lua/shared/TOC/StaticData.lua +++ b/media/lua/shared/TOC/StaticData.lua @@ -1,5 +1,8 @@ ---@alias partData { isCut : boolean?, isInfected : boolean?, isOperated : boolean?, isCicatrized : boolean?, isCauterized : boolean?, isVisible : boolean?, cicatrizationTime : number, isProstEquipped : boolean, prostFactor : number} ----@alias tocModData {Hand_L : partData, ForeArm_L : partData, UpperArm_L : partData, Hand_R : partData, ForeArm_R : partData, UpperArm_R : partData, isIgnoredPartInfected : boolean, isAnyLimbCut : boolean} +---@alias limbsTable {Hand_L : partData, ForeArm_L : partData, UpperArm_L : partData, Hand_R : partData, ForeArm_R : partData, UpperArm_R : partData,} +---@alias prosthesisData {isEquipped : boolean, prostFactor : number} +---@alias prosthesesTable {top : table, bottom : table} +---@alias tocModData { limbs : limbsTable, prostheses : prosthesesTable, isIgnoredPartInfected : boolean, isAnyLimbCut : boolean} --------------------------- local StaticData = {}