From e4c4ec67e975b8668112e09be5bcea9cff8f5f89 Mon Sep 17 00:00:00 2001
From: Lucas Fryzek <lucas.fryzek@fryzekconcepts.com>
Date: Thu, 20 Mar 2025 21:31:19 +0000
Subject: Make entity move part of entity class

---
 main.rhm | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

(limited to 'main.rhm')

diff --git a/main.rhm b/main.rhm
index 3ab966f..f3c5188 100644
--- a/main.rhm
+++ b/main.rhm
@@ -7,9 +7,11 @@ fun test(test_result :: Boolean, test_str :: String):
     | println("Passed " +& test_str)
     | println("Failed " +& test_str)
 
-fun reset_entity(entity :: world.Entity):
-    entity.x := 0
-    entity.y := 0
+fun
+| reset_entity(entity :: world.Entity): reset_entity(entity, 0, 0)
+| reset_entity(entity :: world.Entity, x :: Int, y :: Int):
+    entity.x := x
+    entity.y := y
 
 let wrld = world.World()
 let chunk = world.Chunk(64, 64, 0, 0)
@@ -19,19 +21,25 @@ wrld.entities.add(entity)
 
 
 reset_entity(entity)
-test(wrld.entity_move(0, 1, 0), "move horizontal")
+test(entity.move(1, 0), "move horizontal")
 
 reset_entity(entity)
-test(wrld.entity_move(0, 0, 1), "move vertical")
+test(entity.move(0, 1), "move vertical")
 
 reset_entity(entity)
-test(wrld.entity_move(0, 1, 1), "move diagonal")
+test(entity.move(1, 1), "move diagonal")
 
 reset_entity(entity)
-test(!wrld.entity_move(0, 2, 0), "move diagonal")
+test(!entity.move(2, 0), "move diagonal")
 
 reset_entity(entity)
-test(!wrld.entity_move(0, 0, 0), "starting pos")
+test(!entity.move(0, 0), "starting pos")
+
+let new_chunk = world.Chunk(64, 64, 1, 0)
+chunk.add_neighbour(new_chunk, #'east)
+reset_entity(entity, 63, 0)
+test(entity.move(64, 0), "cross chunk")
+test(entity.current_chunk == new_chunk, "changed chunk")
 
 //world.entities
 println(@str{Entity is @(entity.x) @(entity.y)})
-- 
cgit v1.2.3