From 074ec3e17d4f32733e388d013f262a3c2b9582c5 Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Wed, 3 Jul 2024 01:09:57 +0300 Subject: [PATCH] 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 --- .../Clothing/ClientClothingSystem.cs | 14 +- Content.Client/Hands/Systems/HandsSystem.cs | 37 ++++ .../Hands/Components/HandsComponent.cs | 7 + .../Inventory/InventoryComponent.cs | 3 + .../en-US/_CP14/markings/goblin-ears.ftl | 3 + .../en-US/_CP14/markings/goblin-hair.ftl | 3 + .../en-US/_CP14/markings/goblin-nose.ftl | 3 + .../en-US/_CP14/species/species-names.ftl | 58 ++++- .../Locale/en-US/_CP14/species/species.ftl | 3 +- .../ru-RU/_CP14/markings/goblin-ears.ftl | 3 + .../ru-RU/_CP14/markings/goblin-hair.ftl | 3 + .../ru-RU/_CP14/markings/goblin-nose.ftl | 3 + .../ru-RU/_CP14/species/species-names.ftl | 58 ++++- .../Locale/ru-RU/_CP14/species/species.ftl | 3 +- .../_CP14/Datasets/Names/species-names.yml | 22 +- .../Customization/Markings/goblin_ears.yml | 32 +++ .../Customization/Markings/goblin_hairs.yml | 26 +++ .../Customization/Markings/goblin_nose.yml | 32 +++ .../Customization/Markings/tiefling_horns.yml | 8 + .../_CP14/Entities/Mobs/Player/goblin.yml | 4 + .../_CP14/Entities/Mobs/Species/goblin.yml | 205 ++++++++++++++++++ Resources/Prototypes/_CP14/Species/goblin.yml | 157 ++++++++++++++ .../Customization/eyes.rsi/goblin_eyes.png | Bin 0 -> 125 bytes .../Mobs/Customization/eyes.rsi/meta.json | 4 + .../Customization/goblin_ears.rsi/ears1.png | Bin 0 -> 450 bytes .../Customization/goblin_ears.rsi/ears2.png | Bin 0 -> 390 bytes .../Customization/goblin_ears.rsi/ears3.png | Bin 0 -> 390 bytes .../Customization/goblin_ears.rsi/meta.json | 23 ++ .../Customization/goblin_hair.rsi/antenna.png | Bin 0 -> 892 bytes .../goblin_hair.rsi/bedheadv2.png | Bin 0 -> 703 bytes .../goblin_hair.rsi/doublebun.png | Bin 0 -> 902 bytes .../Customization/goblin_hair.rsi/meta.json | 23 ++ .../Customization/goblin_nose.rsi/meta.json | 23 ++ .../Customization/goblin_nose.rsi/nose1.png | Bin 0 -> 244 bytes .../Customization/goblin_nose.rsi/nose2.png | Bin 0 -> 247 bytes .../Customization/goblin_nose.rsi/nose3.png | Bin 0 -> 227 bytes .../Species/Goblin/displacement.rsi/belt.png | Bin 0 -> 257 bytes .../Species/Goblin/displacement.rsi/cloak.png | Bin 0 -> 361 bytes .../Species/Goblin/displacement.rsi/eyes.png | Bin 0 -> 249 bytes .../Goblin/displacement.rsi/gloves.png | Bin 0 -> 253 bytes .../Species/Goblin/displacement.rsi/hands.png | Bin 0 -> 272 bytes .../Species/Goblin/displacement.rsi/head.png | Bin 0 -> 252 bytes .../Species/Goblin/displacement.rsi/mask.png | Bin 0 -> 246 bytes .../Species/Goblin/displacement.rsi/meta.json | 54 +++++ .../Species/Goblin/displacement.rsi/pants.png | Bin 0 -> 317 bytes .../Species/Goblin/displacement.rsi/shirt.png | Bin 0 -> 439 bytes .../Species/Goblin/displacement.rsi/shoes.png | Bin 0 -> 317 bytes .../Goblin/displacement48.rsi/head.png | Bin 0 -> 328 bytes .../Goblin/displacement48.rsi/meta.json | 18 ++ .../Mobs/Species/Goblin/parts.rsi/full.png | Bin 0 -> 579 bytes .../Mobs/Species/Goblin/parts.rsi/head_f.png | Bin 0 -> 477 bytes .../Mobs/Species/Goblin/parts.rsi/head_m.png | Bin 0 -> 477 bytes .../Mobs/Species/Goblin/parts.rsi/l_arm.png | Bin 0 -> 250 bytes .../Mobs/Species/Goblin/parts.rsi/l_foot.png | Bin 0 -> 261 bytes .../Mobs/Species/Goblin/parts.rsi/l_hand.png | Bin 0 -> 264 bytes .../Mobs/Species/Goblin/parts.rsi/l_leg.png | Bin 0 -> 205 bytes .../Mobs/Species/Goblin/parts.rsi/meta.json | 62 ++++++ .../Mobs/Species/Goblin/parts.rsi/r_arm.png | Bin 0 -> 247 bytes .../Mobs/Species/Goblin/parts.rsi/r_foot.png | Bin 0 -> 247 bytes .../Mobs/Species/Goblin/parts.rsi/r_hand.png | Bin 0 -> 253 bytes .../Mobs/Species/Goblin/parts.rsi/r_leg.png | Bin 0 -> 200 bytes .../Mobs/Species/Goblin/parts.rsi/torso_f.png | Bin 0 -> 404 bytes .../Mobs/Species/Goblin/parts.rsi/torso_m.png | Bin 0 -> 410 bytes 63 files changed, 888 insertions(+), 6 deletions(-) create mode 100644 Resources/Locale/en-US/_CP14/markings/goblin-ears.ftl create mode 100644 Resources/Locale/en-US/_CP14/markings/goblin-hair.ftl create mode 100644 Resources/Locale/en-US/_CP14/markings/goblin-nose.ftl create mode 100644 Resources/Locale/ru-RU/_CP14/markings/goblin-ears.ftl create mode 100644 Resources/Locale/ru-RU/_CP14/markings/goblin-hair.ftl create mode 100644 Resources/Locale/ru-RU/_CP14/markings/goblin-nose.ftl create mode 100644 Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_ears.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_hairs.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_nose.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Mobs/Player/goblin.yml create mode 100644 Resources/Prototypes/_CP14/Entities/Mobs/Species/goblin.yml create mode 100644 Resources/Prototypes/_CP14/Species/goblin.yml create mode 100644 Resources/Textures/_CP14/Mobs/Customization/eyes.rsi/goblin_eyes.png create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_ears.rsi/ears1.png create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_ears.rsi/ears2.png create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_ears.rsi/ears3.png create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_ears.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_hair.rsi/antenna.png create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_hair.rsi/bedheadv2.png create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_hair.rsi/doublebun.png create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_hair.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_nose.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_nose.rsi/nose1.png create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_nose.rsi/nose2.png create mode 100644 Resources/Textures/_CP14/Mobs/Customization/goblin_nose.rsi/nose3.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/belt.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/cloak.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/eyes.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/gloves.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/hands.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/head.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/mask.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/pants.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/shirt.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/shoes.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement48.rsi/head.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/displacement48.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/full.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/head_f.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/head_m.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/l_arm.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/l_foot.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/l_hand.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/l_leg.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/r_arm.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/r_foot.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/r_hand.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/r_leg.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/torso_f.png create mode 100644 Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/torso_m.png diff --git a/Content.Client/Clothing/ClientClothingSystem.cs b/Content.Client/Clothing/ClientClothingSystem.cs index cad0984233..7e657198af 100644 --- a/Content.Client/Clothing/ClientClothingSystem.cs +++ b/Content.Client/Clothing/ClientClothingSystem.cs @@ -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. diff --git a/Content.Client/Hands/Systems/HandsSystem.cs b/Content.Client/Hands/Systems/HandsSystem.cs index 7319b97b42..f039385c4a 100644 --- a/Content.Client/Hands/Systems/HandsSystem.cs +++ b/Content.Client/Hands/Systems/HandsSystem.cs @@ -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? OnPlayerAddHand; public event Action? 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); diff --git a/Content.Shared/Hands/Components/HandsComponent.cs b/Content.Shared/Hands/Components/HandsComponent.cs index 919d55f294..e65d2de5a1 100644 --- a/Content.Shared/Hands/Components/HandsComponent.cs +++ b/Content.Shared/Hands/Components/HandsComponent.cs @@ -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 /// [DataField, ViewVariables(VVAccess.ReadWrite)] public TimeSpan ThrowCooldown = TimeSpan.FromSeconds(0.5f); + + /// + /// CP14 Hands displacements + /// + [DataField] + public Dictionary Displacements = []; } [Serializable, NetSerializable] diff --git a/Content.Shared/Inventory/InventoryComponent.cs b/Content.Shared/Inventory/InventoryComponent.cs index 02b3a5b258..fc2becedd9 100644 --- a/Content.Shared/Inventory/InventoryComponent.cs +++ b/Content.Shared/Inventory/InventoryComponent.cs @@ -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"; } diff --git a/Resources/Locale/en-US/_CP14/markings/goblin-ears.ftl b/Resources/Locale/en-US/_CP14/markings/goblin-ears.ftl new file mode 100644 index 0000000000..fc3c62dfcb --- /dev/null +++ b/Resources/Locale/en-US/_CP14/markings/goblin-ears.ftl @@ -0,0 +1,3 @@ +marking-CP14GoblinEars = Big ear +marking-CP14GoblinEars2 = Lop-eared +marking-CP14GoblinEars3 = Rounded \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/markings/goblin-hair.ftl b/Resources/Locale/en-US/_CP14/markings/goblin-hair.ftl new file mode 100644 index 0000000000..3d61300da5 --- /dev/null +++ b/Resources/Locale/en-US/_CP14/markings/goblin-hair.ftl @@ -0,0 +1,3 @@ +marking-CP14GoblinHairAntenna = Unruly Strands +marking-CP14GoblinHairBedHead2 = Bedhead 2 +marking-CP14GoblinHairDoubleBun = Double Bun \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/markings/goblin-nose.ftl b/Resources/Locale/en-US/_CP14/markings/goblin-nose.ftl new file mode 100644 index 0000000000..f2fe04a07e --- /dev/null +++ b/Resources/Locale/en-US/_CP14/markings/goblin-nose.ftl @@ -0,0 +1,3 @@ +marking-CP14GoblinNose = Large nostrils +marking-CP14GoblinNose2 = Hook +marking-CP14GoblinNose3 = Proud dopey \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/species/species-names.ftl b/Resources/Locale/en-US/_CP14/species/species-names.ftl index 79ce1f5935..58b71fa8bc 100644 --- a/Resources/Locale/en-US/_CP14/species/species-names.ftl +++ b/Resources/Locale/en-US/_CP14/species/species-names.ftl @@ -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 \ No newline at end of file +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 = "" \ No newline at end of file diff --git a/Resources/Locale/en-US/_CP14/species/species.ftl b/Resources/Locale/en-US/_CP14/species/species.ftl index 39c356bd26..7fd42389e6 100644 --- a/Resources/Locale/en-US/_CP14/species/species.ftl +++ b/Resources/Locale/en-US/_CP14/species/species.ftl @@ -1,4 +1,5 @@ cp14-species-name-human = Human cp14-species-name-tiefling = Tiefling cp14-species-name-dwarf = Dwarf -cp14-species-name-elf = Elf \ No newline at end of file +cp14-species-name-elf = Elf +cp14-species-name-goblin = Goblin \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/markings/goblin-ears.ftl b/Resources/Locale/ru-RU/_CP14/markings/goblin-ears.ftl new file mode 100644 index 0000000000..eaad878d7a --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/markings/goblin-ears.ftl @@ -0,0 +1,3 @@ +marking-CP14GoblinEars = Большой ух +marking-CP14GoblinEars2 = Вислоухий +marking-CP14GoblinEars3 = Округления \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/markings/goblin-hair.ftl b/Resources/Locale/ru-RU/_CP14/markings/goblin-hair.ftl new file mode 100644 index 0000000000..4fe3574bda --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/markings/goblin-hair.ftl @@ -0,0 +1,3 @@ +marking-CP14GoblinHairAntenna = Непослушные пряди +marking-CP14GoblinHairBedHead2 = С бодуна 2 +marking-CP14GoblinHairDoubleBun = Два пунпона \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/markings/goblin-nose.ftl b/Resources/Locale/ru-RU/_CP14/markings/goblin-nose.ftl new file mode 100644 index 0000000000..acbd4363c5 --- /dev/null +++ b/Resources/Locale/ru-RU/_CP14/markings/goblin-nose.ftl @@ -0,0 +1,3 @@ +marking-CP14GoblinNose = Большие ноздри +marking-CP14GoblinNose2 = Крючок +marking-CP14GoblinNose3 = Гордый торчок \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/species/species-names.ftl b/Resources/Locale/ru-RU/_CP14/species/species-names.ftl index 0ba8c558d7..ee0b3ca171 100644 --- a/Resources/Locale/ru-RU/_CP14/species/species-names.ftl +++ b/Resources/Locale/ru-RU/_CP14/species/species-names.ftl @@ -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 = Гальфре \ No newline at end of file +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 = "" \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_CP14/species/species.ftl b/Resources/Locale/ru-RU/_CP14/species/species.ftl index 0a5432f86e..ab5887d14f 100644 --- a/Resources/Locale/ru-RU/_CP14/species/species.ftl +++ b/Resources/Locale/ru-RU/_CP14/species/species.ftl @@ -1,4 +1,5 @@ cp14-species-name-human = Человек cp14-species-name-tiefling = Тифлинг cp14-species-name-dwarf = Дварф -cp14-species-name-elf = Эльф \ No newline at end of file +cp14-species-name-elf = Эльф +cp14-species-name-goblin = Гоблин \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Datasets/Names/species-names.yml b/Resources/Prototypes/_CP14/Datasets/Names/species-names.yml index ed1bae624f..30f3304a90 100644 --- a/Resources/Prototypes/_CP14/Datasets/Names/species-names.yml +++ b/Resources/Prototypes/_CP14/Datasets/Names/species-names.yml @@ -77,4 +77,24 @@ id: CP14_Names_Elf_Last values: prefix: cp14-species-name-elf-last- - count: 18 \ No newline at end of file + 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 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_ears.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_ears.yml new file mode 100644 index 0000000000..ef25a45dbd --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_ears.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_hairs.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_hairs.yml new file mode 100644 index 0000000000..db13523cd1 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_hairs.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_nose.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_nose.yml new file mode 100644 index 0000000000..b99e310cd7 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/goblin_nose.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/tiefling_horns.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/tiefling_horns.yml index 5e17561181..fdce8373e5 100644 --- a/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/tiefling_horns.yml +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Customization/Markings/tiefling_horns.yml @@ -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 diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Player/goblin.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Player/goblin.yml new file mode 100644 index 0000000000..773d89c946 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Player/goblin.yml @@ -0,0 +1,4 @@ +- type: entity + save: false + parent: CP14BaseMobGoblin + id: CP14MobGoblin diff --git a/Resources/Prototypes/_CP14/Entities/Mobs/Species/goblin.yml b/Resources/Prototypes/_CP14/Entities/Mobs/Species/goblin.yml new file mode 100644 index 0000000000..bafbd574e1 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Mobs/Species/goblin.yml @@ -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 \ No newline at end of file diff --git a/Resources/Prototypes/_CP14/Species/goblin.yml b/Resources/Prototypes/_CP14/Species/goblin.yml new file mode 100644 index 0000000000..68e097bbb5 --- /dev/null +++ b/Resources/Prototypes/_CP14/Species/goblin.yml @@ -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 diff --git a/Resources/Textures/_CP14/Mobs/Customization/eyes.rsi/goblin_eyes.png b/Resources/Textures/_CP14/Mobs/Customization/eyes.rsi/goblin_eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..064c92b7f7f5e1104473b69b58ac7eaaee75f288 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|%spKkLn`LH zy>*ZisEWn#cYf8|2M+}7C;eI0zLJUIf&ZjEQb1)Oup|4k@COAj)8KM|9REl0n2ozY NTu)a&mvv4FO#l(YBya!# literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Customization/eyes.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Customization/eyes.rsi/meta.json index ec44bd8409..ab3a011d2d 100644 --- a/Resources/Textures/_CP14/Mobs/Customization/eyes.rsi/meta.json +++ b/Resources/Textures/_CP14/Mobs/Customization/eyes.rsi/meta.json @@ -11,6 +11,10 @@ "name": "eyes", "directions": 4 }, + { + "name": "goblin_eyes", + "directions": 4 + }, { "name": "no_eyes" } diff --git a/Resources/Textures/_CP14/Mobs/Customization/goblin_ears.rsi/ears1.png b/Resources/Textures/_CP14/Mobs/Customization/goblin_ears.rsi/ears1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d01e9aac078b6f6cf39d2c3bac1cd6e8bcbaebb GIT binary patch literal 450 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zYdl>XLn`LH zy|ppxP=E;A1N)_iYa6>vLN;-{lAdy|mN_=(rFDs>h!Z;}OH57srCl1ax6Vf1v0C*& zXo|>2{RwZ&ymolz7WE!<`duGAX>#%TohQrq9b8=gPycwEb%|uJdeGi~e?DByGd0eB z$KUqp$(5eFyZ2b!{}q?DY3KGS3<*=cFWM@)q%k@QxU^Qk=4Dur7P`f}`kn65P(9c8 zVjJsb=tmwejAGPZpU==x&T#oA)3>{8^Y{yP*_yn%8WDJ#%VU%Ex{zeI$DJ`h?auia zZxf8%^Oa5eKD)sGUuDOqo;zGy@^|fw6o-0)p0Z-AXouQq*II7v`E^_E^J}0+mIZtF z<-PG^ZRzapQB^_)RxL5hmsdV#>)P_3$0_4=%>n;Q&)Aw2CbZvb+3<6ZF~=(9y9Wvi z961tKJpbEUCF-|*`Rru|C!gJ3yG*ggAS>+Xji(uP@Abv>%4&t2M7mYcx@(X9)ZoZ=z z6m9)&I~(7#GYS4H|9-kLxK4?I;SS5vDSEHnW~ZInbXIU=^DnkIU--e_$HAW#ZSvMp(qEsiq_ingf9V?O zT&@eHWz*F5^ZTE__WG9my>+IkJB)Kh+&)?!NZY%G??btrw=n18iVNBkmv%mJRsDVU zS~M&7`EN?MZ~o1D{nWK|U&p;e8rRw%XI}YTV=?c`1#XGzZ!c=s$pM1^3TE)nK6gMQ z=BohP|MK^nmCQo-B!Z3?7^b;gg5LlM$3#1SjBBy;$nbe2Fuzn{9bU9Uozv| gO^5*vGk-81cD!22ws1NyEEyO)UHx3vIVCg!09T}|od5s; literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Customization/goblin_ears.rsi/ears3.png b/Resources/Textures/_CP14/Mobs/Customization/goblin_ears.rsi/ears3.png new file mode 100644 index 0000000000000000000000000000000000000000..6246e441635569be2382772c1d3bb5a23249b5e2 GIT binary patch literal 390 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z9XwqeLn`LH zy|ppxuz^6sL++9f!YvLNAA>Ti#iBT7eqOY&mh1en3r@$cO>ni4=$Y>@+i0%gl8sAG zsX718=X$7eH+GGVogl-3|66yIG1++qTmJns;a=}E8KL)A8!UxC+*FU%-Ti)&isaq% zQMc#j&nh$Mm!8jZ@7sI3pJl&3?sCsi-n7R;JFZ(YdDgb*>FcH?%?jJJr(pNnXFBcO zyc)hw_u1LIxIB6JG0w$hUp?PF))!KD7n@Aw&ODU2J2Iv6VPC24_Saj#@AR5oy5@D> z{`-&EgfGSWcURO^e%;6P*Ho!6+;KkJ#M7-uj`VB!K3%hQUH$g9jGX`bfuR5e2SQ!< z?-uW@{wSH;CBycdxs8u^uH=lvBE=kzyd6N6^BWnb56Pde&up~xv27QqsW@@wfXobM csBVE*EJ;=;=FY5suL~0KboFyt=akR{0N;_PH2?qr literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Customization/goblin_ears.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Customization/goblin_ears.rsi/meta.json new file mode 100644 index 0000000000..6ec23e1cce --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Customization/goblin_ears.rsi/meta.json @@ -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 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_CP14/Mobs/Customization/goblin_hair.rsi/antenna.png b/Resources/Textures/_CP14/Mobs/Customization/goblin_hair.rsi/antenna.png new file mode 100644 index 0000000000000000000000000000000000000000..43da1e53f187ecbfd42ec03c9b405b57b6d81edb GIT binary patch literal 892 zcmV-?1B3jDP)Px&Hc3Q5RCt{2+%b;hAQT4RKdUWWTSDRh=~DRsQ~LlpqYsdp1Gq|;10W$$(|e2P zc?q#+GBe=8qyK9%airt{4~$3R0YpSZL_|bH^bH||>2|wK>Gj*~HiZzT5W>@EHIW#X z+E9J`anQz?xe;k&j4@R#$1j;@DAF>i^QQYzI-?=vsT!L1}QWUFs z_eMlSL_|bHL_|bHL_|bHL_|bHL_|bHR8m^{Wvv)e4br+ma_y($$wnHrm&V9h=PjyZ z6+Q7G4Uy_1as8m&g^zNOc;#?jTv(*k>CR$@^oC)Wx~_v#YOWs?H>kD~^>MPCPA7Qp zp|yrm3SHMN9$Ctv$N&t(F!g;uR~eBSK{5z6W2Hx}dUEUTR0~WvKW;?V4)?rQ(88k~F2`FR}zlQKq=|+TJuxbBN=Q+mlm~ z0f^Vmy`L_R9G_Wd6*#!RwZE_pNFtXfL#yP(uo@fIC`y>V5;VBV2DmHC5+-D186v)BWc_OTl{G?-TBB?bg;xvAiA!h!GK z`r?EW#!n`=aoKYMjRe{t?4&ViO0k~py#LFOJ1^bdl+AqpNksLzop;`U*PDMem-*fI z-@DzORqE|swqmM))5`9-#d?Nrp8atuC#&!8`M2;Z^HTSPmrZilC-+p<)?Tga(wpu* z{rtamQPpcBt8yHA0=KFs_r%4;&AM{GMDUyYRdViW zuHOIC=}PjeInquXOZ|3z-?wB+%G#+V=Y$Q;7f)2lUi<26@KwexL#?GtUVp9H2NK;}=<4MnqZ>n$h>R*dm`})_*-$7nd$2Xo9zg2GWobCCY z2|<@ke0SZ=doQ*>>U!w()2SJyyr#Dqp5OU!HG8Sq?N^(lcg3xDj{PuYQc{o9@xtob zZIge$p8IwQ6F8XA3HyhV#m!aiCVyAVDgJmbKhiNhFDw4>zGw4x{eAOq^O*%{<;rk_&fzbj?l?l5LEeS4L6;uhWuZ_9$c zR-Qg!a=)Q+-f4@zXrr*6z+*G&@0GW`TyMAPsKjR8-mPJeE%G{}bW1(YOuDydZ`P?R zH`V`Zv;_3odh{PyHf^S3tXS&&yV0Q3yaSW-L z^Y)H?)?)_|wh!k|Pg}{#Y~^6(tiT?SZm=$vTmHb(a|?o(%wuM`bC#Fo)iVYo<&f3$ zb<{jaU2eqP1HQ1J54u5}x4zhy{xRrBBy$IW|h%T~Oul4?=qP+X83eWkSb z@I!;rT~{>fKieFCSl|$QJ>z!RQr`XbH7pFj|JJd_Op~4YQ;}uQzI{wP&aB&(yD@G( zBSUKBB8{%8$99@}=w7=u!*5Q#;jsler&pe}Uuwj#a?9uW^X8?wMrA*)+I!4^=hpJj z&-){FPft;EzNoV)1pGqwaI;TzitA!O=B$7Y;`)B97Dmp;6AyFcsXXmY-n{0Hy za!p88Z2=0TeQzj<&i=_bh5fmx3`uUEnecIo+gR=Q03QFOX^#l9uepS_64 ze*Ch;>9R@15yuVJjxEb9u$sHb>*USGIM>+7wnpPMcva7%JzhRj;DX~`Sbm9DR(j~g=0 zm^NpN@2z)Yp#{2!(mLNouKp!DVN$$66l3}KDd+w~2kmG2wQqjxChw@MecAi(pWoE{ zYhSp1`!5EW{^L_cew~=Bzl68;{^JT8yR_XlM@!Vd+uB!L3A6S3j3^P6=9jdm*y4)2Tekgidf%opIVCe}jo$pUR$oiQ-MX^%qI0HC{d`zr&g1rrPg6w~ jUSxAxCvVIQG2*}*=5uvkb~0J3Qa}Qpu6{1-oD!Mo)_AtrZP*pe2vFI1V6v}^03h|Sz>KjQ4|>zCcNoy))wkv`|y zm)Crj=PVE3KYc&{`kFQIC$(e+=QD?dmY!gaDQc5HAHGr!XgUxaU@ZL`@aJSr_Zi>P zzZ1Ns=uO?cyTe0p;;Ut`vHS9FZFw@~&9?5sS(~TDU-6yI_mg|+kx$Vnj3ABktC=Tk VcWvJE`cxsvAWv66mvv4FO#mxiTWkOT literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/belt.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/belt.png new file mode 100644 index 0000000000000000000000000000000000000000..326b8b8a051058f96451629e95dd3aeb1ad183be GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|c6+)whE&XX zd()8bumR5jho%4dE-m2Cx4*Dbj<5CPT_Z<_$!TWKXUyEWu2P>j;z8wk#sBp>`~FvR zEnqcay}&e!DTC3MaZAH8hA4+%2Hgdk4PqBW9Jn)ZNZ+(O@J(iY>+L`5=Y0RZ`5$M@ kw)jTUOn_OijsF9qcrI7T5>BNBKyNU3y85}Sb4q9e077V30RR91 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/cloak.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/cloak.png new file mode 100644 index 0000000000000000000000000000000000000000..01be96ed9805afad08ea90596c6a3d6a16f1db3e GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zl|5Y?Ln`LH zopqY8$v}klyzBp{#d=>hFV*Wf#!^$zJ=5d-nurVEN`5J@swDSh&e#zzQ>Jy3>(S%b z^_H=1kJ@WD{Z(>xZP1G^k&R%GZ8*mCg26=0fqlV71}lbM)(eao+xoSmT(|vQwCXU& z-P}3PSSvW6bgyIPUch_-U44V$u?a0IvXkd8o8EAzwLjhUvp*v?bqv0rncDgno7(^W zXE~2?lE~~|U0xoAS96wbKL7CVgzY*d4gO~vIzF!IoU}Gq?e31xu7?>?Zq)5dZ8DPE zxpLq4m8bTve!g>WK%Lu?V?5QhU)tW--TR|omE>DGNgO0>h5M)78&qol`;+0N~@7!T>gV+U3X$O~pYwr*4`?300<xrEf3cH_%1L0 z{$3kX2BR@8PKI?PuHu^a6vYtDnm{r-UW|cKTLA literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/hands.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/hands.png new file mode 100644 index 0000000000000000000000000000000000000000..bb21f1063ca56f4d5fb33636c7aecdb0e9d199fc GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|PI)>MbU@1RGvNZ)OwLDF8^qzU+b37%WimO{}YJ6Z4w{k5O-Zm&5% z|M1suzdp>IId^mY&3);zHID?`|NggSy}&e!DTC3MaZAH8hA4+%2Hgdk4PqBW9Jn*M z7OFVdQ&MBb@0Lrdp ARR910 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/head.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/head.png new file mode 100644 index 0000000000000000000000000000000000000000..473dadefa3b2e4445223e66738031a14bc9e61b7 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|wt2cZhE&XX zd()7Q$x!6T1$iyLy&MZ|Ev^(a)Ou_@ZSr`B$K;tEYa@+~&mZ42^}y>ns^9aoe#C1u zh+PnI;LhM$z-q#JfoT>~2BRoV|LXnqGP7qs o{%o~f&!4Zp i|4;h@rZNJiY~enx%#kUZ7d8#(b_P#ZKbLh*2~7azj8;AX literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/meta.json new file mode 100644 index 0000000000..f962bb5bec --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/meta.json @@ -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 + } + ] +} diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/pants.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/pants.png new file mode 100644 index 0000000000000000000000000000000000000000..4686908cd36df0fcf99e4a8aa492cb0093ce0b1f GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|zI(bjhE&XX zd+Q=!lL1fb!_CK@%SrQ}+an+tD0E%1`{Vyfth@*FmVQo~3RDaP|9n2!nDA&-e=qv> zH%#JolBU6)kuiNk2{A2k? zSHsmOmZZKY)BXH?%Ii3XzhW=`h>KrapR+e)^6D>jdW`wzb)S2lK~IggZ+>9Y+cv4a=q_)*4cbE>V*$(wEmwiVC)+c{UVRc!36}qv@R)U*!qP> z`+C!Ll|yg;?pejXKs}<*fkmLY?%DgpdwmnHpJc8VXQ zm~X&);K{S>y^Rb4>=x`h9{&BmMyo+o+Ma2`(_0tTtvYt3~c-hH~*YE9PD)F)k`(`PK0B;w|nf?0rctUskQQ5*ADT5X5 zPZz#Wn(^9@xx2f**7FeK1>WD`{@+Xv7%Yjj{pEM0=#gIU$>bIM%Xcvt>a5nubg8{^ zm%ZU5m*In-tGpIHd@wQc%ZAn8syX%?DtT^srFzHRyVu1Ng3nKBKl`wD`yyAJ*PlB( cK;Yk3?(~TFVdQ&MBb@0L2`}wg3PC literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/shoes.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement.rsi/shoes.png new file mode 100644 index 0000000000000000000000000000000000000000..908373ab07f0ba3d2c09801ccd3750b79ee463fb GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|zI(bjhE&XX zd+RP=lL1fL!}Z(Hp@0O99CYR+}Y6$_AgTNob+g6P0D?%qN zQCMkf`>8)%HMlOI(q8qC&EcgtU9Qj3wXJx3eBX)^9jkzy_jj*XTkvg{iLzjS^-}Nm z@9ZATW8l6tVabPIQKzrQ?E3omV{ON+zar&~DkrrTUb^y~6JiCBOwisOUKu-m`qoJz z=U=a3OP(%%QElaH$n=>$gYB)t2c6;tTdZ>0|fwRrYqSjoxD-{pn`Rlw((G zZvQy-Xg?(zikJWZ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement48.rsi/head.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement48.rsi/head.png new file mode 100644 index 0000000000000000000000000000000000000000..fb7a43d26b7fc802d215de0d548d9481fed71428 GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D%znLJ$_Ln`LH zy|a*y$xwv#VmM2@uQSIVbB_zzYSQNlOU-42uSzzYnKg6g`^xLieN{H;b1VNZmHY6X zrGryISV7Ifr(p(zA!8EL5vmC=FettLz9Ikl?;kIs_$?Cl@B98vRD?EG0p0(G*`u6e V&89uq3xPqy;OXk;vd$@?2>^fuU&R0b literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement48.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement48.rsi/meta.json new file mode 100644 index 0000000000..0443f7dae6 --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Species/Goblin/displacement48.rsi/meta.json @@ -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 + } + ] +} diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/full.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/full.png new file mode 100644 index 0000000000000000000000000000000000000000..74cbe44f66561f6fd2f9883cbacf2a039010f1b0 GIT binary patch literal 579 zcmV-J0=)f+P)Px${YgYYR9J=Wm9a|0P!xv$NYNok8x=zb(Is{$ICiO%FCf&hqu?|25u}eG6emXq zmyE^1E}7CohuFm;RN9!PAp~kD#39`4jZJHAiXhkzO1LNKJ%7&mb1txE&3{Ko^QZIL zQLyOV!}SZ-o=YFTY7_$i$VnL*Gc*UXB1U3_i9N%x=b=!_Mq&VPbJ>l}6&t*26oZ_U zfuT7x_Wt^T^2Po#y%AdXBkUb)(RHDe#l)V?37Hd6uI7W*-5ZUwE&s%xAtz<%mBhNuaVUyOw1`wDjPu4%yKv zj!`_@iFia-MEd4Dq^bb$)e@E@C0|*yecN5bBk-psS|fT7D$CYx&Ss zQ>a(kTy0G(!0b=qT0Wft+q;`^Eua3jcQ*lqGs3lenEh#@eG@nA`NZwT9u7}LkTvgd%H-TRjLO8mOn$NGQTdA?fhK27k(fVxOW$6q<2HA_d&^&~h^yLb2K!TX&_P?4kSIS(0p zF=Jl$S-y~arj2cOeYei@wj9@#%G|zX)ulb@T7sD?fB#?U%Cl(S^-_m@&$47c9rP`h zpRFeE^7lY0qs-@)k)!JY+HLBf|>T7wgIsKm8C82u#)eu`jR1 zHu_`5t0lldfrEy15&0=EwjHj0d%k?;YSGyB4eR9^^@=xg2k~G3IZH|@hpq9hyo1Xv zv#E#oF-|YpID6Zx+X?&!(stj@cAN10W5$c6o=z#2M;AYg)2rNf^WBZYwf7jN&f%Q+ z^xEbi@p!u({XcX*R_xl&r=s+AABWtt%ej|lZ}`_za#Ouw9t+G78@{vJT4e+;N{G(~ O33#nf~F literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/head_m.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/head_m.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ec886210cadb2967ff83e351db0b4e87b28504 GIT binary patch literal 477 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zr+d0MhE&XX zd&|)Ku!9Ku2l2ua>H-TRjLO8mOn$NGQTdA?fhK27k(fVxOW$6q<2HA_d&^&~h^yLb2K!TX&_P?4kSIS(0p zF=Jl$S-y~arj2cOeYei@wj9@#%G|zX)ulb@T7sD?fB#?U%Cl(S^-_m@&$47c9rP`h zpRFeE^7lY0qs-@)k)!JY+HLBf|>T7wgIsKm8C82u#)eu`jR1 zHu_`5t0lldfrEy15&0=EwjHj0d%k?;YSGyB4eR9^^@=xg2k~G3IZH|@hpq9hyo1Xv zv#E#oF-|YpID6Zx+X?&!(stj@cAN10W5$c6o=z#2M;AYg)2rNf^WBZYwf7jN&f%Q+ z^xEbi@p!u({XcX*R_xl&r=s+AABWtt%ej|lZ}`_za#Ouw9t+G78@{vJT4e+;N{G(~ O33#nf~F literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/l_arm.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/l_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..892d0c83c38771318098e7d6431afa3586279914 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|ws^WYhE&XX zdut(Yi-SPx!|B>h3M(5~tgMP(aXBQuU|~Mka6CrP!%6hO#gJq8eMK-OG{;{9gCT&@* zG80fY2smuKwJ!X5^RiR7mvEhWT3CPTZPmmn?jDDJE@+;+i6?ZnTlVECr46@CUe#RK z_WHEco9^6I3vSA32}WN11Tg?a)|ub%Ozv6zmPPzOd(UH?e_yA?T&>9JzWp#L>Y>D9 zIsf#Vvtz%$kK82vX34qsPxI7@G(RP?FkE}UoL%Kv6LM|VB9I}Tu6{1-oD!M&TBiJUpsj2y5<|PMEmllrz?YA&sn3Nm?EiW+m=5!xN?)JgK2is6Q(AoOP!q|0SRiMHop}%E@;@Ew&`|5o?p`PYd{?g3}WTqCJIhW zm#-|Hb}g!QLC1-X6S?-+G!kz2_jJ_kyO+wUQ~dk#P4`GfuxbW|rO$NgcH8U8x;~Go x^X!Xs`gt(kNXL9;_{u-CH>}xT$H;KN-%iId{r;2YeH%eqJYD@<);T3K0RT^nOXmOp literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/meta.json b/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/meta.json new file mode 100644 index 0000000000..63283b0a07 --- /dev/null +++ b/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/meta.json @@ -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 + } + ] +} diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/r_arm.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..262b1c7915631affd9b31387b5f2ac2bfa848ad1 GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|HhQ`^hE&XX zduu&!bAZ6{kMUM4jz-L!IU&JU83QED4mub-FqCETobl*RsNn(cg$_UJ{yhD+r}(`J zP%p!QuUCCvU-$dKZ2UPh&SuFmcaNrBnYL$(X5Q3nzwotrk_A^6r&NQAYT=S~@=k~U zCCS)NT4HiKbjsCj{UKAP`hR|u_U!!i-&3SPWS>*8Kr1*fCRom07^5ci9p>xTGgg?Fi?lnZ_=vncV-kN1xxg>827; zD;T_)#2eO7$+wrb+>zmax11(SaXY*venN?v1jY})&kZ>zp4UgNyI zC~GpvAy6RbsrmB3vZL0gV(+o@z3tH!tU~|-?cEWCsh7X_`dsMbBegr j%I!K%_}j=a{JY1#@wZpZ?w@@{AVWM|{an^LB{Ts5NuOav literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/r_hand.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/r_hand.png new file mode 100644 index 0000000000000000000000000000000000000000..be1a9321c225fa1f5f58544c32668f6a847366b8 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|wtKobhE&XX zd&`jPkb%gtkIO6g3cpyy?)oa#IhU0lQ;$?5K^_n9EZ07)I7zRxzxe|mk9-IuxBgkRz1!{n@6 pc^|iO|C8S!_WihV88=AnhFbZAxo%&4D)wlAxSp};K$>|vzU&Zv%e}Pu>N0uvi8oMuUHux-sbUN|9a!y zw@BBFmb>d#f4Y4mToaKy&85nvH)7_0wzW8(A2)dvla>?{pkW$jqX@~GhY*NU17BU`5Vk>8{Rx7X#p_FXz}jl9ag prYEch``i5up56j`J|pTL<0_?Rf$Hu8MZjQY@O1TaS?83{1OUC$wo?EA literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/torso_m.png b/Resources/Textures/_CP14/Mobs/Species/Goblin/parts.rsi/torso_m.png new file mode 100644 index 0000000000000000000000000000000000000000..9b5b896b8828db056ff0cd74616e60b4149376ac GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zLp)s^Ln`LH zz2)z9*g=HtgMZ;f;TESADKDcgoDSL3E)c___+8-bGFwmX*mO%5uBGY~yPqH9bbgx_ zmm>7)d$WL%z&`VOquHDeE+FuQKejiv!S%HjYs31#`|@Xtvobtbx2N~jzS6P zAMzdFch>&6Sc0lj)vWocktN%9MhITKZ060F{5(FIo5TJ8onkHL;X@%*xvVbGw)?Q4{QLQy_Kow`d=VDZ`@7IP xU+XK+FULnhF8mIkihpnfuj}mqfn`snORiqCo%V4`2QaW1JYD@<);T3K0RTdFu`U1r literal 0 HcmV?d00001