]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fashion is my profession - Procedural jumpsuit variants (#25888)
authorEd <96445749+TheShuEd@users.noreply.github.com>
Fri, 15 Mar 2024 07:37:12 +0000 (10:37 +0300)
committerGitHub <noreply@github.com>
Fri, 15 Mar 2024 07:37:12 +0000 (18:37 +1100)
* add color field to clothing layers

* add support to randomsprite

* bababa

* finalize spriting work

* add to game

* fix

* remove space

* edit patelle, +1 decor variant

* added only pants, some sprite fix

* inflation

* fix mixed

* not tested commit

* Revert "not tested commit"

This reverts commit 4a904df3452263e87c9cb819ab5d8cf411ebe468.

* naked human is fun

* update

* add new style

* some sprite pixel tweak

* Update meta.json

46 files changed:
Content.Client/Clothing/ClientClothingSystem.cs
Content.Client/Sprite/RandomSpriteSystem.cs
Content.Shared/Clothing/EntitySystems/ClothingSystem.cs
Resources/Prototypes/Catalog/Fills/Lockers/wardrobe_colors.yml
Resources/Prototypes/Catalog/VendingMachines/Inventories/clothesmate.yml
Resources/Prototypes/Entities/Clothing/Uniforms/random_suit.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Clothing/Uniforms/specific.yml
Resources/Prototypes/Entities/Structures/Furniture/dresser.yml
Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_short.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_skirt.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_skirt_long.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_standart.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_armless.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_bra.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_shirt.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_standart.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_standart2.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless1.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless10.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless2.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless3.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless4.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless5.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless6.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless7.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless8.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless9.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra1.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra2.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra3.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra4.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra5.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt1.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt2.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt3.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart1.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart2.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart3.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart4.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart5.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart6.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart7.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart8.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart9.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/mask_null.png [new file with mode: 0644]
Resources/Textures/Clothing/Uniforms/procedural.rsi/meta.json [new file with mode: 0644]

index ed95cf240a5ceb3a2efd9c2939ded19209d8c32c..fbe9d5ec5bb28474c732064cc18421e320919622 100644 (file)
@@ -281,6 +281,9 @@ public sealed class ClientClothingSystem : ClothingSystem
                 // note that every insertion requires reshuffling & remapping all the existing layers.
                 sprite.AddBlankLayer(index);
                 sprite.LayerMapSet(key, index);
+
+                if (layerData.Color != null)
+                    sprite.LayerSetColor(key, layerData.Color.Value);
             }
             else
                 index = sprite.LayerMapReserveBlank(key);
index 9b800b3c78c9719bf12cd1647d918483b22d441f..b9be2a44b42d5aa3550bd6dbfd86bfe67f5078fc 100644 (file)
@@ -1,3 +1,5 @@
+using Content.Client.Clothing;
+using Content.Shared.Clothing.Components;
 using Content.Shared.Sprite;
 using Robust.Client.GameObjects;
 using Robust.Shared.GameStates;
@@ -8,6 +10,7 @@ namespace Content.Client.Sprite;
 public sealed class RandomSpriteSystem : SharedRandomSpriteSystem
 {
     [Dependency] private readonly IReflectionManager _reflection = default!;
+    [Dependency] private readonly ClientClothingSystem _clothing = default!;
 
     public override void Initialize()
     {
@@ -31,10 +34,29 @@ public sealed class RandomSpriteSystem : SharedRandomSpriteSystem
             component.Selected.Add(layer.Key, layer.Value);
         }
 
-        UpdateAppearance(uid, component);
+        UpdateSpriteComponentAppearance(uid, component);
+        UpdateClothingComponentAppearance(uid, component);
     }
 
-    private void UpdateAppearance(EntityUid uid, RandomSpriteComponent component, SpriteComponent? sprite = null)
+    private void UpdateClothingComponentAppearance(EntityUid uid, RandomSpriteComponent component, ClothingComponent? clothing = null)
+    {
+        if (!Resolve(uid, ref clothing, false))
+            return;
+
+        if (clothing.ClothingVisuals == null)
+            return;
+
+        foreach (var slotPair in clothing.ClothingVisuals)
+        {
+            foreach (var keyColorPair in component.Selected)
+            {
+                _clothing.SetLayerColor(clothing, slotPair.Key, keyColorPair.Key, keyColorPair.Value.Color);
+                _clothing.SetLayerState(clothing, slotPair.Key, keyColorPair.Key, keyColorPair.Value.State);
+            }
+        }
+    }
+
+    private void UpdateSpriteComponentAppearance(EntityUid uid, RandomSpriteComponent component, SpriteComponent? sprite = null)
     {
         if (!Resolve(uid, ref sprite, false))
             return;
@@ -55,7 +77,6 @@ public sealed class RandomSpriteSystem : SharedRandomSpriteSystem
                     continue;
                 }
             }
