using Content.Shared.DoAfter; using Content.Shared.FixedPoint; using Robust.Shared.GameStates; using Robust.Shared.Serialization; namespace Content.Shared.Chemistry.Components { [Serializable, NetSerializable] public sealed partial class InjectorDoAfterEvent : SimpleDoAfterEvent { } /// /// Shared class for injectors & syringes /// [NetworkedComponent, ComponentProtoName("Injector")] public abstract partial class SharedInjectorComponent : Component { /// /// Component data used for net updates. Used by client for item status ui /// [Serializable, NetSerializable] public sealed class InjectorComponentState : ComponentState { public FixedPoint2 CurrentVolume { get; } public FixedPoint2 TotalVolume { get; } public InjectorToggleMode CurrentMode { get; } public InjectorComponentState(FixedPoint2 currentVolume, FixedPoint2 totalVolume, InjectorToggleMode currentMode) { CurrentVolume = currentVolume; TotalVolume = totalVolume; CurrentMode = currentMode; } } public enum InjectorToggleMode : byte { Inject, Draw } } }