mirror of
https://github.com/corvax-team/ss14-wl.git
synced 2026-02-14 19:29:57 +01:00
TriggerOnIngested (#41875)
* init * nobody will ever know i copy paste * i hate these names * comment --------- Co-authored-by: iaada <iaada@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Shared.Trigger.Components.Triggers;
|
||||
|
||||
/// <summary>
|
||||
/// Triggers when the owner of this component is ingested, like a pill or food.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
|
||||
public sealed partial class TriggerOnIngestedComponent : BaseTriggerOnXComponent
|
||||
{
|
||||
/// <summary>
|
||||
/// Whether the fed entity is the user.
|
||||
/// If false, the entity feeding will be the user.
|
||||
/// </summary>
|
||||
[DataField, AutoNetworkedField]
|
||||
public bool EatingIsUser = true;
|
||||
}
|
||||
23
Content.Shared/Trigger/Systems/TriggerOnIngestedSystem.cs
Normal file
23
Content.Shared/Trigger/Systems/TriggerOnIngestedSystem.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using Content.Shared.Nutrition;
|
||||
using Content.Shared.Trigger.Components.Triggers;
|
||||
|
||||
namespace Content.Shared.Trigger.Systems;
|
||||
|
||||
public sealed partial class TriggerOnIngestedSystem : TriggerOnXSystem
|
||||
{
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<TriggerOnIngestedComponent, IngestedEvent>(OnIngested);
|
||||
}
|
||||
|
||||
private void OnIngested(Entity<TriggerOnIngestedComponent> ent, ref IngestedEvent args)
|
||||
{
|
||||
// args.Target is the entity being fed, while args.User is the entity doing the feeding.
|
||||
// Since they are not always equal (feeding someone by force, for example) we use a bool to decide which one is the trigger user.
|
||||
var user = ent.Comp.EatingIsUser ? args.Target : args.User;
|
||||
|
||||
Trigger.Trigger(ent.Owner, user, ent.Comp.KeyOut);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user