AstroNav GPS Cartridge (#32194)
* initial commit * adds astronav cartridge to QM locker * changes requested in review * fix merge conflicts * fixes the statuscontrol disappearing if you eject the cartridge but still have it installed * fix notificationsenabled on salv pda proto * fixes lingering statuscontrol on eject while held --------- Co-authored-by: archrbx <punk.gear5260@fastmail.com>
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
using Content.Shared.CartridgeLoader.Cartridges;
|
||||
using Content.Shared.GPS;
|
||||
|
||||
namespace Content.Server.CartridgeLoader.Cartridges;
|
||||
|
||||
[RegisterComponent]
|
||||
public sealed partial class AstroNavCartridgeComponent : Component
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,7 +12,6 @@ namespace Content.Server.Entry
|
||||
"GuideHelp",
|
||||
"Clickable",
|
||||
"Icon",
|
||||
"HandheldGPS",
|
||||
"CableVisualizer",
|
||||
"SolutionItemStatus",
|
||||
"UIFragment",
|
||||
|
||||
Reference in New Issue
Block a user