refactor(04-16): 渲染端去单例化第二步(挂载到主类)

This commit is contained in:
AncTe committed 2026-10-01 19:15:12 +08:00
1 parent 6cff48741a
commit d306d11bce
3 files changed
+265

No files matched your search

@@ -37,6 +37,8 @@ import {
VARIATOR_DEBUG_SPEED
} from './shared';
import { WebLoadStarter } from '@motajs/loader';
import { IRendererUsing, RendererUsing } from '@motajs/render-vue';
import { UIController } from '@motajs/system';
export class ClientCore extends CoreState implements IClientCore {
// Layer 4 渲染基础层
@@ -48,8 +50,11 @@ export class ClientCore extends CoreState implements IClientCore {
readonly rafExcitation: IExcitation<number>;
readonly excitationDivider: IExcitationDivider<number>;
readonly renderer: IRenderTreeRoot;
readonly using: IRendererUsing;
readonly mainMapRenderer: IMapRenderer;
readonly mainMapExtension: IMapExtensionManager;
readonly sceneController: UIController;
readonly mainUIController: UIController;
readonly audioContext: IMotaAudioContext;
readonly soundPlayer: ISoundPlayer<SoundIds>;
@@ -112,8 +117,11 @@ export class ClientCore extends CoreState implements IClientCore {
// 使用分频器,用户可以在设置中调整,如果设备性能较差调高分频有助于提高性能表现
excitaion: excitationDivider
});
this.using = new RendererUsing(this.renderer);
this.mainMapRenderer = new MapRenderer(this.materials);
this.mainMapExtension = new MapExtensionManager(this.mainMapRenderer);
this.sceneController = new UIController('main-scene');
this.mainUIController = new UIController('main-ui');
//#endregion
@@ -1,5 +1,7 @@
import { IClientSystem } from '@user/client-system';
import { IMapExtensionManager, IMapRenderer } from '@user/client-base';
import { IRendererUsing } from '@motajs/render-vue';
import { UIController } from '@motajs/system';
export interface IClientCoreConfig {
/** 渲染端数据配置文件路径,相对于 `src/content` */
@@ -17,4 +19,10 @@ export interface IClientCore extends IClientSystem {
// readonly expandMapRenderer: IMapRenderer;
/** 主地图渲染器的拓展管理对象 */
readonly mainMapExtension: IMapExtensionManager;
/** 渲染器使用对象,供组件内注册渲染激励与事件监听 */
readonly using: IRendererUsing;
/** 主场景的 UI 控制器,管理游戏主场景的 UI 显示 */
readonly sceneController: UIController;
/** 主界面的 UI 控制器,管理游戏主界面的 UI 显示 */
readonly mainUIController: UIController;
}