Goblin species (#295)

* Create CP14HandDisplacementMapComponent.cs

* idk if it works, we need goblin first

* some clean up

* add goblin species sprites

* basic goblic species prototype

* hairs, ears

* typo

* hand displacement maps

* shoes displacement

* shirt displacement

* head displacement. Add support different size maps

* +dummy

* eyes displacement

* pants displacement

* gloves displacements

* cloak and mask displacement (final)

* belt displacement!

* add nose customization

* +2 ears customization
This commit is contained in:
Ed
2024-07-03 01:09:57 +03:00
committed by GitHub
parent b0ceeb19c3
commit 074ec3e17d
63 changed files with 888 additions and 6 deletions

View File

@@ -331,7 +331,19 @@ public sealed class ClientClothingSystem : ClothingSystem
continue;
}
var displacementLayer = _serialization.CreateCopy(displacementData.Layer, notNullableOverride: true);
//CP14 48*48 displacement maps support
var displacementDataLayer = displacementData.Layer;
var actualRSI = sprite.LayerGetActualRSI(index);
if (actualRSI != null)
{
var layerSize = actualRSI.Size;
if (layerSize.X == 48 && displacementData.Layer48 != null)
displacementDataLayer = displacementData.Layer48;
}
var displacementLayer = _serialization.CreateCopy(displacementDataLayer, notNullableOverride: true);
//CP14 48*48 displacement maps support end
displacementLayer.CopyToShaderParameters!.LayerKey = key;
// Add before main layer for this item.

View File

@@ -15,6 +15,7 @@ using Robust.Client.UserInterface;
using Robust.Shared.Containers;
using Robust.Shared.GameStates;
using Robust.Shared.Player;
using Robust.Shared.Serialization.Manager;
using Robust.Shared.Timing;
namespace Content.Client.Hands.Systems
@@ -28,6 +29,7 @@ namespace Content.Client.Hands.Systems
[Dependency] private readonly SharedContainerSystem _containerSystem = default!;
[Dependency] private readonly StrippableSystem _stripSys = default!;
[Dependency] private readonly ExamineSystem _examine = default!;
[Dependency] private readonly ISerializationManager _serialization = default!; //CP14
public event Action<string, HandLocation>? OnPlayerAddHand;
public event Action<string>? OnPlayerRemoveHand;
@@ -322,6 +324,8 @@ namespace Content.Client.Hands.Systems
return;
}
var displacementData = handComp.Displacements.GetValueOrDefault("Hands"); //CP14 hands displacements
// add the new layers
foreach (var (key, layerData) in ev.Layers)
{
@@ -345,6 +349,39 @@ namespace Content.Client.Hands.Systems
}
sprite.LayerSetData(index, layerData);
//CP14 Hands displacement maps
if (displacementData != null)
{
if (displacementData.ShaderOverride != null)
sprite.LayerSetShader(index, displacementData.ShaderOverride);
var displacementKey = $"{key}-displacement";
if (!revealedLayers.Add(displacementKey))
{
Log.Warning($"Duplicate key for inhand layers DISPLACEMENT: {displacementKey}.");
continue;
}
var displacementDataLayer = displacementData.Layer;
var actualRSI = sprite.LayerGetActualRSI(index);
if (actualRSI != null)
{
var layerSize = actualRSI.Size;
if (layerSize.X == 48 && displacementData.Layer48 != null)
displacementDataLayer = displacementData.Layer48;
}
var displacementLayer = _serialization.CreateCopy(displacementDataLayer, notNullableOverride: true);
displacementLayer.CopyToShaderParameters!.LayerKey = key;
// Add before main layer for this item.
sprite.AddLayer(displacementLayer, index);
sprite.LayerMapSet(displacementKey, index);
revealedLayers.Add(displacementKey);
}
//CP14 Hands displacement maps - end
}
RaiseLocalEvent(held, new HeldVisualsUpdatedEvent(uid, revealedLayers), true);

View File

