feat: merge XCBluePrint 3D visualization into project
This commit is contained in:
180
src/data/sampleData.ts
Normal file
180
src/data/sampleData.ts
Normal file
@@ -0,0 +1,180 @@
|
||||
export interface Subsystem {
|
||||
id: string;
|
||||
name: string;
|
||||
responsibilities: string[];
|
||||
provides: string[];
|
||||
depends_on: string[];
|
||||
}
|
||||
|
||||
export interface Module {
|
||||
id: string;
|
||||
name: string;
|
||||
parent_subsystem: string;
|
||||
responsibility: string;
|
||||
public_api: {
|
||||
fn: string;
|
||||
params: { name: string; type: string }[];
|
||||
returns: { type: string };
|
||||
}[];
|
||||
}
|
||||
|
||||
export interface SystemMeta {
|
||||
name: string;
|
||||
version: string;
|
||||
type: string;
|
||||
description: string;
|
||||
target_runtime: string;
|
||||
}
|
||||
|
||||
export interface BlueprintData {
|
||||
meta: SystemMeta;
|
||||
subsystems: Subsystem[];
|
||||
modules: Module[];
|
||||
}
|
||||
|
||||
export const sampleBlueprint: BlueprintData = {
|
||||
meta: {
|
||||
name: 'UnityEngine',
|
||||
version: '0.1.0',
|
||||
type: 'game-engine',
|
||||
description: '轻量级3D游戏引擎,支持场景管理、渲染、物理、脚本系统',
|
||||
target_runtime: 'C++17 / C#'
|
||||
},
|
||||
subsystems: [
|
||||
{
|
||||
id: 'Core',
|
||||
name: 'Core',
|
||||
responsibilities: ['基础数据类型和算法', '内存管理', '平台抽象层'],
|
||||
provides: ['IAllocator', 'IPlatform', 'IFileSystem'],
|
||||
depends_on: []
|
||||
},
|
||||
{
|
||||
id: 'Rendering',
|
||||
name: 'Rendering',
|
||||
responsibilities: ['渲染管线管理', '渲染资源管理', 'Shader管理', 'Camera管理'],
|
||||
provides: ['IRenderPipeline', 'IRenderResource', 'IShader', 'ICamera'],
|
||||
depends_on: ['Core']
|
||||
},
|
||||
{
|
||||
id: 'Physics',
|
||||
name: 'Physics',
|
||||
responsibilities: ['物理模拟', '碰撞检测', '刚体/关节系统'],
|
||||
provides: ['IPhysicsWorld', 'ICollider', 'IRigidbody'],
|
||||
depends_on: ['Core']
|
||||
},
|
||||
{
|
||||
id: 'Scripting',
|
||||
name: 'Scripting',
|
||||
responsibilities: ['脚本生命周期管理', 'C#运行时集成', '组件系统'],
|
||||
provides: ['IScriptRuntime', 'IMonoBehaviour', 'IComponent'],
|
||||
depends_on: ['Core']
|
||||
},
|
||||
{
|
||||
id: 'Scene',
|
||||
name: 'Scene',
|
||||
responsibilities: ['场景图管理', 'GameObject层级管理', '变换层级'],
|
||||
provides: ['IScene', 'IGameObject', 'ITransform'],
|
||||
depends_on: ['Core']
|
||||
},
|
||||
{
|
||||
id: 'Asset',
|
||||
name: 'Asset',
|
||||
responsibilities: ['资源加载/卸载', '资源引用计数', '资源格式支持'],
|
||||
provides: ['IAssetLoader', 'IAssetDatabase'],
|
||||
depends_on: ['Core']
|
||||
},
|
||||
{
|
||||
id: 'Input',
|
||||
name: 'Input',
|
||||
responsibilities: ['输入事件采集', '输入映射'],
|
||||
provides: ['IInputSystem'],
|
||||
depends_on: ['Core']
|
||||
},
|
||||
{
|
||||
id: 'Platform',
|
||||
name: 'Platform',
|
||||
responsibilities: ['平台特定实现', '窗口管理', '主循环'],
|
||||
provides: ['IWindow', 'IApplication'],
|
||||
depends_on: ['Core']
|
||||
}
|
||||
],
|
||||
modules: [
|
||||
{
|
||||
id: 'RHI',
|
||||
name: 'RHI',
|
||||
parent_subsystem: 'Rendering',
|
||||
responsibility: '渲染硬件抽象层',
|
||||
public_api: [
|
||||
{ fn: 'CreateGraphicsPipeline', params: [{ name: 'desc', type: 'GraphicsPipelineDesc' }], returns: { type: 'IPipeline' } },
|
||||
{ fn: 'Draw', params: [{ name: 'pipeline', type: 'IPipeline' }, { name: 'mesh', type: 'IMesh' }], returns: { type: 'void' } }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'RenderPipeline',
|
||||
name: 'RenderPipeline',
|
||||
parent_subsystem: 'Rendering',
|
||||
responsibility: '渲染管线调度',
|
||||
public_api: [
|
||||
{ fn: 'Render', params: [{ name: 'scene', type: 'IScene' }, { name: 'camera', type: 'ICamera' }], returns: { type: 'void' } }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'ShaderManager',
|
||||
name: 'ShaderManager',
|
||||
parent_subsystem: 'Rendering',
|
||||
responsibility: 'Shader编译和缓存',
|
||||
public_api: [
|
||||
{ fn: 'LoadShader', params: [{ name: 'path', type: 'string' }], returns: { type: 'IShader' } }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'PhysicsWorld',
|
||||
name: 'PhysicsWorld',
|
||||
parent_subsystem: 'Physics',
|
||||
responsibility: '物理世界模拟',
|
||||
public_api: [
|
||||
{ fn: 'Step', params: [{ name: 'dt', type: 'float' }], returns: { type: 'void' } }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'MonoBehaviour',
|
||||
name: 'MonoBehaviour',
|
||||
parent_subsystem: 'Scripting',
|
||||
responsibility: '脚本组件基类',
|
||||
public_api: [
|
||||
{ fn: 'Awake', params: [], returns: { type: 'void' } },
|
||||
{ fn: 'Start', params: [], returns: { type: 'void' } },
|
||||
{ fn: 'Update', params: [{ name: 'dt', type: 'float' }], returns: { type: 'void' } }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'Transform',
|
||||
name: 'Transform',
|
||||
parent_subsystem: 'Scene',
|
||||
responsibility: '变换层级管理',
|
||||
public_api: [
|
||||
{ fn: 'SetParent', params: [{ name: 'parent', type: 'ITransform' }], returns: { type: 'void' } },
|
||||
{ fn: 'LocalToWorld', params: [{ name: 'localPos', type: 'vec3' }], returns: { type: 'vec3' } }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'GameObject',
|
||||
name: 'GameObject',
|
||||
parent_subsystem: 'Scene',
|
||||
responsibility: '场景对象管理',
|
||||
public_api: [
|
||||
{ fn: 'AddComponent', params: [{ name: 'type', type: 'type_info' }], returns: { type: 'IComponent' } },
|
||||
{ fn: 'GetComponent', params: [{ name: 'type', type: 'type_info' }], returns: { type: 'IComponent' } }
|
||||
]
|
||||
},
|
||||
{
|
||||
id: 'AssetLoader',
|
||||
name: 'AssetLoader',
|
||||
parent_subsystem: 'Asset',
|
||||
responsibility: '资源异步加载',
|
||||
public_api: [
|
||||
{ fn: 'LoadAsync', params: [{ name: 'path', type: 'string' }], returns: { type: 'AssetFuture' } }
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
Reference in New Issue
Block a user