From e7e5ea78470dac76cf68e07c7bcd5e7deebca914 Mon Sep 17 00:00:00 2001 From: Steven Hugg Date: Thu, 24 Feb 2022 10:06:20 -0600 Subject: [PATCH] ecs: skip parsing demo if not in main file --- src/common/ecs/README.md | 5 +++++ src/common/ecs/compiler.ts | 36 ++++++++++++++++++++++++++---------- src/common/ecs/ecs.ts | 24 +++++++++++++++++++++--- src/test/testecs.ts | 4 ++-- src/worker/tools/ecs.ts | 4 ++-- 5 files changed, 56 insertions(+), 17 deletions(-) diff --git a/src/common/ecs/README.md b/src/common/ecs/README.md index e461202d..7e72edb6 100644 --- a/src/common/ecs/README.md +++ b/src/common/ecs/README.md @@ -184,3 +184,8 @@ end ldy {{= 0 && iend > istart) { @@ -1729,10 +1734,23 @@ export class EntityManager { } } } + *iterateScopes() { + for (let scope of Object.values(this.topScopes)) { + yield scope; + scope.iterateChildScopes(); + } + } getDebugTree() : {} { let scopes = this.topScopes; let components = this.components; + let fields = this.name2cfpairs; let systems = this.systems; - return { scopes, components, systems }; + let events = this.event2systems; + let entities : {[key:string]:Entity} = {}; + for (let scope of Array.from(this.iterateScopes())) { + for (let e of scope.entities) + entities[e.name || '#'+e.id.toString()] = e; + } + return { scopes, components, fields, systems, events, entities }; } } diff --git a/src/test/testecs.ts b/src/test/testecs.ts index 6936fe0c..0d64ea96 100644 --- a/src/test/testecs.ts +++ b/src/test/testecs.ts @@ -8,7 +8,7 @@ import { Dialect_CA65, EntityManager, SourceFileExport } from "../common/ecs/ecs function testCompiler() { let em = new EntityManager(new Dialect_CA65()); // TODO - let c = new ECSCompiler(em); + let c = new ECSCompiler(em, true); try { c.parseFile(` // comment @@ -93,7 +93,7 @@ describe('Compiler', function() { let dialect = new Dialect_CA65(); let em = new EntityManager(dialect); em.mainPath = ecspath; - let compiler = new ECSCompiler(em); + let compiler = new ECSCompiler(em, true); compiler.getImportFile = (path: string) => { return readFileSync(testdir + path, 'utf-8'); } diff --git a/src/worker/tools/ecs.ts b/src/worker/tools/ecs.ts index 443daac7..040d1b94 100644 --- a/src/worker/tools/ecs.ts +++ b/src/worker/tools/ecs.ts @@ -6,7 +6,7 @@ import { BuildStep, BuildStepResult, fixParamsWithDefines, gatherFiles, getWorkF export function assembleECS(step: BuildStep): BuildStepResult { let em = new EntityManager(new Dialect_CA65()); // TODO - let compiler = new ECSCompiler(em); + let compiler = new ECSCompiler(em, true); compiler.getImportFile = (path: string) => { return getWorkFileAsString(path); } @@ -17,7 +17,7 @@ export function assembleECS(step: BuildStep): BuildStepResult { let code = getWorkFileAsString(step.path); fixParamsWithDefines(step.path, step.params); try { - compiler.debuginfo = true; + compiler.includeDebugInfo = true; compiler.parseFile(code, step.path); let outtext = compiler.export().toString(); putWorkFile(destpath, outtext);