mirror of
				https://github.com/Ukendio/jecs.git
				synced 2025-10-31 01:09:16 +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 | ||||
| 
 | ||||
| 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 | ||||
| - Zero-dependency Luau package | ||||
| - Optimized for column-major operations | ||||
| - Cache friendly archetype/SoA storage  | ||||
| - Cache friendly archetype/SoA storage | ||||
| 
 | ||||
| ### Example | ||||
| 
 | ||||
| ```lua | ||||
| local world = Jecs.World.new() | ||||
| 
 | ||||
| local player = world:entity()  | ||||
| local opponent = world:entity() | ||||
| local Health = world:component() | ||||
| local Damage = world:component() | ||||
| local Position = world:component() | ||||
| 
 | ||||
| -- Notice how components are just entities | ||||
| local Health = world:entity()  | ||||
| local Damage = world:entity() | ||||
| local Position = world:entity() | ||||
| local player = world:entity() | ||||
| local opponent = world:entity() | ||||
| 
 | ||||
| world:set(player, Health, 100) | ||||
| world:set(player, Damage, 8) | ||||
|  | @ -31,25 +30,25 @@ world:set(opponent, Health, 100) | |||
| world:set(opponent, Damage, 21) | ||||
| 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 | ||||
|     for _, opponentPosition, damage in world:query(Position, Damage) do  | ||||
|         if (playerPosition - opponentPosition).Magnitude < 5  then  | ||||
|     for _, opponentPosition, damage in world:query(Position, Damage) do | ||||
|         if (playerPosition - opponentPosition).Magnitude < 5 then | ||||
|             totalDamage += damage | ||||
|         end | ||||
|     end | ||||
| 
 | ||||
|     world:set(playerId, Health, health - totalDamage)   | ||||
|     world:set(playerId, Health, health - totalDamage) | ||||
| end | ||||
| 
 | ||||
| assert(world:get(playerId, Health) == 79) | ||||
| assert(world:get(opponentId, Health) == 92) | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| 125 archetypes, 4 random components queried. | ||||
|  | ||||
| Can be found under /benches/query.lua | ||||
| 
 | ||||
| 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