Fix mistakes in readme

This commit is contained in:
Tjakka5 2020-05-02 20:51:15 +02:00
parent c95a1f2768
commit 3e9c596187

View file

@ -99,8 +99,8 @@ drawSystem = System({pool = {position, texture}}) -- Define a System that takes
function drawSystem:draw() -- Give it a draw function function drawSystem:draw() -- Give it a draw function
for _, entity in ipairs(self.pool) do -- Iterate over all Entities that this System acts on for _, entity in ipairs(self.pool) do -- Iterate over all Entities that this System acts on
local position = entity[position] -- Get the position Component of this Entity local position = entity.position -- Get the position Component of this Entity
local texture = entity[texture] -- Get the texture Component of this Entity local texture = entity.texture -- Get the texture Component of this Entity
-- Draw the Entity -- Draw the Entity
love.graphics.draw(texture.image, position.x, position.y) love.graphics.draw(texture.image, position.x, position.y)
@ -128,13 +128,6 @@ And all that without writing a single extra line of code. Just reusing code that
Concord does a few things that might not be immediately clear. This segment should help understanding. Concord does a few things that might not be immediately clear. This segment should help understanding.
#### Classes
When you define a Component or System you are actually defining a `ComponentClass` and `SystemClass` respectively. From these instances of them can be created. They also act as identifiers for Concord.
For example. If you want to get a specific Component from an Entity, you'd do `Component = Entity:get(ComponentClass)`.
When ComponentClasses or SystemClasses are required it will be written clearly in the Documentation.
#### Requiring files #### Requiring files
Since you'll have lots of Components and Systems in your game Concord makes it a bit easier to load things in. Since you'll have lots of Components and Systems in your game Concord makes it a bit easier to load things in.
@ -142,14 +135,14 @@ Since you'll have lots of Components and Systems in your game Concord makes it a
```lua ```lua
-- Loads all files in the directory, and puts the return value in the table Systems. The key is their filename without any extension -- Loads all files in the directory, and puts the return value in the table Systems. The key is their filename without any extension
local Systems = {} local Systems = {}
Concord.loadNamespace("path.to.systems", Systems) Concord.utils.loadNamespace("path/to/systems", Systems)
print(Systems.systemName) print(Systems.systemName)
-- Loads all files in the directory. Components automatically register to Concord, so loading them into a namespace isn't necessary. -- Loads all files in the directory. Components automatically register into Concord.components, so loading them into a namespace isn't necessary.
Concord.loadNamespace("path.to.components") Concord.utils.loadNamespace("path/to/components")
print(Systems.componentName) print(Concord.components.componentName)
``` ```
#### Method chaining #### Method chaining
@ -157,13 +150,13 @@ print(Systems.componentName)
-- Most (if not all) methods will return self -- Most (if not all) methods will return self
-- This allowes you to chain methods -- This allowes you to chain methods
entity myEntity
:give(position, 100, 50) :give("position", 100, 50)
:give(velocity, 200, 0) :give("velocity", 200, 0)
:remove(position) :remove("position")
:destroy() :destroy()
world myWorld
:addEntity(fooEntity) :addEntity(fooEntity)
:addEntity(barEntity) :addEntity(barEntity)
:clear() :clear()
@ -219,12 +212,6 @@ print(position.x, position.y) -- 100, 50
myEntity:remove("position") myEntity:remove("position")
``` ```
```lua
-- Check if the Entity has a Component
local hasPosition = myEntity.position and true of false
print(hasPosition) -- false
```
```lua ```lua
-- Entity:give will override a Component if the Entity already has it -- Entity:give will override a Component if the Entity already has it
-- Entity:ensure will only put the Component if the Entity does not already have it -- Entity:ensure will only put the Component if the Entity does not already have it
@ -462,7 +449,9 @@ local Drawable = Concord.component()
-- Defining Systems -- Defining Systems
local MoveSystem = Concord.system(pool = {"position", "velocity"}) local MoveSystem = Concord.system({
pool = {"position", "velocity"}
})
function MoveSystem:update(dt) function MoveSystem:update(dt)
for _, e in ipairs(self.pool) do for _, e in ipairs(self.pool) do
@ -472,7 +461,9 @@ function MoveSystem:update(dt)
end end
local DrawSystem = Concord.system(pool = {"position", "drawable"}) local DrawSystem = Concord.system({
pool = {"position", "drawable"}
})
function DrawSystem:draw() function DrawSystem:draw()
for _, e in ipairs(self.pool) do for _, e in ipairs(self.pool) do
@ -525,5 +516,5 @@ end
--- ---
## Licence ## License
MIT Licensed - Copyright Justin van der Leij (Tjakka5) MIT Licensed - Copyright Justin van der Leij (Tjakka5)