| 1234567891011121314151617181920212223242526272829303132 |
- using Content.Shared.CartridgeLoader;
- using Content.Shared.CartridgeLoader.Cartridges;
- using Content.Shared.GPS.Components;
- namespace Content.Server.CartridgeLoader.Cartridges;
- public sealed class AstroNavCartridgeSystem : EntitySystem
- {
- [Dependency] private readonly CartridgeLoaderSystem _cartridgeLoaderSystem = default!;
- public override void Initialize()
- {
- base.Initialize();
- SubscribeLocalEvent<AstroNavCartridgeComponent, CartridgeAddedEvent>(OnCartridgeAdded);
- SubscribeLocalEvent<AstroNavCartridgeComponent, CartridgeRemovedEvent>(OnCartridgeRemoved);
- }
- private void OnCartridgeAdded(Entity<AstroNavCartridgeComponent> ent, ref CartridgeAddedEvent args)
- {
- EnsureComp<HandheldGPSComponent>(args.Loader);
- }
- private void OnCartridgeRemoved(Entity<AstroNavCartridgeComponent> ent, ref CartridgeRemovedEvent args)
- {
- // only remove when the program itself is removed
- if (!_cartridgeLoaderSystem.HasProgram<AstroNavCartridgeComponent>(args.Loader))
- {
- RemComp<HandheldGPSComponent>(args.Loader);
- }
- }
- }
|