Make it possible to use custom runtime (such as numem)

This commit is contained in:
Mergul 2025-04-10 14:00:55 +02:00
parent 76a23aa4ed
commit d77317c816

View file

@ -27,6 +27,8 @@ alias SerializeVector = bubel.ecs.vector.Vector!ubyte;
///Global EntityManager used for everything.
export __gshared EntityManager* gEntityManager = null;
version(D_BetterC) version = NoDRuntime;
/************************************************************************************************************************
Entity manager is responsible for everything.
@ -359,7 +361,7 @@ export struct EntityManager
void registerSystem(Sys)(int priority, const(char)[] pass_name)
{
ushort pass = passes_map.get(pass_name, ushort.max);
version (D_BetterC)
version (NoDRuntime)
assert(pass != ushort.max, "Update pass doesn't exist.");
else
assert(pass != ushort.max, "Update pass (Name " ~ pass_name ~ ") doesn't exist.");
@ -381,7 +383,7 @@ export struct EntityManager
assert(register_state,
"registerSystem must be called between beginRegister() and endRegister().");
version (D_BetterC)
version (NoDRuntime)
assert(pass < passes.length, "Update pass doesn't exist.");
else
assert(pass < passes.length, "Update pass (ID " ~ pass.to!string ~ ") doesn't exist.");
@ -390,7 +392,7 @@ export struct EntityManager
enum SystemName = fullName!Sys;
//enum SystemName = Sys.stringof;
System system;
System system = System();
system.m_pass = pass;
// static if (!(hasMember!(Sys, "system_id")) || !is(typeof(Sys.system_id) == ushort))
@ -840,7 +842,7 @@ export struct EntityManager
foreach (iii, comp_info; components_info.req)
{
ushort comp = components_map.get(cast(char[]) comp_info.type, ushort.max);
version (D_BetterC)
version (NoDRuntime)
assert(comp != ushort.max,
"Can't register system \"" ~ SystemName
~ "\" due to non existing component.");
@ -852,7 +854,7 @@ export struct EntityManager
foreach (iii, comp_info; components_info.excluded)
{
ushort comp = components_map.get(cast(char[]) comp_info.type, ushort.max);
version (D_BetterC)
version (NoDRuntime)
assert(comp != ushort.max,
"Can't register system \"" ~ SystemName
~ "\" due to non existing component.");
@ -864,7 +866,7 @@ export struct EntityManager
foreach (iii, comp_info; components_info.optional)
{
ushort comp = components_map.get(cast(char[]) comp_info.type, ushort.max);
version (D_BetterC)
version (NoDRuntime)
assert(comp != ushort.max,
"Can't register system \"" ~ SystemName
~ "\" due to non existing component.");
@ -876,7 +878,7 @@ export struct EntityManager
foreach (iii, comp_info; components_info.readonly)
{
ushort comp = components_map.get(cast(char[]) comp_info.type, ushort.max);
version (D_BetterC)
version (NoDRuntime)
assert(comp != ushort.max,
"Can't register system \"" ~ SystemName
~ "\" due to non existing component.");
@ -888,7 +890,7 @@ export struct EntityManager
foreach (iii, comp_info; components_info.mutable)
{
ushort comp = components_map.get(cast(char[]) comp_info.type, ushort.max);
version (D_BetterC)
version (NoDRuntime)
assert(comp != ushort.max,
"Can't register system \"" ~ SystemName
~ "\" due to non existing component.");
@ -1198,7 +1200,7 @@ export struct EntityManager
{
ushort comp = external_dependencies_map.get(cast(const(char)[]) comp_info.type,
ushort.max);
version (D_BetterC)
version (NoDRuntime)
assert(comp != ushort.max,
"Can't register system \"" ~ SystemName
~ "\" due to non existing dependency.");
@ -1211,7 +1213,7 @@ export struct EntityManager
foreach (iii, comp_info; components_info.writableDeps)
{
ushort comp = external_dependencies_map.get(cast(char[]) comp_info.type, ushort.max);
version (D_BetterC)
version (NoDRuntime)
assert(comp != ushort.max,
"Can't register system \"" ~ SystemName
~ "\" due to non existing dependency.");