@gdquest/gd-exercise
Version:
Core package that handles logic for the GDExercise project.
71 lines • 2.6 kB
text/typescript
import { EventEmitter } from "eventemitter3";
import { type Godot } from "@gdquest/gd-types";
import { CodeController } from "./code.mts";
import { GdPlayerController } from "./gdplayer.mts";
import { type GdExerciseFile, type GdExerciseLog } from "../utils.mts";
import { ConsoleController } from "./console.mts";
import { TestController } from "./test.mts";
export interface ControllerConstructorParams extends CreateMainControllerOptions {
projectUrl: string;
mainScene: string;
projectFiles: Map<string, GdExerciseFile>;
}
export interface MainControllerEvents {
ready: () => void;
}
export declare class MainController extends EventEmitter<MainControllerEvents> {
projectId: string;
_projectUrl: string;
_project: string;
_mainScene: string;
_files: CreateMainControllerFile[];
_Engine: Godot.EngineClass;
_projectFiles: Map<string, GdExerciseFile>;
_size: Record<string, number>;
get canRestart(): boolean;
_codeController: CodeController;
get codeController(): CodeController;
set codeController(_: CodeController);
_gdPlayerController: GdPlayerController;
get gdPlayerController(): GdPlayerController;
set gdPlayerController(_: GdPlayerController);
_testController: TestController;
get testController(): TestController;
set testController(_: TestController);
_consoleController: ConsoleController;
get consoleController(): ConsoleController;
set consoleController(_: ConsoleController);
_snippet: string;
get isSnippet(): boolean;
set isSnippet(_: boolean);
constructor(options: ControllerConstructorParams);
_loadProjectFiles(): Promise<void>;
_launchGdPlayer(): Promise<void>;
_onGdPlayerLog(message: string): Promise<void>;
_onGdPlayerLogError(message: string): Promise<void>;
_onLogTest(entry: GdExerciseLog): void;
loadFile(file: GdExerciseFile): Promise<void>;
save(): void;
revert(): void;
dispose(): void;
restart(): void;
setDarkMode(enabled: boolean): void;
logTest(entry: GdExerciseLog): void;
}
export interface CreateMainControllerFile {
path: string;
focus: boolean;
override: string | null;
}
export interface CreateMainControllerOptions {
projectUrl: string;
project: string;
mainScene: string;
files: CreateMainControllerFile[];
Engine: Godot.EngineClass;
isDarkMode?: boolean;
size: Record<string, number>;
snippet?: string;
}
export declare function createMainController(options: CreateMainControllerOptions): Promise<MainController>;
//# sourceMappingURL=main.d.mts.map