@@ -1,4 +1,5 @@
using Content.Shared.Hands.EntitySystems;
using Content.Shared.Inventory;
using Robust.Shared.Containers;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization;
@@ -76,6 +77,12 @@ public sealed partial class HandsComponent : Component
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public TimeSpan ThrowCooldown = TimeSpan.FromSeconds(0.5f);
/// <summary>
/// CP14 Hands displacements
/// </summary>
[DataField]
public Dictionary<string, InventoryComponent.SlotDisplacementData> Displacements = [];
}
[Serializable, NetSerializable]

View File

@@ -24,6 +24,9 @@ public sealed partial class InventoryComponent : Component
[DataField(required: true)]
public PrototypeLayerData Layer = default!;
[DataField]
public PrototypeLayerData? Layer48; //CP14 48*48 displacement support
[DataField]
public string? ShaderOverride = "DisplacedStencilDraw";
}

View File

@@ -0,0 +1,3 @@
marking-CP14GoblinEars = Big ear
marking-CP14GoblinEars2 = Lop-eared
marking-CP14GoblinEars3 = Rounded

View File

@@ -0,0 +1,3 @@
marking-CP14GoblinHairAntenna = Unruly Strands
marking-CP14GoblinHairBedHead2 = Bedhead 2
marking-CP14GoblinHairDoubleBun = Double Bun

View File

@@ -0,0 +1,3 @@
marking-CP14GoblinNose = Large nostrils
marking-CP14GoblinNose2 = Hook
marking-CP14GoblinNose3 = Proud dopey

View File

@@ -477,4 +477,60 @@ cp14-species-name-elf-last-14 = Shastrim
cp14-species-name-elf-last-15 = Frostrister
cp14-species-name-elf-last-16 = Felestra
cp14-species-name-elf-last-17 = Hustiar
cp14-species-name-elf-last-18 = Galfre
cp14-species-name-elf-last-18 = Galfre
# GOBLIN
cp14-species-name-goblin-male-first-1 = Aruguet
cp14-species-name-goblin-male-first-2 = Vanii
cp14-species-name-goblin-male-first-3 = Vanon
cp14-species-name-goblin-male-first-4 = Vuudaraj
cp14-species-name-goblin-male-first-5 = Goodruun
cp14-species-name-goblin-male-first-6 = Daavn
cp14-species-name-goblin-male-first-7 = Dabrak
cp14-species-name-goblin-male-first-8 = Daghiyi
cp14-species-name-goblin-male-first-9 = Jazaal
cp14-species-name-goblin-male-first-10 = Dravduul
cp14-species-name-goblin-male-first-11 = Duulan
cp14-species-name-goblin-male-first-12 = Kallaad
cp14-species-name-goblin-male-first-13 = Krakuul
cp14-species-name-goblin-male-first-14 = Crootad
cp14-species-name-goblin-male-first-15 = Mazaan
cp14-species-name-goblin-male-first-16 = Munta
cp14-species-name-goblin-male-first-17 = Nasaar
cp14-species-name-goblin-male-first-18 = Rakari
cp14-species-name-goblin-male-first-19 = Rexyite
cp14-species-name-goblin-male-first-20 = Tarik
cp14-species-name-goblin-male-first-21 = Taruuzh
cp14-species-name-goblin-male-first-22 = Tuun
cp14-species-name-goblin-male-first-23 = Fenik
cp14-species-name-goblin-male-first-24 = Chetin
cp14-species-name-goblin-male-first-25 = Haluun
cp14-species-name-goblin-male-first-26 = Haruuk
cp14-species-name-goblin-female-first-1 = Aaspar
cp14-species-name-goblin-female-first-2 = Aguus
cp14-species-name-goblin-female-first-3 = Belaluur
cp14-species-name-goblin-female-first-4 = Vali
cp14-species-name-goblin-female-first-5 = Vuun
cp14-species-name-goblin-female-first-6 = Grail
cp14-species-name-goblin-female-first-7 = Gaduul
cp14-species-name-goblin-female-first-8 = Denaal
cp14-species-name-goblin-female-first-9 = Jaluum
cp14-species-name-goblin-female-first-10 = Draraar
cp14-species-name-goblin-female-first-11 = Duusha
cp14-species-name-goblin-female-first-12 = Kelaal
cp14-species-name-goblin-female-first-13 = Mulaan
cp14-species-name-goblin-female-first-14 = Nasri
cp14-species-name-goblin-female-first-15 = Razu
cp14-species-name-goblin-female-first-16 = Ralin
cp14-species-name-goblin-female-first-17 = Rexin
cp14-species-name-goblin-female-first-18 = Senen
cp14-species-name-goblin-female-first-19 = Tajin
cp14-species-name-goblin-female-first-20 = Tuner
cp14-species-name-goblin-female-first-21 = Hashak
cp14-species-name-goblin-female-first-22 = Shadruor
cp14-species-name-goblin-female-first-23 = Ehaas
cp14-species-name-goblin-female-first-24 = Eluun
cp14-species-name-goblin-last-1 = ""

