载入中...
搜索中...
未找到
#include <algorithm>#include <functional>#include <vector>#include "ECS.hpp"命名空间 | |
| namespace | ssq |
| EVEngine ECS 集成层:底层实现使用 sunxfancy/ECS.hpp https://github.com/sunxfancy/ECS.hpp | |
| namespace | eve |
类型定义 | |
| using | eve::CppEntityViewFn = std::function< void(ssq::Array &out)> |
| C++ 实体 → 脚本 eve.view() 桥接。 用 registerCppEntityView(typeid(T*).hash_code(), fn) 登记 T 的收集函数; 脚本 eve.view(cls) 沿类链找到登记的 C++ 类型后调用 fn 填充输出数组。 | |
| using | eve::PostEcsHook = std::function< void(ssq::Table &table)> |
| 在脚本 ECS 基类(eve.Component / eve.Entity / eve.System)注入之后执行的回调。 模块用它注入"extends eve.Entity"的脚本基类(例如 eve.SceneEntity)。 在 exposeECS / exposeECSToVM 末尾运行,早于任何游戏脚本。 | |
函数 | |
| void | eve::exposeECS (ssq::Table &table) |
| 脚本侧 ECS:Entity / Component / System / ShaderSystem / view(见 ECS.cpp)。 C++ 游戏实体仍直接用 ECS.hpp 的 ENTITY / COMPONENT / View。 GPU System:eve.ShaderSystem + gpgpu::ShaderSystem / EcsGpu.h。 | |
| void | eve::exposeECSToVM (ssq::VM &vm) |
| 在 ModuleManager::expose 之后调用;保证 eve.Component 等不被其它模块覆盖。 | |
| void | eve::registerCppEntityView (size_t typeHash, CppEntityViewFn fn) |
| void | eve::registerPostEcsHook (PostEcsHook fn) |