* Action charges refactor - Fixes the slight godmoding of baseactioncomponent. - Gets back 1ms of server time. * chorg * Remove FrameUpdate * Fixes * More fixes * Combine * Fixes * Updates * weh * Last fixes * weh * Fix naughty * YAML fixes * This one too * Merge conflicts * This thing * Review * Fix this as well * Icon fix * weh * Review * Review * seamless * Review
28 lines
955 B
C#
28 lines
955 B
C#
using Content.Shared.Charges.Systems;
|
|
using Robust.Shared.GameStates;
|
|
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
|
|
|
namespace Content.Shared.Charges.Components;
|
|
|
|
/// <summary>
|
|
/// Specifies the attached action has discrete charges, separate to a cooldown.
|
|
/// </summary>
|
|
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(SharedChargesSystem))]
|
|
public sealed partial class LimitedChargesComponent : Component
|
|
{
|
|
[DataField, AutoNetworkedField]
|
|
public int LastCharges;
|
|
|
|
/// <summary>
|
|
/// The max charges this action has.
|
|
/// </summary>
|
|
[DataField, AutoNetworkedField, Access(Other = AccessPermissions.Read)]
|
|
public int MaxCharges = 1;
|
|
|
|
/// <summary>
|
|
/// Last time charges was changed. Used to derive current charges.
|
|
/// </summary>
|
|
[DataField(customTypeSerializer:typeof(TimeOffsetSerializer)), AutoNetworkedField]
|
|
public TimeSpan LastUpdate;
|
|
}
|