Kara
2023-01-06 17:13:22 -06:00
committed by GitHub
parent d491980407
commit 7fcec9e3bc
3 changed files with 8 additions and 2 deletions

View File

@@ -5,5 +5,11 @@ namespace Content.Server.Explosion.Components
{ {
[DataField("fixtureID", required: true)] [DataField("fixtureID", required: true)]
public string FixtureID = String.Empty; public string FixtureID = String.Empty;
/// <summary>
/// Doesn't trigger if the other colliding fixture is nonhard.
/// </summary>
[DataField("ignoreOtherNonHard")]
public bool IgnoreOtherNonHard = true;
} }
} }

View File

@@ -102,7 +102,7 @@ namespace Content.Server.Explosion.EntitySystems
private void OnTriggerCollide(EntityUid uid, TriggerOnCollideComponent component, ref StartCollideEvent args) private void OnTriggerCollide(EntityUid uid, TriggerOnCollideComponent component, ref StartCollideEvent args)
{ {
if(args.OurFixture.ID == component.FixtureID) if(args.OurFixture.ID == component.FixtureID && (!component.IgnoreOtherNonHard || args.OtherFixture.Hard))
Trigger(component.Owner); Trigger(component.Owner);
} }

View File

@@ -40,7 +40,7 @@ public sealed class LinkedEntitySystem : EntitySystem
// Remove any links to this entity when deleted. // Remove any links to this entity when deleted.
foreach (var ent in component.LinkedEntities.ToArray()) foreach (var ent in component.LinkedEntities.ToArray())
{ {
if (LifeStage(ent) < EntityLifeStage.Terminating && TryComp<LinkedEntityComponent>(ent, out var link)) if (!Deleted(ent) && LifeStage(ent) < EntityLifeStage.Terminating && TryComp<LinkedEntityComponent>(ent, out var link))
{ {
TryUnlink(uid, ent, component, link); TryUnlink(uid, ent, component, link);
} }