Adding stuff to accomodate prostheses

This commit is contained in:
ZioPao
2023-11-14 01:59:29 +01:00
parent 150772e252
commit 81be27561d
2 changed files with 34 additions and 26 deletions

View File

@@ -48,11 +48,8 @@ function ModDataHandler:setup(key)
-- Generic stuff that does not belong anywhere else -- Generic stuff that does not belong anywhere else
isIgnoredPartInfected = false, isIgnoredPartInfected = false,
isAnyLimbCut = false, isAnyLimbCut = false,
limbs = {},
prosthesis = { prostheses = {}
top = {},
bottom = {}
}
} }
---@type partData ---@type partData
@@ -62,16 +59,24 @@ function ModDataHandler:setup(key)
} }
-- TODO Set this up for legs crap
-- Initialize limbs -- Initialize limbs
--self.tocData.limbs = {}
for i=1, #StaticData.LIMBS_STRINGS do for i=1, #StaticData.LIMBS_STRINGS do
local limbName = StaticData.LIMBS_STRINGS[i] local limbName = StaticData.LIMBS_STRINGS[i]
self.tocData[limbName] = {} self.tocData.limbs[limbName] = {}
self:setLimbParams(StaticData.LIMBS_STRINGS[i], defaultParams, 0) self:setLimbParams(StaticData.LIMBS_STRINGS[i], defaultParams, 0)
end 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 -- Add it to global mod data
ModData.add(key, self.tocData) ModData.add(key, self.tocData)
@@ -98,28 +103,28 @@ end
---@param limbName string ---@param limbName string
---@param isCut boolean ---@param isCut boolean
function ModDataHandler:setIsCut(limbName, isCut) function ModDataHandler:setIsCut(limbName, isCut)
self.tocData[limbName].isCut = isCut self.tocData.limbs[limbName].isCut = isCut
end end
---Set isInfected ---Set isInfected
---@param limbName string ---@param limbName string
---@param isInfected boolean ---@param isInfected boolean
function ModDataHandler:setIsInfected(limbName, isInfected) function ModDataHandler:setIsInfected(limbName, isInfected)
self.tocData[limbName].isInfected = isInfected self.tocData.limbs[limbName].isInfected = isInfected
end end
---Set isProstEquipped ---Set isProstEquipped
---@param limbName string ---@param group string
---@param isProstEquipped boolean ---@param isProstEquipped boolean
function ModDataHandler:setIsProstEquipped(limbName, isProstEquipped) function ModDataHandler:setIsProstEquipped(group, isProstEquipped)
self.tocData[limbName].isProstEquipped = isProstEquipped self.tocData.prostheses[group].isProstEquipped = isProstEquipped
end end
---Set prostFactor ---Set prostFactor
---@param limbName string ---@param group string
---@param prostFactor number ---@param prostFactor number
function ModDataHandler:setProstFactor(limbName, prostFactor) function ModDataHandler:setProstFactor(group, prostFactor)
self.tocData[limbName].prostFactor = prostFactor self.tocData.prostheses[group].prostFactor = prostFactor
end end
----------------- -----------------
@@ -141,28 +146,28 @@ end
---@param limbName string ---@param limbName string
---@return boolean ---@return boolean
function ModDataHandler:getIsCut(limbName) function ModDataHandler:getIsCut(limbName)
return self.tocData[limbName].isCut return self.tocData.limbs[limbName].isCut
end end
---Get isVisible ---Get isVisible
---@param limbName string ---@param limbName string
---@return boolean ---@return boolean
function ModDataHandler:getIsVisible(limbName) function ModDataHandler:getIsVisible(limbName)
return self.tocData[limbName].isVisible return self.tocData.limbs[limbName].isVisible
end end
---Get isProstEquipped ---Get isProstEquipped
---@param limbName string ---@param group string
---@return boolean ---@return boolean
function ModDataHandler:getIsProstEquipped(limbName) function ModDataHandler:getIsProstEquipped(group)
return self.tocData[limbName].isProstEquipped return self.tocData.prostheses[group].isProstEquipped
end end
---Get prostFactor ---Get prostFactor
---@param limbName string ---@param group string
---@return number ---@return number
function ModDataHandler:getProstFactor(limbName) function ModDataHandler:getProstFactor(group)
return self.tocData[limbName].getProstFactor return self.tocData.prostheses[group].getProstFactor
end end
--* Limbs data handling *-- --* Limbs data handling *--
@@ -201,7 +206,7 @@ end
---@param ampStatus partData {isCut, isInfected, isOperated, isCicatrized, isCauterized, isVisible} ---@param ampStatus partData {isCut, isInfected, isOperated, isCicatrized, isCauterized, isVisible}
---@param cicatrizationTime integer? ---@param cicatrizationTime integer?
function ModDataHandler:setLimbParams(limbName, ampStatus, cicatrizationTime) 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.isCut ~= nil then limbData.isCut = ampStatus.isCut end
if ampStatus.isInfected ~= nil then limbData.isInfected = ampStatus.isInfected end if ampStatus.isInfected ~= nil then limbData.isInfected = ampStatus.isInfected end
if ampStatus.isOperated ~= nil then limbData.isOperated = ampStatus.isOperated end if ampStatus.isOperated ~= nil then limbData.isOperated = ampStatus.isOperated end

View File

@@ -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 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 = {} local StaticData = {}