CI and common update:
-added webpage deploymnet stage -added separate build stage which build all binaries and generate documentation -added Emscripten build stage for merge to master only -added VBO batch rendering (current default, no render mode switch yet) -fixed camera positioning calculation -fixed buffer issue with WebGL -added viewport scalling (at least 300 pixels height). Pixels are scalled if screen is bigger. -center demos gameplay area -added fullpage html template for Emscripten build
This commit is contained in:
parent
f67eb452cc
commit
54a6d5dec2
29 changed files with 1167 additions and 322 deletions
|
|
@ -1,5 +1,8 @@
|
|||
/************************************************************************************************************************
|
||||
*Entity module.
|
||||
Entity module.
|
||||
|
||||
Copyright: Copyright © 2018-2019, Dawid Masiukiewicz, Michał Masiukiewicz
|
||||
License: BSD 3-clause, see LICENSE file in project root folder.
|
||||
*/
|
||||
module ecs.entity;
|
||||
|
||||
|
|
@ -7,7 +10,7 @@ import ecs.system;
|
|||
import ecs.manager;
|
||||
|
||||
/************************************************************************************************************************
|
||||
*Entity ID structure. Used as reference to Entity. Pointer to entity should be ever used to store entity reference!
|
||||
Entity ID structure. Used as reference to Entity. Pointer to entity should be ever used to store entity reference!
|
||||
*/
|
||||
struct EntityID
|
||||
{
|
||||
|
|
@ -18,7 +21,7 @@ struct EntityID
|
|||
}
|
||||
|
||||
/************************************************************************************************************************
|
||||
*Structure of Entity. It's have only ID, but have full konwlege to get to components memory (If pointer to it is proper).
|
||||
Structure of Entity. It's have only ID, but have full konwlege to get to components memory (If pointer to it is proper).
|
||||
*/
|
||||
struct Entity
|
||||
{
|
||||
|
|
@ -26,8 +29,8 @@ struct Entity
|
|||
EntityID id;
|
||||
|
||||
/************************************************************************************************************************
|
||||
*Get specified component. If component doesn't exist function retun null. Pointer is valid only before next "commit()", "begin()" or "end()"
|
||||
*function is called. Returned pointer shouldn't be used to store reference to entity data.
|
||||
Get specified component. If component doesn't exist function retun null. Pointer is valid only before next "commit()", "begin()" or "end()"
|
||||
function is called. Returned pointer shouldn't be used to store reference to entity data.
|
||||
*/
|
||||
T* getComponent(T)() const
|
||||
{
|
||||
|
|
@ -45,13 +48,15 @@ struct Entity
|
|||
}
|
||||
|
||||
/************************************************************************************************************************
|
||||
*Entity template structure.
|
||||
*Entity contain whole information needed to create new entity. Allocating EntityTemplate is considered as more expensive operation
|
||||
*than adding entity. Whole components memory is stored in EntityTemplate and is copyied to newly added entity.
|
||||
*If you want to place several entity with small difference in data then you should take pointer to component and change it before every
|
||||
*entity addition.
|
||||
*There is no restriction about number of allocated templates. Single template can be used from multiple threads, but if you
|
||||
*want to changes some components data before add entity (entity position for example) it's better to use multiple templates.
|
||||
Entity template structure.
|
||||
|
||||
Entity contain whole information needed to create new entity. Allocating EntityTemplate is considered as more expensive operation
|
||||
than adding entity. Whole components memory is stored in EntityTemplate and is copyied to newly added entity.
|
||||
If you want to place several entity with small difference in data then you should take pointer to component and change it before every
|
||||
entity addition.
|
||||
|
||||
There is no restriction about number of allocated templates. Single template can be used from multiple threads, but if you
|
||||
want to changes some components data before add entity (entity position for example) it's better to use multiple templates.
|
||||
*/
|
||||
export struct EntityTemplate
|
||||
{
|
||||
|
|
@ -61,7 +66,7 @@ export struct EntityTemplate
|
|||
EntityManager.EntityInfo* info;
|
||||
|
||||
/************************************************************************************************************************
|
||||
*Get specified component. If component doesn't exist function return null. Returned pointer is valid during EntityTemplate lifetime.
|
||||
Get specified component. If component doesn't exist function return null. Returned pointer is valid during EntityTemplate lifetime.
|
||||
*/
|
||||
T* getComponent(T)() nothrow @nogc
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue