using System; using Content.Shared.Weapons.Ranged.Components; using Robust.Shared.GameObjects; using Robust.Shared.Serialization; namespace Content.Shared.Weapons.Ranged.Barrels.Components { [Serializable, NetSerializable] public enum AmmoVisuals { AmmoCount, AmmoMax, Spent, } [Serializable, NetSerializable] public enum MagazineBarrelVisuals { MagLoaded } [Serializable, NetSerializable] public enum BarrelBoltVisuals { BoltOpen, } [Serializable, NetSerializable] public sealed class MagazineBarrelComponentState : ComponentState { public bool Chambered { get; } public FireRateSelector FireRateSelector { get; } public (int count, int max)? Magazine { get; } public string? SoundGunshot { get; } public MagazineBarrelComponentState( bool chambered, FireRateSelector fireRateSelector, (int count, int max)? magazine, string? soundGunshot) { Chambered = chambered; FireRateSelector = fireRateSelector; Magazine = magazine; SoundGunshot = soundGunshot; } } }