Move ECS to Bubel module
This commit is contained in:
parent
a7a63f6a20
commit
5411e97cb1
46 changed files with 163 additions and 154 deletions
|
|
@ -7,7 +7,7 @@ Emscripten functions are contained in API similar to druntime.
|
|||
Copyright: Copyright © 2018-2019, Dawid Masiukiewicz, Michał Masiukiewicz
|
||||
License: BSD 3-clause, see LICENSE file in project root folder.
|
||||
*/
|
||||
module ecs.atomic;
|
||||
module bubel.ecs.atomic;
|
||||
|
||||
version(Emscripten)version = ECSEmscripten;
|
||||
|
||||
|
|
@ -20,7 +20,7 @@ Struct EntitiesData
|
|||
Copyright: Copyright © 2018-2019, Dawid Masiukiewicz, Michał Masiukiewicz
|
||||
License: BSD 3-clause, see LICENSE file in project root folder.
|
||||
*/
|
||||
module ecs.attributes;
|
||||
module bubel.ecs.attributes;
|
||||
|
||||
///Used to mark optional components for system.
|
||||
enum optional = "optional";
|
||||
|
|
@ -6,10 +6,10 @@ Module contain memory allocator.
|
|||
Copyright: Copyright © 2018-2019, Dawid Masiukiewicz, Michał Masiukiewicz
|
||||
License: BSD 3-clause, see LICENSE file in project root folder.
|
||||
*/
|
||||
module ecs.block_allocator;
|
||||
module bubel.ecs.block_allocator;
|
||||
|
||||
import ecs.manager;
|
||||
import ecs.std;
|
||||
import bubel.ecs.manager;
|
||||
import bubel.ecs.std;
|
||||
|
||||
/************************************************************************************************************************
|
||||
Allocator allocate large blocks and return smaller blocks. When there is no more blocks then next large block is allocated.
|
||||
|
|
@ -49,10 +49,10 @@ Struct System1
|
|||
Copyright: Copyright © 2018-2019, Dawid Masiukiewicz, Michał Masiukiewicz
|
||||
License: BSD 3-clause, see LICENSE file in project root folder.
|
||||
*/
|
||||
module ecs.core;
|
||||
module bubel.ecs.core;
|
||||
|
||||
public import ecs.manager;
|
||||
public import ecs.entity;
|
||||
public import bubel.ecs.manager;
|
||||
public import bubel.ecs.entity;
|
||||
|
||||
/************************************************************************************************************************
|
||||
Main struct used as namespace for templates.
|
||||
|
|
@ -4,10 +4,10 @@ Entity module.
|
|||
Copyright: Copyright © 2018-2019, Dawid Masiukiewicz, Michał Masiukiewicz
|
||||
License: BSD 3-clause, see LICENSE file in project root folder.
|
||||
*/
|
||||
module ecs.entity;
|
||||
module bubel.ecs.entity;
|
||||
|
||||
import ecs.system;
|
||||
import ecs.manager;
|
||||
import bubel.ecs.system;
|
||||
import bubel.ecs.manager;
|
||||
|
||||
/************************************************************************************************************************
|
||||
Entity ID structure. Used as reference to Entity. Pointer to entity should be ever used to store entity reference!
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
module ecs.events;
|
||||
module bubel.ecs.events;
|
||||
|
||||
import ecs.block_allocator;
|
||||
import ecs.entity;
|
||||
import ecs.manager;
|
||||
import ecs.std;
|
||||
import bubel.ecs.block_allocator;
|
||||
import bubel.ecs.entity;
|
||||
import bubel.ecs.manager;
|
||||
import bubel.ecs.std;
|
||||
|
||||
import std.algorithm.comparison : max;
|
||||
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
module ecs.hash_map;
|
||||
module bubel.ecs.hash_map;
|
||||
|
||||
import std.traits;
|
||||
|
||||
import ecs.vector;
|
||||
import ecs.traits;
|
||||
import bubel.ecs.vector;
|
||||
import bubel.ecs.traits;
|
||||
|
||||
enum doNotInline = "version(DigitalMars)pragma(inline,false);version(LDC)pragma(LDC_never_inline);";
|
||||
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
module ecs.id_manager;
|
||||
module bubel.ecs.id_manager;
|
||||
|
||||
import ecs.entity;
|
||||
import ecs.std;
|
||||
import ecs.vector;
|
||||
import bubel.ecs.entity;
|
||||
import bubel.ecs.std;
|
||||
import bubel.ecs.vector;
|
||||
|
||||
import ecs.atomic;
|
||||
import bubel.ecs.atomic;
|
||||
import core.stdc.string : memcpy;
|
||||
|
||||
/************************************************************************************************************************
|
||||
|
|
@ -4,7 +4,7 @@ Most important module. Almost every function is called from EntityManager.
|
|||
Copyright: Copyright © 2018-2019, Dawid Masiukiewicz, Michał Masiukiewicz
|
||||
License: BSD 3-clause, see LICENSE file in project root folder.
|
||||
*/
|
||||
module ecs.manager;
|
||||
module bubel.ecs.manager;
|
||||
|
||||
import std.algorithm : max;
|
||||
import std.conv : to;
|
||||
|
|
@ -14,21 +14,21 @@ import std.traits;
|
|||
//import core.stdc.stdlib : qsort;
|
||||
//import core.stdc.string;
|
||||
|
||||
import ecs.system; //not ordered as forward reference bug workaround
|
||||
import ecs.block_allocator;
|
||||
import ecs.entity;
|
||||
import ecs.events;
|
||||
import ecs.hash_map;
|
||||
import ecs.id_manager;
|
||||
import ecs.simple_vector;
|
||||
import ecs.std;
|
||||
import ecs.traits;
|
||||
import ecs.vector;
|
||||
import ecs.atomic;
|
||||
import bubel.ecs.system; //not ordered as forward reference bug workaround
|
||||
import bubel.ecs.block_allocator;
|
||||
import bubel.ecs.entity;
|
||||
import bubel.ecs.events;
|
||||
import bubel.ecs.hash_map;
|
||||
import bubel.ecs.id_manager;
|
||||
import bubel.ecs.simple_vector;
|
||||
import bubel.ecs.std;
|
||||
import bubel.ecs.traits;
|
||||
import bubel.ecs.vector;
|
||||
import bubel.ecs.atomic;
|
||||
|
||||
export alias gEM = EntityManager.instance;
|
||||
export alias gEntityManager = EntityManager.instance;
|
||||
alias SerializeVector = ecs.vector.Vector!ubyte;
|
||||
alias SerializeVector = bubel.ecs.vector.Vector!ubyte;
|
||||
|
||||
/************************************************************************************************************************
|
||||
Entity manager is responsible for everything.
|
||||
10
source/bubel/ecs/package.d
Normal file
10
source/bubel/ecs/package.d
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
module ecs;
|
||||
|
||||
public import bubel.ecs.core;
|
||||
public import bubel.ecs.entity;
|
||||
public import bubel.ecs.manager;
|
||||
public import bubel.ecs.system;
|
||||
|
||||
import bubel.ecs.events;
|
||||
import bubel.ecs.id_manager;
|
||||
import bubel.ecs.std;
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
module ecs.simple_vector;
|
||||
module bubel.ecs.simple_vector;
|
||||
|
||||
import ecs.std;
|
||||
import bubel.ecs.std;
|
||||
|
||||
//import core.stdc.string;
|
||||
|
||||
|
|
@ -5,7 +5,7 @@ This module contain implementation of standard functionality.
|
|||
Copyright: Copyright © 2018-2019, Dawid Masiukiewicz, Michał Masiukiewicz
|
||||
License: BSD 3-clause, see LICENSE file in project root folder.
|
||||
*/
|
||||
module ecs.std;
|
||||
module bubel.ecs.std;
|
||||
|
||||
version(Emscripten)version = ECSEmscripten;
|
||||
|
||||
|
|
@ -4,10 +4,10 @@ System module.
|
|||
Copyright: Copyright © 2018-2019, Dawid Masiukiewicz, Michał Masiukiewicz
|
||||
License: BSD 3-clause, see LICENSE file in project root folder.
|
||||
*/
|
||||
module ecs.system;
|
||||
module bubel.ecs.system;
|
||||
|
||||
import ecs.entity;
|
||||
import ecs.manager;
|
||||
import bubel.ecs.entity;
|
||||
import bubel.ecs.manager;
|
||||
|
||||
/************************************************************************************************************************
|
||||
System contain data required to proper glue EntityManager with Systems.
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
module ecs.traits;
|
||||
module bubel.ecs.traits;
|
||||
|
||||
import std.traits;
|
||||
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
module ecs.vector;
|
||||
module bubel.ecs.vector;
|
||||
|
||||
import core.bitop;
|
||||
//import core.stdc.stdlib : free, malloc;
|
||||
import ecs.std;
|
||||
import bubel.ecs.std;
|
||||
//import core.stdc.string : memcpy, memset;
|
||||
//import std.algorithm : swap;
|
||||
import std.conv : emplace;
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
module ecs;
|
||||
|
||||
public import ecs.core;
|
||||
public import ecs.entity;
|
||||
public import ecs.manager;
|
||||
public import ecs.system;
|
||||
|
||||
import ecs.events;
|
||||
import ecs.id_manager;
|
||||
import ecs.std;
|
||||
Loading…
Add table
Add a link
Reference in a new issue