From 8024a395a6e62fab5db36392195dce72f76e347e Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Fri, 29 Nov 2024 20:11:20 +0700 Subject: [PATCH] batch_xxx as query methods --- README.md | 6 +++++ develop/untests/registry_untests.lua | 38 ++++++++++++++-------------- evolved/registry.lua | 6 +++++ 3 files changed, 31 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index ac7f1ea..bd615fa 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,12 @@ entity:detach -> (entity) query:include -> entity... -> query query:exclude -> entity... -> query query:execute -> (() -> (chunk?)) +query:batch_destroy -> (integer) +query:batch_apply -> (any -> any) -> entity -> (integer) +query:batch_assign -> entity -> any -> (integer) +query:batch_insert -> entity -> any -> (integer) +query:batch_remove -> entity... -> (integer) +query:batch_detach -> (integer) ``` ### Instance `chunk` diff --git a/develop/untests/registry_untests.lua b/develop/untests/registry_untests.lua index 5a0e942..98904a4 100644 --- a/develop/untests/registry_untests.lua +++ b/develop/untests/registry_untests.lua @@ -425,35 +425,35 @@ do do local q = evo.registry.query(f2) - assert(2 == evo.registry.batch_assign(q, f1, 42)) + assert(2 == q:batch_assign(f1, 42)) assert(e1:get(f1) == 10 and e2:get(f1) == 15 and e3:get(f1) == 42 and e4:get(f1) == 42) assert(e3:get(f2) == 40 and e4:get(f2) == 45) end do local q = evo.registry.query(f1) - assert(4 == evo.registry.batch_assign(q, f1, 21)) + assert(4 == q:batch_assign(f1, 21)) assert(e1:get(f1) == 21 and e2:get(f1) == 21 and e3:get(f1) == 21 and e4:get(f1) == 21) assert(e3:get(f2) == 40 and e4:get(f2) == 45) end do local q = evo.registry.query(f1, f2) - assert(2 == evo.registry.batch_assign(q, f1, nil)) + assert(2 == q:batch_assign(f1, nil)) assert(e1:get(f1) == 21 and e2:get(f1) == 21 and e3:get(f1) == true and e4:get(f1) == true) assert(e3:get(f2) == 40 and e4:get(f2) == 45) end do local q = evo.registry.query(f1) - assert(2 == evo.registry.batch_assign(q, f2, 42)) + assert(2 == q:batch_assign(f2, 42)) assert(e1:get(f1) == 21 and e2:get(f1) == 21 and e3:get(f1) == true and e4:get(f1) == true) assert(e3:get(f2) == 42 and e4:get(f2) == 42) end do local q = evo.registry.query(f1):exclude(f2) - assert(2 == evo.registry.batch_assign(q, f1, 84)) + assert(2 == q:batch_assign(f1, 84)) assert(e1:get(f1) == 84 and e2:get(f1) == 84 and e3:get(f1) == true and e4:get(f1) == true) assert(e3:get(f2) == 42 and e4:get(f2) == 42) end @@ -472,35 +472,35 @@ do do local q = evo.registry.query(f2) - assert(2 == evo.registry.batch_apply(q, mul2, f1)) + assert(2 == q:batch_apply(mul2, f1)) assert(e1:get(f1) == 10 and e2:get(f1) == 15 and e3:get(f1) == 40 and e4:get(f1) == 50) assert(e3:get(f2) == 40 and e4:get(f2) == 45) end do local q = evo.registry.query(f1) - assert(4 == evo.registry.batch_apply(q, mul2, f1)) + assert(4 == q:batch_apply(mul2, f1)) assert(e1:get(f1) == 20 and e2:get(f1) == 30 and e3:get(f1) == 80 and e4:get(f1) == 100) assert(e3:get(f2) == 40 and e4:get(f2) == 45) end do local q = evo.registry.query(f1, f2) - assert(2 == evo.registry.batch_apply(q, null, f1)) + assert(2 == q:batch_apply(null, f1)) assert(e1:get(f1) == 20 and e2:get(f1) == 30 and e3:get(f1) == true and e4:get(f1) == true) assert(e3:get(f2) == 40 and e4:get(f2) == 45) end do local q = evo.registry.query(f1) - assert(2 == evo.registry.batch_apply(q, mul2, f2)) + assert(2 == q:batch_apply(mul2, f2)) assert(e1:get(f1) == 20 and e2:get(f1) == 30 and e3:get(f1) == true and e4:get(f1) == true) assert(e3:get(f2) == 80 and e4:get(f2) == 90) end do local q = evo.registry.query(f1):exclude(f2) - assert(2 == evo.registry.batch_apply(q, mul2, f1)) + assert(2 == q:batch_apply(mul2, f1)) assert(e1:get(f1) == 40 and e2:get(f1) == 60 and e3:get(f1) == true and e4:get(f1) == true) assert(e3:get(f2) == 80 and e4:get(f2) == 90) end @@ -517,7 +517,7 @@ do local q = evo.registry.query(f1) - assert(2 == evo.registry.batch_insert(q, f2, 42)) + assert(2 == q:batch_insert(f2, 42)) assert(e1:get(f1) == 10 and e2:get(f1) == 15 and e3:get(f1) == 20 and e4:get(f1) == 25) assert(e1:get(f2) == 42 and e2:get(f2) == 42 and e3:get(f2) == 40 and e4:get(f2) == 45) end @@ -540,7 +540,7 @@ do do local q = evo.registry.query(f2) - assert(2 == evo.registry.batch_remove(q, f1, f4)) + assert(2 == q:batch_remove(f1, f4)) assert(e1.__chunk == evo.registry.chunk(f1)) assert(e2.__chunk == evo.registry.chunk(f1)) assert(e3.__chunk == evo.registry.chunk(f2)) @@ -549,7 +549,7 @@ do assert(e1:get(f1) == 10 and e2:get(f1) == 15) assert(e3:get(f2) == 40 and e4:get(f2) == 45 and e4:get(f3) == 55) - assert(2 == evo.registry.batch_remove(q, f2)) + assert(2 == q:batch_remove(f2)) assert(e1.__chunk == evo.registry.chunk(f1)) assert(e2.__chunk == evo.registry.chunk(f1)) assert(e3.__chunk == nil) @@ -562,8 +562,8 @@ do do local q = evo.registry.query(f3) - assert(0 == evo.registry.batch_remove(q, f1)) - assert(2 == evo.registry.batch_remove(q, f3)) + assert(0 == q:batch_remove(f1)) + assert(2 == q:batch_remove(f3)) end end end @@ -580,7 +580,7 @@ do do local q = evo.registry.query(f2):exclude(f3) - assert(1 == evo.registry.batch_detach(q)) + assert(1 == q:batch_detach()) assert(e1.__chunk == evo.registry.chunk(f1)) assert(e2.__chunk == evo.registry.chunk(f1)) assert(e3.__chunk == nil) @@ -594,7 +594,7 @@ do do local q = evo.registry.query(f1) - assert(3 == evo.registry.batch_detach(q)) + assert(3 == q:batch_detach()) assert(e1.__chunk == nil) assert(e2.__chunk == nil) assert(e3.__chunk == nil) @@ -617,7 +617,7 @@ do do local q = evo.registry.query(f2):exclude(f3) - assert(1 == evo.registry.batch_destroy(q)) + assert(1 == q:batch_destroy()) assert(e1.__chunk == evo.registry.chunk(f1)) assert(e2.__chunk == evo.registry.chunk(f1)) assert(e3.__chunk == nil) @@ -631,7 +631,7 @@ do do local q = evo.registry.query(f1) - assert(3 == evo.registry.batch_destroy(q)) + assert(3 == q:batch_destroy()) assert(e1.__chunk == nil) assert(e2.__chunk == nil) assert(e3.__chunk == nil) diff --git a/evolved/registry.lua b/evolved/registry.lua index c87eb57..19338fc 100644 --- a/evolved/registry.lua +++ b/evolved/registry.lua @@ -1159,6 +1159,12 @@ end evolved_query_mt.include = registry.include evolved_query_mt.exclude = registry.exclude evolved_query_mt.execute = registry.execute +evolved_query_mt.batch_destroy = registry.batch_destroy +evolved_query_mt.batch_apply = registry.batch_apply +evolved_query_mt.batch_assign = registry.batch_assign +evolved_query_mt.batch_insert = registry.batch_insert +evolved_query_mt.batch_remove = registry.batch_remove +evolved_query_mt.batch_detach = registry.batch_detach --- ---