View File

@@ -1,4 +1,5 @@
cp14-species-name-human = Human
cp14-species-name-tiefling = Tiefling
cp14-species-name-dwarf = Dwarf
cp14-species-name-elf = Elf
cp14-species-name-elf = Elf
cp14-species-name-goblin = Goblin

View File

@@ -0,0 +1,3 @@
marking-CP14GoblinEars = Большой ух
marking-CP14GoblinEars2 = Вислоухий
marking-CP14GoblinEars3 = Округления

View File

@@ -0,0 +1,3 @@
marking-CP14GoblinHairAntenna = Непослушные пряди
marking-CP14GoblinHairBedHead2 = С бодуна 2
marking-CP14GoblinHairDoubleBun = Два пунпона

View File

@@ -0,0 +1,3 @@
marking-CP14GoblinNose = Большие ноздри
marking-CP14GoblinNose2 = Крючок
marking-CP14GoblinNose3 = Гордый торчок

View File

@@ -479,4 +479,60 @@ cp14-species-name-elf-last-14 = Шастрим
cp14-species-name-elf-last-15 = Фростристер
cp14-species-name-elf-last-16 = Фелестра
cp14-species-name-elf-last-17 = Хустиар
cp14-species-name-elf-last-18 = Гальфре
cp14-species-name-elf-last-18 = Гальфре
# GOBLIN
cp14-species-name-goblin-male-first-1 = Аругет
cp14-species-name-goblin-male-first-2 = Вании
cp14-species-name-goblin-male-first-3 = Ванон
cp14-species-name-goblin-male-first-4 = Вуударадж
cp14-species-name-goblin-male-first-5 = Гудруун
cp14-species-name-goblin-male-first-6 = Даавн
cp14-species-name-goblin-male-first-7 = Дабрак
cp14-species-name-goblin-male-first-8 = Дагии
cp14-species-name-goblin-male-first-9 = Джазаал
cp14-species-name-goblin-male-first-10 = Древдуул
cp14-species-name-goblin-male-first-11 = Дуулан
cp14-species-name-goblin-male-first-12 = Каллаад
cp14-species-name-goblin-male-first-13 = Кракуул
cp14-species-name-goblin-male-first-14 = Кроотад
cp14-species-name-goblin-male-first-15 = Мазаан
cp14-species-name-goblin-male-first-16 = Мунта
cp14-species-name-goblin-male-first-17 = Насаар
cp14-species-name-goblin-male-first-18 = Ракари
cp14-species-name-goblin-male-first-19 = Рексиит
cp14-species-name-goblin-male-first-20 = Тарик
cp14-species-name-goblin-male-first-21 = Тарууж
cp14-species-name-goblin-male-first-22 = Туун
cp14-species-name-goblin-male-first-23 = Феник
cp14-species-name-goblin-male-first-24 = Четин
cp14-species-name-goblin-male-first-25 = Халуун
cp14-species-name-goblin-male-first-26 = Харуук
cp14-species-name-goblin-female-first-1 = Ааспар
cp14-species-name-goblin-female-first-2 = Агуус
cp14-species-name-goblin-female-first-3 = Белалуур
cp14-species-name-goblin-female-first-4 = Вали
cp14-species-name-goblin-female-first-5 = Вуун
cp14-species-name-goblin-female-first-6 = Грааль
cp14-species-name-goblin-female-first-7 = Гадуул
cp14-species-name-goblin-female-first-8 = Денаал
cp14-species-name-goblin-female-first-9 = Джелуум
cp14-species-name-goblin-female-first-10 = Драраар
cp14-species-name-goblin-female-first-11 = Дууша
cp14-species-name-goblin-female-first-12 = Келаал
cp14-species-name-goblin-female-first-13 = Мулаан
cp14-species-name-goblin-female-first-14 = Насри
cp14-species-name-goblin-female-first-15 = Разу
cp14-species-name-goblin-female-first-16 = Ралин
cp14-species-name-goblin-female-first-17 = Рексин
cp14-species-name-goblin-female-first-18 = Сенен
cp14-species-name-goblin-female-first-19 = Таджин
cp14-species-name-goblin-female-first-20 = Тюнер
cp14-species-name-goblin-female-first-21 = Хашак
cp14-species-name-goblin-female-first-22 = Шедруор
cp14-species-name-goblin-female-first-23 = Эхаас
cp14-species-name-goblin-female-first-24 = Элуун
cp14-species-name-goblin-last-1 = ""

