(WIP) Switch from previous DSL System (UI order based) to a new DSL System (node connection based) still in Progress.
This commit is contained in:
@@ -35,26 +35,11 @@ public partial class Robot : Node3D
|
||||
{
|
||||
if (CanExecute(delta))
|
||||
{
|
||||
GD.Print(currentNode.DisplayText);
|
||||
switch (currentNode.Execute(this, delta))
|
||||
{
|
||||
case NodeResult.SUCCESS:
|
||||
if (currentNode.DisplayText == "Until")
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
currentNode = currentNode.previousNode;
|
||||
if (currentNode == null)
|
||||
{
|
||||
isExecuting = false;
|
||||
break;
|
||||
}
|
||||
if (currentNode.DisplayText == "For" || currentNode.DisplayText == "While") break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
currentNode = currentNode.nextNode;
|
||||
}
|
||||
currentNode = currentNode.nextNode;
|
||||
if (currentNode == null)
|
||||
{
|
||||
isExecuting = false;
|
||||
@@ -70,33 +55,10 @@ public partial class Robot : Node3D
|
||||
currentMessage = "";
|
||||
break;
|
||||
case NodeResult.CONDITIONFALSE:
|
||||
string sourceNode = currentNode.DisplayText;
|
||||
while (true)
|
||||
currentNode = currentNode.NegativeNode;
|
||||
if (currentNode == null)
|
||||
{
|
||||
currentNode = currentNode.nextNode;
|
||||
if (currentNode == null)
|
||||
{
|
||||
isExecuting = false;
|
||||
break;
|
||||
}
|
||||
if (sourceNode == "If")
|
||||
{
|
||||
if (currentNode.DisplayText == "If" || currentNode.DisplayText == "Else") break;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (currentNode.DisplayText == "While" || currentNode.DisplayText == "For" || currentNode.DisplayText == "Until")
|
||||
{
|
||||
if (currentNode.nextNode == null)
|
||||
{
|
||||
isExecuting = false;
|
||||
break;
|
||||
}
|
||||
currentNode = currentNode.nextNode;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
isExecuting = false;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -133,6 +95,13 @@ public partial class Robot : Node3D
|
||||
currentMessage = "";
|
||||
}
|
||||
|
||||
public void StopExecution(string message)
|
||||
{
|
||||
isExecuting = false;
|
||||
currentNode = null;
|
||||
currentMessage = message;
|
||||
}
|
||||
|
||||
public float GetMovementSpeed()
|
||||
{
|
||||
return GameData.robotStats.GetMovementSpeed(GameData.robotSpeed)
|
||||
|
||||
Reference in New Issue
Block a user