* refactor(engine): 重构2D渲染管线坐标系统 * feat(engine): 完善2D渲染管线和编辑器视口功能 * feat(editor): 实现Viewport变换工具系统 * feat(editor): 优化Inspector渲染性能并修复Gizmo变换工具显示 * feat(editor): 实现Run on Device移动预览功能 * feat(editor): 添加组件属性控制和依赖关系系统 * feat(editor): 实现动画预览功能和优化SpriteAnimator编辑器 * feat(editor): 修复SpriteAnimator动画预览功能并迁移CI到pnpm * feat(editor): 修复SpriteAnimator动画预览并迁移到pnpm * feat(editor): 修复SpriteAnimator动画预览并迁移到pnpm * feat(editor): 修复SpriteAnimator动画预览并迁移到pnpm * feat(editor): 修复SpriteAnimator动画预览并迁移到pnpm * feat(ci): 迁移项目到pnpm并修复CI构建问题 * chore: 迁移CI工作流到pnpm并添加WASM构建支持 * chore: 迁移CI工作流到pnpm并添加WASM构建支持 * chore: 迁移CI工作流到pnpm并添加WASM构建支持 * chore: 迁移CI工作流到pnpm并添加WASM构建支持 * chore: 迁移CI工作流到pnpm并添加WASM构建支持 * chore: 迁移CI工作流到pnpm并添加WASM构建支持 * chore: 移除 network 相关包 * chore: 移除 network 相关包
31 lines
1016 B
TypeScript
31 lines
1016 B
TypeScript
import { ReactElement } from 'react';
|
|
|
|
export interface PropertyContext {
|
|
readonly name: string;
|
|
readonly path?: string[];
|
|
readonly depth?: number;
|
|
readonly readonly?: boolean;
|
|
readonly decimalPlaces?: number;
|
|
readonly expandByDefault?: boolean;
|
|
readonly parentObject?: any;
|
|
readonly metadata?: Record<string, any>;
|
|
}
|
|
|
|
export interface IPropertyRenderer<T = any> {
|
|
readonly id: string;
|
|
readonly name: string;
|
|
readonly priority?: number;
|
|
|
|
canHandle(value: any, context: PropertyContext): value is T;
|
|
render(value: T, context: PropertyContext): ReactElement;
|
|
}
|
|
|
|
export interface IPropertyRendererRegistry {
|
|
register(renderer: IPropertyRenderer): void;
|
|
unregister(rendererId: string): void;
|
|
findRenderer(value: any, context: PropertyContext): IPropertyRenderer | undefined;
|
|
render(value: any, context: PropertyContext): ReactElement | null;
|
|
getAllRenderers(): IPropertyRenderer[];
|
|
hasRenderer(value: any, context: PropertyContext): boolean;
|
|
}
|