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
|
- state: rollerbed_folded
|
||||||
map: ["foldedLayer"]
|
map: ["foldedLayer"]
|
||||||
visible: false
|
visible: false
|
||||||
|
- state: rollerbed_buckled
|
||||||
|
map: ["buckledLayer"]
|
||||||
|
visible: false
|
||||||
- type: MovedByPressure
|
- type: MovedByPressure
|
||||||
- type: DamageOnHighSpeedImpact
|
- type: DamageOnHighSpeedImpact
|
||||||
soundHit: /Audio/Effects/bang.ogg
|
soundHit: /Audio/Effects/bang.ogg
|
||||||
@@ -52,9 +55,19 @@
|
|||||||
buckleOffset: "0,0.15"
|
buckleOffset: "0,0.15"
|
||||||
unbuckleOffset: "0,0.15"
|
unbuckleOffset: "0,0.15"
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
|
- type: GenericVisualizer
|
||||||
visuals:
|
visuals:
|
||||||
- type: RollerbedVisualizer
|
enum.StrapVisuals.State:
|
||||||
key: rollerbed
|
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
|
- type: StaticPrice
|
||||||
price: 200
|
price: 200
|
||||||
|
|
||||||
@@ -79,10 +92,10 @@
|
|||||||
- state: cheap_rollerbed_folded
|
- state: cheap_rollerbed_folded
|
||||||
map: ["foldedLayer"]
|
map: ["foldedLayer"]
|
||||||
visible: false
|
visible: false
|
||||||
|
- state: cheap_rollerbed_buckled
|
||||||
|
map: ["buckledLayer"]
|
||||||
|
visible: false
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
visuals:
|
|
||||||
- type: RollerbedVisualizer
|
|
||||||
key: cheap_rollerbed
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: CheapRollerBed
|
parent: CheapRollerBed
|
||||||
@@ -105,10 +118,10 @@
|
|||||||
- state: emergency_rollerbed_folded
|
- state: emergency_rollerbed_folded
|
||||||
map: ["foldedLayer"]
|
map: ["foldedLayer"]
|
||||||
visible: false
|
visible: false
|
||||||
|
- state: emergency_rollerbed_buckled
|
||||||
|
map: ["buckledLayer"]
|
||||||
|
visible: false
|
||||||
- type: Appearance
|
- type: Appearance
|
||||||
visuals:
|
|
||||||
- type: RollerbedVisualizer
|
|
||||||
key: emergency_rollerbed
|
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: EmergencyRollerBed
|
parent: EmergencyRollerBed
|
||||||
|
|||||||
Reference in New Issue
Block a user