tinkerssearch-1.6.0-1.20.1.jar
Curse Maven Snippet
What's new
TinkersSearch-1.6.0
🆕 新增 / Added
全新流体详情界面:右键点击流体卡片打开,展示该流体的全部下游信息
浇筑配方列表:显示该流体能浇筑出的所有物品,含所需 mB、是否有模具、当前可浇筑次数
部件网格视图:展示该流体可浇筑的全部工具部件(镐头、手柄、大剑刃、修补件等),带图标、材质染色、名称
部件卡片展开动画:点击部件卡片展开详情,显示属性、词条、需求量、可制作数量,带缓动动画与内容淡入
详情页多页翻页导航:一个流体对应多个材料页时(如玻璃本体 + 熟铁变体),顶部显示
◀ 1/N ▶翻页栏,键盘←/→亦可切换详情页搜索框:实时过滤浇筑列表和部件网格
详情页滚动条:内容超出时右侧显示可拖拽滚动条,支持鼠标滚轮和拖拽,3px 窄轨道提供 ±6px 命中扩展
变体材料完整支持:正确识别并显示
tconstruct:iron#wrought(熟铁)等变体材料,含独立图标、独立页面、独立属性与词条复合浇筑页:正确解析"流体 + 基底材料 → 变体材料"配方,每个复合结果独立成页
修补件显示规则:本体页显示材料所有可做部件(含修补件);复合页仅在材料具备工具部件 stats(head/handle/limb)时显示修补件
浮动面板滚动位置保留:打开详情页前自动保存滚动快照,关闭后恢复原位
合金搜索拼音支持:合金/材料页搜索框支持拼音全拼及首字母匹配
流体卡片悬停提示:鼠标悬停显示完整显示名 + 注册名
New fluid detail screen: right-click any fluid card to open, showing all downstream information
Casting recipe list with mB cost, cast requirement, and available craft count
Part grid view: all tool parts castable from this fluid, with icon, material tint, and name
Card expand animation with easing and content fade-in, showing stats, traits, and craft counts
Detail screen multi-page navigation for fluids with multiple material pages (e.g. glass base + wrought iron variant), with
◀ 1/N ▶bar and←/→keysDetail screen search box filtering both recipe list and part grid in real time
Detail screen scrollbar with drag support, mouse wheel, and
hoverExpandXhit-area expansion on 3px trackFull variant material support: recognizes and displays variant materials (e.g.
tconstruct:iron#wrought), with independent icon, page, stats and traitsComposite casting pages: correctly parses "fluid + base material → variant material" recipes, each composite result gets its own page
Repair kit display rules: base page shows all craftable parts (incl. repair kit); composite pages only show repair kit when the material has tool part stats (head/handle/limb)
Floating panel scroll position preservation: saves scroll snapshot before opening detail screen, restores on close
Alloy search pinyin support: alloy/material tab search now supports full pinyin and initials matching
Fluid card hover tooltip: shows full display name + registry name on hover
🔄 变更 / Changed
合金模式进入方式改变:合金 Tab 不再作为独立搜索结果页,与冶炼炉、全部材料 Tab 使用同一套卡片网格与搜索框。搜索框内容在切换 Tab 时保留,合金 Tab 会用当前关键词实时过滤材料列表。
Tab 分页逻辑重写:
- 三个 Tab(冶炼炉 / 全部材料 / 合金)共用同一容器尺寸和滚动条位置,切 Tab 时重置滚动偏移到顶部
- 每个 Tab 独立维护自己的滚动偏移(
smeltery/allMaterials/alloy三个字段),互不干扰 - 合金 Tab 内部再分两级:材料列表页(默认)与结果页(选中材料后进入)。两级的滚动偏移独立维护(
alloyMaterialsScrollOffset/alloyResultsScrollOffset),返回材料列表时不会丢失原来的滚动位置 - 切换 Tab 或隐藏面板时,所有 Tab 的滚动偏移一并清零;打开详情页时通过快照机制保留并恢复
- Tab 栏在标题栏下方独立成行,显示顺序固定:冶炼炉 → 全部材料 → 合金
流体详情页改为右键进入:原先左键点击流体卡片是把流体移动到冶炼炉底部,现在保留该行为的同时,右键点击打开详情页
PanelLayoutCalculator.updatePanelPosition不再重置滚动偏移:改由switchTab/startHideAnimation/ 快照机制显式管理Alloy mode entry changed: Alloy tab is no longer a standalone search result page; it now shares the same card grid and search box with Smeltery and Materials tabs. Search box content is preserved when switching tabs, and Alloy tab uses the current keyword to filter the material list in real time.
Tab paging logic rewritten:
- Three tabs (Smeltery / Materials / Alloy) share the same container size and scrollbar position; switching tabs resets the scroll offset to the top
- Each tab maintains its own scroll offset (
smeltery/allMaterials/alloyfields), independent of each other - The Alloy tab has two nested levels: material list (default) and result page (after selecting a material). The two levels maintain independent scroll offsets (
alloyMaterialsScrollOffset/alloyResultsScrollOffset), so returning to the material list does not lose the previous scroll position - Switching tabs or hiding the panel clears all scroll offsets; opening the detail screen preserves them via the snapshot mechanism
- Tab bar is a separate row below the title bar, fixed order: Smeltery → Materials → Alloy
Fluid detail screen now opens on right-click: previously left-click moved the fluid to the smeltery bottom; that behavior is preserved, and right-click now opens the detail screen
PanelLayoutCalculator.updatePanelPositionno longer resets scroll offsets: managed explicitly byswitchTab/startHideAnimation/ snapshot mechanism
🐛 修复 / Fixed
修复合金 / 全部材料 Tab 遗漏流体:材料列表改为"注册表扫描 + 参与任意配方过滤",与合金配方解耦
修复合金页重复页:跳过"结果材料 == 本体材料"的冗余复合页(如玫瑰金 + 线 → 玫瑰金)
修复浮动面板关闭详情页后回到顶部:移除
updatePanelPosition里的resetScrollOffsets,改用快照恢复修复合金页返回时丢失材料列表位置:将合金滚动偏移拆分为 material / results 两个独立字段,按当前状态自动路由
修复只有修补件的材料显示空白:只要材料
isCraftable()就显示修补件,同时用黑名单排除 clay/lava/honey/water 等占位材料修复变体材料图标显示为基础材料:向 ItemStack NBT 强制写回完整变体 ID(
base#variant),让匠魂渲染器走变体分支修复变体材料页面不出现:
toMaterialIdStrict正确解析MaterialVariant{...}包装,保留#variant信息修复复合页误判为自循环:变体 ID 用
__variant后缀编码(ResourceLocation不接受#),与本体 ID 不再相等修复
MaterialResolver/PartRequirementsCache后台线程拿到空 map:改为无条件同步构建,配合volatile+ 双重检查锁修复
RecipesUpdatedEvent触发后缓存未重建:invalidate()全部清空(含变体相关)Fixed missing fluids in alloy / materials tabs: material list now uses "registry scan + participate-in-any-recipe filter", decoupled from alloy recipes
Fixed duplicate composite pages: skip redundant composite where "result material == base material" (e.g. rose gold + string → rose gold)
Fixed floating panel scrolling to top after closing detail screen: removed
resetScrollOffsetsfromupdatePanelPosition, switched to snapshot restoreFixed alloy page losing material list position on back: split alloy scroll offset into separate material / results fields, auto-routed by current state
Fixed blank page for repair-kit-only materials: show repair kit when material
isCraftable(), with blacklist excluding clay/lava/honey/waterFixed variant material icons showing base material: force-write full variant ID (
base#variant) to ItemStack NBT so Tinkers renders the variantFixed variant material pages not appearing:
toMaterialIdStrictnow correctly unwrapsMaterialVariant{...}and preserves#variantFixed composite misidentified as self-loop: variants encoded as
__variantsuffix (ResourceLocation rejects#)Fixed background thread getting empty map in
MaterialResolver/PartRequirementsCache: switched to unconditional synchronous build withvolatile+ double-checked lockingFixed caches not rebuilt on
RecipesUpdatedEvent:invalidate()now clears everything including variant-related caches
⚡ 优化 / Improved
FluidPartDataCache材料中心重构:判据从"配方的 fluidRecipe"改为MaterialRegistry.getMaterialStats(mat, statType).isPresent(),与 JEI 一致全局索引一次构建:
meltMap/compositeMap/castableParts只扫一遍配方,之后查询 O(1)部件列表缓存:
PARTS_CACHE缓存"材料 → 部件列表",避免重复遍历withMaterial方法缓存:WITH_MATERIAL_CACHE缓存Class → Method,避免每次反射滚动条组件复用:
ScrollBar统一轨道 / thumb 绘制与拖拽,支持hoverExpandX命中扩展卡片高度自适应:合金卡片、部件展开卡片按内容动态计算高度
详情页在 1.19.2 下的渲染层级修复:
endBatch()+GlStateManager._clear(GL_DEPTH_BUFFER_BIT)保证物品不被背景遮挡FluidPartDataCacherefactored around materials: judgment changed from "recipe's fluidRecipe" toMaterialRegistry.getMaterialStats(mat, statType).isPresent(), consistent with JEIOne-shot global index:
meltMap/compositeMap/castablePartsscanned once, subsequent queries O(1)Part cache:
PARTS_CACHEcaches "material → part list", avoiding repeated traversalwithMaterialmethod cache:WITH_MATERIAL_CACHEcachesClass → Method, avoiding repeated reflectionReusable
ScrollBarcomponent: unified track / thumb rendering and drag, withhoverExpandXhit-area expansionAdaptive card heights for alloy and expanded part cards
Detail screen 1.19.2 render order fix:
endBatch()+GlStateManager._clear(GL_DEPTH_BUFFER_BIT)to prevent item occlusion from background
🔧 技术改进 / Technical Improvements
新增
FluidDetailScreen类:详情界面主体,包含窗口自适应、滚轮、拖拽、翻页、动画、搜索、卡片展开新增
ScrollBar组件:通用滚动条,包含轨道 / thumb 绘制、拖拽逻辑、命中扩展新增
FluidPartData/FluidPartDataCache:部件数据结构与缓存(材料中心设计,含全局索引meltMap/compositeMap/castableParts)新增
CastingRecipeHelper:浇筑配方读取(材料中心判据MaterialRegistry.getMaterialStats(mat, statType).isPresent(),与 JEI 一致)新增
PartRequirementsCache:部件 → mB 需求量缓存(同步构建,避免后台线程拿到空 map)新增
MaterialResolver:流体 → 材料 ID 解析(MaterialFluidRecipe+ 前缀剥离)新增
RecipeReflection:配方反射通用工具,含FluidIngredient/MaterialFluidRecipe暴力字段扫描新增
MaterialCompatibility:部件与材料兼容性判断,兼容 1.18.2(无参)与 1.19.2(带ICastingContainer参数)的getFluidRecipe签名版本兼容 API 层:
Component.literal(1.19.2) ↔new TextComponent(1.18.2) 差异封装;ForgeRegistries.FLUIDS.getKey()替换所有Fluid#getRegistryName()面板滚动状态解耦:
PanelLayoutCalculator.updatePanelPosition不再干预滚动,由switchTab/startHideAnimation/ 快照机制显式管理Added
FluidDetailScreenclass: detail screen body with window adaptation, wheel, drag, paging, animation, search, card expansionAdded
ScrollBarcomponent: generic scrollbar with track / thumb rendering, drag logic, hit-area expansionAdded
FluidPartData/FluidPartDataCache: part data structure and cache (material-centric design with global indexmeltMap/compositeMap/castableParts)Added
CastingRecipeHelper: casting recipe reader (material-centric judgmentMaterialRegistry.getMaterialStats(mat, statType).isPresent(), consistent with JEI)Added
PartRequirementsCache: part → mB requirement cache (synchronous build, avoiding empty map on background thread)Added
MaterialResolver: fluid → material ID resolution (MaterialFluidRecipe+ prefix stripping)Added
RecipeReflection: generic recipe reflection utility with brute-force field scanning forFluidIngredient/MaterialFluidRecipeAdded
MaterialCompatibility: part-material compatibility judgment, compatible with both 1.18.2 (no-arg) and 1.19.2 (ICastingContainerparam)getFluidRecipesignaturesVersion-compat API layer:
Component.literal(1.19.2) ↔new TextComponent(1.18.2);ForgeRegistries.FLUIDS.getKey()replacesFluid#getRegistryName()Panel scroll state decoupled:
PanelLayoutCalculator.updatePanelPositionno longer touches scroll; managed explicitly byswitchTab/startHideAnimation/ snapshot mechanism

