Co-authored-by: Kara <lunarautomaton6@gmail.com> Co-authored-by: T-Stalker <le0nel_1van@hotmail.com> Co-authored-by: T-Stalker <43253663+DogZeroX@users.noreply.github.com> Co-authored-by: ElectroJr <leonsfriedrich@gmail.com> Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
using Content.Shared.Weapons.Ranged.Components;
|
|
using Robust.Shared.GameStates;
|
|
using Robust.Shared.Serialization;
|
|
|
|
namespace Content.Shared.Weapons.Ranged.Systems;
|
|
|
|
public abstract partial class SharedGunSystem
|
|
{
|
|
private void InitializeCartridge()
|
|
{
|
|
SubscribeLocalEvent<CartridgeAmmoComponent, ComponentGetState>(OnCartridgeGetState);
|
|
SubscribeLocalEvent<CartridgeAmmoComponent, ComponentHandleState>(OnCartridgeHandleState);
|
|
}
|
|
|
|
private void OnCartridgeHandleState(EntityUid uid, CartridgeAmmoComponent component, ref ComponentHandleState args)
|
|
{
|
|
if (args.Current is not CartridgeAmmoComponentState state) return;
|
|
component.Spent = state.Spent;
|
|
}
|
|
|
|
private void OnCartridgeGetState(EntityUid uid, CartridgeAmmoComponent component, ref ComponentGetState args)
|
|
{
|
|
args.State = new CartridgeAmmoComponentState()
|
|
{
|
|
Spent = component.Spent,
|
|
};
|
|
}
|
|
|
|
[Serializable, NetSerializable]
|
|
private sealed class CartridgeAmmoComponentState : ComponentState
|
|
{
|
|
public bool Spent;
|
|
}
|
|
}
|