IndieGame/client/Assets/ParadoxNotion/NodeCanvas/Tasks/Actions/Utility/SendEvent.cs
DOBEST\zhaoyingjie f242607587 初始化工程
2024-10-11 10:12:15 +08:00

64 lines
2.2 KiB
C#

using NodeCanvas.Framework;
using ParadoxNotion;
using ParadoxNotion.Design;
using ParadoxNotion.Services;
namespace NodeCanvas.Tasks.Actions
{
[Category("✫ Utility")]
[Description("Send a graph event. If global is true, all graph owners in scene will receive this event. Use along with the 'Check Event' Condition")]
public class SendEvent : ActionTask<GraphOwner>
{
[RequiredField]
public BBParameter<string> eventName;
public BBParameter<float> delay;
public bool sendGlobal;
protected override string info {
get { return ( sendGlobal ? "Global " : "" ) + "Send Event [" + eventName + "]" + ( delay.value > 0 ? " after " + delay + " sec." : "" ); }
}
protected override void OnUpdate() {
if ( elapsedTime >= delay.value ) {
if ( sendGlobal ) {
Graph.SendGlobalEvent(eventName.value, null, this);
} else {
agent.SendEvent(eventName.value, null, this);
}
EndAction();
}
}
}
///----------------------------------------------------------------------------------------------
[Category("✫ Utility")]
[Description("Send a graph event with T value. If global is true, all graph owners in scene will receive this event. Use along with the 'Check Event' Condition")]
public class SendEvent<T> : ActionTask<GraphOwner>
{
[RequiredField]
public BBParameter<string> eventName;
public BBParameter<T> eventValue;
public BBParameter<float> delay;
public bool sendGlobal;
protected override string info {
get { return string.Format("{0} Event [{1}] ({2}){3}", ( sendGlobal ? "Global " : "" ), eventName, eventValue, ( delay.value > 0 ? " after " + delay + " sec." : "" )); }
}
protected override void OnUpdate() {
if ( elapsedTime >= delay.value ) {
if ( sendGlobal ) {
Graph.SendGlobalEvent(eventName.value, eventValue.value, this);
} else {
agent.SendEvent(eventName.value, eventValue.value, this);
}
EndAction();
}
}
}
}