2022-06-01 19:59:58 +10:00
|
|
|
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
|
|
|
|
|
{
|
2022-09-09 09:08:14 +10:00
|
|
|
protected virtual void InitializeCartridge()
|
2022-06-01 19:59:58 +10:00
|
|
|
{
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|