From 5332247103c8510dbfccf339618278e9e4f4ca0e Mon Sep 17 00:00:00 2001
From: Liza Carvelli <liza@carvel.li>
Date: Sun, 9 Jun 2024 22:43:45 +0200
Subject: [PATCH] Fix WaitForObjectPosition to use actual data

---
 .../Controller/Steps/BaseFactory/WaitAtEnd.cs  | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/Questionable/Controller/Steps/BaseFactory/WaitAtEnd.cs b/Questionable/Controller/Steps/BaseFactory/WaitAtEnd.cs
index 01d5c753..e0519faf 100644
--- a/Questionable/Controller/Steps/BaseFactory/WaitAtEnd.cs
+++ b/Questionable/Controller/Steps/BaseFactory/WaitAtEnd.cs
@@ -43,7 +43,16 @@ internal static class WaitAtEnd
                     return [new NextStep()];
 
                 case EInteractionType.WaitForObjectAtPosition:
-                    return [serviceProvider.GetRequiredService<WaitObjectAtPosition>(), new NextStep()];
+                    ArgumentNullException.ThrowIfNull(step.DataId);
+                    ArgumentNullException.ThrowIfNull(step.Position);
+
+                    return
+                    [
+                        serviceProvider.GetRequiredService<WaitObjectAtPosition>()
+                            .With(step.DataId.Value, step.Position.Value),
+                        serviceProvider.GetRequiredService<WaitDelay>(),
+                        new NextStep()
+                    ];
 
                 default:
                     return [serviceProvider.GetRequiredService<WaitDelay>(), new NextStep()];
@@ -103,6 +112,13 @@ internal static class WaitAtEnd
         public uint DataId { get; set; }
         public Vector3 Destination { get; set; }
 
+        public ITask With(uint dataId, Vector3 destination)
+        {
+            DataId = dataId;
+            Destination = destination;
+            return this;
+        }
+
         public bool Start() => true;
 
         public ETaskResult Update() =>