BasicEntityAmmoProviderComponent.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. using Robust.Shared.GameStates;
  2. using Robust.Shared.Prototypes;
  3. using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
  4. namespace Content.Shared.Weapons.Ranged.Components;
  5. /// <summary>
  6. /// Simply provides a certain capacity of entities that cannot be reloaded through normal means and have
  7. /// no special behavior like cycling, magazine
  8. /// </summary>
  9. [RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
  10. public sealed partial class BasicEntityAmmoProviderComponent : AmmoProviderComponent
  11. {
  12. [ViewVariables(VVAccess.ReadWrite)]
  13. [DataField("proto", required: true, customTypeSerializer:typeof(PrototypeIdSerializer<EntityPrototype>))]
  14. public string Proto = default!;
  15. /// <summary>
  16. /// Max capacity.
  17. /// </summary>
  18. [ViewVariables(VVAccess.ReadWrite)]
  19. [DataField("capacity")]
  20. [AutoNetworkedField]
  21. public int? Capacity = null;
  22. /// <summary>
  23. /// Actual ammo left. Initialized to capacity unless they are non-null and differ.
  24. /// </summary>
  25. [ViewVariables(VVAccess.ReadWrite)]
  26. [DataField("count")]
  27. [AutoNetworkedField]
  28. public int? Count = null;
  29. }