Port wires/maintenance panel visualizer (#10543)
This commit is contained in:
@@ -85,7 +85,7 @@ namespace Content.Client.Doors
|
||||
{
|
||||
var flickMaintenancePanel = new AnimationTrackSpriteFlick();
|
||||
CloseAnimation.AnimationTracks.Add(flickMaintenancePanel);
|
||||
flickMaintenancePanel.LayerKey = WiresVisualizer.WiresVisualLayers.MaintenancePanel;
|
||||
flickMaintenancePanel.LayerKey = WiresVisualLayers.MaintenancePanel;
|
||||
flickMaintenancePanel.KeyFrames.Add(new AnimationTrackSpriteFlick.KeyFrame("panel_closing", 0f));
|
||||
}
|
||||
}
|
||||
@@ -109,7 +109,7 @@ namespace Content.Client.Doors
|
||||
{
|
||||
var flickMaintenancePanel = new AnimationTrackSpriteFlick();
|
||||
OpenAnimation.AnimationTracks.Add(flickMaintenancePanel);
|
||||
flickMaintenancePanel.LayerKey = WiresVisualizer.WiresVisualLayers.MaintenancePanel;
|
||||
flickMaintenancePanel.LayerKey = WiresVisualLayers.MaintenancePanel;
|
||||
flickMaintenancePanel.KeyFrames.Add(new AnimationTrackSpriteFlick.KeyFrame("panel_opening", 0f));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,6 @@ using Robust.Client.GameObjects;
|
||||
using Content.Shared.Lathe;
|
||||
using Content.Shared.Power;
|
||||
using Content.Client.Power;
|
||||
using Content.Client.Wires.Visualizers;
|
||||
using Content.Shared.Wires;
|
||||
|
||||
namespace Content.Client.Lathe
|
||||
{
|
||||
@@ -20,12 +18,6 @@ namespace Content.Client.Lathe
|
||||
args.Sprite.LayerSetVisible(PowerDeviceVisualLayers.Powered, powered);
|
||||
}
|
||||
|
||||
if (args.Component.TryGetData(WiresVisuals.MaintenancePanelState, out bool panel)
|
||||
&& args.Sprite.LayerMapTryGet(WiresVisualizer.WiresVisualLayers.MaintenancePanel, out _))
|
||||
{
|
||||
args.Sprite.LayerSetVisible(WiresVisualizer.WiresVisualLayers.MaintenancePanel, panel);
|
||||
}
|
||||
|
||||
// Lathe specific stuff
|
||||
if (args.Component.TryGetData(LatheVisuals.IsRunning, out bool isRunning))
|
||||
{
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
using Content.Shared.Wires;
|
||||
using Robust.Client.GameObjects;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.IoC;
|
||||
|
||||
namespace Content.Client.Wires.Visualizers
|
||||
{
|
||||
public sealed class WiresVisualizer : AppearanceVisualizer
|
||||
{
|
||||
[Obsolete("Subscribe to AppearanceChangeEvent instead.")]
|
||||
public override void OnChangeData(AppearanceComponent component)
|
||||
{
|
||||
base.OnChangeData(component);
|
||||
var sprite = IoCManager.Resolve<IEntityManager>().GetComponent<ISpriteComponent>(component.Owner);
|
||||
if (component.TryGetData<bool>(WiresVisuals.MaintenancePanelState, out var state))
|
||||
{
|
||||
sprite.LayerSetVisible(WiresVisualLayers.MaintenancePanel, state);
|
||||
}
|
||||
// Mainly for spawn window
|
||||
else
|
||||
{
|
||||
sprite.LayerSetVisible(WiresVisualLayers.MaintenancePanel, false);
|
||||
}
|
||||
}
|
||||
|
||||
public enum WiresVisualLayers : byte
|
||||
{
|
||||
MaintenancePanel,
|
||||
}
|
||||
}
|
||||
}
|
||||
32
Content.Client/Wires/Visualizers/WiresVisualizerSystem.cs
Normal file
32
Content.Client/Wires/Visualizers/WiresVisualizerSystem.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using Content.Shared.Wires;
|
||||
using Robust.Client.GameObjects;
|
||||
|
||||
namespace Content.Client.Wires.Visualizers
|
||||
{
|
||||
public sealed class WiresVisualizerSystem : VisualizerSystem<WiresVisualsComponent>
|
||||
{
|
||||
protected override void OnAppearanceChange(EntityUid uid, WiresVisualsComponent component, ref AppearanceChangeEvent args)
|
||||
{
|
||||
if (args.Sprite == null)
|
||||
return;
|
||||
|
||||
var layer = args.Sprite.LayerMapReserveBlank(WiresVisualLayers.MaintenancePanel);
|
||||
|
||||
if(args.AppearanceData.TryGetValue(WiresVisuals.MaintenancePanelState, out var panelStateObject) &&
|
||||
panelStateObject is bool panelState)
|
||||
{
|
||||
args.Sprite.LayerSetVisible(layer, panelState);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Mainly for spawn window
|
||||
args.Sprite.LayerSetVisible(layer, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum WiresVisualLayers : byte
|
||||
{
|
||||
MaintenancePanel
|
||||
}
|
||||
}
|
||||
7
Content.Client/Wires/WiresVisualsComponent.cs
Normal file
7
Content.Client/Wires/WiresVisualsComponent.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace Content.Client.Wires
|
||||
{
|
||||
[RegisterComponent]
|
||||
public sealed class WiresVisualsComponent : Component
|
||||
{
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user