Remove IDestroyAct, IBreakAct (#7876)
This commit is contained in:
@@ -1,61 +0,0 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Map;
|
||||
|
||||
namespace Content.Shared.Acts
|
||||
{
|
||||
/// <summary>
|
||||
/// This interface gives components behavior on getting destroyed.
|
||||
/// </summary>
|
||||
public interface IDestroyAct
|
||||
{
|
||||
/// <summary>
|
||||
/// Called when object is destroyed
|
||||
/// </summary>
|
||||
void OnDestroy(DestructionEventArgs eventArgs);
|
||||
}
|
||||
|
||||
public sealed class DestructionEventArgs : EntityEventArgs { }
|
||||
|
||||
public sealed class BreakageEventArgs : EntityEventArgs { }
|
||||
|
||||
public interface IBreakAct
|
||||
{
|
||||
/// <summary>
|
||||
/// Called when object is broken
|
||||
/// </summary>
|
||||
void OnBreak(BreakageEventArgs eventArgs);
|
||||
}
|
||||
|
||||
[UsedImplicitly]
|
||||
public sealed class ActSystem : EntitySystem
|
||||
{
|
||||
public void HandleDestruction(EntityUid owner)
|
||||
{
|
||||
var eventArgs = new DestructionEventArgs();
|
||||
|
||||
RaiseLocalEvent(owner, eventArgs, false);
|
||||
var destroyActs = EntityManager.GetComponents<IDestroyAct>(owner).ToList();
|
||||
|
||||
foreach (var destroyAct in destroyActs)
|
||||
{
|
||||
destroyAct.OnDestroy(eventArgs);
|
||||
}
|
||||
|
||||
QueueDel(owner);
|
||||
}
|
||||
|
||||
public void HandleBreakage(EntityUid owner)
|
||||
{
|
||||
var eventArgs = new BreakageEventArgs();
|
||||
RaiseLocalEvent(owner, eventArgs, false);
|
||||
var breakActs = EntityManager.GetComponents<IBreakAct>(owner).ToList();
|
||||
foreach (var breakAct in breakActs)
|
||||
{
|
||||
breakAct.OnBreak(eventArgs);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.Acts;
|
||||
using Content.Shared.Hands.Components;
|
||||
using Content.Shared.Hands.EntitySystems;
|
||||
using Content.Shared.Interaction;
|
||||
@@ -13,6 +12,7 @@ using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Player;
|
||||
using Robust.Shared.Timing;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Content.Shared.Destructible;
|
||||
|
||||
namespace Content.Shared.Containers.ItemSlots
|
||||
{
|
||||
|
||||
40
Content.Shared/Destructible/SharedDestructibleSystem.cs
Normal file
40
Content.Shared/Destructible/SharedDestructibleSystem.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
namespace Content.Shared.Destructible;
|
||||
|
||||
public abstract class SharedDestructibleSystem : EntitySystem
|
||||
{
|
||||
/// <summary>
|
||||
/// Force entity to be destroyed and deleted.
|
||||
/// </summary>
|
||||
public void DestroyEntity(EntityUid owner)
|
||||
{
|
||||
var eventArgs = new DestructionEventArgs();
|
||||
|
||||
RaiseLocalEvent(owner, eventArgs, false);
|
||||
QueueDel(owner);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Force entity to broke.
|
||||
/// </summary>
|
||||
public void BreakEntity(EntityUid owner)
|
||||
{
|
||||
var eventArgs = new BreakageEventArgs();
|
||||
RaiseLocalEvent(owner, eventArgs, false);
|
||||
}
|
||||
}
|
||||
|
||||
/// <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
|
||||
{
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user