(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:
2026-05-13 22:21:16 +02:00
parent 5893f9f7b9
commit 33a618b0b9
19 changed files with 273 additions and 78 deletions
+12 -43
View File
@@ -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)