Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 5 additions & 8 deletions packages/asset-manager/test/asset-manager.library.spec.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
import {
ApplicationContext,
type IConfigRegistry,
InitContext,
LibraryManager,
} from "@nanoforge/common";
import { type IConfigRegistry, InitContext } from "@nanoforge/common";
import { EditableApplicationContext } from "@nanoforge/core/src/common/context/contexts/application.editable-context";
import { EditableLibraryManager } from "@nanoforge/core/src/common/library/manager/library.manager";

import { AssetManagerLibrary } from "../src";

describe("Asset Manager Library", () => {
const library = new AssetManagerLibrary();
const appContext = new ApplicationContext();
const libraryManager = new LibraryManager();
const libraryManager = new EditableLibraryManager();
const appContext = new EditableApplicationContext(libraryManager);
const configRegistry = {} as IConfigRegistry;
const context = new InitContext(appContext, libraryManager, configRegistry, {
// @ts-ignore
Expand Down
9 changes: 8 additions & 1 deletion packages/asset-manager/test/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
{
"extends": "../../../tsconfig.spec.json"
"extends": "../../../tsconfig.spec.json",
"compilerOptions": {
"paths": {
"@nanoforge/common": ["./packages/common"],
"@nanoforge/core": ["./packages/core"],
"@nanoforge/core/*": ["./packages/core/*"]
}
}
}
4 changes: 3 additions & 1 deletion packages/common/src/context/contexts/application.context.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export class ApplicationContext {
export abstract class ApplicationContext {
private _isRunning: boolean = false;

get isRunning(): boolean {
Expand All @@ -8,4 +8,6 @@ export class ApplicationContext {
setIsRunning(value: boolean): void {
this._isRunning = value;
}

abstract muteSoundLibraries(): void;
}
4 changes: 0 additions & 4 deletions packages/core/src/application/application-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,4 @@ export class ApplicationConfig {
public useMusicLibrary(library: IMusicLibrary) {
this._libraryManager.setMusic(library);
}

public getMutableLibraries() {
return this._libraryManager.getMutableLibraries();
}
}
7 changes: 5 additions & 2 deletions packages/core/src/application/nanoforge-application.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import {
ApplicationContext,
type IAssetManagerLibrary,
type IComponentSystemLibrary,
type ILibrary,
type INetworkLibrary,
type IRunOptions,
} from "@nanoforge/common";

import { EditableApplicationContext } from "../common/context/contexts/application.editable-context";
import { Core } from "../core/core";
import { ApplicationConfig } from "./application-config";
import type { IApplicationOptions } from "./application-options.type";
Expand Down Expand Up @@ -43,7 +43,10 @@ export abstract class NanoforgeApplication {
}

public init(options: IRunOptions): Promise<void> {
this._core = new Core(this.applicationConfig, new ApplicationContext());
this._core = new Core(
this.applicationConfig,
new EditableApplicationContext(this.applicationConfig.libraryManager),
);
return this._core.init(options, this._options);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
import { ApplicationContext } from "@nanoforge/common";

export class EditableApplicationContext extends ApplicationContext {}
import { type EditableLibraryManager } from "../../library/manager/library.manager";

export class EditableApplicationContext extends ApplicationContext {
private _libraryManager: EditableLibraryManager;

constructor(libraryManager: EditableLibraryManager) {
super();
this._libraryManager = libraryManager;
}

muteSoundLibraries(): void {
this._libraryManager.getMutableLibraries().forEach((lib) => lib.library.mute());
}
}
7 changes: 0 additions & 7 deletions packages/core/src/core/core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,6 @@ export class Core {
const intervalHandle = setInterval(render, 1000 / this.options.tickRate);
}

/**
* mutes / unmutes mutable libraries all at once.
*/
public mute(): void {
this.config.getMutableLibraries().map((x) => x.library.mute());
}

private getInitContext(options: IRunOptions): InitContext {
return new InitContext(this.context, this.config.libraryManager, this._configRegistry, options);
}
Expand Down
10 changes: 3 additions & 7 deletions packages/ecs/test/ecs-library.spec.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
import { AssetManagerLibrary } from "@nanoforge/asset-manager";
import {
ApplicationContext,
ClearContext,
type IConfigRegistry,
InitContext,
} from "@nanoforge/common";
import { ClearContext, type IConfigRegistry, InitContext } from "@nanoforge/common";
import { EditableApplicationContext } from "@nanoforge/core/src/common/context/contexts/application.editable-context";
import { EditableLibraryManager } from "@nanoforge/core/src/common/library/manager/library.manager";
import { type ECSRegistry } from "@nanoforge/ecs";
import { ECSLibrary } from "@nanoforge/ecs/src/ecs-library";
Expand All @@ -24,8 +20,8 @@ describe("ECSLibrary", () => {
let ecs: ECSLibrary;
let registry: ECSRegistry;
const assetManager = new AssetManagerLibrary();
const appContext = new ApplicationContext();
const libraryManager = new EditableLibraryManager();
const appContext = new EditableApplicationContext(libraryManager);
const configRegistry = {} as IConfigRegistry;
const initContext = new InitContext(appContext, libraryManager, configRegistry, {
// @ts-ignore
Expand Down
13 changes: 5 additions & 8 deletions packages/graphics-2d/test/graphics-2d.library.spec.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
import {
ApplicationContext,
type IConfigRegistry,
InitContext,
LibraryManager,
} from "@nanoforge/common";
import { type IConfigRegistry, InitContext } from "@nanoforge/common";
import { EditableApplicationContext } from "@nanoforge/core/src/common/context/contexts/application.editable-context";
import { EditableLibraryManager } from "@nanoforge/core/src/common/library/manager/library.manager";

import { Graphics2DLibrary } from "../src/graphics-2d.library";

describe("Graphics 2D Library", () => {
const library = new Graphics2DLibrary();
const appContext = new ApplicationContext();
const libraryManager = new LibraryManager();
const libraryManager = new EditableLibraryManager();
const appContext = new EditableApplicationContext(libraryManager);
const configRegistry = {} as IConfigRegistry;
const context = new InitContext(appContext, libraryManager, configRegistry, {
// @ts-ignore
Expand Down
7 changes: 6 additions & 1 deletion packages/graphics-2d/test/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
{
"extends": "../../../tsconfig.spec.json",
"compilerOptions": {
"types": ["jest", "node", "@webgpu/types"]
"types": ["jest", "node", "@webgpu/types"],
"paths": {
"@nanoforge/common": ["./packages/common"],
"@nanoforge/core": ["./packages/core"],
"@nanoforge/core/*": ["./packages/core/*"]
}
}
}
Loading