View File

@@ -1,4 +1,5 @@
cp14-species-name-human = Человек
cp14-species-name-tiefling = Тифлинг
cp14-species-name-dwarf = Дварф
cp14-species-name-elf = Эльф
cp14-species-name-elf = Эльф
cp14-species-name-goblin = Гоблин

View File

@@ -77,4 +77,24 @@
id: CP14_Names_Elf_Last
values:
prefix: cp14-species-name-elf-last-
count: 18
count: 18
# Goblin
- type: localizedDataset
id: CP14_Names_Goblin_Male_First
values:
prefix: cp14-species-name-goblin-male-first-
count: 26
- type: localizedDataset
id: CP14_Names_Goblin_Female_First
values:
prefix: cp14-species-name-goblin-female-first-
count: 24
- type: localizedDataset
id: CP14_Names_Goblin_Last
values:
prefix: cp14-species-name-goblin-last-
count: 1

View File

@@ -0,0 +1,32 @@
- type: marking
id: CP14GoblinEars
bodyPart: HeadTop
markingCategory: HeadTop
followSkinColor: true
forcedColoring: true
speciesRestriction: [ CP14Goblin ]
sprites:
- sprite: _CP14/Mobs/Customization/goblin_ears.rsi
state: ears1
- type: marking
id: CP14GoblinEars2
bodyPart: HeadTop
markingCategory: HeadTop
followSkinColor: true
forcedColoring: true
speciesRestriction: [ CP14Goblin ]
sprites:
- sprite: _CP14/Mobs/Customization/goblin_ears.rsi
state: ears2
- type: marking
id: CP14GoblinEars3
bodyPart: HeadTop
markingCategory: HeadTop
followSkinColor: true
forcedColoring: true
speciesRestriction: [ CP14Goblin ]
sprites:
- sprite: _CP14/Mobs/Customization/goblin_ears.rsi
state: ears3

View File

@@ -0,0 +1,26 @@
- type: marking
id: CP14GoblinHairAntenna
bodyPart: Hair
markingCategory: Hair
speciesRestriction: [ CP14Goblin ]
sprites:
- sprite: _CP14/Mobs/Customization/goblin_hair.rsi
state: antenna
- type: marking
id: CP14GoblinHairBedHead2
bodyPart: Hair
markingCategory: Hair
speciesRestriction: [ CP14Goblin ]
sprites:
- sprite: _CP14/Mobs/Customization/goblin_hair.rsi
state: bedheadv2
- type: marking
id: CP14GoblinHairDoubleBun
bodyPart: Hair
markingCategory: Hair
speciesRestriction: [ CP14Goblin ]
sprites:
- sprite: _CP14/Mobs/Customization/goblin_hair.rsi
state: doublebun

