Commit graph

167 commits

Author SHA1 Message Date
Pablo Ariel Mayobre
2e5e965ae9 Entity's Keys
You can now give the 'key' component to Entities.

A key will be generated automatically and stored in Entity.key.value.

You can then use this key to fetch the Entity from the World with World:getEntityByKey(key)

The keys are generated with a generator function that can be overriden.
2021-07-03 01:09:09 -03:00
Pablo Ariel Mayobre
3911e212a4
Add World:query
This method allows you to query the World in order to find a set of Entities that matches a specific Filter.
2021-05-05 12:49:12 -03:00
Pablo Ariel Mayobre
f78811337a
World:newEntity
A shortcut for Concord.entity(World)
2021-05-05 12:49:12 -03:00
Pablo Ariel Mayobre
f9f475ce48
Serializable component
You can remove the component to tell Concord an Entity shouldn't be serialized.

It's given automatically on Entity creation, but this can be disabled by changing Entity.SERIALIZE_BY_DEFAULT to false.
2021-05-05 12:47:39 -03:00
Pablo Ariel Mayobre
0b1e26624a
Error handling overhaul 2021-05-05 12:46:12 -03:00
Pablo Ariel Mayobre
8d1237f574
Replaced Pools with Filters
Filters allow for a Pool constructor (defaults to Lists) that can be used to define Custom Pools.

The constructor is a function that takes the Filter Definition and returns a Custom Pool with these functions:

:add(e) - Add the Entity to the pool
:remove(e) - Remove the Entity from the pool
:has(e) boolean - Checks if the Entity exists in the pool
:clear() - Clears the Pool from Entities

Fixes #40
2021-05-05 12:44:59 -03:00
Pablo Ariel Mayobre
6f08cfe10a
Fix utils.loadNamespace when passed a table 2021-05-05 12:44:47 -03:00
Pablo Ariel Mayobre
6392616823
Add Component:removed() callback
Fixes #37

I also added a reference to the Entity inside the Component which will help with #38
2021-01-09 19:26:21 -03:00
Pablo Ariel Mayobre
b6e4cd6fe9
Removed deprecated functionality
Removed hasName/getName on Systems and Worlds.

