Files
crystall-punk-14/Content.Shared/Destructible/SharedDestructibleSystem.cs

55 lines
1.2 KiB
C#
Raw Permalink Normal View History

2022-05-03 01:43:25 +03:00
namespace Content.Shared.Destructible;
public abstract class SharedDestructibleSystem : EntitySystem
{
/// <summary>
/// Force entity to be destroyed and deleted.
/// </summary>
public bool DestroyEntity(EntityUid owner)
2022-05-03 01:43:25 +03:00
{
var ev = new DestructionAttemptEvent();
RaiseLocalEvent(owner, ev);
if (ev.Cancelled)
return false;
2022-05-03 01:43:25 +03:00
var eventArgs = new DestructionEventArgs();
2023-05-11 23:19:08 +10:00
RaiseLocalEvent(owner, eventArgs);
2022-05-03 01:43:25 +03:00
QueueDel(owner);
return true;
2022-05-03 01:43:25 +03:00
}
/// <summary>
/// Force entity to break.
2022-05-03 01:43:25 +03:00
/// </summary>
public void BreakEntity(EntityUid owner)
{
var eventArgs = new BreakageEventArgs();
2023-05-11 23:19:08 +10:00
RaiseLocalEvent(owner, eventArgs);
2022-05-03 01:43:25 +03:00
}
}
/// <summary>
/// Raised before an entity is about to be destroyed and deleted
/// </summary>
public sealed class DestructionAttemptEvent : CancellableEntityEventArgs
{
}
2022-05-03 01:43:25 +03:00
/// <summary>
/// Raised when entity is destroyed and about to be deleted.
/// </summary>
public sealed class DestructionEventArgs : EntityEventArgs
{
}
/// <summary>
/// Raised when entity was heavy damage and about to break.
/// </summary>
public sealed class BreakageEventArgs : EntityEventArgs
{
}