MedTekCartridgeSystem.cs 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. using Content.Server.Medical.Components;
  2. using Content.Shared.CartridgeLoader;
  3. namespace Content.Server.CartridgeLoader.Cartridges;
  4. public sealed class MedTekCartridgeSystem : EntitySystem
  5. {
  6. [Dependency] private readonly CartridgeLoaderSystem _cartridgeLoaderSystem = default!;
  7. public override void Initialize()
  8. {
  9. base.Initialize();
  10. SubscribeLocalEvent<MedTekCartridgeComponent, CartridgeAddedEvent>(OnCartridgeAdded);
  11. SubscribeLocalEvent<MedTekCartridgeComponent, CartridgeRemovedEvent>(OnCartridgeRemoved);
  12. }
  13. private void OnCartridgeAdded(Entity<MedTekCartridgeComponent> ent, ref CartridgeAddedEvent args)
  14. {
  15. var healthAnalyzer = EnsureComp<HealthAnalyzerComponent>(args.Loader);
  16. }
  17. private void OnCartridgeRemoved(Entity<MedTekCartridgeComponent> ent, ref CartridgeRemovedEvent args)
  18. {
  19. // only remove when the program itself is removed
  20. if (!_cartridgeLoaderSystem.HasProgram<MedTekCartridgeComponent>(args.Loader))
  21. {
  22. RemComp<HealthAnalyzerComponent>(args.Loader);
  23. }
  24. }
  25. }