From a608b0af2ecfd5b107ab7fc19aede0bab5de0298 Mon Sep 17 00:00:00 2001 From: Angelo Fallaria Date: Wed, 14 Aug 2024 05:12:45 +0800 Subject: [PATCH] Oni Pointy Ears And Tusks (#727) # Description Adds eight pointy ears, two tusks, one feet marking (toes resembling WarCraft trolls) and human nose markings to Onis. The pointed ears are a big reference to tieflings (similar to Onis) who often have them. Onis will now have pointy ears by default, but there is a marking to disable ears. 5 human nose markings have all been made available to Onis, Harpies, and Felinids. Onis and Felinids can now get chest scars, originally humna-only. The tusk markings are originally from Frontier goblins. The new pointy ears give players the power to make their Onis look like **tieflings, orcs, elves, goblins**, and more fantasy races. These markings can potentially be used in the future for other species like psionic elves. ## Media **Blood Elf** (Tall Ears) ![image](https://github.com/user-attachments/assets/257c8839-303c-45b2-b129-3f9183e47695)
See more **Orc** (Upward Ears, Large Tusks) ![image](https://github.com/user-attachments/assets/46bac694-de88-4e04-a12b-7ff8a8111e7b) **Night Elf** (Wide Ears) ![image](https://github.com/user-attachments/assets/18813660-cd2c-4d37-800d-bf84b1d7dee5) **Night Elf** (Slanted Ears) ![image](https://github.com/user-attachments/assets/7f39457b-875d-4c46-a5fb-428a6a535fb1) **Troll** (Large Ears, Small Tusks, Two-Toed Feet) ![image](https://github.com/user-attachments/assets/d9a0c52e-020d-4b55-bb7e-7a4afed61dcc) **Character Setup** ![image](https://github.com/user-attachments/assets/35ba27d4-e6d1-4c52-bbc7-0f057df12fc8) ![image](https://github.com/user-attachments/assets/5d9e7690-7118-48b3-95b9-50ee784660e2)
## Changelog :cl: Skubman - add: Onis have received eight new pointy ear markings in the 'Head (Side)' section that can help them resemble tieflings, orcs, elves, goblins, trolls, and more. - add: Onis get two new tusk markings in the 'Snout' section, and a Two-Toed feet marking in the 'Legs' section. - add: Felinids, Onis, and Harpies can now select Human nose markings like the schnozz, blobby nose, and nubby nose. - add: Felinids and Onis can now select the Chest Scar and Top Surgery Scar markings. - tweak: Default Onis now use the Double Curved horn and Upward Ears markings. --- .../Locale/en-US/markings/goblin_markings.ftl | 9 ++ Resources/Locale/en-US/markings/oni_feet.ftl | 2 + .../Locale/en-US/markings/pointy_ears.ftl | 26 +++++ .../Customization/Markings/human_noses.yml | 10 +- .../Mobs/Customization/Markings/oni_feet.yml | 13 +++ .../Customization/Markings/pointy_ears.yml | 89 ++++++++++++++++++ .../Mobs/Customization/Markings/scars.yml | 6 +- .../Mobs/Customization/Markings/tusks.yml | 27 ++++++ .../Prototypes/Nyanotrasen/Species/Oni.yml | 9 +- Resources/Prototypes/Species/human.yml | 1 + .../goblin_tusks.rsi/goblin_tusks_big.png | Bin 0 -> 617 bytes .../goblin_tusks.rsi/goblin_tusks_none.png | Bin 0 -> 7430 bytes .../goblin_tusks.rsi/goblin_tusks_small.png | Bin 0 -> 607 bytes .../Customization/goblin_tusks.rsi/meta.json | 23 +++++ .../Mobs/Customization/oni_feet.rsi/meta.json | 15 +++ .../Customization/oni_feet.rsi/two_toes.png | Bin 0 -> 748 bytes .../Customization/pointy_ears.rsi/meta.json | 47 +++++++++ .../pointy_ears.rsi/pointy_ears_large.png | Bin 0 -> 907 bytes .../pointy_ears.rsi/pointy_ears_none.png | Bin 0 -> 678 bytes .../pointy_ears.rsi/pointy_ears_slanted.png | Bin 0 -> 865 bytes .../pointy_ears.rsi/pointy_ears_small.png | Bin 0 -> 753 bytes .../pointy_ears.rsi/pointy_ears_standard.png | Bin 0 -> 686 bytes .../pointy_ears.rsi/pointy_ears_tall.png | Bin 0 -> 826 bytes .../pointy_ears.rsi/pointy_ears_thin.png | Bin 0 -> 601 bytes .../pointy_ears.rsi/pointy_ears_upwards.png | Bin 0 -> 789 bytes .../pointy_ears.rsi/pointy_ears_wide.png | Bin 0 -> 675 bytes 26 files changed, 268 insertions(+), 9 deletions(-) create mode 100644 Resources/Locale/en-US/markings/goblin_markings.ftl create mode 100644 Resources/Locale/en-US/markings/oni_feet.ftl create mode 100644 Resources/Locale/en-US/markings/pointy_ears.ftl create mode 100644 Resources/Prototypes/Entities/Mobs/Customization/Markings/oni_feet.yml create mode 100644 Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml create mode 100644 Resources/Prototypes/Entities/Mobs/Customization/Markings/tusks.yml create mode 100644 Resources/Textures/Mobs/Customization/goblin_tusks.rsi/goblin_tusks_big.png create mode 100644 Resources/Textures/Mobs/Customization/goblin_tusks.rsi/goblin_tusks_none.png create mode 100644 Resources/Textures/Mobs/Customization/goblin_tusks.rsi/goblin_tusks_small.png create mode 100644 Resources/Textures/Mobs/Customization/goblin_tusks.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Customization/oni_feet.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Customization/oni_feet.rsi/two_toes.png create mode 100644 Resources/Textures/Mobs/Customization/pointy_ears.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_large.png create mode 100644 Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_none.png create mode 100644 Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_slanted.png create mode 100644 Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_small.png create mode 100644 Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_standard.png create mode 100644 Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_tall.png create mode 100644 Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_thin.png create mode 100644 Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_upwards.png create mode 100644 Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_wide.png diff --git a/Resources/Locale/en-US/markings/goblin_markings.ftl b/Resources/Locale/en-US/markings/goblin_markings.ftl new file mode 100644 index 00000000000..21b1afea238 --- /dev/null +++ b/Resources/Locale/en-US/markings/goblin_markings.ftl @@ -0,0 +1,9 @@ +# goblin tusks +marking-GoblinTusksBasic = No Tusks +marking-GoblinTusksBasic-goblin_tusks_none = No Tusks + +marking-GoblinTusksSmall = Small Tusks +marking-GoblinTusksSmall-goblin_tusks_small = Small Tusks + +marking-GoblinTusksBig = Long Tusks +marking-GoblinTusksBig-goblin_tusks_big = Long Tusks diff --git a/Resources/Locale/en-US/markings/oni_feet.ftl b/Resources/Locale/en-US/markings/oni_feet.ftl new file mode 100644 index 00000000000..db35a69acdb --- /dev/null +++ b/Resources/Locale/en-US/markings/oni_feet.ftl @@ -0,0 +1,2 @@ +marking-OniTwoToedFeet-two_toes= Two-Toed Feet +marking-OniTwoToedFeet= Two-Toed Feet diff --git a/Resources/Locale/en-US/markings/pointy_ears.ftl b/Resources/Locale/en-US/markings/pointy_ears.ftl new file mode 100644 index 00000000000..637f216667f --- /dev/null +++ b/Resources/Locale/en-US/markings/pointy_ears.ftl @@ -0,0 +1,26 @@ +marking-PointyEarsStandard-pointy_ears_standard = Standard Ears +marking-PointyEarsStandard = Standard Ears + +marking-PointyEarsWide-pointy_ears_wide = Wide Ears +marking-PointyEarsWide = Wide Ears + +marking-PointyEarsSmall-pointy_ears_small = Small Ears +marking-PointyEarsSmall = Small Ears + +marking-PointyEarsUpwards-pointy_ears_upwards = Upward Ears +marking-PointyEarsUpwards = Upward Ears + +marking-PointyEarsTall-pointy_ears_tall = Tall Ears +marking-PointyEarsTall = Tall Ears + +marking-PointyEarsSlanted-pointy_ears_slanted = Slanted Ears +marking-PointyEarsSlanted = Slanted Ears + +marking-PointyEarsThin-pointy_ears_thin = Thin Ears +marking-PointyEarsThin = Thin Ears + +marking-PointyEarsLarge-pointy_ears_large = Large Ears +marking-PointyEarsLarge = Large Ears + +marking-PointyEarsNone-pointy_ears_none = No Ears +marking-PointyEarsNone = No Ears diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_noses.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_noses.yml index 51fc2fd15a2..bfca2ff488a 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_noses.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/human_noses.yml @@ -4,7 +4,7 @@ markingCategory: Snout followSkinColor: true forcedColoring: true - speciesRestriction: [Human, Dwarf] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy] sprites: - sprite: Mobs/Customization/human_noses.rsi state: schnozz @@ -15,7 +15,7 @@ markingCategory: Snout followSkinColor: true forcedColoring: true - speciesRestriction: [Human, Dwarf] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy] sprites: - sprite: Mobs/Customization/human_noses.rsi state: nubby @@ -26,7 +26,7 @@ markingCategory: Snout followSkinColor: true forcedColoring: true - speciesRestriction: [Human, Dwarf] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy] sprites: - sprite: Mobs/Customization/human_noses.rsi state: droop @@ -37,7 +37,7 @@ markingCategory: Snout followSkinColor: true forcedColoring: true - speciesRestriction: [Human, Dwarf] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy] sprites: - sprite: Mobs/Customization/human_noses.rsi state: blob @@ -48,7 +48,7 @@ markingCategory: Snout followSkinColor: true forcedColoring: true - speciesRestriction: [Human, Dwarf] + speciesRestriction: [Human, Dwarf, Felinid, Oni, Harpy] sprites: - sprite: Mobs/Customization/human_noses.rsi state: uppie diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/oni_feet.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/oni_feet.yml new file mode 100644 index 00000000000..0ff03df1a0d --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/oni_feet.yml @@ -0,0 +1,13 @@ +- type: marking + id: OniTwoToedFeet + bodyPart: RFoot # Can't be LFoot to avoid visual glitches + markingCategory: Legs + speciesRestriction: [Oni] + coloring: + default: + type: + !type:SimpleColoring + color: "#454545" + sprites: + - sprite: Mobs/Customization/oni_feet.rsi + state: two_toes diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml new file mode 100644 index 00000000000..10016fb9851 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/pointy_ears.yml @@ -0,0 +1,89 @@ +- type: marking + id: PointyEarsStandard + bodyPart: HeadSide + markingCategory: HeadSide + forcedColoring: true + speciesRestriction: [Oni] + sprites: + - sprite: Mobs/Customization/pointy_ears.rsi + state: pointy_ears_standard + +- type: marking + id: PointyEarsWide + bodyPart: HeadSide + markingCategory: HeadSide + forcedColoring: true + speciesRestriction: [Oni] + sprites: + - sprite: Mobs/Customization/pointy_ears.rsi + state: pointy_ears_wide + +- type: marking + id: PointyEarsSmall + bodyPart: HeadSide + markingCategory: HeadSide + forcedColoring: true + speciesRestriction: [Oni] + sprites: + - sprite: Mobs/Customization/pointy_ears.rsi + state: pointy_ears_small + +- type: marking + id: PointyEarsUpwards + bodyPart: HeadSide + markingCategory: HeadSide + forcedColoring: true + speciesRestriction: [Oni] + sprites: + - sprite: Mobs/Customization/pointy_ears.rsi + state: pointy_ears_upwards + +- type: marking + id: PointyEarsTall + bodyPart: HeadSide + markingCategory: HeadSide + forcedColoring: true + speciesRestriction: [Oni] + sprites: + - sprite: Mobs/Customization/pointy_ears.rsi + state: pointy_ears_tall + +- type: marking + id: PointyEarsSlanted + bodyPart: HeadSide + markingCategory: HeadSide + forcedColoring: true + speciesRestriction: [Oni] + sprites: + - sprite: Mobs/Customization/pointy_ears.rsi + state: pointy_ears_slanted + +- type: marking + id: PointyEarsThin + bodyPart: HeadSide + markingCategory: HeadSide + forcedColoring: true + speciesRestriction: [Oni] + sprites: + - sprite: Mobs/Customization/pointy_ears.rsi + state: pointy_ears_thin + +- type: marking + id: PointyEarsLarge + bodyPart: HeadSide + markingCategory: HeadSide + forcedColoring: true + speciesRestriction: [Oni] + sprites: + - sprite: Mobs/Customization/pointy_ears.rsi + state: pointy_ears_large + +- type: marking + id: PointyEarsNone + bodyPart: HeadSide + markingCategory: HeadSide + forcedColoring: true + speciesRestriction: [Oni] + sprites: + - sprite: Mobs/Customization/pointy_ears.rsi + state: pointy_ears_none diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml index f4186295900..79e0a0ff012 100644 --- a/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/scars.yml @@ -22,7 +22,7 @@ id: ScarTopSurgeryShort bodyPart: Chest markingCategory: Chest - speciesRestriction: [Human, Dwarf] + speciesRestriction: [Human, Dwarf, Felinid, Oni] sexRestriction: [Male] followSkinColor: true sprites: @@ -33,7 +33,7 @@ id: ScarTopSurgeryLong bodyPart: Chest markingCategory: Chest - speciesRestriction: [Human, Dwarf] + speciesRestriction: [Human, Dwarf, Felinid, Oni] sexRestriction: [Male] followSkinColor: true sprites: @@ -44,7 +44,7 @@ id: ScarChest bodyPart: Chest markingCategory: Chest - speciesRestriction: [Human, Dwarf] + speciesRestriction: [Human, Dwarf, Felinid, Oni] followSkinColor: true sprites: - sprite: Mobs/Customization/scars.rsi diff --git a/Resources/Prototypes/Entities/Mobs/Customization/Markings/tusks.yml b/Resources/Prototypes/Entities/Mobs/Customization/Markings/tusks.yml new file mode 100644 index 00000000000..e2b74b44847 --- /dev/null +++ b/Resources/Prototypes/Entities/Mobs/Customization/Markings/tusks.yml @@ -0,0 +1,27 @@ +- type: marking + id: GoblinTusksSmall + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [Oni] + coloring: + default: + type: + !type:SimpleColoring + color: "#d9d9d9" + sprites: + - sprite: Mobs/Customization/goblin_tusks.rsi + state: goblin_tusks_small + +- type: marking + id: GoblinTusksBig + bodyPart: Snout + markingCategory: Snout + speciesRestriction: [Oni] + coloring: + default: + type: + !type:SimpleColoring + color: "#d9d9d9" + sprites: + - sprite: Mobs/Customization/goblin_tusks.rsi + state: goblin_tusks_big diff --git a/Resources/Prototypes/Nyanotrasen/Species/Oni.yml b/Resources/Prototypes/Nyanotrasen/Species/Oni.yml index a6a63b29526..ba5e5661f9f 100644 --- a/Resources/Prototypes/Nyanotrasen/Species/Oni.yml +++ b/Resources/Prototypes/Nyanotrasen/Species/Oni.yml @@ -30,7 +30,14 @@ HeadTop: points: 1 required: true - defaultMarkings: [ OniHornSingleCurved ] + defaultMarkings: [ OniHornDoubleCurved ] + HeadSide: + points: 1 + required: false + defaultMarkings: [ PointyEarsUpwards ] + Snout: + points: 2 + required: false Chest: points: 1 required: false diff --git a/Resources/Prototypes/Species/human.yml b/Resources/Prototypes/Species/human.yml index 49f8839cac3..99ec35da2e1 100644 --- a/Resources/Prototypes/Species/human.yml +++ b/Resources/Prototypes/Species/human.yml @@ -33,6 +33,7 @@ RFoot: MobHumanRFoot Tail: MobHumanoidAnyMarking # Nyanotrasen - Felinid HeadTop: MobHumanoidAnyMarking # Nyanotrasen - Felinid & Oni + HeadSide: MobHumanoidAnyMarking - type: markingPoints id: MobHumanMarkingLimits diff --git a/Resources/Textures/Mobs/Customization/goblin_tusks.rsi/goblin_tusks_big.png b/Resources/Textures/Mobs/Customization/goblin_tusks.rsi/goblin_tusks_big.png new file mode 100644 index 0000000000000000000000000000000000000000..fb706ac649e82e68a92ceb77b165f81a9b9ad22f GIT binary patch literal 617 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Customization/goblin_tusks.rsi/meta.json b/Resources/Textures/Mobs/Customization/goblin_tusks.rsi/meta.json new file mode 100644 index 00000000000..0983b297549 --- /dev/null +++ b/Resources/Textures/Mobs/Customization/goblin_tusks.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "copyright": "Sprited by erhardsteinhauer (discord)", + "license": "CC-BY-SA-4.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "goblin_tusks_small", + "directions": 4 + }, + { + "name": "goblin_tusks_big", + "directions": 4 + }, + { + "name": "goblin_tusks_none", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Customization/oni_feet.rsi/meta.json b/Resources/Textures/Mobs/Customization/oni_feet.rsi/meta.json new file mode 100644 index 00000000000..c0792d54004 --- /dev/null +++ b/Resources/Textures/Mobs/Customization/oni_feet.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Sprites by angelofallars (github), two toes based off of Reptilian ( https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi )", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "two_toes", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Mobs/Customization/oni_feet.rsi/two_toes.png b/Resources/Textures/Mobs/Customization/oni_feet.rsi/two_toes.png new file mode 100644 index 0000000000000000000000000000000000000000..898f115fe35c948630a08ca7215f16f3406a906d GIT binary patch literal 748 zcmVEX>4Tx04R}tkv&MmP!xqvQ^g_`1v`i+WT;MdQ4z;lg(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULJ2)x2NQw6)g%&YBxV(?^-Z|WNA0RX;OtZS;fTr7K zI++l&xmB^}6(NK%Ks72e%b1g-6nxj$Jpz2ci}5V~dw;GzHE%H>AQH!!VcNtS#50?= z!FiuJ!b-AAd`>)JQiH^gTvt4P<6LxE;F%FKlb$Dz5R1hQRyvrKOpSP&II3zo)|5Tqat9cCGGtSBr6841C;;zg^i4Tn@D}J@^XAq%$LRx*p;@JFfP+I| zyhz#WKJN~7&h6hjt@-@`ULrl$=#YHN#vYURaF{>!Pd^bUt2hiqx!yIzSpkD z$8p?z_m9Wpa#H7A{+&Oo>-wRS4FCWD000000000V;i+5H5W;d*9b;72bvm6+|Jrz2 zmdf*7F~+Cf1EX>4Tx04R}tkv&MmP!xqvQ^g_`1v`i+WT;MdQ4z;lg(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULJ2)x2NQw6)g%&YBxV(?^-Z|WNA0RX;OtZS;fTr7K zI++l&xmB^}6(NK%Ks72e%b1g-6nxj$Jpz2ci}5V~dw;GzHE%H>AQH!!VcNtS#50?= z!FiuJ!b-AAd`>)JQiH^gTvt4P<6LxE;F%FKlb$Dz5R1hQRyvrKOpSP&II3zo)|5Tqat9cCGGtSBr6841C;;zg^i4Tn@D}J@^XAq%$LRx*p;@JFfP+I| zyhz#WKJN~7&h6hjt@-@`ULEMvqExSmtkQI!@e64Kx~(Pvh{Y(xViYEhjf@f9R#VO0Nw?L6*KwBdH?7%iHJ9NWK2HVo5B9A}so zdUhM7dM(ozpyG#tkNI!{Ay%_n2!Z)tE1mlF&Lu)of6%)|SCeF3hzu^`S^9@%1slaNq#| z!obJX!;{urt^NSDSQz*)ObhW(A`gm{G7QuD)#kM`Af5>TaC!fjs|EX>4Tx04R}tkv&MmP!xqvQ^g_`1v`i+WT;MdQ4z;lg(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULJ2)x2NQw6)g%&YBxV(?^-Z|WNA0RX;OtZS;fTr7K zI++l&xmB^}6(NK%Ks72e%b1g-6nxj$Jpz2ci}5V~dw;GzHE%H>AQH!!VcNtS#50?= z!FiuJ!b-AAd`>)JQiH^gTvt4P<6LxE;F%FKlb$Dz5R1hQRyvrKOpSP&II3zo)|5Tqat9cCGGtSBr6841C;;zg^i4Tn@D}J@^XAq%$LRx*p;@JFfP+I| zyhz#WKJN~7&h6hjt@-@`ULkVwY zf{(*0UV(-iU_wXeC`crs8XGYzL3u|a|CdYwOqj`Rxg!DqGiK@%Lf5mN*ZW=L+(#VA z_IU2qVELb)dT5&0Ng70w#fhlu*F05~EKVd1qCrn74I)uhE6R0?F?9WR6ID|#pTa1` zU-k3o@*MyG0000000000X03KVz;`aPSgx#hgWbCitj#V%E538Fb_A;K=zpo$(-`{+ z)(}G1o9qC(>?fGEL&$9oCo#rMW&rowRYausN)7-300000004jN2|encG>Q>+6#xJL M07*qoM6N<$f+|`kQ2+n{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_slanted.png b/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_slanted.png new file mode 100644 index 0000000000000000000000000000000000000000..93c7ee9a8c5090a149db9b67ccd4f8273e00b92d GIT binary patch literal 865 zcmV-n1D^beP)EX>4Tx04R}tkv&MmP!xqvQ^g_`1v`i+WT;MdQ4z;lg(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULJ2)x2NQw6)g%&YBxV(?^-Z|WNA0RX;OtZS;fTr7K zI++l&xmB^}6(NK%Ks72e%b1g-6nxj$Jpz2ci}5V~dw;GzHE%H>AQH!!VcNtS#50?= z!FiuJ!b-AAd`>)JQiH^gTvt4P<6LxE;F%FKlb$Dz5R1hQRyvrKOpSP&II3zo)|5Tqat9cCGGtSBr6841C;;zg^i4Tn@D}J@^XAq%$LRx*p;@JFfP+I| zyhz#WKJN~7&h6hjt@-@`ULuh1pCXauJe9V7vzf-cudi5g9!Q3HK`lP~Ap{m4 zn+-W&0B5Pcw=q=(09}MrjJv(WWXq=SUtdr*ssJD&a`2@eSN}H{%Jaw9R;=gPsNB_Z ztsiYfRaKKN!`WcCip}#sAX;Blv6+7P+9CBzX@W#V`t4S#QTE#{$!F}__5F^EML5M~ zdJ(}QoWk$8C#g?FL_|bHL_|bHL_|dYPTqU}BJ^0wk~qtr{!)j}+T*@eHvq(LSq;;Y zeS7)~9)8zWSnAD2wgCW$uAx^C(%vg@PBHf-tex-ZWwGbj@EjZSU=rQcYk|J~Wm`HA zCh#2l_@6-B5CFh>YvAg(g0fLXQP%MDV1jYC2g9`BcU;8XL2~o}qC)_Hr}xjo3_w-U rZ?^y-)8UDTh=_=Yh=_=Yi2j*BB+D2G>VL7^00000NkvXXu0mjfZCsV< literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_small.png b/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_small.png new file mode 100644 index 0000000000000000000000000000000000000000..c6cdebef00521c119c35fbefe0efc9c82d6b4b29 GIT binary patch literal 753 zcmVEX>4Tx04R}tkv&MmP!xqvQ^g_`1v`i+WT;MdQ4z;lg(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULJ2)x2NQw6)g%&YBxV(?^-Z|WNA0RX;OtZS;fTr7K zI++l&xmB^}6(NK%Ks72e%b1g-6nxj$Jpz2ci}5V~dw;GzHE%H>AQH!!VcNtS#50?= z!FiuJ!b-AAd`>)JQiH^gTvt4P<6LxE;F%FKlb$Dz5R1hQRyvrKOpSP&II3zo)|5Tqat9cCGGtSBr6841C;;zg^i4Tn@D}J@^XAq%$LRx*p;@JFfP+I| zyhz#WKJN~7&h6hjt@-@`ULSWNx zf)4Io{0hE&*jm4WOZE&E(j}5kMhHzIAjic>3`7$Wwd()31@6sr?mc%r5&-;T?z086 z=|sbQ&x-HE^KtE-hdcjm-SRPZl5~1`-KoH8eq9aa>>|HOwrf&E7RHif+s6lT&eiTQ zGh59UlH>*>ueUCh^NYI6Wtf>HnIyH%-)OREF!B@yzI*+7t<`*?DDZndd^JB$QdN84 zoKv2pUzQI500000000000KZ=FQEDoj?TumxjWR>-p)s}65oCSd6L@m(^663x9YrW`w|K#7gt)R3%I|%k<@)8 j2LJ#700000fIsX7D^!sPg4vV500000NkvXXu0mjf7kgDr literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_standard.png b/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_standard.png new file mode 100644 index 0000000000000000000000000000000000000000..38d7137e61b3d457bc55880eb9ae2caa0b210bd5 GIT binary patch literal 686 zcmV;f0#W^mP)EX>4Tx04R}tkv&MmP!xqvQ^g_`1v`i+WT;MdQ4z;lg(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULJ2)x2NQw6)g%&YBxV(?^-Z|WNA0RX;OtZS;fTr7K zI++l&xmB^}6(NK%Ks72e%b1g-6nxj$Jpz2ci}5V~dw;GzHE%H>AQH!!VcNtS#50?= z!FiuJ!b-AAd`>)JQiH^gTvt4P<6LxE;F%FKlb$Dz5R1hQRyvrKOpSP&II3zo)|5Tqat9cCGGtSBr6841C;;zg^i4Tn@D}J@^XAq%$LRx*p;@JFfP+I| zyhz#WKJN~7&h6hjt@-@`ULb7kh-rFMN+8^##XzBzY&+k|tKySq^5YLQpf z)^Bv_?4i-6S+YI=00000000000Q|Jx^Ybi@#Np@-o)K8nm|2EVvN-BJqhHfk<^!IK zU}pd}w*YmnCd~)zh6ep06h)edN-J5U$>u(RB28qamE4~_erx~$00000006i>0AZ`i U|6;tX>;M1&07*qoM6N<$f&!T?2LJ#7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_tall.png b/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_tall.png new file mode 100644 index 0000000000000000000000000000000000000000..f42a86613a91e271169c6539cca1b69bd1e56120 GIT binary patch literal 826 zcmV-A1I7G_P)EX>4Tx04R}tkv&MmP!xqvQ^g_`1v`i+WT;MdQ4z;lg(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULJ2)x2NQw6)g%&YBxV(?^-Z|WNA0RX;OtZS;fTr7K zI++l&xmB^}6(NK%Ks72e%b1g-6nxj$Jpz2ci}5V~dw;GzHE%H>AQH!!VcNtS#50?= z!FiuJ!b-AAd`>)JQiH^gTvt4P<6LxE;F%FKlb$Dz5R1hQRyvrKOpSP&II3zo)|5Tqat9cCGGtSBr6841C;;zg^i4Tn@D}J@^XAq%$LRx*p;@JFfP+I| zyhz#WKJN~7&h6hjt@-@`UL?m{+ z>d?KPqAwpd#@)%q-629i2xRL?4+A}rr;CwTt#?Tyk^29wUha9x#pOAG=%g%8k;SQ$ zd`7Z3{TJ~803ss3Nn~*Z@CskVSvSW1ORCFx+mA> zzc0okL}7p^4E|hrai4at`|F-j80_NL6?^YH{QCHW&l}jTtNni{kH0;Q$4+Ra_${AB zok1VV=>!0jW2stBC+H0NwKgD+pUh{LaxyooHLNzuYU5oz;GXv%boJrs8SP#dxA%7kbNVJ5V70+!wMH_Z zc^6-*0Y5*7$CtN@YCwLCr%drgL_|bHL_|bHL_}BS8_B69Xc=)$qyPW_07*qoM6N<$ Ef=F$8X#fBK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_thin.png b/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_thin.png new file mode 100644 index 0000000000000000000000000000000000000000..a910e67f6d07167dd7bdcc25745d90da09a95c24 GIT binary patch literal 601 zcmV-f0;c_mP)EX>4Tx04R}tkv&MmP!xqvQ^g_`1v`i+WT;MdQ4z;lg(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULJ2)x2NQw6)g%&YBxV(?^-Z|WNA0RX;OtZS;fTr7K zI++l&xmB^}6(NK%Ks72e%b1g-6nxj$Jpz2ci}5V~dw;GzHE%H>AQH!!VcNtS#50?= z!FiuJ!b-AAd`>)JQiH^gTvt4P<6LxE;F%FKlb$Dz5R1hQRyvrKOpSP&II3zo)|5Tqat9cCGGtSBr6841C;;zg^i4Tn@D}J@^XAq%$LRx*p;@JFfP+I| zyhz#WKJN~7&h6hjt@-@`UL>rFpo zZfx@b00000000=X?EbuK+K7nH_3v+Z{1*@rsi?}Vy_4J_*8@|;rGuZ&XFqd`$6Xz# n{UH{sW%8y0000000G>Dliy|+{59 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_upwards.png b/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_upwards.png new file mode 100644 index 0000000000000000000000000000000000000000..8454708d9e41e25fcae454885b23a85f80053214 GIT binary patch literal 789 zcmV+w1M2*VP)EX>4Tx04R}tkv&MmP!xqvQ^g_`1v`i+WT;MdQ4z;lg(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULJ2)x2NQw6)g%&YBxV(?^-Z|WNA0RX;OtZS;fTr7K zI++l&xmB^}6(NK%Ks72e%b1g-6nxj$Jpz2ci}5V~dw;GzHE%H>AQH!!VcNtS#50?= z!FiuJ!b-AAd`>)JQiH^gTvt4P<6LxE;F%FKlb$Dz5R1hQRyvrKOpSP&II3zo)|5Tqat9cCGGtSBr6841C;;zg^i4Tn@D}J@^XAq%$LRx*p;@JFfP+I| zyhz#WKJN~7&h6hjt@-@`UL#eG)o>TsHRYBl7zn^a&?*FZ|znA~>^!$3#!VmKU*ZFhIz;%xD zPtD%Dr@lYGq|Oc$b)7#0Y`&_>;U?Sf+T>5_6iw$diF{8)#8i};$oFJApLKcxZ2o4o zGx|vRN&A$p-)c00000006+n>E*rqz;m3m2+$EPzTdeOZ(((e7s2)h zG;L34)E{6~^$852Jf|l80hPBvd5}CwB@1Jdg|YP12-5mwW??K@7@IsvYcIa`Gr$g3 z^a#k+-K`nh39xgDe6LYwNTY?6Z->Xl%Tc4kkSE~d{jJf?0{{R300000aDjdRWC-8- TTJhfo00000NkvXXu0mjfU0HEx literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_wide.png b/Resources/Textures/Mobs/Customization/pointy_ears.rsi/pointy_ears_wide.png new file mode 100644 index 0000000000000000000000000000000000000000..2a643bf6c61c3eb38eddf9c80e635360a6a451ed GIT binary patch literal 675 zcmV;U0$lxxP)EX>4Tx04R}tkv&MmP!xqvQ^g_`1v`i+WT;MdQ4z;lg(6f4wL+^7CNKSiCJjl7 zi=*ILaPVib>fqw6tAnc`2>yULJ2)x2NQw6)g%&YBxV(?^-Z|WNA0RX;OtZS;fTr7K zI++l&xmB^}6(NK%Ks72e%b1g-6nxj$Jpz2ci}5V~dw;GzHE%H>AQH!!VcNtS#50?= z!FiuJ!b-AAd`>)JQiH^gTvt4P<6LxE;F%FKlb$Dz5R1hQRyvrKOpSP&II3zo)|5Tqat9cCGGtSBr6841C;;zg^i4Tn@D}J@^XAq%$LRx*p;@JFfP+I| zyhz#WKJN~7&h6hjt@-@`UL