Added resource harvesting to DSL.

This commit is contained in:
=
2026-05-05 19:45:50 +02:00
parent a320a86a2f
commit 5882f3865d
8 changed files with 158 additions and 61 deletions
+19 -4
View File
@@ -8,15 +8,30 @@ public class HarvestNode : ProgramNode
}
public override NodeResult Execute(Robot robot, double delta)
{
GD.Print("Harvest");
if (nextNode != null)
Vector3I mapIndex = Pathfinding.GetClosestStartPoint(robot.Position);
Tile tile = GameData.map[mapIndex.Y].tiles[mapIndex.X, mapIndex.Z];
if (!tile.containsResource)
{
return nextNode.Execute(robot, delta);
lastExecutionMessage = "No resource on this tile";
return NodeResult.FAILURE;
}
else
if (!tile.resource.CanExtract())
{
lastExecutionMessage = "Resource is depleted and not endless";
return NodeResult.SUCCESS;
}
if (tile.resource.Extract(delta))
{
if (!GameData.inventory.AddItem(new Item {data = tile.resource.item}, 1))
{
lastExecutionMessage = "Not enough space";
return NodeResult.FAILURE;
}
}
return NodeResult.RUNNING;
}
public override void ReadParameters(NodeDisplay display)