GenerateItemHash 模块

基本信息

net.glease.tc4tweak.modules.generateItemHash —— 为物品生成 int 哈希, 供 FindCrucibleRecipe 模块 直查坩埚配方。

3 个类

类 可见性 职责
GenerateItemHash public class 主逻辑
CustomItemStacks public class FlushableCache<Set<String>>
RangedObjectTags 包私有 class FlushableCache<ConcurrentMap<Item, List<int[]>>>

GenerateItemHash

成员 行 说明
generateItemHash(Item item, int meta) 86 公开入口,返回 int
onNewObjectTag(List<?> key) 178 词典标签新增时失效缓存
onRemoveObjectTag(List<?> key) 184 词典标签移除时失效缓存

反射读取 Thaumcraft 私有状态

tmp = ReflectionHelper.getPrivateValue(ThaumcraftApi.class, null, "groupedObjectTags");
Table<String, String, ItemStack> tmp = ReflectionHelper.getPrivateValue(
        GameData.class, null, "customItemStacks");

两处直接反射取 Thaumcraft / Forge 的私有静态字段:

  • ThaumcraftApi.groupedObjectTags
  • GameData.customItemStacks(MineTweaker 的自定义物品表)

这是与 ASM 补丁并行的第二条接线方式:不用改字节码,直接反射读私有字段。

GT6 兼容失活

ASM 侧 ScanManager 的补丁在检测到 LoadingPlugin.gt6(Greg-ASM 存在)时被禁用:

generateItemHash patch disabled for GT6 compat.

见 TC4 Transformer。

相关条目

源码

  • src/main/java/net/glease/tc4tweak/modules/generateItemHash/GenerateItemHash.java
  • src/main/java/net/glease/tc4tweak/modules/generateItemHash/CustomItemStacks.java
  • src/main/java/net/glease/tc4tweak/modules/generateItemHash/RangedObjectTags.java