-
             sprite.LayerSetState(index, layer.Value.State);
             sprite.LayerSetColor(index, layer.Value.Color ?? Color.White);
         }
index 50a1d93a6c28545504b9910a0812c30065943a15..f189db005bc6d3009297ed45962833ea27ce5065 100644 (file)
@@ -217,5 +217,38 @@ public abstract class ClothingSystem : EntitySystem
         Dirty(uid, clothing);
     }
 
+    public void SetLayerColor(ClothingComponent clothing, string slot, string mapKey, Color? color)
+    {
+        if (clothing.ClothingVisuals == null)
+            return;
+
+        foreach (var layer in clothing.ClothingVisuals[slot])
+        {
+            if (layer.MapKeys == null)
+                return;
+
+            if (!layer.MapKeys.Contains(mapKey))
+                continue;
+
+            layer.Color = color;
+        }
+    }
+    public void SetLayerState(ClothingComponent clothing, string slot, string mapKey, string state)
+    {
+        if (clothing.ClothingVisuals == null)
+            return;
+
+        foreach (var layer in clothing.ClothingVisuals[slot])
+        {
+            if (layer.MapKeys == null)
+                return;
+
+            if (!layer.MapKeys.Contains(mapKey))
+                continue;
+
+            layer.State = state;
+        }
+    }
+
     #endregion
 }
index 0c7661452a121421439ed2eef2a414119d1c9c5c..2038ef00139470831e3113287cc78236e7a1e1ba 100644 (file)
   components:
   - type: StorageFill
     contents:
-      - id: ClothingUniformJumpsuitColorWhite
-        prob: 0.25
-      - id: ClothingUniformJumpskirtColorWhite
-        prob: 0.25
-      - id: ClothingUniformJumpsuitColorBlue
-        prob: 0.25
-      - id: ClothingUniformJumpskirtColorBlue
-        prob: 0.25
-      - id: ClothingUniformJumpsuitColorYellow
-        prob: 0.25
-      - id: ClothingUniformJumpskirtColorYellow
-        prob: 0.25
-      - id: ClothingUniformJumpsuitColorGreen
-        prob: 0.25
-      - id: ClothingUniformJumpskirtColorGreen
-        prob: 0.25
-      - id: ClothingUniformJumpsuitColorOrange
-        prob: 0.25
-      - id: ClothingUniformJumpskirtColorOrange
-        prob: 0.25
-      - id: ClothingUniformJumpsuitColorPink
-        prob: 0.25
-      - id: ClothingUniformJumpskirtColorPink
-        prob: 0.25
-      - id: ClothingUniformJumpsuitColorRed
-        prob: 0.25
-      - id: ClothingUniformJumpskirtColorRed
-        prob: 0.25
-      - id: ClothingUniformJumpsuitColorDarkBlue
-        prob: 0.25
-      - id: ClothingUniformJumpskirtColorDarkBlue
-        prob: 0.25
-      - id: ClothingUniformJumpsuitColorTeal
-        prob: 0.25
-      - id: ClothingUniformJumpskirtColorTeal
-        prob: 0.25
-      - id: ClothingUniformJumpsuitColorPurple
-        prob: 0.25
-      - id: ClothingUniformJumpskirtColorPurple
-        prob: 0.25
       - id: ClothingShoesColorBlack
         amount: 1
       - id: ClothingShoesColorBrown
         prob: 0.4
       - id: ClothingOuterCoatGentle
         prob: 0.3
+      - id: ClothingUniformRandomShorts
+        amount: 3
+      - id: ClothingUniformRandomArmless
+        amount: 5
+      - id: ClothingUniformRandomStandart
+        amount: 5
+      - id: ClothingUniformRandomBra
+        amount: 5
+      - id: ClothingUniformRandomShirt
+        amount: 4
 
 - type: entity
   id: WardrobeYellowFilled
