ChitChat/Components/EventActionListenerComponent.cs
using Sandbox;
using System;
using System.Collections.Generic;
using System.Linq;
namespace ChitChat;
[Title("Event Listener")][Category("ChitChat")][Icon("event")]
public sealed class EventActionListenerComponent : Component, IEventActionListener
{
[Property][Description("Invokes when an ActionEvent with the same name has been invoked.")]
public event Action OnEvent;
[Property][Description("Event names that will invoke OnEvent.")]
public List<string> EventNames { get; set; }
public void OnEventAction(string eventName)
{
if (EventNames.Any(name => name.Contains(eventName)))
{
OnEvent?.Invoke();
}
}
}