* refactor: reorganize package structure and decouple framework packages ## Package Structure Reorganization - Reorganized 55 packages into categorized subdirectories: - packages/framework/ - Generic framework (Laya/Cocos compatible) - packages/engine/ - ESEngine core modules - packages/rendering/ - Rendering modules (WASM dependent) - packages/physics/ - Physics modules - packages/streaming/ - World streaming - packages/network-ext/ - Network extensions - packages/editor/ - Editor framework and plugins - packages/rust/ - Rust WASM engine - packages/tools/ - Build tools and SDK ## Framework Package Decoupling - Decoupled behavior-tree and blueprint packages from ESEngine dependencies - Created abstracted interfaces (IBTAssetManager, IBehaviorTreeAssetContent) - ESEngine-specific code moved to esengine/ subpath exports - Framework packages now usable with Cocos/Laya without ESEngine ## CI Configuration - Updated CI to only type-check and lint framework packages - Added type-check:framework and lint:framework scripts ## Breaking Changes - Package import paths changed due to directory reorganization - ESEngine integrations now use subpath imports (e.g., '@esengine/behavior-tree/esengine') * fix: update es-engine file path after directory reorganization * docs: update README to focus on framework over engine * ci: only build framework packages, remove Rust/WASM dependencies * fix: remove esengine subpath from behavior-tree and blueprint builds ESEngine integration code will only be available in full engine builds. Framework packages are now purely engine-agnostic. * fix: move network-protocols to framework, build both in CI * fix: update workflow paths from packages/core to packages/framework/core * fix: exclude esengine folder from type-check in behavior-tree and blueprint * fix: update network tsconfig references to new paths * fix: add test:ci:framework to only test framework packages in CI * fix: only build core and math npm packages in CI * fix: exclude test files from CodeQL and fix string escaping security issue
255 lines
6.8 KiB
TypeScript
255 lines
6.8 KiB
TypeScript
/**
|
|
* @esengine/fairygui
|
|
*
|
|
* FairyGUI ECS integration package.
|
|
* Provides a complete UI system compatible with FairyGUI Editor.
|
|
*
|
|
* FairyGUI ECS 集成包,提供与 FairyGUI 编辑器兼容的完整 UI 系统
|
|
*/
|
|
|
|
// Core classes | 核心类
|
|
export { GObject } from './core/GObject';
|
|
export { GComponent } from './core/GComponent';
|
|
export { GRoot } from './core/GRoot';
|
|
export { GGroup } from './core/GGroup';
|
|
export { Controller } from './core/Controller';
|
|
export { Transition } from './core/Transition';
|
|
export { Timer } from './core/Timer';
|
|
export { Stage, EScaleMode, EAlignMode } from './core/Stage';
|
|
export { UIConfig, getUIConfig, setUIConfig } from './core/UIConfig';
|
|
export { UIObjectFactory } from './core/UIObjectFactory';
|
|
export { GObjectPool } from './core/GObjectPool';
|
|
export { DragDropManager } from './core/DragDropManager';
|
|
export {
|
|
ServiceContainer,
|
|
getGlobalContainer,
|
|
setGlobalContainer,
|
|
EServiceLifecycle,
|
|
Inject
|
|
} from './core/ServiceContainer';
|
|
export type { ServiceIdentifier, ServiceFactory } from './core/ServiceContainer';
|
|
|
|
// Field types | 字段类型
|
|
export {
|
|
EButtonMode,
|
|
EAutoSizeType,
|
|
EAlignType,
|
|
EVertAlignType,
|
|
ELoaderFillType,
|
|
EListLayoutType,
|
|
EListSelectionMode,
|
|
EOverflowType,
|
|
EPackageItemType,
|
|
EObjectType,
|
|
EProgressTitleType,
|
|
EScrollBarDisplayType,
|
|
EScrollType,
|
|
EFlipType,
|
|
EChildrenRenderOrder,
|
|
EGroupLayoutType,
|
|
EPopupDirection,
|
|
ERelationType,
|
|
EFillMethod,
|
|
EFillOrigin,
|
|
EObjectPropID,
|
|
EGearType,
|
|
EEaseType,
|
|
EBlendMode,
|
|
ETransitionActionType,
|
|
EGraphType
|
|
} from './core/FieldTypes';
|
|
|
|
// Display objects | 显示对象
|
|
export { DisplayObject } from './display/DisplayObject';
|
|
export { Container } from './display/Container';
|
|
export { Image } from './display/Image';
|
|
export { TextField } from './display/TextField';
|
|
export { Graph } from './display/Graph';
|
|
export { MovieClip } from './display/MovieClip';
|
|
export type { IFrame, SimpleHandler } from './display/MovieClip';
|
|
export { InputTextField } from './display/InputTextField';
|
|
|
|
// Widgets | 控件
|
|
export { GImage } from './widgets/GImage';
|
|
export { GTextField } from './widgets/GTextField';
|
|
export { GGraph } from './widgets/GGraph';
|
|
export { GButton } from './widgets/GButton';
|
|
export { GProgressBar } from './widgets/GProgressBar';
|
|
export { GSlider } from './widgets/GSlider';
|
|
export { GLoader } from './widgets/GLoader';
|
|
export { GMovieClip } from './widgets/GMovieClip';
|
|
export { GList } from './widgets/GList';
|
|
export type { ItemRenderer, ItemProvider } from './widgets/GList';
|
|
export { GTextInput, EKeyboardType } from './widgets/GTextInput';
|
|
export { PopupMenu } from './widgets/PopupMenu';
|
|
export { Window } from './widgets/Window';
|
|
export type { IUISource } from './widgets/Window';
|
|
|
|
// Events | 事件
|
|
export { EventDispatcher } from './events/EventDispatcher';
|
|
export type { TypedEventListener, EventListener, FGUIEventType, IEventContext } from './events/EventDispatcher';
|
|
export { FGUIEvents } from './events/Events';
|
|
export type { IInputEventData } from './events/Events';
|
|
|
|
// Layout | 布局
|
|
export { Relations } from './layout/Relations';
|
|
export { RelationItem } from './layout/RelationItem';
|
|
|
|
// Gears | 齿轮
|
|
export {
|
|
GearBase,
|
|
GearTweenConfig,
|
|
GearDisplay,
|
|
GearDisplay2,
|
|
GearXY,
|
|
GearSize,
|
|
GearLook,
|
|
GearColor,
|
|
GearText,
|
|
GearIcon,
|
|
GearFontSize,
|
|
GearAnimation
|
|
} from './gears';
|
|
|
|
// Scroll | 滚动
|
|
export { ScrollPane } from './scroll/ScrollPane';
|
|
|
|
// Package | 包管理
|
|
export { UIPackage } from './package/UIPackage';
|
|
export { PackageItem } from './package/PackageItem';
|
|
|
|
// Utils | 工具
|
|
export { Point, Rectangle, Margin } from './utils/MathTypes';
|
|
export type { IPoint, IRectangle } from './utils/MathTypes';
|
|
export { ByteBuffer } from './utils/ByteBuffer';
|
|
|
|
// Binding | 绑定
|
|
export {
|
|
ObservableProperty,
|
|
ComputedProperty,
|
|
PropertyBinder
|
|
} from './binding/PropertyBinding';
|
|
export type {
|
|
IObservableProperty,
|
|
IWritableProperty,
|
|
IPropertySubscription,
|
|
PropertyChangeCallback
|
|
} from './binding/PropertyBinding';
|
|
|
|
// Render | 渲染
|
|
export { RenderCollector } from './render/RenderCollector';
|
|
export { RenderBridge } from './render/RenderBridge';
|
|
export { Canvas2DBackend } from './render/Canvas2DBackend';
|
|
export {
|
|
DOMTextRenderer,
|
|
getDOMTextRenderer,
|
|
setDOMTextRenderer
|
|
} from './render/DOMTextRenderer';
|
|
export type { ICameraState } from './render/DOMTextRenderer';
|
|
export {
|
|
FGUIRenderDataProvider,
|
|
createFGUIRenderDataProvider
|
|
} from './render/FGUIRenderDataProvider';
|
|
export type {
|
|
IEngineRenderData,
|
|
ITextRenderData,
|
|
IMeshRenderData,
|
|
IFGUIRenderDataProvider,
|
|
TextureResolverFn
|
|
} from './render/FGUIRenderDataProvider';
|
|
export type {
|
|
IRenderCollector,
|
|
IRenderPrimitive,
|
|
ERenderPrimitiveType,
|
|
ETextAlign,
|
|
ETextVAlign
|
|
} from './render/IRenderCollector';
|
|
export type {
|
|
IRenderBackend,
|
|
IRenderStats,
|
|
ITextureHandle,
|
|
IFontHandle,
|
|
RenderBackendFactory
|
|
} from './render/IRenderBackend';
|
|
|
|
// Tween | 补间动画
|
|
export { GTween } from './tween/GTween';
|
|
export { GTweener } from './tween/GTweener';
|
|
export type { TweenCallback } from './tween/GTweener';
|
|
export { TweenManager } from './tween/TweenManager';
|
|
export { TweenValue } from './tween/TweenValue';
|
|
export { evaluateEase } from './tween/EaseType';
|
|
|
|
// Text | 文本渲染
|
|
export {
|
|
MSDFFont,
|
|
MSDFFontManager,
|
|
getMSDFFontManager,
|
|
layoutText,
|
|
measureText,
|
|
createTextBatch,
|
|
mergeTextBatches,
|
|
MSDFFontLoader,
|
|
loadMSDFFont,
|
|
createFontData,
|
|
BitmapFont,
|
|
BitmapFontManager,
|
|
getBitmapFontManager,
|
|
convertBitmapToMSDFFormat,
|
|
DynamicFont,
|
|
DynamicFontManager,
|
|
getDynamicFontManager,
|
|
COMMON_CJK_CHARS,
|
|
COMMON_ASCII_CHARS
|
|
} from './text';
|
|
export type {
|
|
IMSDFGlyph,
|
|
IMSDFKerning,
|
|
IMSDFFontAtlas,
|
|
IMSDFFontMetrics,
|
|
IMSDFFontData,
|
|
IPositionedGlyph,
|
|
ITextLayoutOptions,
|
|
ITextLayoutResult,
|
|
ITextBatchData,
|
|
ITextBatchOptions,
|
|
IFontLoadResult,
|
|
IBitmapGlyph,
|
|
IBitmapFontData,
|
|
IDynamicFontConfig,
|
|
TextureUploadCallback
|
|
} from './text';
|
|
|
|
// Asset | 资产
|
|
export {
|
|
FUIAssetLoader,
|
|
fuiAssetLoader,
|
|
FGUITextureManager,
|
|
getFGUITextureManager,
|
|
createTextureResolver,
|
|
setGlobalTextureService,
|
|
getGlobalTextureService
|
|
} from './asset';
|
|
export type {
|
|
IFUIAsset,
|
|
IAssetLoader,
|
|
IAssetContent,
|
|
IAssetParseContext,
|
|
ITextureService
|
|
} from './asset';
|
|
|
|
// ECS Integration | ECS 集成
|
|
export {
|
|
FGUIComponent,
|
|
FGUIRenderSystem,
|
|
FGUIRenderSystemToken,
|
|
getFGUIRenderSystem,
|
|
setFGUIRenderSystem,
|
|
FGUIRuntimeModule,
|
|
FGUIPlugin
|
|
} from './ecs';
|
|
export type { IFGUIComponentData, RenderSubmitCallback } from './ecs';
|
|
|
|
// Internal wiring (breaks circular dependencies)
|
|
import './core/init';
|