Removed Entity.__components since it had a duplicate version of the components stored in the Entity itself.
2021-01-09 19:26:21 -03:00
Pablo Ariel Mayobre
8f57cadce9
Add Component Negation
Fixes #32
2021-01-09 19:23:34 -03:00
Pablo Ariel Mayobre
dd155588a0
List.sort
Fixes #33
2021-01-09 19:22:39 -03:00
Pablo Ariel Mayobre
eb82c3c580
Update version
This will be version 3.0 of Concord
2021-01-09 19:20:03 -03:00
Pablo Ariel Mayobre
1325c4b445
Merge pull request #31 from DanielPower/master
Fix error in readme
2021-01-08 03:49:32 -03:00
Pablo Ariel Mayobre
d5c551046b
Merge pull request #24 from speakk/patch-1
Fix a typo in README.
2021-01-08 03:49:15 -03:00
Daniel Power
2196a41e71 Fix error in readme 2020-11-15 23:44:15 -03:30
Justin van der Leij
dd072adbe9
Merge pull request #30 from josh-perry/master
Regenerated docs
2020-08-18 16:24:21 +02:00
Josh Perry
7979226c33 Regenerated docs 2020-08-18 15:20:56 +01:00
Justin van der Leij
0897b1e4f9
Merge pull request #29 from Tjakka5/dev
Dev
2020-08-18 11:27:37 +02:00
Tjakka5
3e9c596187 Fix mistakes in readme 2020-05-02 20:51:15 +02:00
Tjakka5
c95a1f2768 Update license 2020-05-02 20:44:58 +02:00
Tjakka5
d56821205d Make repo submodule friendly 2020-05-02 20:44:33 +02:00
Tjakka5
c889b15d44 Remove old examples 2020-05-02 20:42:26 +02:00
Justin van der Leij
b906e2a910 Update docs 2020-03-16 10:35:55 +01:00
Pablo Ariel Mayobre
f640258852
Fix component:serialize can return nil 2020-03-15 01:04:44 -03:00
Pablo Ariel Mayobre
78dc7ee937
Fixed some error messages 2020-03-15 00:20:06 -03:00
Pablo Ariel Mayobre
d8621e4070
Fix serialization function to guard internal values 2020-03-14 19:09:23 -03:00
Pablo Ariel Mayobre
079c1d0e18
Utils.shallowCopy as a default serializer/deserializer for Components 2020-03-14 18:45:15 -03:00
Pablo Ariel Mayobre
9ae805aa43
Fixed: Pool:evaluate should bypass Pool:add filter check 2020-03-14 14:56:33 -03:00
Pablo Ariel Mayobre
16e111176e
Added Utils.loadNamespace
Deleted the previous Concord.loadComponents/Systems/Worlds
2020-03-14 14:55:11 -03:00
Pablo Ariel Mayobre
c640641b09
CONCORD IS DEAD
Long live Concord!!
2020-03-14 07:45:25 -03:00
Tjakka5
5dffe04b72 Fix flushing failing 2020-01-18 19:44:09 +01:00
Tjakka5
5252b0901b Merge branch 'master' of https://github.com/Tjakka5/Concord 2020-01-18 19:27:07 +01:00
Tjakka5
275d54726d Allow emits within emits 2020-01-18 19:26:38 +01:00
Justin van der Leij
be4a5d9ec7
Merge pull request #25 from jackamo/fix/quick-readme-fixes
README: Fix 'Quick Example' to be runnable
2020-01-09 10:58:02 +01:00
Jack Robinson
91f5799e50 README: Fix 'Quick Example' to be runnable 2020-01-09 22:12:39 +13:00
speakk
532151d901
Fix a typo in README. 2020-01-06 02:56:18 +02:00
Justin van der Leij
2cd738a135
Merge pull request #23 from tesselode/ldoc-improvements
make the docs a little nicer
2020-01-04 16:40:23 +01:00
Justin van der Leij
c39151faa7
Merge pull request #22 from tesselode/patch-1
fix typos in readme
2020-01-04 16:40:12 +01:00
Andrew Minnich
a65f88dd5e make the docs a little nicer
main changes:
- add parameter and return types where applicable
- use @module and @classmod tags at the top of files
- remove some redundant descriptions of return values, especially for functions that return a boolean

recommended next steps:
- more consistent grammar
- add links to classes and functions in descriptions where appropriate
- be consistent about naming Systems vs. SystemClasses and Components vs. ComponentClasses
2020-01-04 10:31:05 -05:00
tesselode
f392dc6f07
fix typos 2020-01-04 09:52:50 -05:00
Tjakka5
55ae5fd987 Add helper functions to container. Allow name to be gotten 2020-01-04 13:40:18 +01:00
Tjakka5
6cd66e6737 Add serialization and deserialization functions to component, entity, world 2020-01-04 13:26:26 +01:00
Tjakka5
c217183cb9 Fix typos in readme 2020-01-04 12:24:15 +01:00
Tjakka5
3b52f28fe0 Finish first version of documentation 2020-01-04 11:46:10 +01:00
Tjakka5
cf51bccb81 Fix naming of system:clear, system:setEnable 2020-01-04 11:10:29 +01:00
Tjakka5
90b949f8a5 rename src folder in config.ld 2020-01-04 10:50:41 +01:00
Tjakka5
f502f1b9f6 rename folder src to concord 2020-01-04 10:50:13 +01:00
Tjakka5
451b88cdea Finish system optimization 2020-01-04 10:47:45 +01:00
Tjakka5
424f27ed8a First version of documentation 2020-01-04 04:44:21 +01:00
Tjakka5
0e1023d2ce Publish regenerated LDoc pages 2020-01-04 01:54:21 +01:00