Resolves RollerbedVisualizer is Obsolete (#13915)

* Split RollerbedVisualizer into Component/System pair

* Server ignore RollerbedVisualizer

* Update YAML

* GenericVisualizer

* Switch to unfolded layer

* Use visibility
This commit is contained in:
TemporalOroboros
2023-02-10 14:05:22 -08:00
committed by GitHub
parent d01fd62b2f
commit 57275d97d3
2 changed files with 21 additions and 39 deletions

View File

@@ -1,31 +0,0 @@
using Content.Shared.Buckle.Components;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using Robust.Shared.Serialization.Manager.Attributes;
namespace Content.Client.Visualizer
{
[UsedImplicitly]
public sealed class RollerbedVisualizer : 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(StrapVisuals.State, out bool strapped) && strapped)
{
sprite.LayerSetState(0, $"{_key}_buckled");
}
}
}
}

View File

@@ -18,6 +18,9 @@
- state: rollerbed_folded
map: ["foldedLayer"]
visible: false
- state: rollerbed_buckled
map: ["buckledLayer"]
visible: false
- type: MovedByPressure
- type: DamageOnHighSpeedImpact
soundHit: /Audio/Effects/bang.ogg
@@ -52,9 +55,19 @@
buckleOffset: "0,0.15"
unbuckleOffset: "0,0.15"
- type: Appearance
- type: GenericVisualizer
visuals:
- type: RollerbedVisualizer
key: rollerbed
enum.StrapVisuals.State:
buckledLayer:
True: {visible: true}
False: {visible: false}
enum.FoldedVisuals.State: # Copypasta from BaseFoldable b/c collections don't merge when overriding component prototypes.
foldedLayer:
True: {visible: true}
False: {visible: false}
unfoldedLayer:
True: {visible: false}
False: {visible: true}
- type: StaticPrice
price: 200
@@ -79,10 +92,10 @@
- state: cheap_rollerbed_folded
map: ["foldedLayer"]
visible: false
- state: cheap_rollerbed_buckled
map: ["buckledLayer"]
visible: false
- type: Appearance
visuals:
- type: RollerbedVisualizer
key: cheap_rollerbed
- type: entity
parent: CheapRollerBed
@@ -105,10 +118,10 @@
- state: emergency_rollerbed_folded
map: ["foldedLayer"]
visible: false
- state: emergency_rollerbed_buckled
map: ["buckledLayer"]
visible: false
- type: Appearance
visuals:
- type: RollerbedVisualizer
key: emergency_rollerbed
- type: entity
parent: EmergencyRollerBed