index 51d031a435f264e15f7df47dafc8dbacc850f1a1..6d387eb877736d16e6de9d63b7505c7ec43553b3 100644 (file)
@@ -6,6 +6,7 @@
     ClothingBackpackDuffel: 5
     ClothingBackpackSatchel: 3
     ClothingBackpackSatchelLeather: 2
+    ClothingRandomSpawner: 8
     ClothingHeadHatBeret: 4
     ClothingHeadBandBlack: 2
     ClothingHeadBandBlue: 2
diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/random_suit.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/random_suit.yml
new file mode 100644 (file)
index 0000000..8827807
--- /dev/null
@@ -0,0 +1,169 @@
+
+- type: entity
+  parent: ClothingUniformBase
+  id: ClothingUniformRandom
+  abstract: true
+  description: Generated by neural networks based on the latest fashion trends.
+  suffix: Random visual
+  components:
+  - type: SuitSensor
+  - type: Sprite
+    sprite: Clothing/Uniforms/procedural.rsi
+    layers:
+    - state: base_torso_standart
+      map: [ "torso" ]
+    - state: base_leg_standart
+      map: [ "leg" ]
+    - state: mask_null
+      map: [ "decor" ]
+    - state: mask_null
+      map: [ "overlay" ]
+  - type: Clothing
+    femaleMask: UniformTop
+    maleMask: UniformTop
+    sprite: Clothing/Uniforms/procedural.rsi
+    clothingVisuals:
+      jumpsuit:
+      - state: base_torso_standart
+        map: [ "torso" ]
+      - state: base_leg_standart
+        map: [ "leg" ]
+      - state: mask_null
+        map: [ "decor" ]
+      - state: mask_null
+        map: [ "overlay" ]
+
+- type: entity
+  parent: ClothingUniformRandom
+  id: ClothingRandomSpawner
+  name: random colorful costume
+  components:
+  - type: RandomSpawner
+    offset: 0
+    prototypes:
+    - ClothingUniformRandomArmless
+    - ClothingUniformRandomStandart
+    - ClothingUniformRandomBra
+    - ClothingUniformRandomShorts
+    - ClothingUniformRandomShirt
+
+- type: entity
+  parent: ClothingUniformRandom
+  id: ClothingUniformRandomArmless
+  name: colorful hands-free costume
+  components:
+  - type: RandomSprite
+    available:
+      - torso:
+          base_torso_armless: Sixteen
+        leg:
+          base_leg_standart: Sixteen
+          base_leg_short: Sixteen
+          base_leg_skirt: Sixteen
+          base_leg_skirt_long: Sixteen
+        decor:
+          decor_torso_armless1: Sixteen
+          decor_torso_armless2: Sixteen
+          decor_torso_armless3: Sixteen
+          decor_torso_armless4: Sixteen
+          decor_torso_armless5: Sixteen
+          decor_torso_armless6: Sixteen
+          decor_torso_armless7: Sixteen
+          decor_torso_armless8: Sixteen
+          decor_torso_armless9: Sixteen
+          decor_torso_armless10: Sixteen
+          mask_null: ""
+
+- type: entity
+  parent: ClothingUniformRandom
+  id: ClothingUniformRandomStandart
+  name: colorful costume
+  components:
+  - type: RandomSprite
+    available:
+      - torso:
+          base_torso_standart: Sixteen
+          base_torso_standart2: Sixteen
+        leg:
+          base_leg_standart: Sixteen
+          base_leg_short: Sixteen
+          base_leg_skirt: Sixteen
+          base_leg_skirt_long: Sixteen
+        decor:
+          decor_torso_armless1: Sixteen
+          decor_torso_armless2: Sixteen
+          decor_torso_armless3: Sixteen
+          decor_torso_armless4: Sixteen
+          decor_torso_armless5: Sixteen
+          decor_torso_armless6: Sixteen
+          decor_torso_armless7: Sixteen
+          decor_torso_armless8: Sixteen
+          decor_torso_armless9: Sixteen
+          decor_torso_armless10: Sixteen
+          decor_torso_standart1: Sixteen
+          decor_torso_standart2: Sixteen
+          decor_torso_standart3: Sixteen
+          decor_torso_standart4: Sixteen
+          decor_torso_standart5: Sixteen
+          decor_torso_standart6: Sixteen
+          decor_torso_standart7: Sixteen
+          decor_torso_standart8: Sixteen
+          decor_torso_standart9: Sixteen
+          mask_null: ""
+
+- type: entity
+  parent: ClothingUniformRandom
+  id: ClothingUniformRandomBra
+  name: colorful bra
+  components:
+  - type: RandomSprite
+    available:
+      - torso:
+          base_torso_bra: Sixteen
+        leg:
+          base_leg_standart: Sixteen
+          base_leg_short: Sixteen
+          base_leg_skirt: Sixteen
+          base_leg_skirt_long: Sixteen
+        decor:
+          decor_torso_bra1: Sixteen
+          decor_torso_bra2: Sixteen
+          decor_torso_bra3: Sixteen
+          decor_torso_bra4: Sixteen
+          decor_torso_bra5: Sixteen
+          mask_null: ""
+
+- type: entity
+  parent: ClothingUniformRandom
+  id: ClothingUniformRandomShorts
+  name: colorful pants
+  components:
+  - type: RandomSprite
+    available:
+      - torso:
+          mask_null: ""
+        leg:
+          base_leg_standart: Sixteen
+          base_leg_short: Sixteen
+          base_leg_skirt: Sixteen
+          base_leg_skirt_long: Sixteen
+
+- type: entity
+  parent: ClothingUniformRandom
+  id: ClothingUniformRandomShirt
+  name: colorful costume
+  components:
+  - type: RandomSprite
+    available:
+      - torso:
+          base_torso_armless: Sixteen
+          mask_null: ""
+        leg:
+          base_leg_standart: Sixteen
+          base_leg_short: Sixteen
+        decor:
+          base_torso_shirt: Sixteen
+        overlay:
+          decor_torso_shirt1: Sixteen
+          decor_torso_shirt2: Sixteen
+          decor_torso_shirt3: Sixteen
\ No newline at end of file
index 19793f873f7bd8c5e876f8c59d21a2f69715ac98..d7a5e2b787d5d4db5e4f617bbac02436b45f1fb5 100644 (file)
@@ -20,4 +20,4 @@
     - type: UserInterface
       interfaces:
         - key: enum.ChameleonUiKey.Key
