mirror of
				https://github.com/Ukendio/jecs.git
				synced 2025-10-31 17:20:32 +00:00 
			
		
		
		
	feedback acquired
This commit is contained in:
		
							parent
							
								
									1e53fdc955
								
							
						
					
					
						commit
						bee330c9a5
					
				
					 1 changed files with 7 additions and 13 deletions
				
			
		
							
								
								
									
										20
									
								
								lib/init.lua
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								lib/init.lua
									
									
									
									
									
								
							|  | @ -362,7 +362,7 @@ function World.remove(world: World, entityId: i53, componentId: i53) | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| -- Keeping the function as small as possible to enable inlining | -- Keeping the function as small as possible to enable inlining | ||||||
| local function get(_componentIndex: {[i24]: ArchetypeMap}, record: Record, componentId: i24) | local function get(record: Record, componentId: i24) | ||||||
| 	local archetype = record.archetype | 	local archetype = record.archetype | ||||||
| 	local archetypeRecord = archetype.records[componentId] | 	local archetypeRecord = archetype.records[componentId] | ||||||
| 
 | 
 | ||||||
|  | @ -375,22 +375,21 @@ end | ||||||
| 
 | 
 | ||||||
| function World.get(world: World, entityId: i53, a: i53, b: i53?, c: i53?, d: i53?, e: i53?) | function World.get(world: World, entityId: i53, a: i53, b: i53?, c: i53?, d: i53?, e: i53?) | ||||||
| 	local id = entityId | 	local id = entityId | ||||||
| 	local componentIndex = world.componentIndex |  | ||||||
| 	local record = world.entityIndex[id] | 	local record = world.entityIndex[id] | ||||||
| 	if not record then | 	if not record then | ||||||
| 		return nil | 		return nil | ||||||
| 	end | 	end | ||||||
| 
 | 
 | ||||||
| 	local va = get(componentIndex, record, a) | 	local va = get(record, a) | ||||||
| 
 | 
 | ||||||
| 	if b == nil then | 	if b == nil then | ||||||
| 		return va | 		return va | ||||||
| 	elseif c == nil then | 	elseif c == nil then | ||||||
| 		return va, get(componentIndex, record, b) | 		return va, get(record, b) | ||||||
| 	elseif d == nil then | 	elseif d == nil then | ||||||
| 		return va, get(componentIndex, record, b), get(componentIndex, record, c) | 		return va, get(record, b), get(record, c) | ||||||
| 	elseif e == nil then | 	elseif e == nil then | ||||||
| 		return va, get(componentIndex, record, b), get(componentIndex, record, c), get(componentIndex, record, d) | 		return va, get(record, b), get(record, c), get(record, d) | ||||||
| 	else | 	else | ||||||
| 		error("args exceeded") | 		error("args exceeded") | ||||||
| 	end | 	end | ||||||
|  | @ -447,7 +446,7 @@ function World.query(world: World, ...: i53): Query | ||||||
| 				skip = true | 				skip = true | ||||||
| 				break | 				break | ||||||
| 			end | 			end | ||||||
| 			indices[i] = archetypeRecords[componentId] | 			indices[i] = index | ||||||
| 		end | 		end | ||||||
| 
 | 
 | ||||||
| 		if skip then | 		if skip then | ||||||
|  | @ -642,13 +641,8 @@ function World.observer(world: World, ...) | ||||||
| 				local columns = archetype.columns | 				local columns = archetype.columns | ||||||
| 				local archetypeRecords = archetype.records | 				local archetypeRecords = archetype.records | ||||||
| 				for _, id in componentIds do | 				for _, id in componentIds do | ||||||
| 					local value = columns[archetypeRecords[id]][row] |  | ||||||
| 					if value == nil then |  | ||||||
| 						continue |  | ||||||
| 					end |  | ||||||
| 
 |  | ||||||
| 					length += 1 | 					length += 1 | ||||||
| 					queryOutput[length] = value | 					queryOutput[length] = columns[archetypeRecords[id]][row] | ||||||
| 				end | 				end | ||||||
| 
 | 
 | ||||||
| 				return archetype.entities[row], unpack(queryOutput, 1, length) | 				return archetype.entities[row], unpack(queryOutput, 1, length) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue