API 与集成
数据模型
GemState
GemState 是存储在装备 PDC 中的宝石状态数据,记录了这件装备上所有孔位的开启和镶嵌情况:
java
public record GemState(
String itemDefinitionId, // 装备模板 ID
Set<Integer> openedSlotIndexes, // 已开启的孔位索引集合
Map<Integer, GemItemInstance> socketAssignments, // 孔位 → 镶嵌的宝石实例
long updatedAt // 最后更新时间戳
)GemItemInstance
每颗镶嵌在孔位中的宝石用 GemItemInstance 表示:
java
public record GemItemInstance(
String gemId, // 宝石定义 ID
int level, // 宝石等级
long updatedAt // 镶嵌/升级时间戳
)通过 PdcService 读取宝石数据
java
PdcService pdcService = EmakiServiceRegistry.get(PdcService.class);
Map<String, Object> auditMap = pdcService.readAuditMap(itemStack, "gem");
// auditMap 包含:
// - "item_definition_id": 装备模板 ID
// - "opened_slots": 已开孔索引列表
// - "socket_assignments": 孔位 → 宝石实例映射
// - "updated_at": 最后更新时间戳PDC 数据结构
宝石数据通过 PDC 存储在装备物品上,数据跟着物品走。
| 字段 | 类型 | 说明 |
|---|---|---|
item_definition_id | String | 装备模板 ID |
opened_slots | List<Integer> | 已开启的孔位索引列表 |
socket_assignments | Map | 孔位索引 → 宝石实例(含 gem_id、level、updated_at) |
updated_at | Long | 最后更新时间戳 |