View File

@@ -0,0 +1,32 @@
- type: marking
id: CP14GoblinNose
bodyPart: Snout
markingCategory: Snout
followSkinColor: true
forcedColoring: true
speciesRestriction: [ CP14Goblin ]
sprites:
- sprite: _CP14/Mobs/Customization/goblin_nose.rsi
state: nose1
- type: marking
id: CP14GoblinNose2
bodyPart: Snout
markingCategory: Snout
followSkinColor: true
forcedColoring: true
speciesRestriction: [ CP14Goblin ]
sprites:
- sprite: _CP14/Mobs/Customization/goblin_nose.rsi
state: nose2
- type: marking
id: CP14GoblinNose3
bodyPart: Snout
markingCategory: Snout
followSkinColor: true
forcedColoring: true
speciesRestriction: [ CP14Goblin ]
sprites:
- sprite: _CP14/Mobs/Customization/goblin_nose.rsi
state: nose3

View File

@@ -12,6 +12,7 @@
id: CP14TieflingHorns2
bodyPart: HeadTop
markingCategory: HeadTop
speciesRestriction: [ CP14Tiefling ]
followSkinColor: true
sprites:
- sprite: _CP14/Mobs/Customization/tiefling_horns.rsi
@@ -21,6 +22,7 @@
id: CP14TieflingHorns3
bodyPart: HeadTop
markingCategory: HeadTop
speciesRestriction: [ CP14Tiefling ]
followSkinColor: true
sprites:
- sprite: _CP14/Mobs/Customization/tiefling_horns.rsi
@@ -30,6 +32,7 @@
id: CP14TieflingHorns3Broken
bodyPart: HeadTop
markingCategory: HeadTop
speciesRestriction: [ CP14Tiefling ]
followSkinColor: true
sprites:
- sprite: _CP14/Mobs/Customization/tiefling_horns.rsi
@@ -39,6 +42,7 @@
id: CP14TieflingHorns4
bodyPart: HeadTop
markingCategory: HeadTop
speciesRestriction: [ CP14Tiefling ]
followSkinColor: true
sprites:
- sprite: _CP14/Mobs/Customization/tiefling_horns.rsi
@@ -48,6 +52,7 @@
id: CP14TieflingHorns5
bodyPart: HeadTop
markingCategory: HeadTop
speciesRestriction: [ CP14Tiefling ]
followSkinColor: true
sprites:
- sprite: _CP14/Mobs/Customization/tiefling_horns.rsi
@@ -57,6 +62,7 @@
id: CP14TieflingHorns5Broken
bodyPart: HeadTop
markingCategory: HeadTop
speciesRestriction: [ CP14Tiefling ]
followSkinColor: true
sprites:
- sprite: _CP14/Mobs/Customization/tiefling_horns.rsi
@@ -66,6 +72,7 @@
id: CP14TieflingHorns6
bodyPart: HeadTop
markingCategory: HeadTop
speciesRestriction: [ CP14Tiefling ]
followSkinColor: true
sprites:
- sprite: _CP14/Mobs/Customization/tiefling_horns.rsi
@@ -75,6 +82,7 @@
id: CP14TieflingHorns7
bodyPart: HeadTop
markingCategory: HeadTop
speciesRestriction: [ CP14Tiefling ]
followSkinColor: true
sprites:
- sprite: _CP14/Mobs/Customization/tiefling_horns.rsi

View File

@@ -0,0 +1,4 @@
- type: entity
save: false
parent: CP14BaseMobGoblin
id: CP14MobGoblin

View File

