* Prevent fly-by fixture from powering containment field generator
* Update according to review
/// </summary>
private void HandleGeneratorCollide(Entity<ContainmentFieldGeneratorComponent> generator, ref StartCollideEvent args)
{
- if (_tags.HasTag(args.OtherEntity, generator.Comp.IDTag))
+ if (args.OtherFixtureId == generator.Comp.SourceFixtureId &&
+ _tags.HasTag(args.OtherEntity, generator.Comp.IDTag))
{
ReceivePower(generator.Comp.PowerReceived, generator);
generator.Comp.Accumulator = 0f;
[DataField("idTag", customTypeSerializer: typeof(PrototypeIdSerializer<TagPrototype>))]
public string IDTag = "EmitterBolt";
+ /// <summary>
+ /// Which fixture ID should test collision with from the entity that powers the generator?
+ /// Prevents the generator from being powered by fly-by fixtures.
+ /// </summary>
+ [DataField]
+ public string SourceFixtureId = "projectile";
+
/// <summary>
/// Is the generator toggled on?
/// </summary>