MCPcopy Create free account
hub / github.com/esengine/esengine / FGUIRuntimeModule

Class FGUIRuntimeModule

packages/fairygui/src/ecs/FGUIRuntimeModule.ts:28–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26 * 实现 IRuntimeModule 的 FairyGUI 集成模块
27 */
28export class FGUIRuntimeModule implements IRuntimeModule {
29 private _renderSystem: FGUIRenderSystem | null = null;
30 private _loaderRegistered = false;
31
32 /**
33 * Register components to ComponentRegistry
34 * 注册组件到 ComponentRegistry
35 */
36 registerComponents(registry: IComponentRegistry): void {
37 registry.register(FGUIComponent);
38 }
39
40 /**
41 * Create systems for scene
42 * 为场景创建系统
43 */
44 createSystems(scene: IScene, context: SystemContext): void {
45 // Get asset manager from service registry
46 const assetManager = context.services.get(AssetManagerToken);
47
48 // Register FUI asset loader
49 if (!this._loaderRegistered && assetManager) {
50 const loader = new FUIAssetLoader();
51 (assetManager as IAssetManager).registerLoader(FUI_ASSET_TYPE, loader);
52 this._loaderRegistered = true;
53 }
54
55 // Create and add FGUIUpdateSystem
56 const updateSystem = new FGUIUpdateSystem();
57 if (assetManager) {
58 updateSystem.setAssetManager(assetManager as IAssetManager);
59 }
60 scene.addSystem(updateSystem);
61 }
62
63 /**
64 * Called after all systems are created
65 * 所有系统创建完成后调用
66 */
67 onSystemsCreated(_scene: IScene, context: SystemContext): void {
68 // Create render system (not an EntitySystem, handles its own update)
69 this._renderSystem = new FGUIRenderSystem();
70
71 // Set asset manager for the render system
72 const assetManager = context.services.get(AssetManagerToken);
73 if (assetManager) {
74 this._renderSystem.setAssetManager(assetManager as IAssetManager);
75 }
76
77 // Bind Stage to canvas for input events
78 const canvas = context.services.get(CanvasElementToken);
79 if (canvas) {
80 Stage.inst.bindToCanvas(canvas);
81 }
82
83 // Initialize dynamic font system with system default font
84 // 使用系统默认字体初始化动态字体系统
85 this.initDynamicFonts();

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected