载入中...
搜索中...
未找到
ECS.h
浏览该文件的文档.
1#pragma once
2
7#include <algorithm> // ECS.hpp 使用 std::all_of(上游头未直接包含)
8#include <functional>
9#include <vector>
10#include "ECS.hpp"
11
12namespace ssq {
13class Table;
14class VM;
15class Array;
16} // namespace ssq
17
18namespace eve {
19
23void exposeECS(ssq::Table& table);
24
26void exposeECSToVM(ssq::VM& vm);
27
33using CppEntityViewFn = std::function<void(ssq::Array& out)>;
34void registerCppEntityView(size_t typeHash, CppEntityViewFn fn);
35
41using PostEcsHook = std::function<void(ssq::Table& table)>;
43
44} // namespace eve
HSQUIRRELVM vm
Definition ECS.cpp:20
SettlementPipeline::Stage fn
Definition Build.cpp:11
void registerPostEcsHook(PostEcsHook fn)
Definition ECS.cpp:594
void exposeECS(ssq::Table &table)
脚本侧 ECS:Entity / Component / System / ShaderSystem / view(见 ECS.cpp)。 C++ 游戏实体仍直接用 ECS....
Definition ECS.cpp:562
std::function< void(ssq::Table &table)> PostEcsHook
在脚本 ECS 基类(eve.Component / eve.Entity / eve.System)注入之后执行的回调。 模块用它注入"extends eve.Entity"的脚本基类(例如 eve....
Definition ECS.h:41
std::function< void(ssq::Array &out)> CppEntityViewFn
C++ 实体 → 脚本 eve.view() 桥接。 用 registerCppEntityView(typeid(T*).hash_code(), fn) 登记 T 的收集函数; 脚本 eve....
Definition ECS.h:33
void exposeECSToVM(ssq::VM &vm)
在 ModuleManager::expose 之后调用;保证 eve.Component 等不被其它模块覆盖。
Definition ECS.cpp:598
void registerCppEntityView(size_t typeHash, CppEntityViewFn fn)
Definition ECS.cpp:590
EVEngine ECS 集成层:底层实现使用 sunxfancy/ECS.hpp https://github.com/sunxfancy/ECS.hpp
Definition ECS.h:12