Commit graph

19 commits

Author SHA1 Message Date
648e47aae9 Fix crash bug, improve Unit Test
Crash bug from improperly implemented std::lock_guard for multi-threaded
usage of forMatchingSignatures fixed.
2017-11-10 13:19:50 +09:00
0dba6874ad Implement forMatchingSignatures for efficiency
EC::Manager::forMatchingSignatures is different from
EC::Manager::forMatchingSignature in that it takes multiple signatures
and functions and iterates through all entities once. The trade-off is
that a vector of vectors is created to store matching entities.
This function can be called to use multiple threads as well, similar
to the "non-plural" version of this function.

See the doxygen-style documentation in src/EC/Manager.hpp for
forMatchingSignatures (or the generated doxygen html) for how to use.
Usage example is in the last unit test function in src/test/ECTest.hpp .
2017-11-09 21:17:40 +09:00
1d2fbf7b52 Fix cleanup function's return value
Unordered map does not preserve order in which items were inserted.
This is a problem because an entity id relocated to a previously deleted
one could be read as deleted when iterating through the unordered map.
Thus, it has been replaced with a queue.
2017-10-31 13:25:27 +09:00
2523831097 Fix unit test 2017-10-06 14:35:37 +09:00
a08b1575d6 Implement multithreading for function calls
Each of the EC::Manager's function calls over entities can now be
multi-threaded.
2017-10-06 12:47:05 +09:00
aad97d6d42 Add feature to cleanup function in manager
ECManager's cleanup function now returns a map detailing info on all
entities changed by cleanup.
2017-09-28 16:05:05 +09:00
bc70089822 Add a test to unit tests 2017-08-29 15:27:58 +09:00
1f052154ad Changed clearSomeMatchingFunctions, line lengths
clearSomeMatchingFunctions removed for
keepSomeMatchingFunctions and removeSomeMatchingFunctions to
avoid confusion.

Lines now respect 80 column limit.
2017-07-13 16:13:37 +09:00
49ae172c3a Added two new functions
Added "removeForMatchingFunction" and "callForMatchingFunction".
The former deletes a specific function and the latter calls a specific
function.
2017-07-12 22:02:02 +09:00
09a7546509 Changed implementation of stored functions to map
An unordered_map stores functions, allowing for functions to be
removed by index, and bulk removals with filtering by index.

Also added reset(), which changes the state of the Manager to be
almost identical to a newly constructed one.
2016-09-21 21:01:48 +09:00
2e115cd7a2 Fixed docs, ids changed to const references 2016-09-20 20:31:56 +09:00
7c49ab4f04 Added capability to store functions
EC::Manager can now store functions similar to functions
given to EC::Manager::forMatchingSignature.
2016-09-20 20:07:28 +09:00
ab2209b698 Fixed bug where deleted entities retain info 2016-08-30 17:34:34 +09:00
577132554e Added support for components of type UniquePtr 2016-04-06 19:32:30 +09:00
aa05522772 Slight change to unit tests, docs
Unit test now creates Component with
Manager::addComponent.
2016-03-14 20:36:05 +09:00
635eed34a4 Minor fixes/changes 2016-03-14 18:16:09 +09:00
de07c8ad1a Fixed entity deletion bug
Fixed bug where deleted entity would retain Components/Tags.
2016-03-14 11:39:37 +09:00
c6002149d3 Fix to Meta/Matching 2016-03-13 18:17:06 +09:00
f123f075eb Added Meta/Matching, progress on Bitset/Manager 2016-03-13 18:07:49 +09:00