]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Resolves FoldableVisualizer is Obsolete (#13913)
authorTemporalOroboros <TemporalOroboros@gmail.com>
Mon, 6 Feb 2023 19:53:07 +0000 (11:53 -0800)
committerGitHub <noreply@github.com>
Mon, 6 Feb 2023 19:53:07 +0000 (15:53 -0400)
Content.Client/Visualizer/FoldableVisualizer.cs [deleted file]
Resources/Prototypes/Entities/Objects/Specific/Medical/morgue.yml
Resources/Prototypes/Entities/Structures/Furniture/chairs.yml
Resources/Prototypes/Entities/Structures/Furniture/rollerbeds.yml
Resources/Prototypes/Entities/foldable.yml [new file with mode: 0644]

diff --git a/Content.Client/Visualizer/FoldableVisualizer.cs b/Content.Client/Visualizer/FoldableVisualizer.cs
deleted file mode 100644 (file)
index 7a37eda..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-using Robust.Client.GameObjects;
-using Robust.Shared.GameObjects;
-using Robust.Shared.IoC;
-using Robust.Shared.Serialization.Manager.Attributes;
-using static Content.Shared.Foldable.SharedFoldableSystem;
-
-namespace Content.Client.Visualizer;
-
-
-public sealed class FoldableVisualizer : AppearanceVisualizer
-{
-    [DataField("key")]
-    private string _key = default!;
-
-    [Obsolete("Subscribe to AppearanceChangeEvent instead.")]
-    public override void OnChangeData(AppearanceComponent appearance)
-    {
-        base.OnChangeData(appearance);
-
-        var entManager = IoCManager.Resolve<IEntityManager>();
-
-        if (!entManager.TryGetComponent(appearance.Owner, out SpriteComponent? sprite)) return;
-
-        if (appearance.TryGetData(FoldedVisuals.State, out bool folded) && folded)
-        {
-            sprite.LayerSetState(FoldableVisualLayers.Base, $"{_key}_folded");
-        }
-        else
-        {
-            sprite.LayerSetState(FoldableVisualLayers.Base, $"{_key}");
-        }
-    }
-
-    public enum FoldableVisualLayers : byte
-    {
-        Base,
-    }
-}
index a96026b9c16dd0148f3459bdffcdce3410330a2a..d202b77d507444ec8f17f2c1aaaf24d5270bfa08 100644 (file)
@@ -1,5 +1,6 @@
 - type: entity
   id: BodyBag_Container
+  parent: BaseFoldable
   name: body bag
   description: A plastic bag designed for the storage and transportation of cadavers.
   components:
     sprite: Objects/Specific/Medical/Morgue/bodybags.rsi
     layers:
     - state: bag
-      map: ["enum.FoldableVisualLayers.Base"]
+      map: ["unfoldedLayer"]
+    - state: bag_folded
+      map: ["foldedLayer"]
+      visible: false
     - state: open_overlay
       map: ["enum.StorageVisualLayers.Door"]
     - state: label_overlay
@@ -45,7 +49,6 @@
     openSound:
       path: /Audio/Misc/zip.ogg
   - type: EntityStorageLayingDownOverride
-  - type: Foldable
   - type: PaperLabel
     labelSlot:
       insertVerbText: Attach Label
     visuals:
     - type: StorageVisualizer
       state_open: open_overlay
-    - type: FoldableVisualizer
-      key: bag
   - type: GenericVisualizer
     visuals:
       enum.PaperLabelVisuals.HasLabel:
         enum.BodyBagVisualLayers.Label:
           True: {visible: true}
           False: {visible: false}
+      enum.FoldedVisuals.State:
+        foldedLayer:
+          True: {visible: true}
+          False: {visible: false}
+        unfoldedLayer:
+          True: {visible: false}
+          False: {visible: true}
   - type: Pullable
   - type: AntiRottingContainer
   - type: ItemSlots
index 140cd8e0cc8e6a561e0ab54eb87cad35b4843bad..3f88600e8fb39f5c776f6d30a8615c59b2a0f3e6 100644 (file)
     node: chairCursed
 
 - type: entity
-  parent: SeatBase
+  parent: [SeatBase, BaseFoldable]
   id: ChairFolding
   name: folding chair
   description: If you carry six of these you become the coolest kid at church.
     sprite: Structures/Furniture/folding_chair.rsi
     layers:
     - state: folding
-      map: ["enum.FoldableVisualLayers.Base"]
+      map: ["unfoldedLayer"]
+    - state: folding_folded
+      map: ["foldedLayer"]
+      visible: false
   - type: Item
     size: 50
-  - type: Foldable
   - type: Appearance
-    visuals:
-    - type: FoldableVisualizer
-      key: folding
   - type: MeleeWeapon
     damage:
       types:
index ea415d31cd72c5f06a209dd288d0ff9871ea322a..72d745ebca5aa59b9727314700cc94e0ac306a49 100644 (file)
@@ -1,6 +1,6 @@
 - type: entity
   id: RollerBed
-  parent: BaseItem
+  parent: [BaseItem, BaseFoldable]
   name: rollerbed
   description: Used to carry patients around without damaging them.
   components:
       noRot: true
       layers:
       - state: rollerbed
-        map: ["enum.FoldableVisualLayers.Base"]
+        map: ["unfoldedLayer"]
+      - state: rollerbed_folded
+        map: ["foldedLayer"]
+        visible: false
     - type: MovedByPressure
     - type: DamageOnHighSpeedImpact
       soundHit: /Audio/Effects/bang.ogg
       rotation: -90
       buckleOffset: "0,0.15"
       unbuckleOffset: "0,0.15"
-    - type: Foldable
     - type: Appearance
       visuals:
-      - type: FoldableVisualizer
-        key: rollerbed
       - type: RollerbedVisualizer
         key: rollerbed
     - type: StaticPrice
   - type: Sprite
     layers:
     - state: cheap_rollerbed
-      map: [ "enum.FoldableVisualLayers.Base" ]
+      map: ["unfoldedLayer"]
+    - state: cheap_rollerbed_folded
+      map: ["foldedLayer"]
+      visible: false
   - type: Appearance
     visuals:
-    - type: FoldableVisualizer
-      key: cheap_rollerbed
     - type: RollerbedVisualizer
       key: cheap_rollerbed
 
   - type: Sprite
     layers:
     - state: emergency_rollerbed
-      map: [ "enum.FoldableVisualLayers.Base" ]
+      map: ["unfoldedLayer"]
+    - state: emergency_rollerbed_folded
+      map: ["foldedLayer"]
+      visible: false
   - type: Appearance
     visuals:
-    - type: FoldableVisualizer
-      key: emergency_rollerbed
     - type: RollerbedVisualizer
       key: emergency_rollerbed
 
diff --git a/Resources/Prototypes/Entities/foldable.yml b/Resources/Prototypes/Entities/foldable.yml
new file mode 100644 (file)
index 0000000..a0843cd
--- /dev/null
@@ -0,0 +1,15 @@
+- type: entity
+  id: BaseFoldable
+  name: "foldable"
+  abstract: true
+  components:
+  - type: Foldable
+  - type: GenericVisualizer
+    visuals:
+      enum.FoldedVisuals.State:
+        foldedLayer:
+          True: {visible: true}
+          False: {visible: false}
+        unfoldedLayer:
+          True: {visible: false}
+          False: {visible: true}