/// <summary>
/// If we have a pre-fill how many more can we spawn.
/// </summary>
- [AutoNetworkedField]
+ [ViewVariables(VVAccess.ReadOnly), AutoNetworkedField]
public int UnspawnedCount;
/// <summary>
[DataField]
public int Capacity = 3;
+ /// <summary>
+ /// Number of grenades currently contained in the cluster (both spawned and unspawned)
+ /// </summary>
+ [ViewVariables(VVAccess.ReadOnly)]
+ public int Count => UnspawnedCount + Container.ContainedEntities.Count;
+
/// <summary>
/// Decides if contained entities trigger after getting launched
/// </summary>
if (entity.Comp.Whitelist == null)
return;
+ // Make sure there's room for another grenade to be added
+ if (entity.Comp.Count >= entity.Comp.Capacity)
+ return;
+
if (args.Handled || !_whitelistSystem.IsValid(entity.Comp.Whitelist, args.Used))
return;
if (!TryComp<AppearanceComponent>(entity, out var appearanceComponent))
return;
- _appearance.SetData(entity, ClusterGrenadeVisuals.GrenadesCounter, entity.Comp.UnspawnedCount + entity.Comp.Container.ContainedEntities.Count, appearanceComponent);
+ _appearance.SetData(entity, ClusterGrenadeVisuals.GrenadesCounter, entity.Comp.Count, appearanceComponent);
}
}