mirror of
				https://github.com/Ukendio/jecs.git
				synced 2025-10-31 09:09:18 +00:00 
			
		
		
		
	Update README.md example and remove trailing whitespace (#14)
This commit is contained in:
		
							parent
							
								
									0a70e7887b
								
							
						
					
					
						commit
						e5e1aec6b2
					
				
					 1 changed files with 13 additions and 14 deletions
				
			
		
							
								
								
									
										27
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								README.md
									
									
									
									
									
								
							|  | @ -3,25 +3,24 @@ | ||||||
| 
 | 
 | ||||||
| Just an ECS | Just an ECS | ||||||
| 
 | 
 | ||||||
| jecs is a stupidly fast Entity Component System (ECS).  | jecs is a stupidly fast Entity Component System (ECS). | ||||||
| 
 | 
 | ||||||
| - Process tens of thousands of entities with ease every frame | - Process tens of thousands of entities with ease every frame | ||||||
| - Zero-dependency Luau package | - Zero-dependency Luau package | ||||||
| - Optimized for column-major operations | - Optimized for column-major operations | ||||||
| - Cache friendly archetype/SoA storage  | - Cache friendly archetype/SoA storage | ||||||
| 
 | 
 | ||||||
| ### Example | ### Example | ||||||
| 
 | 
 | ||||||
| ```lua | ```lua | ||||||
| local world = Jecs.World.new() | local world = Jecs.World.new() | ||||||
| 
 | 
 | ||||||
| local player = world:entity()  | local Health = world:component() | ||||||
| local opponent = world:entity() | local Damage = world:component() | ||||||
|  | local Position = world:component() | ||||||
| 
 | 
 | ||||||
| -- Notice how components are just entities | local player = world:entity() | ||||||
| local Health = world:entity()  | local opponent = world:entity() | ||||||
| local Damage = world:entity() |  | ||||||
| local Position = world:entity() |  | ||||||
| 
 | 
 | ||||||
| world:set(player, Health, 100) | world:set(player, Health, 100) | ||||||
| world:set(player, Damage, 8) | world:set(player, Damage, 8) | ||||||
|  | @ -31,25 +30,25 @@ world:set(opponent, Health, 100) | ||||||
| world:set(opponent, Damage, 21) | world:set(opponent, Damage, 21) | ||||||
| world:set(opponent, Position, Vector3.new(0, 5, 3)) | world:set(opponent, Position, Vector3.new(0, 5, 3)) | ||||||
| 
 | 
 | ||||||
| for playerId, playerPosition, health in world:query(Position, Health) do  | for playerId, playerPosition, health in world:query(Position, Health) do | ||||||
|     local totalDamage = 0 |     local totalDamage = 0 | ||||||
|     for _, opponentPosition, damage in world:query(Position, Damage) do  |     for _, opponentPosition, damage in world:query(Position, Damage) do | ||||||
|         if (playerPosition - opponentPosition).Magnitude < 5  then  |         if (playerPosition - opponentPosition).Magnitude < 5 then | ||||||
|             totalDamage += damage |             totalDamage += damage | ||||||
|         end |         end | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     world:set(playerId, Health, health - totalDamage)   |     world:set(playerId, Health, health - totalDamage) | ||||||
| end | end | ||||||
| 
 | 
 | ||||||
| assert(world:get(playerId, Health) == 79) | assert(world:get(playerId, Health) == 79) | ||||||
| assert(world:get(opponentId, Health) == 92) | assert(world:get(opponentId, Health) == 92) | ||||||
| 
 |  | ||||||
| ``` | ``` | ||||||
|  | 
 | ||||||
| 125 archetypes, 4 random components queried. | 125 archetypes, 4 random components queried. | ||||||
|  |  | ||||||
| Can be found under /benches/query.lua | Can be found under /benches/query.lua | ||||||
| 
 | 
 | ||||||
| Inserting 8 components to an entity and updating them over 50 times. | Inserting 8 components to an entity and updating them over 50 times. | ||||||
|  |  | ||||||
| Can be found under /benches/insertions.lua | Can be found under /benches/insertions.lua | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue