Files
tbd-station-14/Content.Client/Nutrition/Visualizers/DrinkCanVisualizer.cs
Galactic Chimp 61f1c8a05c #3898 open sprite field for drink comp (#4235)
* temp

* #3898 some progress on DrinkCanVisualizer

* Fixed implementation

* Moved drink can sprite layer definition to abstract parent

* Added open drink can sprites

* #3898 - fixes for drink cans' sprite field after merge + moved UpdateAppeareance from DrinkComponent to DrinkSystem

* Update Content.Server/Nutrition/EntitySystems/DrinkSystem.cs

* #3898 removed obsolete comment

Co-authored-by: Javier Guardia Fernández <DrSmugleaf@users.noreply.github.com>
2021-10-03 15:56:29 +11:00

41 lines
1.1 KiB
C#

using Content.Shared.Nutrition.Components;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
using Robust.Shared.Serialization.Manager.Attributes;
namespace Content.Client.Nutrition.Visualizers
{
[UsedImplicitly]
public sealed class DrinkCanVisualizer : AppearanceVisualizer
{
[DataField("stateClosed")]
private string? _stateClosed;
[DataField("stateOpen")]
private string? _stateOpen;
public override void OnChangeData(AppearanceComponent component)
{
base.OnChangeData(component);
if (!component.Owner.TryGetComponent<ISpriteComponent>(out var sprite))
{
return;
}
if (component.TryGetData<bool>(DrinkCanStateVisual.Opened, out var opened) && opened)
{
sprite.LayerSetState(DrinkCanVisualLayers.Icon, $"{_stateOpen}");
return;
}
sprite.LayerSetState(DrinkCanVisualLayers.Icon, $"{_stateClosed}");
}
}
public enum DrinkCanVisualLayers : byte
{
Icon = 0
}
}