50 lines
1.1 KiB
C#
50 lines
1.1 KiB
C#
|
using NodeCanvas.Framework;
|
|||
|
using ParadoxNotion.Design;
|
|||
|
|
|||
|
|
|||
|
namespace NodeCanvas.Tasks.Actions
|
|||
|
{
|
|||
|
|
|||
|
[Category("✫ Blackboard")]
|
|||
|
[Description("Set a blackboard boolean variable")]
|
|||
|
public class SetBoolean : ActionTask
|
|||
|
{
|
|||
|
|
|||
|
public enum BoolSetModes
|
|||
|
{
|
|||
|
False = 0,
|
|||
|
True = 1,
|
|||
|
Toggle = 2
|
|||
|
}
|
|||
|
|
|||
|
[RequiredField]
|
|||
|
[BlackboardOnly]
|
|||
|
public BBParameter<bool> boolVariable;
|
|||
|
public BoolSetModes setTo = BoolSetModes.True;
|
|||
|
|
|||
|
protected override string info {
|
|||
|
get
|
|||
|
{
|
|||
|
if ( setTo == BoolSetModes.Toggle )
|
|||
|
return "Toggle " + boolVariable.ToString();
|
|||
|
|
|||
|
return "Set " + boolVariable.ToString() + " to " + setTo.ToString();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnExecute() {
|
|||
|
|
|||
|
if ( setTo == BoolSetModes.Toggle ) {
|
|||
|
|
|||
|
boolVariable.value = !boolVariable.value;
|
|||
|
|
|||
|
} else {
|
|||
|
|
|||
|
var checkBool = ( (int)setTo == 1 );
|
|||
|
boolVariable.value = checkBool;
|
|||
|
}
|
|||
|
|
|||
|
EndAction();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|