@@ -0,0 +1,205 @@
- type: entity
parent: CP14BaseMobSpeciesOrganic
id: CP14BaseMobGoblin
name: Mr. Goblin
abstract: true
components:
- type: HumanoidAppearance
species: CP14Goblin
- type: Hunger
- type: Icon
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: full
- type: Thirst
- type: Butcherable
butcheringType: Spike
spawned:
- id: FoodMeatHuman
amount: 5
- type: Body
prototype: CP14Human
requiredLegs: 2
- type: Bloodstream
bloodReagent: CP14Blood
- type: Hands
displacements:
Hands:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: hands
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
- type: Inventory
templateId: CP14Human
displacements:
belt:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: belt
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
cloak:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: cloak
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
eyes:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: eyes
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
gloves:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: gloves
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
head:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: head
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
layer48:
sprite: _CP14/Mobs/Species/Goblin/displacement48.rsi
state: head
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
mask:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: mask
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
pants:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: pants
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
shirt:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: shirt
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
shoes:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: shoes
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
- type: entity
parent: CP14BaseSpeciesDummy
id: CP14MobGoblinDummy
noSpawn: true
components:
- type: HumanoidAppearance
species: CP14Goblin
- type: Inventory
templateId: CP14Human
displacements:
belt:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: belt
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
cloak:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: cloak
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
eyes:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: eyes
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
gloves:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: gloves
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
head:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: head
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
layer48:
sprite: _CP14/Mobs/Species/Goblin/displacement48.rsi
state: head
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
mask:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: mask
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
pants:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: pants
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
shirt:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: shirt
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV
shoes:
layer:
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
state: shoes
copyToShaderParameters:
layerKey: dummy
parameterTexture: displacementMap
parameterUV: displacementUV

View File

@@ -0,0 +1,157 @@
- type: species
id: CP14Goblin
name: cp14-species-name-goblin
roundStart: true
prototype: CP14MobGoblin
sprites: CP14MobGoblinSprites
markingLimits: CP14MobGoblinMarkingLimits
dollPrototype: CP14MobGoblinDummy
skinColoration: VoxFeathers
defaultSkinTone: "#74964d"
maleFirstNames: CP14_Names_Goblin_Male_First
femaleFirstNames: CP14_Names_Goblin_Female_First
lastNames: CP14_Names_Goblin_Last
- type: speciesBaseSprites
id: CP14MobGoblinSprites
sprites:
Head: CP14MobGoblinHead
HeadTop: CP14MobGoblinMarkingMatchSkin
Hair: CP14MobGoblinAnyMarking
FacialHair: CP14MobGoblinAnyMarking
Snout: CP14MobGoblinMarkingMatchSkin
Chest: CP14MobGoblinTorso
Eyes: CP14MobGoblinEyes
LArm: CP14MobGoblinLArm
RArm: CP14MobGoblinRArm
LHand: CP14MobGoblinLHand
RHand: CP14MobGoblinRHand
LLeg: CP14MobGoblinLLeg
RLeg: CP14MobGoblinRLeg
LFoot: CP14MobGoblinLFoot
RFoot: CP14MobGoblinRFoot
- type: markingPoints
id: CP14MobGoblinMarkingLimits
onlyWhitelisted: true
points:
Hair:
points: 1
required: false
FacialHair:
points: 1
required: false
Snout:
points: 1
required: true
defaultMarkings: [ CP14GoblinNose ]
HeadTop:
points: 1
required: true
defaultMarkings: [ CP14GoblinEars ]
Chest:
points: 1
required: false
Legs:
points: 2
required: false
Arms:
points: 2
required: false
- type: humanoidBaseSprite
id: CP14MobGoblinEyes
baseSprite:
sprite: _CP14/Mobs/Customization/eyes.rsi
state: goblin_eyes
- type: humanoidBaseSprite
id: CP14MobGoblinAnyMarking
- type: humanoidBaseSprite
id: CP14MobGoblinMarkingMatchSkin
markingsMatchSkin: true
- type: humanoidBaseSprite
id: CP14MobGoblinHead
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: head_m
- type: humanoidBaseSprite
id: CP14MobGoblinHeadMale
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: head_m
- type: humanoidBaseSprite
id: CP14MobGoblinHeadFemale
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: head_f
- type: humanoidBaseSprite
id: CP14MobGoblinTorso
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: torso_m
- type: humanoidBaseSprite
id: CP14MobGoblinTorsoMale
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: torso_m
- type: humanoidBaseSprite
id: CP14MobGoblinTorsoFemale
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: torso_f
- type: humanoidBaseSprite
id: CP14MobGoblinLLeg
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: l_leg
- type: humanoidBaseSprite
id: CP14MobGoblinLArm
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: l_arm
- type: humanoidBaseSprite
id: CP14MobGoblinLHand
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: l_hand
- type: humanoidBaseSprite
id: CP14MobGoblinLFoot
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: l_foot
- type: humanoidBaseSprite
id: CP14MobGoblinRLeg
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: r_leg
- type: humanoidBaseSprite
id: CP14MobGoblinRArm
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: r_arm
- type: humanoidBaseSprite
id: CP14MobGoblinRHand
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: r_hand
- type: humanoidBaseSprite
id: CP14MobGoblinRFoot
baseSprite:
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: r_foot

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

