[DataField, AutoNetworkedField]
public bool Spent;
+ /// <summary>
+ /// Is this cartridge automatically marked as trash once spent?
+ /// </summary>
+ [DataField, AutoNetworkedField]
+ public bool MarkSpentAsTrash = true;
+
/// <summary>
/// Caseless ammunition.
/// </summary>
[Dependency] private readonly UseDelaySystem _useDelay = default!;
[Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!;
+ private static readonly ProtoId<TagPrototype> TrashTag = "Trash";
+
private const float InteractNextFire = 0.3f;
private const double SafetyNextFire = 0.5;
private const float EjectOffset = 0.4f;
cartridge.Spent = spent;
Appearance.SetData(uid, AmmoVisuals.Spent, spent);
+
+ if (!cartridge.MarkSpentAsTrash)
+ return;
+
+ if (spent)
+ TagSystem.AddTag(uid, TrashTag);
+ else
+ TagSystem.RemoveTag(uid, TrashTag);
}
/// <summary>