1
0

ComponentTogglerSystem.cs 820 B

1234567891011121314151617181920212223242526
  1. using Content.Shared.Item.ItemToggle.Components;
  2. namespace Content.Shared.Item.ItemToggle;
  3. /// <summary>
  4. /// Handles <see cref="ComponentTogglerComponent"/> component manipulation.
  5. /// </summary>
  6. public sealed class ComponentTogglerSystem : EntitySystem
  7. {
  8. public override void Initialize()
  9. {
  10. base.Initialize();
  11. SubscribeLocalEvent<ComponentTogglerComponent, ItemToggledEvent>(OnToggled);
  12. }
  13. private void OnToggled(Entity<ComponentTogglerComponent> ent, ref ItemToggledEvent args)
  14. {
  15. var target = ent.Comp.Parent ? Transform(ent).ParentUid : ent.Owner;
  16. if (args.Activated)
  17. EntityManager.AddComponents(target, ent.Comp.Components);
  18. else
  19. EntityManager.RemoveComponents(target, ent.Comp.RemoveComponents ?? ent.Comp.Components);
  20. }
  21. }