mirror of
				https://github.com/Ukendio/jecs.git
				synced 2025-10-31 01:09:16 +00:00 
			
		
		
		
	Fix oopsies
This commit is contained in:
		
							parent
							
								
									993d57741f
								
							
						
					
					
						commit
						d6e288555e
					
				
					 2 changed files with 12 additions and 23 deletions
				
			
		|  | @ -159,7 +159,7 @@ return function(world: ty.World) | ||||||
| 		            set_n += 1 | 		            set_n += 1 | ||||||
| 		            set_ids[set_n] = e | 		            set_ids[set_n] = e | ||||||
| 		            set_values[set_n] = v or true | 		            set_values[set_n] = v or true | ||||||
| 		        elseif not world:contains(e) then | 		        elseif world:contains(e) then | ||||||
| 		            removed_n += 1 | 		            removed_n += 1 | ||||||
| 		            removed_ids[removed_n] = e | 		            removed_ids[removed_n] = e | ||||||
| 		        end | 		        end | ||||||
|  |  | ||||||
|  | @ -7,24 +7,13 @@ local observers_add = require("@addons/observers") | ||||||
| TEST("addons/observers", function() | TEST("addons/observers", function() | ||||||
| 	local world = observers_add(jecs.world()) | 	local world = observers_add(jecs.world()) | ||||||
| 
 | 
 | ||||||
| 	local Test = world:component() :: jecs.Id<number> |  | ||||||
| 	type Q<T...> = () -> (jecs.Entity, T...) |  | ||||||
| 	local query: |  | ||||||
| 		(<A>(jecs.World, jecs.Id<A>) -> Q<A>) |  | ||||||
| 		& (<A, B>(jecs.World, jecs.Id<A>, jecs.Id<B>) -> Q<A, B>) |  | ||||||
| 		& (<A, B, C>(jecs.World, jecs.Id<A>, jecs.Id<B>, jecs.Id<C>) -> Q<A, B, C>) |  | ||||||
| 		= 1 :: never |  | ||||||
| 	for e, a in query(world, Test) do |  | ||||||
| 
 |  | ||||||
| 	end |  | ||||||
| 
 |  | ||||||
| 	do CASE "Should work even if set after the component has been used" | 	do CASE "Should work even if set after the component has been used" | ||||||
| 		local A = world:component() | 		local A = world:component() | ||||||
| 
 | 
 | ||||||
| 		world:set(world:entity(), A, 2) | 		world:set(world:entity(), A, 2) | ||||||
| 		local ran = true | 		local ran = false | ||||||
| 		world:added(A, function() | 		world:added(A, function() | ||||||
| 			ran = false | 			ran = true | ||||||
| 		end) | 		end) | ||||||
| 
 | 
 | ||||||
| 		local entity = world:entity() | 		local entity = world:entity() | ||||||
|  | @ -38,16 +27,16 @@ TEST("addons/observers", function() | ||||||
| 
 | 
 | ||||||
| 		local count = 1 | 		local count = 1 | ||||||
| 		local function counter() | 		local function counter() | ||||||
| 			count += 2 | 			count += 1 | ||||||
| 		end | 		end | ||||||
| 
 | 
 | ||||||
| 		world:set(A, jecs.OnAdd, counter) | 		world:set(A, jecs.OnAdd, counter) | ||||||
| 		world:added(A, counter) | 		world:added(A, counter) | ||||||
| 		world:set(world:entity(), A, false) | 		world:set(world:entity(), A, false) | ||||||
| 		CHECK(count == 3) | 		CHECK(count == (1 + 2)) | ||||||
| 		world:set(world:entity(), A, false) | 		world:set(world:entity(), A, false) | ||||||
| 
 | 
 | ||||||
| 		CHECK(count == 5) | 		CHECK(count == (1 + (2 * 2))) | ||||||
| 	end | 	end | ||||||
| 
 | 
 | ||||||
| 	do CASE "Ensure ordering between signals and observers" | 	do CASE "Ensure ordering between signals and observers" | ||||||
|  | @ -56,7 +45,7 @@ TEST("addons/observers", function() | ||||||
| 
 | 
 | ||||||
| 		local count = 1 | 		local count = 1 | ||||||
| 		local function counter() | 		local function counter() | ||||||
| 			count += 2 | 			count += 1 | ||||||
| 		end | 		end | ||||||
| 
 | 
 | ||||||
| 		world:observer(world:query(A, B), counter) | 		world:observer(world:query(A, B), counter) | ||||||
|  | @ -77,7 +66,7 @@ TEST("addons/observers", function() | ||||||
| 
 | 
 | ||||||
| 		local count = 1 | 		local count = 1 | ||||||
| 		local function counter() | 		local function counter() | ||||||
| 			count += 2 | 			count += 1 | ||||||
| 		end | 		end | ||||||
| 
 | 
 | ||||||
| 		world:observer(world:query(A), counter) | 		world:observer(world:query(A), counter) | ||||||
|  | @ -97,7 +86,7 @@ TEST("addons/observers", function() | ||||||
| 		local A = world:component() | 		local A = world:component() | ||||||
| 		local count = 1 | 		local count = 1 | ||||||
| 		local function counter() | 		local function counter() | ||||||
| 			count += 2 | 			count += 1 | ||||||
| 		end | 		end | ||||||
| 
 | 
 | ||||||
| 		world:monitor(world:query(A), counter) | 		world:monitor(world:query(A), counter) | ||||||
|  | @ -118,10 +107,10 @@ TEST("addons/observers", function() | ||||||
| 
 | 
 | ||||||
| 		local callcount = 1 | 		local callcount = 1 | ||||||
| 		world:added(A, function(entity) | 		world:added(A, function(entity) | ||||||
| 			callcount += 2 | 			callcount += 1 | ||||||
| 		end) | 		end) | ||||||
| 		world:added(A, function(entity) | 		world:added(A, function(entity) | ||||||
| 			callcount += 2 | 			callcount += 1 | ||||||
| 		end) | 		end) | ||||||
| 
 | 
 | ||||||
| 		local e = world:entity() | 		local e = world:entity() | ||||||
|  | @ -129,7 +118,7 @@ TEST("addons/observers", function() | ||||||
| 
 | 
 | ||||||
| 		world:add(e2, jecs.pair(A, e)) | 		world:add(e2, jecs.pair(A, e)) | ||||||
| 		world:add(e, jecs.pair(A, e2)) | 		world:add(e, jecs.pair(A, e2)) | ||||||
| 		CHECK(callcount == 5) | 		CHECK(callcount == 1 + 2 * 2) | ||||||
| 	end | 	end | ||||||
| end) | end) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue