Remove some obsolete AppearanceComponent method usages (#13726)

This commit is contained in:
Visne
2023-02-02 17:34:53 +01:00
committed by GitHub
parent 23b90de34d
commit 5a5a3afbb1
111 changed files with 428 additions and 349 deletions

View File

@@ -15,7 +15,7 @@ public sealed class AMEControllerVisualizerSystem : VisualizerSystem<AMEControll
private void OnComponentInit(EntityUid uid, AMEControllerVisualsComponent component, ComponentInit args)
{
if(TryComp<SpriteComponent>(uid, out var sprite))
if (TryComp<SpriteComponent>(uid, out var sprite))
{
sprite.LayerMapSet(AMEControllerVisualLayers.Display, sprite.AddLayerState("control_on"));
sprite.LayerSetVisible(AMEControllerVisualLayers.Display, false);
@@ -26,30 +26,32 @@ public sealed class AMEControllerVisualizerSystem : VisualizerSystem<AMEControll
{
base.OnAppearanceChange(uid, component, ref args);
if(args.Sprite != null
&& args.Component.TryGetData<string>(AMEControllerVisuals.DisplayState, out var state))
if (args.Sprite == null
|| !AppearanceSystem.TryGetData<string>(uid, AMEControllerVisuals.DisplayState, out var state, args.Component))
{
switch(state)
{
case "on":
args.Sprite.LayerSetState(AMEControllerVisualLayers.Display, "control_on");
args.Sprite.LayerSetVisible(AMEControllerVisualLayers.Display, true);
break;
case "critical":
args.Sprite.LayerSetState(AMEControllerVisualLayers.Display, "control_critical");
args.Sprite.LayerSetVisible(AMEControllerVisualLayers.Display, true);
break;
case "fuck":
args.Sprite.LayerSetState(AMEControllerVisualLayers.Display, "control_fuck");
args.Sprite.LayerSetVisible(AMEControllerVisualLayers.Display, true);
break;
case "off":
args.Sprite.LayerSetVisible(AMEControllerVisualLayers.Display, false);
break;
default:
args.Sprite.LayerSetVisible(AMEControllerVisualLayers.Display, false);
break;
}
return;
}
switch (state)
{
case "on":
args.Sprite.LayerSetState(AMEControllerVisualLayers.Display, "control_on");
args.Sprite.LayerSetVisible(AMEControllerVisualLayers.Display, true);
break;
case "critical":
args.Sprite.LayerSetState(AMEControllerVisualLayers.Display, "control_critical");
args.Sprite.LayerSetVisible(AMEControllerVisualLayers.Display, true);
break;
case "fuck":
args.Sprite.LayerSetState(AMEControllerVisualLayers.Display, "control_fuck");
args.Sprite.LayerSetVisible(AMEControllerVisualLayers.Display, true);
break;
case "off":
args.Sprite.LayerSetVisible(AMEControllerVisualLayers.Display, false);
break;
default:
args.Sprite.LayerSetVisible(AMEControllerVisualLayers.Display, false);
break;
}
}
}

View File

@@ -15,7 +15,7 @@ public sealed class AMEShieldingVisualizerSystem : VisualizerSystem<AMEShielding
private void OnComponentInit(EntityUid uid, AMEShieldingVisualsComponent component, ComponentInit args)
{
if(TryComp<SpriteComponent>(uid, out var sprite))
if (TryComp<SpriteComponent>(uid, out var sprite))
{
sprite.LayerMapSet(AMEShieldingVisualsLayer.Core, sprite.AddLayerState("core"));
sprite.LayerSetVisible(AMEShieldingVisualsLayer.Core, false);
@@ -26,10 +26,10 @@ public sealed class AMEShieldingVisualizerSystem : VisualizerSystem<AMEShielding
protected override void OnAppearanceChange(EntityUid uid, AMEShieldingVisualsComponent component, ref AppearanceChangeEvent args)
{
if(args.Sprite == null)
if (args.Sprite == null)
return;
if(args.Component.TryGetData<string>(AMEShieldVisuals.Core, out var core))
if (AppearanceSystem.TryGetData<string>(uid, AMEShieldVisuals.Core, out var core, args.Component))
{
if (core == "isCore")
{
@@ -43,9 +43,9 @@ public sealed class AMEShieldingVisualizerSystem : VisualizerSystem<AMEShielding
}
}
if(args.Component.TryGetData<string>(AMEShieldVisuals.CoreState, out var coreState))
if (AppearanceSystem.TryGetData<string>(uid, AMEShieldVisuals.CoreState, out var coreState, args.Component))
{
switch(coreState)
switch (coreState)
{
case "weak":
args.Sprite.LayerSetState(AMEShieldingVisualsLayer.CoreState, "core_weak");

View File

@@ -22,10 +22,10 @@ public sealed class AnomalySystem : SharedAnomalySystem
if (args.Sprite is not { } sprite)
return;
if (!Appearance.TryGetData(uid, AnomalyVisuals.IsPulsing, out bool pulsing, args.Component))
if (!Appearance.TryGetData<bool>(uid, AnomalyVisuals.IsPulsing, out var pulsing, args.Component))
pulsing = false;
if (Appearance.TryGetData(uid, AnomalyVisuals.Supercritical, out bool super, args.Component) && super)
if (Appearance.TryGetData<bool>(uid, AnomalyVisuals.Supercritical, out var super, args.Component) && super)
pulsing = super;
if (HasComp<AnomalySupercriticalComponent>(uid))

View File

@@ -2,7 +2,6 @@ using Content.Client.SubFloor;
using Content.Shared.Atmos;
using Content.Shared.Atmos.Components;
using Content.Shared.Atmos.Piping;
using Content.Shared.SubFloor;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
using Robust.Client.ResourceManagement;
@@ -13,6 +12,7 @@ namespace Content.Client.Atmos.EntitySystems;
public sealed class AtmosPipeAppearanceSystem : EntitySystem
{
[Dependency] private readonly IResourceCache _resCache = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
public override void Initialize()
{
@@ -56,10 +56,10 @@ public sealed class AtmosPipeAppearanceSystem : EntitySystem
return;
}
if (!args.Component.TryGetData(PipeColorVisuals.Color, out Color color))
if (!_appearance.TryGetData<Color>(uid, PipeColorVisuals.Color, out var color, args.Component))
color = Color.White;
if (!args.Component.TryGetData(PipeVisuals.VisualState, out PipeDirection worldConnectedDirections))
if (!_appearance.TryGetData<PipeDirection>(uid, PipeVisuals.VisualState, out var worldConnectedDirections, args.Component))
return;
// transform connected directions to local-coordinates

View File

@@ -56,8 +56,8 @@ public sealed class FireVisualizerSystem : VisualizerSystem<FireVisualsComponent
if (!sprite.LayerMapTryGet(FireVisualLayers.Fire, out var index))
return;
appearance.TryGetData(FireVisuals.OnFire, out bool onFire);
appearance.TryGetData(FireVisuals.FireStacks, out float fireStacks);
AppearanceSystem.TryGetData<bool>(uid, FireVisuals.OnFire, out var onFire, appearance);
AppearanceSystem.TryGetData<float>(uid, FireVisuals.FireStacks, out var fireStacks, appearance);
sprite.LayerSetVisible(index, onFire);
if (!onFire)

View File

@@ -8,8 +8,8 @@ public sealed class PipeColorVisualizerSystem : VisualizerSystem<PipeColorVisual
{
protected override void OnAppearanceChange(EntityUid uid, PipeColorVisualsComponent component, ref AppearanceChangeEvent args)
{
if(TryComp<SpriteComponent>(uid, out var sprite)
&& args.Component.TryGetData<Color>(PipeColorVisuals.Color, out var color))
if (TryComp<SpriteComponent>(uid, out var sprite)
&& AppearanceSystem.TryGetData<Color>(uid, PipeColorVisuals.Color, out var color, args.Component))
{
// T-ray scanner / sub floor runs after this visualizer. Lets not bulldoze transparency.
var layer = sprite[PipeVisualLayers.Pipe];

View File

@@ -14,8 +14,8 @@ namespace Content.Client.Atmos.Visualizers
if (args.Sprite == null)
return;
if (args.Component.TryGetData(PortableScrubberVisuals.IsFull, out bool isFull)
&& args.Component.TryGetData(PortableScrubberVisuals.IsRunning, out bool isRunning))
if (AppearanceSystem.TryGetData<bool>(uid, PortableScrubberVisuals.IsFull, out var isFull, args.Component)
&& AppearanceSystem.TryGetData<bool>(uid, PortableScrubberVisuals.IsRunning, out var isRunning, args.Component))
{
var runningState = isRunning ? component.RunningState : component.IdleState;
args.Sprite.LayerSetState(PortableScrubberVisualLayers.IsRunning, runningState);
@@ -24,7 +24,7 @@ namespace Content.Client.Atmos.Visualizers
args.Sprite.LayerSetState(PowerDeviceVisualLayers.Powered, fullState);
}
if (args.Component.TryGetData(PortableScrubberVisuals.IsDraining, out bool isDraining))
if (AppearanceSystem.TryGetData<bool>(uid, PortableScrubberVisuals.IsDraining, out var isDraining, args.Component))
{
args.Sprite.LayerSetVisible(PortableScrubberVisualLayers.IsDraining, isDraining);
}

View File

@@ -35,7 +35,7 @@ public sealed class BarSignSystem : VisualizerSystem<BarSignComponent>
if (!Resolve(sign.Owner, ref appearance, ref sprite))
return;
appearance.TryGetData(PowerDeviceVisuals.Powered, out bool powered);
AppearanceSystem.TryGetData<bool>(sign.Owner, PowerDeviceVisuals.Powered, out var powered, appearance);
if (powered
&& sign.CurrentSign != null

View File

@@ -1,22 +1,21 @@
using Content.Shared.Bed;
using Robust.Client.GameObjects;
namespace Content.Client.Bed
namespace Content.Client.Bed;
public sealed class StasisBedSystem : VisualizerSystem<StasisBedVisualsComponent>
{
public sealed class StasisBedSystem : VisualizerSystem<StasisBedVisualsComponent>
protected override void OnAppearanceChange(EntityUid uid, StasisBedVisualsComponent component, ref AppearanceChangeEvent args)
{
protected override void OnAppearanceChange(EntityUid uid, StasisBedVisualsComponent component, ref AppearanceChangeEvent args)
if (args.Sprite != null
&& AppearanceSystem.TryGetData<bool>(uid, StasisBedVisuals.IsOn, out var isOn, args.Component))
{
if (args.Sprite != null
&& args.Component.TryGetData(StasisBedVisuals.IsOn, out bool isOn))
{
args.Sprite.LayerSetVisible(StasisBedVisualLayers.IsOn, isOn);
}
args.Sprite.LayerSetVisible(StasisBedVisualLayers.IsOn, isOn);
}
}
public enum StasisBedVisualLayers : byte
{
IsOn,
}
}
public enum StasisBedVisualLayers : byte
{
IsOn,
}

View File

@@ -26,8 +26,8 @@ public sealed class PlantHolderVisualizerSystem : VisualizerSystem<PlantHolderVi
if (args.Sprite == null)
return;
if (args.Component.TryGetData<string>(PlantHolderVisuals.PlantRsi, out var rsi)
&& args.Component.TryGetData<string>(PlantHolderVisuals.PlantState, out var state))
if (AppearanceSystem.TryGetData<string>(uid, PlantHolderVisuals.PlantRsi, out var rsi, args.Component)
&& AppearanceSystem.TryGetData<string>(uid, PlantHolderVisuals.PlantState, out var state, args.Component))
{
var valid = !string.IsNullOrWhiteSpace(state);

View File

@@ -11,7 +11,7 @@ public sealed class PotencyVisualsSystem : VisualizerSystem<PotencyVisualsCompon
if (args.Sprite == null)
return;
if (args.Component.TryGetData(ProduceVisuals.Potency, out float potency))
if (AppearanceSystem.TryGetData<float>(uid, ProduceVisuals.Potency, out var potency, args.Component))
{
var scale = MathHelper.Lerp(component.MinimumScale, component.MaximumScale, potency / 100);
args.Sprite.Scale = new Vector2(scale, scale);

View File

@@ -10,8 +10,8 @@ public sealed class ItemCabinetSystem : VisualizerSystem<ItemCabinetVisualsCompo
if (args.Sprite == null)
return;
if (args.Component.TryGetData(ItemCabinetVisuals.IsOpen, out bool isOpen)
&& args.Component.TryGetData(ItemCabinetVisuals.ContainsItem, out bool contains))
if (AppearanceSystem.TryGetData<bool>(uid, ItemCabinetVisuals.IsOpen, out var isOpen, args.Component)
&& AppearanceSystem.TryGetData<bool>(uid, ItemCabinetVisuals.ContainsItem, out var contains, args.Component))
{
var state = isOpen ? component.OpenState : component.ClosedState;
args.Sprite.LayerSetState(ItemCabinetVisualLayers.Door, state);

View File

@@ -67,7 +67,7 @@ public sealed partial class CargoSystem
if (!Resolve(component.Owner, ref sprite))
return;
_appearance.TryGetData(component.Owner, CargoTelepadVisuals.State, out CargoTelepadState? state);
_appearance.TryGetData<CargoTelepadState?>(component.Owner, CargoTelepadVisuals.State, out var state);
AnimationPlayerComponent? player = null;
switch (state)

View File

@@ -13,18 +13,18 @@ public sealed class TypingIndicatorVisualizerSystem : VisualizerSystem<TypingInd
{
if (args.Sprite == null)
return;
if (!_prototypeManager.TryIndex<TypingIndicatorPrototype>(component.Prototype, out var proto))
{
Logger.Error($"Unknown typing indicator id: {component.Prototype}");
return;
}
args.Component.TryGetData(TypingIndicatorVisuals.IsTyping, out bool isTyping);
AppearanceSystem.TryGetData<bool>(uid, TypingIndicatorVisuals.IsTyping, out var isTyping, args.Component);
var layerExists = args.Sprite.LayerMapTryGet(TypingIndicatorLayers.Base, out var layer);
if (!layerExists)
layer = args.Sprite.LayerMapReserveBlank(TypingIndicatorLayers.Base);
args.Sprite.LayerSetRSI(layer, proto.SpritePath);
args.Sprite.LayerSetState(layer, proto.TypingState);
args.Sprite.LayerSetShader(layer, proto.Shader);

View File

@@ -5,11 +5,9 @@ namespace Content.Client.Chemistry.Visualizers;
public sealed class SolutionContainerVisualsSystem : VisualizerSystem<SolutionContainerVisualsComponent>
{
[Dependency] private readonly AppearanceSystem _appearance = default!;
protected override void OnAppearanceChange(EntityUid uid, SolutionContainerVisualsComponent component, ref AppearanceChangeEvent args)
{
if (!_appearance.TryGetData(uid, SolutionContainerVisuals.FillFraction, out float fraction, args.Component))
if (!AppearanceSystem.TryGetData<float>(uid, SolutionContainerVisuals.FillFraction, out var fraction, args.Component))
return;
if (args.Sprite == null)
@@ -39,7 +37,7 @@ public sealed class SolutionContainerVisualsSystem : VisualizerSystem<SolutionCo
var stateName = component.FillBaseName + closestFillSprite;
args.Sprite.LayerSetState(fillLayer, stateName);
if (component.ChangeColor && _appearance.TryGetData(uid, SolutionContainerVisuals.Color, out Color color, args.Component))
if (component.ChangeColor && AppearanceSystem.TryGetData<Color>(uid, SolutionContainerVisuals.Color, out var color, args.Component))
args.Sprite.LayerSetColor(fillLayer, color);
}
else

View File

@@ -45,7 +45,7 @@ public sealed class ClientClothingSystem : ClothingSystem
[Dependency] private readonly IResourceCache _cache = default!;
[Dependency] private readonly InventorySystem _inventorySystem = default!;
[Dependency] private readonly AppearanceSystem _appearance = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
public override void Initialize()
{

View File

@@ -345,7 +345,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
// If this was passed into the component, we update
// the data to ensure that the current disabled
// bool matches.
if (args.Component.TryGetData<bool>(DamageVisualizerKeys.Disabled, out var disabledStatus))
if (AppearanceSystem.TryGetData<bool>(uid, DamageVisualizerKeys.Disabled, out var disabledStatus, args.Component))
damageVisComp.Disabled = disabledStatus;
if (damageVisComp.Disabled)
@@ -366,7 +366,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
if (damageVisComp.Overlay && damageVisComp.DamageOverlayGroups != null && damageVisComp.TargetLayers == null)
CheckOverlayOrdering(spriteComponent, damageVisComp);
if (component.TryGetData<bool>(DamageVisualizerKeys.ForceUpdate, out var update)
if (AppearanceSystem.TryGetData<bool>(component.Owner, DamageVisualizerKeys.ForceUpdate, out var update, component)
&& update)
{
ForceUpdateLayers(damageComponent, spriteComponent, damageVisComp);
@@ -377,7 +377,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
{
UpdateDamageVisuals(damageComponent, spriteComponent, damageVisComp);
}
else if (component.TryGetData(DamageVisualizerKeys.DamageUpdateGroups, out DamageVisualizerGroupData data))
else if (AppearanceSystem.TryGetData<DamageVisualizerGroupData>(component.Owner, DamageVisualizerKeys.DamageUpdateGroups, out var data, component))
{
UpdateDamageVisuals(data.GroupList, damageComponent, spriteComponent, damageVisComp);
}
@@ -394,7 +394,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
foreach (var layer in damageVisComp.TargetLayerMapKeys)
{
bool? layerStatus = null;
if (component.TryGetData<bool>(layer, out var layerStateEnum))
if (AppearanceSystem.TryGetData<bool>(component.Owner, layer, out var layerStateEnum, component))
layerStatus = layerStateEnum;
if (layerStatus == null)

View File

@@ -10,7 +10,7 @@ public sealed class DamageStateVisualizerSystem : VisualizerSystem<DamageStateVi
{
var sprite = args.Sprite;
if (sprite == null || !args.Component.TryGetData(MobStateVisuals.State, out MobState data))
if (sprite == null || !AppearanceSystem.TryGetData<MobState>(uid, MobStateVisuals.State, out var data, args.Component))
{
return;
}

View File

@@ -14,8 +14,8 @@ namespace Content.Client.Disease
if (args.Sprite == null)
return;
if (args.Component.TryGetData(DiseaseMachineVisuals.IsOn, out bool isOn)
&& args.Component.TryGetData(DiseaseMachineVisuals.IsRunning, out bool isRunning))
if (AppearanceSystem.TryGetData<bool>(uid, DiseaseMachineVisuals.IsOn, out var isOn, args.Component)
&& AppearanceSystem.TryGetData<bool>(uid, DiseaseMachineVisuals.IsRunning, out var isRunning, args.Component))
{
var state = isRunning ? component.RunningState : component.IdleState;
args.Sprite.LayerSetVisible(DiseaseMachineVisualLayers.IsOn, isOn);

View File

@@ -6,6 +6,8 @@ namespace Content.Client.Ensnaring.Visualizers;
public sealed class EnsnareableSystem : SharedEnsnareableSystem
{
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
public override void Initialize()
{
base.Initialize();
@@ -28,7 +30,7 @@ public sealed class EnsnareableSystem : SharedEnsnareableSystem
if (args.Sprite == null || !args.Sprite.LayerMapTryGet(EnsnaredVisualLayers.Ensnared, out var layer))
return;
if (args.Component.TryGetData(EnsnareableVisuals.IsEnsnared, out bool isEnsnared))
if (_appearance.TryGetData<bool>(uid, EnsnareableVisuals.IsEnsnared, out var isEnsnared, args.Component))
{
if (component.Sprite != null)
{

View File

@@ -9,6 +9,7 @@ namespace Content.Client.Explosion;
public sealed partial class TriggerSystem
{
[Dependency] private readonly AnimationPlayerSystem _player = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
/*
* Currently all of the appearance stuff is hardcoded for portable flashers
@@ -53,7 +54,7 @@ public sealed partial class TriggerSystem
if (!TryComp<AppearanceComponent>(uid, out var appearance)) return;
// So animation doesn't get spammed if no server state comes in.
appearance.SetData(ProximityTriggerVisualState.State, ProximityTriggerVisuals.Inactive);
_appearance.SetData(uid, ProximityTriggerVisualState.State, ProximityTriggerVisuals.Inactive, appearance);
OnChangeData(uid, component, appearance);
}
@@ -73,7 +74,7 @@ public sealed partial class TriggerSystem
return;
TryComp<AnimationPlayerComponent>(component.Owner, out var player);
appearance.TryGetData(ProximityTriggerVisualState.State, out ProximityTriggerVisuals state);
_appearance.TryGetData<ProximityTriggerVisuals>(appearance.Owner, ProximityTriggerVisualState.State, out var state, appearance);
switch (state)
{

View File

@@ -22,11 +22,6 @@ namespace Content.Client.Fluids
private void OnComponentInit(EntityUid uid, PuddleVisualizerComponent puddleVisuals, ComponentInit args)
{
if (!TryComp(uid, out AppearanceComponent? appearance))
{
return;
}
if (!TryComp(uid, out SpriteComponent? sprite))
{
return;
@@ -45,10 +40,10 @@ namespace Content.Client.Fluids
return;
}
if (!args.Component.TryGetData(PuddleVisuals.VolumeScale, out float volumeScale)
|| !args.Component.TryGetData(PuddleVisuals.CurrentVolume, out FixedPoint2 currentVolume)
|| !args.Component.TryGetData(PuddleVisuals.SolutionColor, out Color solutionColor)
|| !args.Component.TryGetData(PuddleVisuals.IsEvaporatingVisual, out bool isEvaporating))
if (!AppearanceSystem.TryGetData<float>(uid, PuddleVisuals.VolumeScale, out var volumeScale)
|| !AppearanceSystem.TryGetData<FixedPoint2>(uid, PuddleVisuals.CurrentVolume, out var currentVolume)
|| !AppearanceSystem.TryGetData<Color>(uid, PuddleVisuals.SolutionColor, out var solutionColor)
|| !AppearanceSystem.TryGetData<bool>(uid, PuddleVisuals.IsEvaporatingVisual, out var isEvaporating))
{
return;
}

View File

@@ -1,22 +1,20 @@
using Content.Shared.Kudzu;
using Robust.Client.GameObjects;
namespace Content.Client.Kudzu
namespace Content.Client.Kudzu;
public sealed class KudzuVisualsSystem : VisualizerSystem<KudzuVisualsComponent>
{
public sealed class KudzuVisualsSystem : VisualizerSystem<KudzuVisualsComponent>
protected override void OnAppearanceChange(EntityUid uid, KudzuVisualsComponent component, ref AppearanceChangeEvent args)
{
protected override void OnAppearanceChange(EntityUid uid, KudzuVisualsComponent component, ref AppearanceChangeEvent args)
{
if (args.Sprite == null)
return;
if (args.Component.TryGetData(KudzuVisuals.Variant, out int var)
&& args.Component.TryGetData(KudzuVisuals.GrowthLevel, out int level))
{
var index = args.Sprite.LayerMapReserveBlank(component.Layer);
args.Sprite.LayerSetState(index, $"kudzu_{level}{var}");
}
if (args.Sprite == null)
return;
if (AppearanceSystem.TryGetData<int>(uid, KudzuVisuals.Variant, out var var, args.Component)
&& AppearanceSystem.TryGetData<int>(uid, KudzuVisuals.GrowthLevel, out var level, args.Component))
{
var index = args.Sprite.LayerMapReserveBlank(component.Layer);
args.Sprite.LayerSetState(index, $"kudzu_{level}{var}");
}
}
}

View File

@@ -8,7 +8,7 @@ namespace Content.Client.Lathe;
public sealed class LatheSystem : SharedLatheSystem
{
[Dependency] private readonly AppearanceSystem _appearance = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
public override void Initialize()
{
@@ -22,14 +22,14 @@ public sealed class LatheSystem : SharedLatheSystem
if (args.Sprite == null)
return;
if (_appearance.TryGetData(uid, PowerDeviceVisuals.Powered, out bool powered, args.Component) &&
if (_appearance.TryGetData<bool>(uid, PowerDeviceVisuals.Powered, out var powered, args.Component) &&
args.Sprite.LayerMapTryGet(PowerDeviceVisualLayers.Powered, out _))
{
args.Sprite.LayerSetVisible(PowerDeviceVisualLayers.Powered, powered);
}
// Lathe specific stuff
if (_appearance.TryGetData(uid, LatheVisuals.IsRunning, out bool isRunning, args.Component))
if (_appearance.TryGetData<bool>(uid, LatheVisuals.IsRunning, out var isRunning, args.Component))
{
var state = isRunning ? component.RunningState : component.IdleState;
args.Sprite.LayerSetAnimationTime(LatheVisualLayers.IsRunning, 0f);

View File

@@ -32,12 +32,12 @@ public sealed class HandheldLightSystem : SharedHandheldLightSystem
return;
}
if (!_appearance.TryGetData(uid, ToggleableLightVisuals.Enabled, out bool enabled, args.Component))
if (!_appearance.TryGetData<bool>(uid, ToggleableLightVisuals.Enabled, out var enabled, args.Component))
{
return;
}
if (!_appearance.TryGetData(uid, HandheldLightVisuals.Power, out HandheldLightPowerStates state, args.Component))
if (!_appearance.TryGetData<HandheldLightPowerStates>(uid, HandheldLightVisuals.Power, out var state, args.Component))
{
return;
}

View File

@@ -23,7 +23,7 @@ public sealed class MaterialStorageSystem : SharedMaterialStorageSystem
if (!args.Sprite.LayerMapTryGet(MaterialStorageVisualLayers.Inserting, out var layer))
return;
if (!_appearance.TryGetData(uid, MaterialStorageVisuals.Inserting, out bool inserting, args.Component))
if (!_appearance.TryGetData<bool>(uid, MaterialStorageVisuals.Inserting, out var inserting, args.Component))
return;
if (inserting && TryComp<InsertingMaterialStorageComponent>(uid, out var insertingComp))

View File

@@ -14,7 +14,7 @@ public sealed class MechAssemblyVisualizerSystem : VisualizerSystem<MechAssembly
{
base.OnAppearanceChange(uid, component, ref args);
if (!args.Component.TryGetData(MechAssemblyVisuals.State, out int stage))
if (!AppearanceSystem.TryGetData<int>(uid, MechAssemblyVisuals.State, out var stage, args.Component))
return;
var state = component.StatePrefix + stage;

View File

@@ -8,6 +8,8 @@ namespace Content.Client.Mech;
/// <inheritdoc/>
public sealed class MechSystem : SharedMechSystem
{
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
/// <inheritdoc/>
public override void Initialize()
{
@@ -26,12 +28,12 @@ public sealed class MechSystem : SharedMechSystem
var state = component.BaseState;
var drawDepth = DrawDepth.Mobs;
if (component.BrokenState != null && args.Component.TryGetData(MechVisuals.Broken, out bool broken) && broken)
if (component.BrokenState != null && _appearance.TryGetData<bool>(uid, MechVisuals.Broken, out var broken, args.Component) && broken)
{
state = component.BrokenState;
drawDepth = DrawDepth.SmallMobs;
}
else if (component.OpenState != null && args.Component.TryGetData(MechVisuals.Open, out bool open) && open)
else if (component.OpenState != null && _appearance.TryGetData<bool>(uid, MechVisuals.Open, out var open, args.Component) && open)
{
state = component.OpenState;
drawDepth = DrawDepth.SmallMobs;

View File

@@ -9,6 +9,8 @@ namespace Content.Client.Medical.Cryogenics;
public sealed class CryoPodSystem: SharedCryoPodSystem
{
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
public override void Initialize()
{
base.Initialize();
@@ -54,8 +56,8 @@ public sealed class CryoPodSystem: SharedCryoPodSystem
return;
}
if (!args.Component.TryGetData(SharedCryoPodComponent.CryoPodVisuals.ContainsEntity, out bool isOpen)
|| !args.Component.TryGetData(SharedCryoPodComponent.CryoPodVisuals.IsOn, out bool isOn))
if (!_appearance.TryGetData<bool>(uid, SharedCryoPodComponent.CryoPodVisuals.ContainsEntity, out var isOpen, args.Component)
|| !_appearance.TryGetData<bool>(uid, SharedCryoPodComponent.CryoPodVisuals.IsOn, out var isOn, args.Component))
{
return;
}

View File

@@ -14,6 +14,7 @@ public sealed class JetpackSystem : SharedJetpackSystem
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly IMapManager _mapManager = default!;
[Dependency] private readonly ClothingSystem _clothing = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
public override void Initialize()
{
@@ -29,7 +30,7 @@ public sealed class JetpackSystem : SharedJetpackSystem
private void OnJetpackAppearance(EntityUid uid, JetpackComponent component, ref AppearanceChangeEvent args)
{
args.Component.TryGetData(JetpackVisuals.Enabled, out bool enabled);
_appearance.TryGetData<bool>(uid, JetpackVisuals.Enabled, out var enabled, args.Component);
var state = "icon" + (enabled ? "-on" : "");
args.Sprite?.LayerSetState(0, state);

View File

@@ -11,10 +11,10 @@ public sealed class PaperSystem : VisualizerSystem<PaperVisualsComponent>
if (args.Sprite == null)
return;
if (args.Component.TryGetData(PaperVisuals.Status , out PaperStatus writingStatus))
if (AppearanceSystem.TryGetData<PaperStatus>(uid, PaperVisuals.Status , out var writingStatus, args.Component))
args.Sprite.LayerSetVisible(PaperVisualLayers.Writing, writingStatus == PaperStatus.Written);
if (args.Component.TryGetData(PaperVisuals.Stamp, out string stampState))
if (AppearanceSystem.TryGetData<string>(uid, PaperVisuals.Stamp, out var stampState, args.Component))
{
args.Sprite.LayerSetState(PaperVisualLayers.Stamp, stampState);
args.Sprite.LayerSetVisible(PaperVisualLayers.Stamp, true);

View File

@@ -8,7 +8,7 @@ namespace Content.Client.Pinpointer
public sealed class ClientPinpointerSystem : SharedPinpointerSystem
{
[Dependency] private readonly IEyeManager _eyeManager = default!;
[Dependency] private readonly AppearanceSystem _appearance = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
public override void Initialize()
{

View File

@@ -15,7 +15,7 @@ namespace Content.Client.Pinpointer
return;
// check if pinpointer screen is active
if (!args.Component.TryGetData(PinpointerVisuals.IsActive, out bool isActive) || !isActive)
if (!AppearanceSystem.TryGetData<bool>(uid, PinpointerVisuals.IsActive, out var isActive, args.Component) || !isActive)
{
sprite.LayerSetVisible(PinpointerLayers.Screen, false);
return;
@@ -24,8 +24,8 @@ namespace Content.Client.Pinpointer
sprite.LayerSetVisible(PinpointerLayers.Screen, true);
// check distance and direction to target
if (!args.Component.TryGetData(PinpointerVisuals.TargetDistance, out Distance dis) ||
!args.Component.TryGetData(PinpointerVisuals.ArrowAngle, out Angle angle))
if (!AppearanceSystem.TryGetData<Distance>(uid, PinpointerVisuals.TargetDistance, out var dis, args.Component) ||
!AppearanceSystem.TryGetData<Angle>(uid, PinpointerVisuals.ArrowAngle, out var angle, args.Component))
{
sprite.LayerSetState(PinpointerLayers.Screen, "pinonnull");
sprite.LayerSetRotation(PinpointerLayers.Screen, Angle.Zero);

View File

@@ -1,20 +1,17 @@
using Content.Client.SubFloor;
using Content.Shared.SubFloor;
using Content.Shared.Wires;
using Robust.Client.GameObjects;
namespace Content.Client.Power.Visualizers;
public sealed partial class CableVisualizerSystem : EntitySystem
public sealed class CableVisualizerSystem : VisualizerSystem<CableVisualizerComponent>
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CableVisualizerComponent, AppearanceChangeEvent>(OnAppearanceChanged, after: new[] { typeof(SubFloorHideSystem) });
SubscribeLocalEvent<CableVisualizerComponent, AppearanceChangeEvent>(OnAppearanceChange, after: new[] { typeof(SubFloorHideSystem) });
}
private void OnAppearanceChanged(EntityUid uid, CableVisualizerComponent component, ref AppearanceChangeEvent args)
protected override void OnAppearanceChange(EntityUid uid, CableVisualizerComponent component, ref AppearanceChangeEvent args)
{
if (args.Sprite == null)
return;
@@ -26,10 +23,9 @@ public sealed partial class CableVisualizerSystem : EntitySystem
return;
}
if (!args.Component.TryGetData(WireVisVisuals.ConnectedMask, out WireVisDirFlags mask))
if (!AppearanceSystem.TryGetData<WireVisDirFlags>(uid, WireVisVisuals.ConnectedMask, out var mask, args.Component))
mask = WireVisDirFlags.None;
args.Sprite.LayerSetState(0, $"{component.StatePrefix}{(int) mask}");
}
}

View File

@@ -7,6 +7,8 @@ namespace Content.Client.PowerCell;
[UsedImplicitly]
public sealed class PowerCellSystem : SharedPowerCellSystem
{
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
public override void Initialize()
{
base.Initialize();
@@ -21,7 +23,7 @@ public sealed class PowerCellSystem : SharedPowerCellSystem
if (!args.Sprite.TryGetLayer((int) PowerCellVisualLayers.Unshaded, out var unshadedLayer))
return;
if (args.Component.TryGetData(PowerCellVisuals.ChargeLevel, out byte level))
if (_appearance.TryGetData<byte>(uid, PowerCellVisuals.ChargeLevel, out var level, args.Component))
{
if (level == 0)
{

View File

@@ -6,6 +6,8 @@ namespace Content.Client.Revenant;
public sealed class RevenantSystem : EntitySystem
{
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
public override void Initialize()
{
base.Initialize();
@@ -18,15 +20,15 @@ public sealed class RevenantSystem : EntitySystem
if (args.Sprite == null)
return;
if (args.Component.TryGetData(RevenantVisuals.Harvesting, out bool harvesting) && harvesting)
if (_appearance.TryGetData<bool>(uid, RevenantVisuals.Harvesting, out var harvesting, args.Component) && harvesting)
{
args.Sprite.LayerSetState(0, component.HarvestingState);
}
else if (args.Component.TryGetData(RevenantVisuals.Stunned, out bool stunned) && stunned)
else if (_appearance.TryGetData<bool>(uid, RevenantVisuals.Stunned, out var stunned, args.Component) && stunned)
{
args.Sprite.LayerSetState(0, component.StunnedState);
}
else if (args.Component.TryGetData(RevenantVisuals.Corporeal, out bool corporeal))
else if (_appearance.TryGetData<bool>(uid, RevenantVisuals.Corporeal, out var corporeal, args.Component))
{
if (corporeal)
args.Sprite.LayerSetState(0, component.CorporealState);

View File

@@ -8,7 +8,7 @@ namespace Content.Client.Singularity.Systems;
public sealed class EmitterSystem : SharedEmitterSystem
{
[Dependency] private readonly AppearanceSystem _appearance = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
/// <inheritdoc/>
public override void Initialize()
@@ -23,13 +23,13 @@ public sealed class EmitterSystem : SharedEmitterSystem
if (args.Sprite.LayerMapTryGet(StorageVisualLayers.Lock, out var lockLayer))
{
if (!_appearance.TryGetData(uid, StorageVisuals.Locked, out bool locked, args.Component))
if (!_appearance.TryGetData<bool>(uid, StorageVisuals.Locked, out var locked, args.Component))
locked = false;
args.Sprite.LayerSetVisible(lockLayer, locked);
}
if (!_appearance.TryGetData(uid, EmitterVisuals.VisualState, out EmitterVisualState state, args.Component))
if (!_appearance.TryGetData<EmitterVisualState>(uid, EmitterVisuals.VisualState, out var state, args.Component))
state = EmitterVisualState.Off;
if (!args.Sprite.LayerMapTryGet(EmitterVisualLayers.Lights, out var layer))

View File

@@ -24,7 +24,7 @@ public sealed class StickyVisualizerSystem : VisualizerSystem<StickyVisualizerCo
if (args.Sprite == null)
return;
if (!args.Component.TryGetData(StickyVisuals.IsStuck, out bool isStuck))
if (!AppearanceSystem.TryGetData<bool>(uid, StickyVisuals.IsStuck, out var isStuck, args.Component))
return;
var drawDepth = isStuck ? component.StuckDrawDepth : component.DefaultDrawDepth;

View File

@@ -8,6 +8,8 @@ namespace Content.Client.Storage.Systems;
public sealed class ItemMapperSystem : SharedItemMapperSystem
{
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
public override void Initialize()
{
base.Initialize();
@@ -38,7 +40,7 @@ public sealed class ItemMapperSystem : SharedItemMapperSystem
private void InitLayers(ItemMapperComponent component, SpriteComponent spriteComponent, AppearanceComponent appearance)
{
if (!appearance.TryGetData<ShowLayerData>(StorageMapVisuals.InitLayers, out var wrapper))
if (!_appearance.TryGetData<ShowLayerData>(appearance.Owner, StorageMapVisuals.InitLayers, out var wrapper, appearance))
return;
component.SpriteLayers.AddRange(wrapper.QueuedEntities);
@@ -53,7 +55,7 @@ public sealed class ItemMapperSystem : SharedItemMapperSystem
private void EnableLayers(ItemMapperComponent component, SpriteComponent spriteComponent, AppearanceComponent appearance)
{
if (!appearance.TryGetData<ShowLayerData>(StorageMapVisuals.LayerChanged, out var wrapper))
if (!_appearance.TryGetData<ShowLayerData>(appearance.Owner, StorageMapVisuals.LayerChanged, out var wrapper, appearance))
return;
foreach (var layerName in component.SpriteLayers)

View File

@@ -14,7 +14,7 @@ public sealed class StorageFillVisualizerSystem : VisualizerSystem<StorageFillVi
if (!TryComp(uid, out SpriteComponent? sprite))
return;
if (!args.Component.TryGetData(StorageFillVisuals.FillLevel, out int level))
if (!AppearanceSystem.TryGetData<int>(uid, StorageFillVisuals.FillLevel, out var level, args.Component))
return;
var state = $"{component.FillBaseName}-{level}";

View File

@@ -5,7 +5,7 @@ namespace Content.Client.SubFloor;
public sealed class SubFloorHideSystem : SharedSubFloorHideSystem
{
[Dependency] private readonly AppearanceSystem _appearanceSystem = default!;
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
private bool _showAll;
@@ -34,8 +34,8 @@ public sealed class SubFloorHideSystem : SharedSubFloorHideSystem
if (args.Sprite == null)
return;
args.Component.TryGetData(SubFloorVisuals.Covered, out bool covered);
args.Component.TryGetData(SubFloorVisuals.ScannerRevealed, out bool scannerRevealed);
_appearance.TryGetData<bool>(uid, SubFloorVisuals.Covered, out var covered, args.Component);
_appearance.TryGetData<bool>(uid, SubFloorVisuals.ScannerRevealed, out var scannerRevealed, args.Component);
scannerRevealed &= !ShowAll; // no transparency for show-subfloor mode.
@@ -46,7 +46,7 @@ public sealed class SubFloorHideSystem : SharedSubFloorHideSystem
foreach (var layer in args.Sprite.AllLayers)
{
// pipe connection visuals are updated AFTER this, and may re-hide some layers
layer.Visible = revealed;
layer.Visible = revealed;
if (layer.Visible)
layer.Color = layer.Color.WithAlpha(transparency);
@@ -72,7 +72,7 @@ public sealed class SubFloorHideSystem : SharedSubFloorHideSystem
{
foreach (var (_, appearance) in EntityManager.EntityQuery<SubFloorHideComponent, AppearanceComponent>(true))
{
_appearanceSystem.MarkDirty(appearance, true);
_appearance.MarkDirty(appearance, true);
}
}
}

View File

@@ -23,10 +23,10 @@ public sealed class ToggleableLightVisualsSystem : VisualizerSystem<ToggleableLi
protected override void OnAppearanceChange(EntityUid uid, ToggleableLightVisualsComponent component, ref AppearanceChangeEvent args)
{
if (!args.Component.TryGetData(ToggleableLightVisuals.Enabled, out bool enabled))
if (!AppearanceSystem.TryGetData<bool>(uid, ToggleableLightVisuals.Enabled, out var enabled, args.Component))
return;
var modulate = args.Component.TryGetData(ToggleableLightVisuals.Color, out Color color);
var modulate = AppearanceSystem.TryGetData<Color>(uid, ToggleableLightVisuals.Color, out var color, args.Component);
// Update the item's sprite
if (args.Sprite != null && args.Sprite.LayerMapTryGet(component.SpriteLayer, out var layer))
@@ -55,14 +55,14 @@ public sealed class ToggleableLightVisualsSystem : VisualizerSystem<ToggleableLi
private void OnGetEquipmentVisuals(EntityUid uid, ToggleableLightVisualsComponent component, GetEquipmentVisualsEvent args)
{
if (!TryComp(uid, out AppearanceComponent? appearance)
|| !appearance.TryGetData(ToggleableLightVisuals.Enabled, out bool enabled)
|| !AppearanceSystem.TryGetData<bool>(uid, ToggleableLightVisuals.Enabled, out var enabled, appearance)
|| !enabled)
return;
if (!component.ClothingVisuals.TryGetValue(args.Slot, out var layers))
return;
var modulate = appearance.TryGetData(ToggleableLightVisuals.Color, out Color color);
var modulate = AppearanceSystem.TryGetData<Color>(uid, ToggleableLightVisuals.Color, out var color, appearance);
var i = 0;
foreach (var layer in layers)
@@ -84,14 +84,14 @@ public sealed class ToggleableLightVisualsSystem : VisualizerSystem<ToggleableLi
private void OnGetHeldVisuals(EntityUid uid, ToggleableLightVisualsComponent component, GetInhandVisualsEvent args)
{
if (!TryComp(uid, out AppearanceComponent? appearance)
|| !appearance.TryGetData(ToggleableLightVisuals.Enabled, out bool enabled)
|| !AppearanceSystem.TryGetData<bool>(uid, ToggleableLightVisuals.Enabled, out var enabled, appearance)
|| !enabled)
return;
if (!component.InhandVisuals.TryGetValue(args.Location, out var layers))
return;
var modulate = appearance.TryGetData(ToggleableLightVisuals.Color, out Color color);
var modulate = AppearanceSystem.TryGetData<Color>(uid, ToggleableLightVisuals.Color, out var color, appearance);
var i = 0;
var defaultKey = $"inhand-{args.Location.ToString().ToLowerInvariant()}-toggle";

View File

@@ -9,8 +9,8 @@ public sealed class ToiletVisualsSystem : VisualizerSystem<ToiletComponent>
{
if (args.Sprite == null) return;
args.Component.TryGetData(ToiletVisuals.LidOpen, out bool lidOpen);
args.Component.TryGetData(ToiletVisuals.SeatUp, out bool seatUp);
AppearanceSystem.TryGetData<bool>(uid, ToiletVisuals.LidOpen, out var lidOpen, args.Component);
AppearanceSystem.TryGetData<bool>(uid, ToiletVisuals.SeatUp, out var seatUp, args.Component);
var state = (lidOpen, seatUp) switch
{

View File

@@ -11,7 +11,7 @@ public sealed class WeldableVisualizerSystem : VisualizerSystem<WeldableComponen
if (args.Sprite == null)
return;
args.Component.TryGetData(WeldableVisuals.IsWelded, out bool isWelded);
AppearanceSystem.TryGetData<bool>(uid, WeldableVisuals.IsWelded, out var isWelded, args.Component);
if (args.Sprite.LayerMapTryGet(WeldableLayers.BaseWelded, out var layer))
{
args.Sprite.LayerSetVisible(layer, isWelded);

View File

@@ -11,7 +11,7 @@ public sealed class WelderVisualizerSystem : VisualizerSystem<WelderComponent>
if (args.Sprite == null)
return;
if (args.Component.TryGetData(WelderVisuals.Lit, out bool isLit))
if (AppearanceSystem.TryGetData<bool>(uid, WelderVisuals.Lit, out var isLit, args.Component))
{
args.Sprite.LayerSetVisible(WelderLayers.Flame, isLit);
}

View File

@@ -15,13 +15,13 @@ namespace Content.Client.Vehicle
return;
// First check is for the sprite itself
if (args.Component.TryGetData(VehicleVisuals.DrawDepth, out int drawDepth))
if (AppearanceSystem.TryGetData<int>(uid, VehicleVisuals.DrawDepth, out var drawDepth, args.Component))
{
args.Sprite.DrawDepth = drawDepth;
}
// Set vehicle layer to animated or not (i.e. are the wheels turning or not)
if (args.Component.TryGetData(VehicleVisuals.AutoAnimate, out bool autoAnimate))
if (AppearanceSystem.TryGetData<bool>(uid, VehicleVisuals.AutoAnimate, out var autoAnimate, args.Component))
{
args.Sprite.LayerSetAutoAnimated(VehicleVisualLayers.AutoAnimate, autoAnimate);
}