Add RequiresGrid component (#23394)
* saving working code * add checks for deletion
This commit is contained in:
11
Content.Server/RequiresGrid/RequiresGridComponent.cs
Normal file
11
Content.Server/RequiresGrid/RequiresGridComponent.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace Content.Server.RequiresGrid;
|
||||
|
||||
/// <summary>
|
||||
/// Destroys an entity when they no longer are part of a Grid
|
||||
/// </summary>
|
||||
[RegisterComponent]
|
||||
[Access(typeof(RequiresGridSystem))]
|
||||
public sealed partial class RequiresGridComponent : Component
|
||||
{
|
||||
|
||||
}
|
||||
29
Content.Server/RequiresGrid/RequiresGridSystem.cs
Normal file
29
Content.Server/RequiresGrid/RequiresGridSystem.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using Content.Server.Destructible;
|
||||
|
||||
namespace Content.Server.RequiresGrid;
|
||||
|
||||
public sealed class RequiresGridSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly DestructibleSystem _destructible = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<RequiresGridComponent, EntParentChangedMessage>(OnEntParentChanged);
|
||||
}
|
||||
|
||||
private void OnEntParentChanged(EntityUid owner, RequiresGridComponent component, EntParentChangedMessage args)
|
||||
{
|
||||
if (args.OldParent == null)
|
||||
return;
|
||||
|
||||
if (args.Transform.GridUid != null)
|
||||
return;
|
||||
|
||||
if (TerminatingOrDeleted(owner))
|
||||
return;
|
||||
|
||||
_destructible.DestroyEntity(owner);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user