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:
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user