Files
RuinAdventurer/Scripts/Robot/Robot.cs
T
2026-05-05 19:45:50 +02:00

57 lines
1.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Godot;
public partial class Robot : Node3D
{
List<ProgramNode> nodes;
bool isExecuting = false;
ProgramNode currentNode;
public override void _Ready()
{
}
public override void _Process(double delta)
{
if (isExecuting)
{
switch (currentNode.Execute(this, delta))
{
case NodeResult.SUCCESS:
GD.Print(currentNode.lastExecutionMessage);
currentNode = currentNode.nextNode;
if (currentNode == null)
{
isExecuting = false;
}
break;
case NodeResult.FAILURE:
isExecuting = false;
GD.Print(currentNode.lastExecutionMessage);
break;
case NodeResult.RUNNING:
//Currently does nothing.
break;
}
}
Visible = Math.Round(Math.Abs(Position.Y / GameData.tileHeight), 0) == GameData.visibleLayer;
}
public void Move()
{
}
public void SetupExecution(List<ProgramNode> nodes)
{
this.nodes = [.. nodes];
isExecuting = true;
currentNode = nodes[0];
}
}