using Robust.Shared.GameStates;
namespace Content.Shared.Objectives.Components;
///
/// An abstract component that allows other systems to count adjacent objects as "stolen" when controlling other systems
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class StealAreaComponent : Component
{
///
/// Is the component currently enabled?
///
[DataField, AutoNetworkedField]
public bool Enabled = true;
///
/// The range to check for items in.
///
[DataField, AutoNetworkedField]
public float Range = 1f;
///
/// All the minds that will be credited with stealing from this area.
///
///
/// TODO: Network this when we have WeakEntityReference.
///
[DataField]
public HashSet Owners = new();
///
/// The count of the owner hashset.
/// This is a separate datafield because networking the list would cause PVS errors if an entity inside would be deleted and networked.
///
[DataField, AutoNetworkedField]
public int OwnerCount = 0;
}