Move ECS to Bubel module

This commit is contained in:
Mergul 2020-05-05 16:56:51 +02:00
parent a7a63f6a20
commit 5411e97cb1
46 changed files with 163 additions and 154 deletions

View file

@ -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;

View file

@ -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";

View file

@ -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.

View file

@ -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.

View file

@ -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!

View file

@ -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;

View file

@ -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);";

View file

@ -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;
/************************************************************************************************************************

View file

@ -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.

View 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;

View file

@ -1,6 +1,6 @@
module ecs.simple_vector;
module bubel.ecs.simple_vector;
import ecs.std;
import bubel.ecs.std;
//import core.stdc.string;

View file

@ -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;

View file

@ -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.

View file

@ -1,4 +1,4 @@
module ecs.traits;
module bubel.ecs.traits;
import std.traits;

View file

@ -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;

View file

@ -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;