MassAPIEnums.h
Source/MassAPI/Public/MassAPIEnums.h
概述 Overview
MassAPI 的两个数据源/标志枚举。EMassFragmentSourceDataType 是非 UENUM 的普通枚举,描述操作的目标数据形态(实体、模板、数组);EEntityFlags 是暴露给蓝图的 UENUM(BlueprintType),定义实体动态标志的 128 个位位置——索引 0–63 映射到 FEntityFlagFragment::Flags(低位 int64),64–127 映射到 FlagsHigh(高位 int64)。
MassAPI's two data-source / flag enums. EMassFragmentSourceDataType is a plain (non-UENUM) enum describing the target data shape of an operation (entity, template, array); EEntityFlags is a UENUM(BlueprintType) defining the 128 bit positions of entity dynamic flags — indices 0–63 map to FEntityFlagFragment::Flags (low int64), 64–127 map to FlagsHigh (high int64).
EMassFragmentSourceDataType enum class
非反射的普通 enum class : uint8,标识 fragment 操作的源数据形态。未被 MassAPI 本体函数使用(源码注释标注),为框架预留的数据源类型描述。
Plain non-reflected enum class : uint8 identifying the source data shape of a fragment operation. Not used by MassAPI's own functions (per source comments); reserved as a data-source type description for the framework.
| 值 Value | 说明 Description |
|---|---|
None | 未连接或无效。Not connected or invalid. |
EntityHandle | FEntityHandle —— 用于修改单个实体。FEntityHandle — for modifying a single entity. |
EntityTemplateData | FEntityTemplateData —— 用于修改单个模板。FEntityTemplateData — for modifying a single template. |
EntityHandleArray | TArray<FEntityHandle> —— 用于修改多个实体。TArray<FEntityHandle> — for modifying multiple entities. |
EntityTemplateDataArray | TArray<FEntityTemplateData> —— 用于修改多个模板。TArray<FEntityTemplateData> — for modifying multiple templates. |
EEntityFlags UENUM
实体可拥有的动态标志位(最多 128 个)。这是一个标准的 uint8 UENUM(BlueprintType),用于在蓝图中填充数组;运行时 C++ 逻辑将其索引 0–63 转换为低位 int64 位掩码(FEntityFlagFragment::Flags),索引 64–127 转换为高位位掩码(FlagsHigh)。值枚举 Flag0–Flag63 为低位,Flag64–Flag127 为高位;末尾的 EEntityFlags_MAX(Hidden)必须保持最后,用于计数与越界守卫。
Dynamic flags an entity can own (up to 128). A standard uint8 UENUM(BlueprintType) intended for Blueprint arrays; runtime C++ converts indices 0–63 to the low int64 bitmask (FEntityFlagFragment::Flags) and 64–127 to the high bitmask (FlagsHigh). Values Flag0–Flag63 are low bits, Flag64–Flag127 high bits; the trailing EEntityFlags_MAX (Hidden) must stay last for counting and out-of-range guards.
| 值 Value | 说明 Description |
|---|---|
Flag0 – Flag63 | 低位标志位(共 64 个),存储于 FEntityFlagFragment::Flags(int64 位掩码)。Low flag bits (64 total), stored in FEntityFlagFragment::Flags (int64 bitmask). |
Flag64 – Flag127 | 高位标志位(共 64 个),存储于 FEntityFlagFragment::FlagsHigh(int64 位掩码)。High flag bits (64 total), stored in FEntityFlagFragment::FlagsHigh (int64 bitmask). |
EEntityFlags_MAX (Hidden) | 必须是最后一个,用于计数与合法性检查(所有 flag 操作的越界守卫均以 >= EEntityFlags_MAX 判断)。Must be last; used for counting and validity checks (all flag operations guard with >= EEntityFlags_MAX). |
补充说明 Notes
标志位与 FEntityFlagFragment(见 MassAPIStructs.h)配合使用:该 fragment 是「不引起 Archetype 迁移」的动态标志存储,用两个 int64 承载 128 位并带原子自旋锁。
The flags pair with FEntityFlagFragment (see MassAPIStructs.h): that fragment stores dynamic flags without causing archetype migration, using two int64 bitmasks plus an atomic spinlock.