View File

@@ -11,6 +11,10 @@
"name": "eyes",
"directions": 4
},
{
"name": "goblin_eyes",
"directions": 4
},
{
"name": "no_eyes"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 450 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

View File

@@ -0,0 +1,23 @@
{
"version": 1,
"license": "All rights reserved for the CrystallPunk14 project only",
"copyright": "Created by TheShuEd (Github) for CrystallPunk",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "ears1",
"directions": 4
},
{
"name": "ears2",
"directions": 4
},
{
"name": "ears3",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 902 B

View File

@@ -0,0 +1,23 @@
{
"version": 1,
"license": "All rights reserved for the CrystallPunk14 project only",
"copyright": "Created by TheShuEd (Github) for CrystallPunk",
"size": {
"x": 48,
"y": 48
},
"states": [
{
"name": "antenna",
"directions": 4
},
{
"name": "bedheadv2",
"directions": 4
},
{
"name": "doublebun",
"directions": 4
}
]
}

View File

@@ -0,0 +1,23 @@
{
"version": 1,
"license": "All rights reserved for the CrystallPunk14 project only",
"copyright": "Created by TheShuEd (Github) for CrystallPunk",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "nose1",
"directions": 4
},
{
"name": "nose2",
"directions": 4
},
{
"name": "nose3",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

View File

@@ -0,0 +1,54 @@
{
"version": 1,
"license": "All rights reserved for the CrystallPunk14 project only",
"copyright": "Created by TheShuEd (Github) for CrystallPunk14",
"size": {
"x": 32,
"y": 32
},
"load": {
"srgb": false
},
"states": [
{
"name": "belt",
"directions": 4
},
{
"name": "cloak",
"directions": 4
},
{
"name": "eyes",
"directions": 4
},
{
"name": "gloves",
"directions": 4
},
{
"name": "hands",
"directions": 4
},
{
"name": "head",
"directions": 4
},
{
"name": "mask",
"directions": 4
},
{
"name": "pants",
"directions": 4
},
{
"name": "shirt",
"directions": 4
},
{
"name": "shoes",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

View File

@@ -0,0 +1,18 @@
{
"version": 1,
"license": "All rights reserved for the CrystallPunk14 project only",
"copyright": "Created by TheShuEd (Github) for CrystallPunk14",
"size": {
"x": 48,
"y": 48
},
"load": {
"srgb": false
},
"states": [
{
"name": "head",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 B

View File

@@ -0,0 +1,62 @@
{
"version": 1,
"license": "All rights reserved for the CrystallPunk14 project only",
"copyright": "Created by TheShuEd (Github) for CrystallPunk14",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "full"
},
{
"name": "head_f",
"directions": 4
},
{
"name": "head_m",
"directions": 4
},
{
"name": "l_arm",
"directions": 4
},
{
"name": "l_foot",
"directions": 4
},
{
"name": "l_hand",
"directions": 4
},
{
"name": "l_leg",
"directions": 4
},
{
"name": "r_arm",
"directions": 4
},
{
"name": "r_foot",
"directions": 4
},
{
"name": "r_hand",
"directions": 4
},
{
"name": "r_leg",
"directions": 4
},
{
"name": "torso_f",
"directions": 4
},
{
"name": "torso_m",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B