diff --git a/.gitignore b/.gitignore index e69de29..0c81fb7 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,2 @@ +dev_stuff/gen_amp_textures/.venv +dev_stuff/gen_amp_textures/output \ No newline at end of file diff --git a/common/media/clothing/clothingItems/Amputation_ForeArm_L.xml b/common/media/clothing/clothingItems/Amputation_ForeArm_L.xml index 9850855..d99e457 100644 --- a/common/media/clothing/clothingItems/Amputation_ForeArm_L.xml +++ b/common/media/clothing/clothingItems/Amputation_ForeArm_L.xml @@ -1,14 +1,16 @@ - Amputation\Amputation_Left_LowerArm_Male + Amputation\Amputation_FA_LR Amputation\Amputation_Left_LowerArm_Female d3816fe0-48e1-4cf5-a8e4-48c72595edb4 false false false - 3 + media/textures/Amputations/Masks/TestDouble + 4 + 6 diff --git a/common/media/clothing/clothingItems/Amputation_ForeArm_LR.xml b/common/media/clothing/clothingItems/Amputation_ForeArm_LR.xml new file mode 100644 index 0000000..b23476b --- /dev/null +++ b/common/media/clothing/clothingItems/Amputation_ForeArm_LR.xml @@ -0,0 +1,61 @@ + + + Amputation\Amputation_FA_LR + Amputation\Amputation_FA_LR + 8e5bc1b4-d79b-4a17-b86b-71dab6ace816 + false + false + false + + 4 + 6 + + + + + Amputations\Human\Forearm\skin01_b + Amputations\Human\Forearm\skin02_b + Amputations\Human\Forearm\skin03_b + Amputations\Human\Forearm\skin04_b + Amputations\Human\Forearm\skin05_b + + Amputations\Human\Forearm\skin01_hairy_b + Amputations\Human\Forearm\skin02_hairy_b + Amputations\Human\Forearm\skin03_hairy_b + Amputations\Human\Forearm\skin04_hairy_b + Amputations\Human\Forearm\skin05_hairy_b + + + + + Body\MaleBody01 + Body\MaleBody02 + Body\MaleBody03 + Body\MaleBody04 + Body\MaleBody05 + + Body\MaleBody01a + Body\MaleBody02a + Body\MaleBody03a + Body\MaleBody04 + Body\MaleBody05a + + + + Amputations\Zombie\Forearm\z_skin01_l1 + Amputations\Zombie\Forearm\z_skin01_l2 + Amputations\Zombie\Forearm\z_skin01_l3 + + Amputations\Zombie\Forearm\z_skin02_l1 + Amputations\Zombie\Forearm\z_skin02_l2 + Amputations\Zombie\Forearm\z_skin02_l3 + + Amputations\Zombie\Forearm\z_skin03_l1 + Amputations\Zombie\Forearm\z_skin03_l2 + Amputations\Zombie\Forearm\z_skin03_l3 + + Amputations\Zombie\Forearm\z_skin04_l1 + Amputations\Zombie\Forearm\z_skin04_l2 + Amputations\Zombie\Forearm\z_skin04_l3 + + \ No newline at end of file diff --git a/common/media/fileGuidTable.xml b/common/media/fileGuidTable.xml index 8f282c0..9562075 100644 --- a/common/media/fileGuidTable.xml +++ b/common/media/fileGuidTable.xml @@ -57,5 +57,11 @@ 9a5fe063-63c7-4e6f-81ca-ee77c6678e0d + + + media/clothing/clothingItems/Amputation_ForeArm_LR.xml + 8e5bc1b4-d79b-4a17-b86b-71dab6ace816 + + \ No newline at end of file diff --git a/common/media/lua/client/TOC/Controllers/ItemsController.lua b/common/media/lua/client/TOC/Controllers/ItemsController.lua index a4fbf35..282a140 100644 --- a/common/media/lua/client/TOC/Controllers/ItemsController.lua +++ b/common/media/lua/client/TOC/Controllers/ItemsController.lua @@ -17,7 +17,7 @@ ItemsController.Player = {} ---@return number ---@private function ItemsController.Player.GetAmputationTexturesIndex(playerObj, isCicatrized) - -- FIX Broken + -- todo local textureString = playerObj:getHumanVisual():getSkinTexture() local isHairy = textureString:sub(-1) == "a" @@ -79,13 +79,16 @@ end ---Deletes all the old amputation items, used for resets ---@param playerObj IsoPlayer function ItemsController.Player.DeleteAllOldAmputationItems(playerObj) + -- TODO Fix visual bug -- This part is a workaround for a pretty shitty implementation on the java side. Check ProsthesisHandler for more infos - local group = BodyLocations.getGroup("Human") - group:setMultiItem("TOC_Arm", false) - group:setMultiItem("TOC_ArmProst", false) + -- local group = BodyLocations.getGroup("Human") + -- group:setMultiItem("TOC_Arm", false) + -- group:setMultiItem("TOC_ArmProst", false) for i = 1, #StaticData.LIMBS_STR do local limbName = StaticData.LIMBS_STR[i] + + -- TODO Won't work with dedicated clothingItems for multi amps local clothItemName = StaticData.AMPUTATION_CLOTHING_ITEM_BASE .. limbName local clothItem = playerObj:getInventory():FindAndReturn(clothItemName) ---@cast clothItem InventoryItem @@ -94,8 +97,8 @@ function ItemsController.Player.DeleteAllOldAmputationItems(playerObj) -- Reset model just in case playerObj:resetModel() - group:setMultiItem("TOC_Arm", true) - group:setMultiItem("TOC_ArmProst", true) + -- group:setMultiItem("TOC_Arm", true) + -- group:setMultiItem("TOC_ArmProst", true) end ---Spawns and equips the correct amputation item to the player. diff --git a/common/media/lua/shared/TOC/BodyLocations.lua b/common/media/lua/shared/TOC/BodyLocations.lua index 94fe9d6..6e40b92 100644 --- a/common/media/lua/shared/TOC/BodyLocations.lua +++ b/common/media/lua/shared/TOC/BodyLocations.lua @@ -43,23 +43,26 @@ function BodyLocationsAPI.MoveOrCreateBeforeOrAfter(toRelocateOrCreate, location end end --- function TestBodyLocations() --- local group = BodyLocations.getGroup("Human") --- local x = group:getAllLocations() +function TestBodyLocations() + local group = BodyLocations.getGroup("Human") + local x = group:getAllLocations() --- for i=0, x:size() -1 do + for i=0, x:size() -1 do --- ---@type BodyLocation --- local bl = x:get(i) + ---@type BodyLocation + local bl = x:get(i) --- print(bl:getId()) --- end --- end + print(bl:getId()) + end +end -- MultiItem causes a ton of issues... fucking hell -BodyLocationsAPI.MoveOrCreateBeforeOrAfter("TOC_Arm", "FullTop", true) -group:setMultiItem("TOC_Arm", true) +-- BodyLocationsAPI.MoveOrCreateBeforeOrAfter("TOC_Arm", "Shirt", true) +-- group:setMultiItem("TOC_Arm", true) + +local curItem = BodyLocation.new(group, "TOC_Arm") -- create new item +group:getAllLocations():add(curItem) -- add to the list BodyLocationsAPI.MoveOrCreateBeforeOrAfter("TOC_ArmProst", "TOC_Arm", true) group:setMultiItem("TOC_ArmProst", true) diff --git a/common/media/models_X/Amputation/Amputation_FA_LR.fbx b/common/media/models_X/Amputation/Amputation_FA_LR.fbx new file mode 100644 index 0000000..b62d432 Binary files /dev/null and b/common/media/models_X/Amputation/Amputation_FA_LR.fbx differ diff --git a/common/media/scripts/TOC_amputation_items.txt b/common/media/scripts/TOC_amputation_items.txt index ff1e494..4b77d0b 100644 --- a/common/media/scripts/TOC_amputation_items.txt +++ b/common/media/scripts/TOC_amputation_items.txt @@ -109,4 +109,24 @@ module TOC CanHaveHoles = false, } + + + + + item Amputation_FA_LR + { + Type = Clothing, + DisplayCategory = Amputation, + + ClothingItem = Amputation_ForeArm_LR, + BodyLocation = TOC_Arm, + + Weight = 0, + CombatSpeedModifier = 0.7, + BloodLocation = UpperArms;UpperBody, + Insulation = 1.0, + WindResistance = 1.0, + WaterResistance = 1.0, + CanHaveHoles = false, + } } \ No newline at end of file diff --git a/common/media/textures/Amputations/Masks/TestDouble/Belt.png b/common/media/textures/Amputations/Masks/TestDouble/Belt.png new file mode 100644 index 0000000..eb0be59 Binary files /dev/null and b/common/media/textures/Amputations/Masks/TestDouble/Belt.png differ diff --git a/common/media/textures/Amputations/Masks/TestDouble/Chest.png b/common/media/textures/Amputations/Masks/TestDouble/Chest.png new file mode 100644 index 0000000..8b56900 Binary files /dev/null and b/common/media/textures/Amputations/Masks/TestDouble/Chest.png differ diff --git a/common/media/textures/Amputations/Masks/TestDouble/Crotch.png b/common/media/textures/Amputations/Masks/TestDouble/Crotch.png new file mode 100644 index 0000000..fb12868 Binary files /dev/null and b/common/media/textures/Amputations/Masks/TestDouble/Crotch.png differ diff --git a/common/media/textures/Amputations/Masks/TestDouble/Dress.png b/common/media/textures/Amputations/Masks/TestDouble/Dress.png new file mode 100644 index 0000000..5081088 Binary files /dev/null and b/common/media/textures/Amputations/Masks/TestDouble/Dress.png differ diff --git a/common/media/textures/Amputations/Masks/TestDouble/Head.png b/common/media/textures/Amputations/Masks/TestDouble/Head.png new file mode 100644 index 0000000..7a1f656 Binary files /dev/null and b/common/media/textures/Amputations/Masks/TestDouble/Head.png differ diff --git a/common/media/textures/Amputations/Masks/TestDouble/LeftArm.png b/common/media/textures/Amputations/Masks/TestDouble/LeftArm.png new file mode 100644 index 0000000..985f6d5 Binary files /dev/null and b/common/media/textures/Amputations/Masks/TestDouble/LeftArm.png differ diff --git a/common/media/textures/Amputations/Masks/LeftHand.png b/common/media/textures/Amputations/Masks/TestDouble/LeftFoot.png similarity index 92% rename from common/media/textures/Amputations/Masks/LeftHand.png rename to common/media/textures/Amputations/Masks/TestDouble/LeftFoot.png index 402dee0..e5ab940 100644 Binary files a/common/media/textures/Amputations/Masks/LeftHand.png and b/common/media/textures/Amputations/Masks/TestDouble/LeftFoot.png differ diff --git a/common/media/textures/Amputations/Masks/TestDouble/LeftHand.png b/common/media/textures/Amputations/Masks/TestDouble/LeftHand.png new file mode 100644 index 0000000..bb392fc Binary files /dev/null and b/common/media/textures/Amputations/Masks/TestDouble/LeftHand.png differ diff --git a/common/media/textures/Amputations/Masks/RightHand.png b/common/media/textures/Amputations/Masks/TestDouble/LeftLeg.png similarity index 92% rename from common/media/textures/Amputations/Masks/RightHand.png rename to common/media/textures/Amputations/Masks/TestDouble/LeftLeg.png index c0babe0..3dcc71e 100644 Binary files a/common/media/textures/Amputations/Masks/RightHand.png and b/common/media/textures/Amputations/Masks/TestDouble/LeftLeg.png differ diff --git a/common/media/textures/Amputations/Masks/Mask.png b/common/media/textures/Amputations/Masks/TestDouble/Mask.png similarity index 100% rename from common/media/textures/Amputations/Masks/Mask.png rename to common/media/textures/Amputations/Masks/TestDouble/Mask.png diff --git a/common/media/textures/Amputations/Masks/TestDouble/RightArm.png b/common/media/textures/Amputations/Masks/TestDouble/RightArm.png new file mode 100644 index 0000000..b31747c Binary files /dev/null and b/common/media/textures/Amputations/Masks/TestDouble/RightArm.png differ diff --git a/common/media/textures/Amputations/Masks/RightArm.png b/common/media/textures/Amputations/Masks/TestDouble/RightFoot.png similarity index 80% rename from common/media/textures/Amputations/Masks/RightArm.png rename to common/media/textures/Amputations/Masks/TestDouble/RightFoot.png index 443ec3f..4dc15e1 100644 Binary files a/common/media/textures/Amputations/Masks/RightArm.png and b/common/media/textures/Amputations/Masks/TestDouble/RightFoot.png differ diff --git a/common/media/textures/Amputations/Masks/LeftArm.png b/common/media/textures/Amputations/Masks/TestDouble/RightLeg.png similarity index 65% rename from common/media/textures/Amputations/Masks/LeftArm.png rename to common/media/textures/Amputations/Masks/TestDouble/RightLeg.png index 4cc612c..a7cbf69 100644 Binary files a/common/media/textures/Amputations/Masks/LeftArm.png and b/common/media/textures/Amputations/Masks/TestDouble/RightLeg.png differ diff --git a/common/media/textures/Amputations/Masks/TestDouble/Waist.png b/common/media/textures/Amputations/Masks/TestDouble/Waist.png new file mode 100644 index 0000000..cc7e53e Binary files /dev/null and b/common/media/textures/Amputations/Masks/TestDouble/Waist.png differ diff --git a/dev_stuff/gen_amp_textures/input/body/MaleBody01.png b/dev_stuff/gen_amp_textures/input/body/MaleBody01.png new file mode 100644 index 0000000..0f12fff Binary files /dev/null and b/dev_stuff/gen_amp_textures/input/body/MaleBody01.png differ diff --git a/dev_stuff/gen_amp_textures/input/body/MaleBody01a.png b/dev_stuff/gen_amp_textures/input/body/MaleBody01a.png new file mode 100644 index 0000000..39e85a5 Binary files /dev/null and b/dev_stuff/gen_amp_textures/input/body/MaleBody01a.png differ diff --git a/dev_stuff/gen_amp_textures/input/body/MaleBody02.png b/dev_stuff/gen_amp_textures/input/body/MaleBody02.png new file mode 100644 index 0000000..b66a231 Binary files /dev/null and b/dev_stuff/gen_amp_textures/input/body/MaleBody02.png differ diff --git a/dev_stuff/gen_amp_textures/input/body/MaleBody02a.png b/dev_stuff/gen_amp_textures/input/body/MaleBody02a.png new file mode 100644 index 0000000..9ebcba0 Binary files /dev/null and b/dev_stuff/gen_amp_textures/input/body/MaleBody02a.png differ diff --git a/dev_stuff/gen_amp_textures/input/body/MaleBody03.png b/dev_stuff/gen_amp_textures/input/body/MaleBody03.png new file mode 100644 index 0000000..c3a08fb Binary files /dev/null and b/dev_stuff/gen_amp_textures/input/body/MaleBody03.png differ diff --git a/dev_stuff/gen_amp_textures/input/body/MaleBody03a.png b/dev_stuff/gen_amp_textures/input/body/MaleBody03a.png new file mode 100644 index 0000000..c5d2c13 Binary files /dev/null and b/dev_stuff/gen_amp_textures/input/body/MaleBody03a.png differ diff --git a/dev_stuff/gen_amp_textures/input/body/MaleBody04.png b/dev_stuff/gen_amp_textures/input/body/MaleBody04.png new file mode 100644 index 0000000..5c3f42b Binary files /dev/null and b/dev_stuff/gen_amp_textures/input/body/MaleBody04.png differ diff --git a/dev_stuff/gen_amp_textures/input/body/MaleBody04a.png b/dev_stuff/gen_amp_textures/input/body/MaleBody04a.png new file mode 100644 index 0000000..02e767c Binary files /dev/null and b/dev_stuff/gen_amp_textures/input/body/MaleBody04a.png differ diff --git a/dev_stuff/gen_amp_textures/input/body/MaleBody05.png b/dev_stuff/gen_amp_textures/input/body/MaleBody05.png new file mode 100644 index 0000000..12a7a95 Binary files /dev/null and b/dev_stuff/gen_amp_textures/input/body/MaleBody05.png differ diff --git a/dev_stuff/gen_amp_textures/input/body/MaleBody05a.png b/dev_stuff/gen_amp_textures/input/body/MaleBody05a.png new file mode 100644 index 0000000..fbdbdcb Binary files /dev/null and b/dev_stuff/gen_amp_textures/input/body/MaleBody05a.png differ diff --git a/dev_stuff/gen_amp_textures/input/wound.png b/dev_stuff/gen_amp_textures/input/wound.png new file mode 100644 index 0000000..1b0bd79 Binary files /dev/null and b/dev_stuff/gen_amp_textures/input/wound.png differ diff --git a/dev_stuff/gen_amp_textures/main.py b/dev_stuff/gen_amp_textures/main.py new file mode 100644 index 0000000..d63cd86 --- /dev/null +++ b/dev_stuff/gen_amp_textures/main.py @@ -0,0 +1,46 @@ +from pathlib import Path +from PIL import Image + +input_bodies_path = Path('input/body') +input_wound_texture = Path('input/wound.png') +# 48, 33 TEXTURE + + +# 256,256 + +IMG_WIDTH = 256 + + +COORDS_L = { + #"H": (0, 115), + "F": (0, 59), + "U": (0,21), +} + +COORDS_R = { + #"H": (IMG_WIDTH - 50- COORDS_L['H'][0], COORDS_L['H'][1]), + "F": (IMG_WIDTH - 48 - COORDS_L['F'][0], COORDS_L['F'][1]), + "U": (IMG_WIDTH - 48 - COORDS_L['U'][0], COORDS_L['U'][1]), +} + +STATES = ["BOTH"] + + +overlay = Image.open(input_wound_texture) + +for filepath in input_bodies_path.glob('*.png'): # Only PNG files + base = Image.open(filepath) + body_name = filepath.stem + + + for key_L, value_L in COORDS_L.items(): + for key_R, value_R in COORDS_R.items(): + for state in STATES: + result = base.copy() + + if state == "BOTH" or state == "ONLY_LEFT": + result.paste(overlay, value_L, mask=overlay) + if state == "BOTH" or state == "ONLY_RIGHT": + result.paste(overlay, value_R, mask=overlay) + + result.save(f'output/{body_name}_{key_L}_{key_R}_{state}.png') \ No newline at end of file