-          type: ChameleonBoundUserInterface
+          type: ChameleonBoundUserInterface
\ No newline at end of file
index 2caa4010ca087808324986e359a228c99f9ef7e4..fa029c035ae39e497e287a28d183156b6302e8fb 100644 (file)
   components:
   - type: StorageFill
     contents:
+      - id: ClothingUniformRandomArmless
+        prob: 0.05
+        orGroup: dressermainloot
+      - id: ClothingUniformRandomStandart
+        prob: 0.05
+        orGroup: dressermainloot
+      - id: ClothingUniformRandomBra
+        prob: 0.05
+        orGroup: dressermainloot
+      - id: ClothingUniformRandomShorts
+        prob: 0.05
+        orGroup: dressermainloot
       - id: ClothingNeckLGBTPin
         prob: 0.06
         orGroup: dressermainloot
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_short.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_short.png
new file mode 100644 (file)
index 0000000..e3b74ba
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_short.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_skirt.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_skirt.png
new file mode 100644 (file)
index 0000000..3341ff4
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_skirt.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_skirt_long.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_skirt_long.png
new file mode 100644 (file)
index 0000000..5c83cae
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_skirt_long.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_standart.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_standart.png
new file mode 100644 (file)
index 0000000..7140a38
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_leg_standart.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_armless.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_armless.png
new file mode 100644 (file)
index 0000000..2864e1c
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_armless.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_bra.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_bra.png
new file mode 100644 (file)
index 0000000..03c8d49
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_bra.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_shirt.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_shirt.png
new file mode 100644 (file)
index 0000000..b03f394
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_shirt.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_standart.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_standart.png
new file mode 100644 (file)
index 0000000..1db1be4
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_standart.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_standart2.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_standart2.png
new file mode 100644 (file)
index 0000000..5397d8e
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/base_torso_standart2.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless1.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless1.png
new file mode 100644 (file)
index 0000000..d2110b9
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless1.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless10.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless10.png
new file mode 100644 (file)
index 0000000..4060a0d
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless10.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless2.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless2.png
new file mode 100644 (file)
index 0000000..7f504cb
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless2.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless3.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless3.png
new file mode 100644 (file)
index 0000000..6897496
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless3.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless4.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless4.png
new file mode 100644 (file)
index 0000000..7f464aa
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless4.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless5.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless5.png
new file mode 100644 (file)
index 0000000..e971de5
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless5.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless6.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless6.png
new file mode 100644 (file)
index 0000000..fbc8f29
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless6.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless7.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless7.png
new file mode 100644 (file)
index 0000000..6055cdc
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless7.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless8.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless8.png
new file mode 100644 (file)
index 0000000..979b9b8
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless8.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless9.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless9.png
new file mode 100644 (file)
index 0000000..3e5919e
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_armless9.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra1.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra1.png
new file mode 100644 (file)
index 0000000..da752a9
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra1.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra2.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra2.png
new file mode 100644 (file)
index 0000000..a92430a
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra2.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra3.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra3.png
new file mode 100644 (file)
index 0000000..516e059
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra3.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra4.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra4.png
new file mode 100644 (file)
index 0000000..f7c46e8
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra4.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra5.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra5.png
new file mode 100644 (file)
index 0000000..7a4c269
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_bra5.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt1.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt1.png
new file mode 100644 (file)
index 0000000..c742af5
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt1.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt2.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt2.png
new file mode 100644 (file)
index 0000000..79f1cf1
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt2.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt3.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt3.png
new file mode 100644 (file)
index 0000000..6223263
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_shirt3.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart1.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart1.png
new file mode 100644 (file)
index 0000000..4771eb9
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart1.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart2.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart2.png
new file mode 100644 (file)
index 0000000..3882611
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart2.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart3.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart3.png
new file mode 100644 (file)
index 0000000..3053397
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart3.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart4.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart4.png
new file mode 100644 (file)
index 0000000..38879be
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart4.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart5.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart5.png
new file mode 100644 (file)
index 0000000..fc747a3
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart5.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart6.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart6.png
new file mode 100644 (file)
index 0000000..e6b7276
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart6.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart7.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart7.png
new file mode 100644 (file)
index 0000000..f2aa726
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart7.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart8.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart8.png
new file mode 100644 (file)
index 0000000..042b7f9
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart8.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart9.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart9.png
new file mode 100644 (file)
index 0000000..11e048f
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/decor_torso_standart9.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/mask_null.png b/Resources/Textures/Clothing/Uniforms/procedural.rsi/mask_null.png
new file mode 100644 (file)
index 0000000..2975c47
Binary files /dev/null and b/Resources/Textures/Clothing/Uniforms/procedural.rsi/mask_null.png differ
diff --git a/Resources/Textures/Clothing/Uniforms/procedural.rsi/meta.json b/Resources/Textures/Clothing/Uniforms/procedural.rsi/meta.json
new file mode 100644 (file)
index 0000000..08133fc
--- /dev/null
@@ -0,0 +1,159 @@
+{
+  "version": 1,
+  "license": "CC-BY-SA-3.0",
+  "copyright": "The sprite base is taken from  tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039, separated into layers and added new ones by TheShuEd (github)",
+  "size": {
+    "x": 32,
+    "y": 32
+  },
+  "states": [
+    {
+      "name": "base_leg_short",
+      "directions": 4
+    },
+    {
+      "name": "base_leg_skirt",
+      "directions": 4
+    },
+    {
+      "name": "base_leg_skirt_long",
+      "directions": 4
+    },
+    {
+      "name": "base_leg_standart",
+      "directions": 4
+    },
+    {
+      "name": "base_torso_armless",
+      "directions": 4
+    },
+    {
+      "name": "base_torso_bra",
+      "directions": 4
+    },
+    {
+      "name": "base_torso_shirt",
+      "directions": 4
+    },
+    {
+      "name": "base_torso_standart",
+      "directions": 4
+    },
+    {
+      "name": "base_torso_standart2",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_armless1",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_armless2",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_armless3",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_armless4",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_armless5",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_armless6",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_armless7",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_armless8",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_armless9",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_armless10",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_bra1",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_bra2",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_bra3",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_bra4",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_bra5",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_shirt1",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_shirt2",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_shirt3",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_standart1",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_standart2",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_standart3",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_standart4",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_standart5",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_standart6",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_standart7",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_standart8",
+      "directions": 4
+    },
+    {
+      "name": "decor_torso_standart9",
+      "directions": 4
+    },
+    {
+      "name": "mask_null",
+      "directions": 4
+    }
+  ]
+}