CatStation/Content.Client/VendingMachines/Components/VendingMachineVisualsComponent.cs
AndrewFenriz e934829cb3
VendingMachine refactor (systems. UI, components) (#44896)
* better

* VendingMachineComponent upd

* move components

* small fix

* move some fields to VendingMachineEjectComponent

* move some fields to VendingMachineVisualsComponent

* fix

* move some fields to VendingMachineDispenseOnHitComponent

* move NextEmpEject to VendingMachineEjectComponent

* upd

* split shared system to eject

* no more dummies for name

* fix contraband inventory

* small fix

* and again

* move VendingMachineDispenseOnHitComponent to server

* upd dispense

* upd

* move visuals to client

* fix

* move canshoot to server

* fix client

* fix

* upd

* fix merge

* fix

* upd1

* afterhandlestate

* upd

* more docs and protoid

* upd visuals

* upd components

* reorganize

* Entity<>

* revert AfterAutoHandleState
2026-08-01 15:44:49 +00:00

58 lines
2.1 KiB
C#

using Content.Shared.VendingMachines.Components;
namespace Content.Client.VendingMachines.Components;
[RegisterComponent]
public sealed partial class VendingMachineVisualsComponent : Component
{
/// <summary>
/// RSI state for when the vending machine is unpowered.
/// Will be displayed on the layer <see cref="VendingMachineVisualLayers.Base"/>.
/// </summary>
[DataField]
public string? OffState;
/// <summary>
/// RSI state for the screen of the vending machine.
/// Will be displayed on the layer <see cref="VendingMachineVisualLayers.Screen"/>.
/// </summary>
[DataField]
public string? ScreenState;
/// <summary>
/// RSI state for the vending machine's normal state. Usually a looping animation.
/// Will be displayed on the layer <see cref="VendingMachineVisualLayers.BaseUnshaded"/>.
/// </summary>
[DataField]
public string? NormalState;
/// <summary>
/// RSI state for the vending machine's eject animation.
/// Will be displayed on the layer <see cref="VendingMachineVisualLayers.BaseUnshaded"/>.
/// </summary>
[DataField]
public string? EjectState;
/// <summary>
/// RSI state for the vending machine's deny animation. Will either be played once as sprite flick
/// or looped depending on how <see cref="LoopDenyAnimation"/> is set.
/// Will be displayed on the layer <see cref="VendingMachineVisualLayers.BaseUnshaded"/>.
/// </summary>
[DataField]
public string? DenyState;
/// <summary>
/// RSI state for when the vending machine is broken.
/// Will be displayed on the layer <see cref="VendingMachineVisualLayers.Base"/>.
/// </summary>
[DataField]
public string? BrokenState;
/// <summary>
/// If set to <c>true</c> (default) will loop the animation of the <see cref="DenyState"/> for the duration
/// of <see cref="VendingMachineEjectComponent.DenyDelay"/>. If set to <c>false</c> will play a sprite
/// flick animation for the state and then linger on the final frame until the end of the delay.
/// </summary>
[DataField]
public bool LoopDenyAnimation = true;
}