DSL interpretation is working now. Changed map to be within GameData.

This commit is contained in:
=
2026-04-29 12:33:53 +02:00
parent 2f922b5e04
commit 17057487d6
7 changed files with 35 additions and 5 deletions
+5
View File
@@ -18,4 +18,9 @@ public class CraftNode : ProgramNode
return true;
}
}
public override void ReadParameters(NodeDisplay display)
{
//
}
}
+5
View File
@@ -18,4 +18,9 @@ public class HarvestNode : ProgramNode
return true;
}
}
public override void ReadParameters(NodeDisplay display)
{
//
}
}
+17 -2
View File
@@ -3,14 +3,16 @@ using Godot;
public class MoveNode : ProgramNode
{
public Vector3 startPosition;
public Vector3 targetPosition;
public Vector3I targetPosition;
public MoveNode()
{
DisplayText = "Move";
}
public override bool Execute(Robot robot)
{
robot.Position = targetPosition;
startPosition = robot.Position;
GD.Print(targetPosition);
robot.Position = GameData.map[targetPosition.Y].tiles[targetPosition.X, targetPosition.Z].Position;
if (nextNode != null)
{
return nextNode.Execute(robot);
@@ -20,4 +22,17 @@ public class MoveNode : ProgramNode
return true;
}
}
public override void ReadParameters(NodeDisplay display)
{
HBoxContainer valueContainer = display.GetNode<HBoxContainer>("./EditorDisplay/HBoxContainer/");
GD.Print(valueContainer.GetNode<SpinBox>("./CoordinateX").Value);
int posX = (int)valueContainer.GetNode<SpinBox>("./CoordinateX").Value;
int posY = (int)valueContainer.GetNode<SpinBox>("./CoordinateY").Value;
int posZ = (int)valueContainer.GetNode<SpinBox>("./CoordinateZ").Value;
targetPosition = new Vector3I(posX, posY, posZ);
}
}
+1
View File
@@ -10,6 +10,7 @@ public abstract class ProgramNode
}
public abstract bool Execute(Robot robot);
public abstract void ReadParameters(NodeDisplay display);
public void LinkNode(ProgramNode nextNode)
{
this.nextNode = nextNode;