]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
allow paper labels on seeds (#34450)
authorIgnaz "Ian" Kraft <ignaz.k@live.de>
Sat, 8 Feb 2025 23:16:06 +0000 (00:16 +0100)
committerGitHub <noreply@github.com>
Sat, 8 Feb 2025 23:16:06 +0000 (15:16 -0800)
* allow paper labels on seeds

* added the components required by PaperLabel to the SeedBase

* localize insert/eject for PaperLabel

* visualize the paper label on seeds

* new paper layer for seeds

* eject the seed label on use

* different looking paper label

* forgot to turn on a layer

Content.Server/Botany/Systems/BotanySystem.Seed.cs
Content.Server/Botany/Systems/PlantHolderSystem.cs
Resources/Locale/en-US/label/paper-label-component.ftl
Resources/Prototypes/Entities/Objects/Specific/Hydroponics/seeds.yml
Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
Resources/Prototypes/Entities/Objects/Specific/Xenoarchaeology/artifact_equipment.yml
Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml
Resources/Prototypes/Entities/Structures/Storage/Crates/base_structurecrates.yml
Resources/Textures/Objects/Specific/Hydroponics/seeds.rsi/meta.json
Resources/Textures/Objects/Specific/Hydroponics/seeds.rsi/paper.png [new file with mode: 0644]

index 1487ed71d471c6ef46f7f8c2a74fa6b258f38dd7..76421daf2e9c788a5ba2a97a9d5d4c18648ae88a 100644 (file)
@@ -84,7 +84,7 @@ public sealed partial class BotanySystem : EntitySystem
         if (!TryGetSeed(component, out var seed))
             return;
 
-        using (args.PushGroup(nameof(SeedComponent)))
+        using (args.PushGroup(nameof(SeedComponent), 1))
         {
             var name = Loc.GetString(seed.DisplayName);
             args.PushMarkup(Loc.GetString($"seed-component-description", ("seedName", name)));
index 271acb606a40a6101a35925404d436aa98c92cbe..7eda4949a95383019be576b45b581d3f0d37f274 100644 (file)
@@ -22,6 +22,8 @@ using Robust.Shared.Player;
 using Robust.Shared.Prototypes;
 using Robust.Shared.Random;
 using Robust.Shared.Timing;
+using Content.Server.Labels.Components;
+using Content.Shared.Containers.ItemSlots;
 
 namespace Content.Server.Botany.Systems;
 
@@ -39,6 +41,7 @@ public sealed class PlantHolderSystem : EntitySystem
     [Dependency] private readonly TagSystem _tagSystem = default!;
     [Dependency] private readonly RandomHelperSystem _randomHelper = default!;
     [Dependency] private readonly IRobustRandom _random = default!;
+    [Dependency] private readonly ItemSlotsSystem _itemSlots = default!;
 
 
     public const float HydroponicsSpeedMultiplier = 1f;
@@ -176,6 +179,10 @@ public sealed class PlantHolderSystem : EntitySystem
                 }
                 component.LastCycle = _gameTiming.CurTime;
 
+                if (TryComp<PaperLabelComponent>(args.Used, out var paperLabel))
+                {
+                    _itemSlots.TryEjectToHands(args.Used, paperLabel.LabelSlot, args.User);
+                }
                 QueueDel(args.Used);
 
                 CheckLevelSanity(uid, component);
index a62fc0244d7c6444c024454b5b58e001b5966680..8b268596b0e3112cdda26b34f18023e802fb6115 100644 (file)
@@ -1,3 +1,5 @@
 comp-paper-label-has-label = There is a label attached, it reads:
 comp-paper-label-has-label-blank = There is a label attached, but it's blank.
 comp-paper-label-has-label-cant-read = There is a label attached, but you can't read it from this distance.
+comp-paper-label-insert = Attach label
+comp-paper-label-eject = Detach label
index 1ad3dd5bdf26dac6fb039b1384823847c25efdc4..bc78ab5911f7bdc272042cd1af3cd2f5a21baa56 100644 (file)
@@ -6,11 +6,37 @@
     - type: SolutionContainerManager
     - type: Sprite
       sprite: Objects/Specific/Hydroponics/seeds.rsi
-      state: seed
+      layers:
+      - state: seed
+      - state: paper
+        visible: false
+        map: ["enum.PaperLabelVisuals.Layer"]
+        sprite: Objects/Specific/Hydroponics/seeds.rsi
+    - type: Appearance
+    - type: GenericVisualizer
+      visuals:
+        enum.PaperLabelVisuals.HasLabel:
+          enum.PaperLabelVisuals.Layer:
+            True: { visible: true }
+            False: { visible: false }
     - type: Item
       size: Tiny
     - type: StaticPrice
       price: 20
+    - type: ItemSlots
+    - type: ContainerContainer
+      containers:
+        paper_label: !type:ContainerSlot
+    - type: PaperLabel
+      labelSlot:
+        insertVerbText: comp-paper-label-insert
+        ejectVerbText: comp-paper-label-eject
+        whitelist:
+          components:
+          - Paper
+        blacklist:
+          tags:
+          - Book
 
 - type: entity
   parent: SeedBase
index d1085ff5de11c2da6043f36f1437a8f26a696f9c..6c42b8f59ff827a4ddaeeebc5b87f6ef37c1930b 100644 (file)
@@ -51,8 +51,8 @@
   - type: EntityStorageLayingDownOverride
   - type: PaperLabel
     labelSlot:
-      insertVerbText: Attach Label
-      ejectVerbText: Remove Label
+      insertVerbText: comp-paper-label-insert
+      ejectVerbText: comp-paper-label-eject
       whitelist:
         components:
         - Paper
index a003ba90791496f4ac9628da750b0174ca15d02b..7053eda22660d60d838138f5f00a27dabf5868cb 100644 (file)
@@ -66,8 +66,8 @@
               acts: ["Destruction"]
     - type: PaperLabel
       labelSlot:
-        insertVerbText: Attach Label
-        ejectVerbText: Remove Label
+        insertVerbText: comp-paper-label-insert
+        ejectVerbText: comp-paper-label-eject
         whitelist:
           components:
             - Paper
index 2568c45a6acf5da89ebd46a71b46b30e2f172e04..6777b0f638073124a593d2c19827a6e5a6a93d61 100644 (file)
@@ -26,8 +26,8 @@
   - type: MovedByPressure
   - type: PaperLabel
     labelSlot:
-      insertVerbText: Attach Label
-      ejectVerbText: Remove Label
+      insertVerbText: comp-paper-label-insert
+      ejectVerbText: comp-paper-label-eject
       whitelist:
         components:
         - Paper
index 48804893ca7a0f2ff4943044222c23f747868fe6..3e9a09be5a6a5b1b55016240e9679fca434dbe84 100644 (file)
@@ -72,8 +72,8 @@
           Invoice: { state: invoice }
   - type: PaperLabel
     labelSlot:
-      insertVerbText: Attach Label
-      ejectVerbText: Remove Label
+      insertVerbText: comp-paper-label-insert
+      ejectVerbText: comp-paper-label-eject
       whitelist:
         components:
         - Paper
index fc716313c84afef99b626a67e496f836a96aa366..bd5d13d6df9d3d0ff58b8a0536ed9f6323ff6c21 100644 (file)
@@ -1,7 +1,7 @@
 {
   "version": 1,
   "license": "CC-BY-SA-3.0",
-  "copyright": "Taken from https://github.com/vgstation-coders/vgstation13 at 1dbcf389b0ec6b2c51b002df5fef8dd1519f8068",
+  "copyright": "Taken from https://github.com/vgstation-coders/vgstation13 at 1dbcf389b0ec6b2c51b002df5fef8dd1519f8068, paper layer by Ian321",
   "size": {
     "x": 32,
     "y": 32
@@ -30,6 +30,9 @@
     },
     {
       "name": "seed-synthbrain"
+    },
+    {
+        "name": "paper"
     }
   ]
 }
diff --git a/Resources/Textures/Objects/Specific/Hydroponics/seeds.rsi/paper.png b/Resources/Textures/Objects/Specific/Hydroponics/seeds.rsi/paper.png
new file mode 100644 (file)
index 0000000..31a4559
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Hydroponics/seeds.rsi/paper.png differ