Add project files.
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Nodify.StateMachine
|
||||
{
|
||||
[BlackboardItem("Are Equal")]
|
||||
public class AreEqualCondition : IBlackboardCondition
|
||||
{
|
||||
[BlackboardProperty(BlackboardKeyType.Object, CanChangeType = true)]
|
||||
public BlackboardProperty Left { get; set; }
|
||||
|
||||
[BlackboardProperty(BlackboardKeyType.Object, CanChangeType = true)]
|
||||
public BlackboardProperty Right { get; set; }
|
||||
|
||||
public Task<bool> Evaluate(Blackboard blackboard)
|
||||
{
|
||||
var left = blackboard.GetObject(Left);
|
||||
var right = blackboard.GetObject(Right);
|
||||
|
||||
// TODO: Equality
|
||||
return Task.FromResult(Equals(left, right));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Nodify.StateMachine
|
||||
{
|
||||
[BlackboardItem("Has Key")]
|
||||
public class HasKeyCondition : IBlackboardCondition
|
||||
{
|
||||
[BlackboardProperty("Key Name", BlackboardKeyType.String)]
|
||||
public BlackboardProperty Key { get; set; }
|
||||
|
||||
public Task<bool> Evaluate(Blackboard blackboard)
|
||||
{
|
||||
var keyName = blackboard.GetObject<string>(Key);
|
||||
|
||||
if (keyName != null)
|
||||
{
|
||||
return Task.FromResult(blackboard.HasKey(keyName));
|
||||
}
|
||||
|
||||
return Task.FromResult(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Nodify.StateMachine
|
||||
{
|
||||
[BlackboardItem("Has Value")]
|
||||
public class HasValueCondition : IBlackboardCondition
|
||||
{
|
||||
[BlackboardProperty(BlackboardKeyType.Object)]
|
||||
public BlackboardKey Key { get; set; }
|
||||
|
||||
public Task<bool> Evaluate(Blackboard blackboard)
|
||||
=> Task.FromResult(blackboard.GetObject(Key) != null);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user