-Multithreaded IDManager.getNewID()
*use implementation with free IDs stack (instead of classic pool)
-support for multiple UpdatePasses. Passes are added by name, and must be called between begin() end() functions.
-removed mutex from addEntity()
-commit() function added. Used to commit all changes made while update() call. Called automatically by begin() end() functions.
*system has arrays of read only and modified components
*new attribute "readonly" usable for variables which should be visible as read only. Const can be used instead for enable checks by compiler.
*JobGroup was added. JobGroup contain array of jobs and array of dependencies (JobGroups)
*new function generateDependencies() generate exclusion between systems, and then generate dependencies for SystemCallers and JobGroups
-fixed issue with jobs generating (empty blocks with only newly added entities was used, and led to crash)
-fixed small typo mistake
-Multithreading support:
*multithreaded update - updateMT(), function generates jobs to execute
*added dispatch callback function to dispatch generated jobs (setJobDispachFunc)
*added getID callback for get thread ID by EntityManager
-added Job structure. Job has one function "execute()".
-calling partial info update (required to multithreading)
-multithreaded removeEntity, addCompoenents, removeComponents. Every thread has own data and remove/change lists.
-multithreaded addEntity (WIP)
-fixed issue with duplicating components
-simpler and faster "findBlockWithFreeSpace" function
-CallDataAllocator, allocator for CallDatas (used for Jobs)
-fixed some bugs/issues
-support for AbsenComponents. Absen components can't exist in entity which are
used by system. There are three possibilities to add absen component. Add
'@absen' property to EntitiesData mebmer, create AbsenComponents enum with fields
names corresponding to components names, or create AbsenComponents AliasSeq
with strings expressions corresponding to components names.
* renamed to BlockAllocator
* now it's template with compile time assingable block_size and block_in_allocation variables
-WIP Event management
* probably working sendSelfEvent()
* registerEvent()
-added win_dll.d as Windows DLL require functionality
-more messy tests
-some documentation
-some useful code moved to functions
-adding components to existing entity
-opportunity to get entity by ID
-fixed calculating deltas
-sorting IDs arrays for allocating Templates
-fixed alignment caluclation
-added compile-time checks for "component_id" member existing in component
-adding entities
-Template allocating and freeing
-Deltas calulating for components in EntityType
-Updating for every EntityType and System
-Generate deltas, components list, and functions callers for Systems