private void OnToggled(Entity<ComponentTogglerComponent> ent, ref ItemToggledEvent args)
{
- var target = ent.Comp.Parent ? Transform(ent).ParentUid : ent.Owner;
- if (TerminatingOrDeleted(target))
- return;
-
if (args.Activated)
+ {
+ var target = ent.Comp.Parent ? Transform(ent).ParentUid : ent.Owner;
+
+ if (TerminatingOrDeleted(target))
+ return;
+
+ ent.Comp.Target = target;
+
EntityManager.AddComponents(target, ent.Comp.Components);
+ }
else
- EntityManager.RemoveComponents(target, ent.Comp.RemoveComponents ?? ent.Comp.Components);
+ {
+ if (ent.Comp.Target == null)
+ return;
+
+ if (TerminatingOrDeleted(ent.Comp.Target.Value))
+ return;
+
+ EntityManager.RemoveComponents(ent.Comp.Target.Value, ent.Comp.RemoveComponents ?? ent.Comp.Components);
+ }
}
}