Add Carrin species beak, hair, and facial hair customization

Introduces new marking prototypes and sprites for Carrin beak, hair, and facial hair customization. Updates Carrin species and entity definitions to support these markings, adjusts visual layer ordering, and adds displacement sprites for hands and shirts. Also includes updates to Carrin base sprites and modifies some existing Carrin textures.
This commit is contained in:
Ed
2025-08-31 23:19:32 +03:00
parent eb6968e554
commit 9d0afdf848
40 changed files with 487 additions and 9 deletions

View File

@@ -0,0 +1,49 @@
- type: body
id: CP14Carrin
name: human
root: torso
slots:
head:
part: CP14HeadHuman
connections:
- torso
organs:
brain: OrganHumanBrain
eyes: OrganHumanEyes
torso:
part: TorsoHuman
connections:
- right_arm
- left_arm
- right_leg
- left_leg
organs:
lungs: OrganAnimalLungs
stomach: OrganAnimalStomach
liver: OrganAnimalLiver
heart: OrganAnimalHeart
kidneys: OrganAnimalKidneys
right_arm:
part: CP14RightArmHuman
connections:
- right_hand
left_arm:
part: CP14LeftArmHuman
connections:
- left_hand
right_hand:
part: CP14RightHandHuman
left_hand:
part: CP14LeftHandHuman
right_leg:
part: CP14RightLegHuman
connections:
- right_foot
left_leg:
part: CP14LeftLegHuman
connections:
- left_foot
right_foot:
part: CP14RightFootHuman
left_foot:
part: CP14LeftFootHuman

View File

@@ -0,0 +1,143 @@
- type: marking
id: CP14CarrinBeak
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 1
- type: marking
id: CP14CarrinBeak2
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 2
- type: marking
id: CP14CarrinBeak3
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 3
- type: marking
id: CP14CarrinBeak4
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 4
- type: marking
id: CP14CarrinBeak5
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 5
- type: marking
id: CP14CarrinBeak6
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 6
- type: marking
id: CP14CarrinBeak7
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 7
- type: marking
id: CP14CarrinBeak8
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 8
- type: marking
id: CP14CarrinBeak9
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 9
- type: marking
id: CP14CarrinBeak10
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 10
- type: marking
id: CP14CarrinBeak11
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 11
- type: marking
id: CP14CarrinBeak12
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 12
- type: marking
id: CP14CarrinBeak13
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 13
- type: marking
id: CP14CarrinBeak14
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 14
- type: marking
id: CP14CarrinBeak15
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 15
- type: marking
id: CP14CarrinBeak16
bodyPart: Snout
markingCategory: Snout
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_beak.rsi
state: 16

View File

@@ -0,0 +1,8 @@
- type: marking
id: CP14CarrinBeard
bodyPart: FacialHair
markingCategory: FacialHair
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_facial_hair.rsi
state: 1

View File

@@ -0,0 +1,53 @@
- type: marking
id: CP14CarrinHair
bodyPart: Hair
markingCategory: Hair
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_hair.rsi
state: 1
- type: marking
id: CP14CarrinHair2
bodyPart: Hair
markingCategory: Hair
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_hair.rsi
state: 2
- type: marking
id: CP14CarrinHair3
bodyPart: Hair
markingCategory: Hair
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_hair.rsi
state: 3
- type: marking
id: CP14CarrinHair4
bodyPart: Hair
markingCategory: Hair
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_hair.rsi
state: 4
- type: marking
id: CP14CarrinHair5
bodyPart: Hair
markingCategory: Hair
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_hair.rsi
state: 5
- type: marking
id: CP14CarrinHair6
bodyPart: Hair
markingCategory: Hair
speciesRestriction: [ CP14Carrin ]
sprites:
- sprite: _CP14/Mobs/Customization/carrin_hair.rsi
state: 6

View File

