rj-action-library/Runtime/Actions/Conditional/ConditionalAction.cs

44 lines
829 B
C#
Raw Normal View History

2025-05-27 06:51:48 +00:00
using Godot;
using System.Collections.Generic;
namespace Rokojori
{
[Tool]
[GlobalClass, Icon("res://addons/rokojori_action_library/Icons/ConditionalAction.svg")]
public partial class ConditionalAction : Action
{
[ExportGroup("Condition")]
[Export]
public Condition condition;
[Export]
public SceneCondition sceneCondition;
[ExportGroup("Actions")]
[Export]
public Action ifAction;
[Export]
public Action elseAction;
protected override void _OnTrigger()
{
var conditionActive = Condition.Evaluate( condition ) && SceneCondition.Evaluate( sceneCondition );
this.LogInfo( "Condition is", conditionActive );
if ( conditionActive )
{
Trigger( ifAction );
}
else
{
Trigger( elseAction );
}
}
}
}