Cicatrization texture swap implemented
This commit is contained in:
@@ -13,4 +13,10 @@
|
|||||||
<textureChoices>Amputations\skin03b</textureChoices>
|
<textureChoices>Amputations\skin03b</textureChoices>
|
||||||
<textureChoices>Amputations\skin04b</textureChoices>
|
<textureChoices>Amputations\skin04b</textureChoices>
|
||||||
<textureChoices>Amputations\skin05b</textureChoices>
|
<textureChoices>Amputations\skin05b</textureChoices>
|
||||||
|
|
||||||
|
<textureChoices>Amputations\skin01</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin02</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin03</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin04</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin05</textureChoices>
|
||||||
</clothingItem>
|
</clothingItem>
|
||||||
@@ -14,4 +14,10 @@
|
|||||||
<textureChoices>Amputations\skin03b</textureChoices>
|
<textureChoices>Amputations\skin03b</textureChoices>
|
||||||
<textureChoices>Amputations\skin04b</textureChoices>
|
<textureChoices>Amputations\skin04b</textureChoices>
|
||||||
<textureChoices>Amputations\skin05b</textureChoices>
|
<textureChoices>Amputations\skin05b</textureChoices>
|
||||||
|
|
||||||
|
<textureChoices>Amputations\skin01</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin02</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin03</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin04</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin05</textureChoices>
|
||||||
</clothingItem>
|
</clothingItem>
|
||||||
@@ -14,4 +14,10 @@
|
|||||||
<textureChoices>Amputations\skin03b</textureChoices>
|
<textureChoices>Amputations\skin03b</textureChoices>
|
||||||
<textureChoices>Amputations\skin04b</textureChoices>
|
<textureChoices>Amputations\skin04b</textureChoices>
|
||||||
<textureChoices>Amputations\skin05b</textureChoices>
|
<textureChoices>Amputations\skin05b</textureChoices>
|
||||||
|
|
||||||
|
<textureChoices>Amputations\skin01</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin02</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin03</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin04</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin05</textureChoices>
|
||||||
</clothingItem>
|
</clothingItem>
|
||||||
@@ -12,4 +12,10 @@
|
|||||||
<textureChoices>Amputations\skin03b</textureChoices>
|
<textureChoices>Amputations\skin03b</textureChoices>
|
||||||
<textureChoices>Amputations\skin04b</textureChoices>
|
<textureChoices>Amputations\skin04b</textureChoices>
|
||||||
<textureChoices>Amputations\skin05b</textureChoices>
|
<textureChoices>Amputations\skin05b</textureChoices>
|
||||||
|
|
||||||
|
<textureChoices>Amputations\skin01</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin02</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin03</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin04</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin05</textureChoices>
|
||||||
</clothingItem>
|
</clothingItem>
|
||||||
@@ -14,4 +14,10 @@
|
|||||||
<textureChoices>Amputations\skin03b</textureChoices>
|
<textureChoices>Amputations\skin03b</textureChoices>
|
||||||
<textureChoices>Amputations\skin04b</textureChoices>
|
<textureChoices>Amputations\skin04b</textureChoices>
|
||||||
<textureChoices>Amputations\skin05b</textureChoices>
|
<textureChoices>Amputations\skin05b</textureChoices>
|
||||||
|
|
||||||
|
<textureChoices>Amputations\skin01</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin02</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin03</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin04</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin05</textureChoices>
|
||||||
</clothingItem>
|
</clothingItem>
|
||||||
@@ -14,4 +14,10 @@
|
|||||||
<textureChoices>Amputations\skin03b</textureChoices>
|
<textureChoices>Amputations\skin03b</textureChoices>
|
||||||
<textureChoices>Amputations\skin04b</textureChoices>
|
<textureChoices>Amputations\skin04b</textureChoices>
|
||||||
<textureChoices>Amputations\skin05b</textureChoices>
|
<textureChoices>Amputations\skin05b</textureChoices>
|
||||||
|
|
||||||
|
<textureChoices>Amputations\skin01</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin02</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin03</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin04</textureChoices>
|
||||||
|
<textureChoices>Amputations\skin05</textureChoices>
|
||||||
</clothingItem>
|
</clothingItem>
|
||||||
@@ -10,7 +10,7 @@ local function TocReapplyAmputationClothingItem(mod_data)
|
|||||||
local amputated_clothing_name = "TOC.Amputation_" .. part_name
|
local amputated_clothing_name = "TOC.Amputation_" .. part_name
|
||||||
if player_inv:FindAndReturn(amputated_clothing_name) == nil then
|
if player_inv:FindAndReturn(amputated_clothing_name) == nil then
|
||||||
local amputation_clothing_item = player:getInventory():AddItem(TocFindAmputatedClothingFromPartName(part_name))
|
local amputation_clothing_item = player:getInventory():AddItem(TocFindAmputatedClothingFromPartName(part_name))
|
||||||
TocSetCorrectTextureForAmputation(amputation_clothing_item, player)
|
TocSetCorrectTextureForAmputation(amputation_clothing_item, player, mod_data.TOC.Limbs[part_name].is_cicatrized)
|
||||||
player:setWornItem(amputation_clothing_item:getBodyLocation(), amputation_clothing_item)
|
player:setWornItem(amputation_clothing_item:getBodyLocation(), amputation_clothing_item)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ end
|
|||||||
-- Set correct body locations for items in inventory
|
-- Set correct body locations for items in inventory
|
||||||
function TocResetClothingItemBodyLocation(player, side, limb)
|
function TocResetClothingItemBodyLocation(player, side, limb)
|
||||||
local player_inventory = player:getInventory()
|
local player_inventory = player:getInventory()
|
||||||
|
local limbs_data = player:getModData().TOC.Limbs
|
||||||
local amputation_item_name = TocFindAmputationInInventory(player, side, limb)
|
local amputation_item_name = TocFindAmputationInInventory(player, side, limb)
|
||||||
local equipped_prosthesis_item_name = TocFindEquippedProsthesisInInventory(player, side, limb)
|
local equipped_prosthesis_item_name = TocFindEquippedProsthesisInInventory(player, side, limb)
|
||||||
print(amputation_item_name)
|
print(amputation_item_name)
|
||||||
@@ -61,7 +61,7 @@ function TocResetClothingItemBodyLocation(player, side, limb)
|
|||||||
player:removeWornItem(amputation_item)
|
player:removeWornItem(amputation_item)
|
||||||
player:getInventory():Remove(amputation_item)
|
player:getInventory():Remove(amputation_item)
|
||||||
amputation_item = player_inventory:AddItem(amputation_item_name)
|
amputation_item = player_inventory:AddItem(amputation_item_name)
|
||||||
TocSetCorrectTextureForAmputation(amputation_item, player)
|
TocSetCorrectTextureForAmputation(amputation_item, player, limbs_data[side .. "_" .. limb].is_cicatrized)
|
||||||
|
|
||||||
player:setWornItem(amputation_item:getBodyLocation(), amputation_item)
|
player:setWornItem(amputation_item:getBodyLocation(), amputation_item)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -121,9 +121,14 @@ local function SetHealthStatusForBodyPart(part_data, part_name, player)
|
|||||||
if not part_data[part_name].is_cicatrized then
|
if not part_data[part_name].is_cicatrized then
|
||||||
if part_data[part_name].cicatrization_time < 0 then
|
if part_data[part_name].cicatrization_time < 0 then
|
||||||
part_data[part_name].is_cicatrized = true
|
part_data[part_name].is_cicatrized = true
|
||||||
|
local player_inventory = player:getInventory()
|
||||||
|
local amputated_clothing_item_name = TocFindAmputationOrProsthesisName(part_name, player, "Amputation")
|
||||||
|
local amputated_clothing_item = player_inventory:FindAndReturn(amputated_clothing_item_name)
|
||||||
|
|
||||||
-- TODO make this random if the player gets it or not
|
player:removeWornItem(amputated_clothing_item)
|
||||||
|
TocSetCorrectTextureForAmputation(amputated_clothing_item, player, true)
|
||||||
|
player:setWornItem(amputated_clothing_item:getBodyLocation(), amputated_clothing_item)
|
||||||
|
|
||||||
if (not player:HasTrait("Brave")) and ZombRand(1, 11) > 5 then
|
if (not player:HasTrait("Brave")) and ZombRand(1, 11) > 5 then
|
||||||
player:getTraits():add("Brave")
|
player:getTraits():add("Brave")
|
||||||
|
|
||||||
@@ -203,6 +208,9 @@ local function TocUpdateEveryTenMinutes()
|
|||||||
for _, part_name in pairs(GetBodyParts()) do
|
for _, part_name in pairs(GetBodyParts()) do
|
||||||
if part_data[part_name].is_cut and not part_data[part_name].is_cicatrized then
|
if part_data[part_name].is_cut and not part_data[part_name].is_cicatrized then
|
||||||
part_data[part_name].cicatrization_time = part_data[part_name].cicatrization_time - SandboxVars.TOC.CicatrizationSpeedMultiplier
|
part_data[part_name].cicatrization_time = part_data[part_name].cicatrization_time - SandboxVars.TOC.CicatrizationSpeedMultiplier
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
function TocSetCorrectTextureForAmputation(item, player)
|
function TocSetCorrectTextureForAmputation(item, player, cicatrized)
|
||||||
local human_visual = player:getHumanVisual()
|
local human_visual = player:getHumanVisual()
|
||||||
local texture_string = human_visual:getSkinTexture()
|
local texture_string = human_visual:getSkinTexture()
|
||||||
|
|
||||||
@@ -9,8 +9,13 @@ function TocSetCorrectTextureForAmputation(item, player)
|
|||||||
|
|
||||||
|
|
||||||
local matched_index = string.match(texture_string, "%d$")
|
local matched_index = string.match(texture_string, "%d$")
|
||||||
|
|
||||||
|
if cicatrized then
|
||||||
|
matched_index = matched_index + 5 -- to use the cicatrized texture
|
||||||
|
end
|
||||||
|
|
||||||
print("TOC: Setting texture " .. matched_index)
|
print("TOC: Setting texture " .. matched_index)
|
||||||
item:getVisual():setTextureChoice(tonumber(matched_index - 1)) -- TODO why is it correct with -1?
|
item:getVisual():setTextureChoice(tonumber(matched_index - 1)) -- it counts from 0, so we have to subtract 1
|
||||||
end
|
end
|
||||||
|
|
||||||
function TocSetBloodOnAmputation(player, body_part)
|
function TocSetBloodOnAmputation(player, body_part)
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ function TocSetInitData(mod_data, player)
|
|||||||
if player:HasTrait("Amputee_Hand") then
|
if player:HasTrait("Amputee_Hand") then
|
||||||
|
|
||||||
local amputation_clothing_item = player:getInventory():AddItem("TOC.Amputation_Left_Hand")
|
local amputation_clothing_item = player:getInventory():AddItem("TOC.Amputation_Left_Hand")
|
||||||
TocSetCorrectTextureForAmputation(amputation_clothing_item, player)
|
TocSetCorrectTextureForAmputation(amputation_clothing_item, player, true)
|
||||||
|
|
||||||
player:setWornItem(amputation_clothing_item:getBodyLocation(), amputation_clothing_item)
|
player:setWornItem(amputation_clothing_item:getBodyLocation(), amputation_clothing_item)
|
||||||
mod_data.TOC.Limbs.Left_Hand.is_cut = true
|
mod_data.TOC.Limbs.Left_Hand.is_cut = true
|
||||||
@@ -141,7 +141,7 @@ function TocSetInitData(mod_data, player)
|
|||||||
mod_data.TOC.Limbs.Left_Hand.is_cicatrized = true
|
mod_data.TOC.Limbs.Left_Hand.is_cicatrized = true
|
||||||
elseif player:HasTrait("Amputee_LowerArm") then
|
elseif player:HasTrait("Amputee_LowerArm") then
|
||||||
local amputation_clothing_item = player:getInventory():AddItem("TOC.Amputation_Left_LowerArm")
|
local amputation_clothing_item = player:getInventory():AddItem("TOC.Amputation_Left_LowerArm")
|
||||||
TocSetCorrectTextureForAmputation(amputation_clothing_item, player)
|
TocSetCorrectTextureForAmputation(amputation_clothing_item, player, true)
|
||||||
|
|
||||||
player:setWornItem(amputation_clothing_item:getBodyLocation(), amputation_clothing_item)
|
player:setWornItem(amputation_clothing_item:getBodyLocation(), amputation_clothing_item)
|
||||||
mod_data.TOC.Limbs.Left_LowerArm.is_cut = true
|
mod_data.TOC.Limbs.Left_LowerArm.is_cut = true
|
||||||
@@ -157,7 +157,7 @@ function TocSetInitData(mod_data, player)
|
|||||||
end
|
end
|
||||||
elseif player:HasTrait("Amputee_UpperArm") then
|
elseif player:HasTrait("Amputee_UpperArm") then
|
||||||
local amputation_clothing_item = player:getInventory():AddItem("TOC.Amputation_Left_UpperArm")
|
local amputation_clothing_item = player:getInventory():AddItem("TOC.Amputation_Left_UpperArm")
|
||||||
TocSetCorrectTextureForAmputation(amputation_clothing_item, player)
|
TocSetCorrectTextureForAmputation(amputation_clothing_item, player, true)
|
||||||
|
|
||||||
player:setWornItem(amputation_clothing_item:getBodyLocation(), amputation_clothing_item)
|
player:setWornItem(amputation_clothing_item:getBodyLocation(), amputation_clothing_item)
|
||||||
mod_data.TOC.Limbs.Left_UpperArm.is_cut = true
|
mod_data.TOC.Limbs.Left_UpperArm.is_cut = true
|
||||||
|
|||||||
Reference in New Issue
Block a user