ObjectTagsMutation
基本信息
net.glease.tc4tweak.modules.objectTag.ObjectTagsMutation ——
记录 ObjectTagsCache 的写入变更,支持撤销与重载。
接线方式
变更由 GetObjectTags.InterceptingConcurrentHashMap.put(覆写 put)触发 ——
即「往要素映射里写」这一动作被本类记录,而不是缓存自己感知。
为什么需要变更追踪
要素映射会被 MTCompat(MineTweaker 脚本)修改。 脚本执行后需要能:
- 知道哪些条目变了以便失效相关缓存;
- 在脚本
reload/ 回滚时恢复原状。
Infusion Recipe 模块 里的 CustomBehavior<T> implements IUndoableAction
是同一套撤销机制的另一处体现(见 Infusion Recipe 模块)。
可见性
包私有(无 public),只服务于 objectTag 包与 FlushableCache 体系。
相关条目
源码
src/main/java/net/glease/tc4tweak/modules/objectTag/ObjectTagsMutation.java