@@ -8,8 +8,8 @@
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
- map: [ "enum.HumanoidVisualLayers.Head" ]
- map: [ "enum.HumanoidVisualLayers.Snout" ]
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
- map: [ "enum.HumanoidVisualLayers.Snout" ] # Snout over eyes
- map: [ "vampire_fangs" ]
sprite: _CP14/Mobs/Species/Vampire/fangs48.rsi
state: carrin #Unique carrin fangs
@@ -82,7 +82,14 @@
- type: CP14AuraImprint
imprintColor: "#52b09e"
- type: Inventory
templateId: CP14Carcat # Cant wear shoes
speciesId: carrin
displacements:
shirt:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Carrin/displacement.rsi
state: shirt
- type: Hands
- type: entity
@@ -90,9 +97,77 @@
id: CP14MobCarrinDummy
categories: [ HideSpawnMenu ]
components:
- type: Sprite
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
- map: [ "enum.HumanoidVisualLayers.Head" ]
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
- map: [ "enum.HumanoidVisualLayers.Snout" ] # Snout over eyes
- map: [ "vampire_fangs" ]
sprite: _CP14/Mobs/Species/Vampire/fangs48.rsi
state: carrin #Unique carrin fangs
visible: false
- map: [ "enum.HumanoidVisualLayers.RArm" ]
- map: [ "enum.HumanoidVisualLayers.LArm" ]
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
- shader: StencilClear
sprite: _CP14/Mobs/Species/Human/parts.rsi
state: l_leg
- shader: StencilMask
map: [ "enum.HumanoidVisualLayers.StencilMask" ]
sprite: Mobs/Customization/masking_helpers.rsi
state: unisex_full
visible: false
- map: [ "enum.HumanoidVisualLayers.LFoot" ]
- map: [ "enum.HumanoidVisualLayers.RFoot" ]
- map: [ "pants" ]
- map: [ "shoes" ]
- map: [ "shirt" ]
- map: [ "enum.HumanoidVisualLayers.LHand" ]
- map: [ "enum.HumanoidVisualLayers.RHand" ]
- map: [ "gloves" ]
- map: [ "ears" ]
- map: [ "outerClothing" ]
- map: [ "cloak" ]
- map: [ "eyes" ]
- map: [ "belt" ]
- map: [ "belt2" ]
- map: [ "neck" ]
- map: [ "back" ]
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
- map: [ "enum.HumanoidVisualLayers.Hair" ]
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
- map: [ "enum.HumanoidVisualLayers.Tail" ]
- map: [ "mask" ]
- map: [ "head" ]
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
color: "#ffffff"
sprite: Objects/Misc/handcuffs.rsi
state: body-overlay-2
visible: false
- type: HumanoidAppearance
species: CP14Carrin
- type: Inventory
templateId: CP14Carrin
templateId: CP14Carcat
speciesId: carrin
displacements:
shirt:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Carrin/displacement.rsi
state: shirt
- type: Hands
leftHandDisplacement:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Carrin/displacement.rsi
state: hand_l
rightHandDisplacement:
sizeMaps:
32:
sprite: _CP14/Mobs/Species/Carrin/displacement.rsi
state: hand_r

View File

@@ -17,9 +17,9 @@
sprites:
Head: CP14MobCarrinHead
HeadTop: CP14MobCarrinMarkingMatchSkin
#Hair: CP14MobCarrinAnyMarking
#FacialHair: CP14MobCarrinAnyMarking
Snout: CP14MobCarrinMarkingMatchSkin
Hair: CP14MobCarrinAnyMarking
FacialHair: CP14MobCarrinMarkingMatchSkin
Snout: CP14MobCarrinAnyMarking
Tail: CP14MobCarrinMarkingMatchSkin
Chest: CP14MobCarrinTorso
Eyes: CP14MobCarrinEyes
@@ -42,10 +42,10 @@
#FacialHair:
# points: 1
# required: false
#Snout:
# points: 1
# required: true
# defaultMarkings: [ CP14CarrinNose ]
Snout:
points: 1
required: true
defaultMarkings: [ CP14CarrinBeak ]
#Tail:
# points: 1
# required: true
@@ -77,6 +77,9 @@
id: CP14MobCarrinMarkingMatchSkin
markingsMatchSkin: true
- type: humanoidBaseSprite
id: CP14MobCarrinMarkingBeak
- type: humanoidBaseSprite
id: CP14MobCarrinHead
baseSprite:

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 393 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

View File

@@ -0,0 +1,75 @@
{
"version": 1,
"license": "CC-BY-SA-4.0",
"copyright": "Created by TheShuEd (Github)",
"size": {
"x": 48,
"y": 48
},
"states": [
{
"name": "1",
"directions": 4
},
{
"name": "2",
"directions": 4
},
{
"name": "3",
"directions": 4
},
{
"name": "4",
"directions": 4
},
{
"name": "5",
"directions": 4
},
{
"name": "6",
"directions": 4
},
{
"name": "7",
"directions": 4
},
{
"name": "8",
"directions": 4
},
{
"name": "9",
"directions": 4
},
{
"name": "10",
"directions": 4
},
{
"name": "11",
"directions": 4
},
{
"name": "12",
"directions": 4
},
{
"name": "13",
"directions": 4
},
{
"name": "14",
"directions": 4
},
{
"name": "15",
"directions": 4
},
{
"name": "16",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

View File

@@ -0,0 +1,15 @@
{
"version": 1,
"license": "CC-BY-SA-4.0",
"copyright": "Created by TheShuEd (Github)",
"size": {
"x": 48,
"y": 48
},
"states": [
{
"name": "1",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

View File

@@ -0,0 +1,35 @@
{
"version": 1,
"license": "CC-BY-SA-4.0",
"copyright": "Created by TheShuEd (Github)",
"size": {
"x": 48,
"y": 48
},
"states": [
{
"name": "1",
"directions": 4
},
{
"name": "2",
"directions": 4
},
{
"name": "3",
"directions": 4
},
{
"name": "4",
"directions": 4
},
{
"name": "5",
"directions": 4
},
{
"name": "6",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

View File

@@ -0,0 +1,22 @@
{
"version": 1,
"license": "CC-BY-SA-4.0",
"copyright": "Created by TheShuEd (Github)",
"size": {
"x": 32,
"y": 32
},
"load": {
"srgb": false
},
"states": [
{
"name": "cloak",
"directions": 4
},
{
"name": "shirt",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 B

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 B

After

Width:  |  Height:  |  Size: 465 B