载入中...
搜索中...
未找到
ECS.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
9#include <algorithm> // ECS.hpp 使用 std::all_of(上游头未直接包含)
10#include <functional>
11#include <vector>
12#include "ECS.hpp"
13
14namespace ssq {
15class Table;
16class VM;
17class Array;
18class Class;
19} // namespace ssq
20
21namespace eve {
22
26void exposeECS(ssq::Table& table);
27
30
32void exposeECSToVM(ssq::VM& vm);
33
39using CppEntityViewFn = std::function<void(ssq::Array& out)>;
42
48using PostEcsHook = std::function<void(ssq::Table& table)>;
51
59void flushPostEcsHooks(ssq::Table& table);
60
61} // namespace eve
HSQUIRRELVM vm
Definition ECS.cpp:20
HSQOBJECT cls
Definition ECS.cpp:21
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
Definition Export.h:106
Build metadata (engine git commit, build time, third-party version).
Definition Build.cpp:16
void prepareEcsScriptInjection()
Resets per-VM script injection bookkeeping before a new VM is exposed.
Definition ECS.cpp:853
void flushPostEcsHooks(ssq::Table &table)
Run post-ECS hooks that were registered after exposeECS already ran.
Definition ECS.cpp:869
void exposeECS(ssq::Table &table)
脚本侧 ECS:Entity / Component / System / ShaderSystem / view(见 ECS.cpp)。 C++ 游戏实体仍直接用 ECS....
Definition ECS.cpp:829
void registerPostEcsHook(PostEcsHook fn)
Registers post ecs hook.
Definition ECS.cpp:865
std::function< void(ssq::Table &table)> PostEcsHook
在脚本 ECS 基类(eve.Component / eve.Entity / eve.System)注入之后执行的回调。 模块用它注入"extends eve.Entity"的脚本基类(例如 eve....
Definition ECS.h:48
std::function< void(ssq::Array &out)> CppEntityViewFn
C++ 实体 → 脚本 eve.view() 桥接。 用 registerCppEntityView(cls, fn) 登记脚本类的收集函数; 脚本 eve.view(cls) 沿类链找到登记的 C++...
Definition ECS.h:39
void exposeECSToVM(ssq::VM &vm)
在 ModuleManager::expose 之后调用;保证 eve.Component 等不被其它模块覆盖。
Definition ECS.cpp:883
void registerCppEntityView(const ssq::Class &cls, CppEntityViewFn fn)
Registers cpp entity view.
Definition ECS.cpp:861
EVEngine ECS 集成层:底层实现使用 sunxfancy/ECS.hpp https://github.com/sunxfancy/ECS.hpp
Definition ECS.h:14
SettlementPipeline::Stage fn