Skip to content

v1.5.2

Choose a tag to compare

@leipishu leipishu released this 25 Aug 05:54
· 6 commits to master since this release

TinkersSearch-1.5.2

🆕 新增 / Added

  • 合金卡片完整信息显示:合金配方卡片高度自适应,完整显示配方链、原料详情、缺失原料、可执行次数等所有信息,彻底移除省略号截断

  • 流体卡片悬停提示:鼠标悬停在流体卡片上时,显示完整名称和注册名(流体名称过长被截断时尤其有用)

  • 冶炼炉温度实时刷新:打开面板时强制刷新温度,解决更换燃料后温度显示不更新的问题

  • 多策略温度读取:支持多种方式读取冶炼炉温度(FuelModule、燃料槽、FluidType),提高兼容性

  • Full alloy card information display: alloy recipe cards now auto-adjust height to display all information including recipe chain, ingredient details, missing materials, execution count, completely removing ellipsis truncation

  • Fluid card hover tooltip: hovering over fluid cards shows full display name and registry name (useful when fluid names are truncated)

  • Real-time smeltery temperature refresh: temperature is forcefully refreshed when panel opens, fixing temperature not updating after fuel changes

  • Multi-strategy temperature reading: supports multiple methods to read smeltery temperature (FuelModule, fuel tank, FluidType), improving compatibility

🐛 修复 / Fixed

  • 修复整合包中合金查询完全不生效的问题:采用多策略配方读取(Forge API → RecipeType → 反射 → KubeJS → CraftTweaker),适配各类整合包环境

  • 修复更换燃料后温度不更新的问题:清除 FuelModule 内部缓存(heat、fuel、lastFuel、currentFuel),从燃料槽实时读取

  • 修复 OpenGL GL_INVALID_ENUM 错误:创建 ScissorHelper 统一管理 Scissor 操作,静默处理 OpenGL 异常

  • 修复 Tab 按钮与面板动画不同步的问题:Tab 按钮使用面板的动画偏移量计算位置,轨迹完全一致

  • 修复面板第二次打开无法显示流体和收藏的问题:关闭时保留冶炼炉实体引用,打开时重新从屏幕获取

  • 修复合金卡片滚动失效问题:动态计算卡片高度,滚动偏移量正确更新

  • Fixed alloy query not working in modpacks: multi-strategy recipe reading (Forge API → RecipeType → Reflection → KubeJS → CraftTweaker), adapting to various modpack environments

  • Fixed temperature not updating after fuel changes: clear FuelModule internal cache (heat, fuel, lastFuel, currentFuel), read from fuel tank in real-time

  • Fixed OpenGL GL_INVALID_ENUM error: created ScissorHelper to manage Scissor operations, silently handling OpenGL exceptions

  • Fixed Tab button animation out of sync with panel: Tab button position uses panel's animation offset, trajectories fully synchronized

  • Fixed panel showing no fluids or favorites on second open: keep smeltery entity reference when closed, reacquire from screen when opened

  • Fixed alloy card scrolling not working: dynamically calculate card height, scroll offset updates correctly

⚡ 优化 / Improved

  • 面板代码重构:将 1400+ 行的 FloatingSearchPanel 拆分为 5 个职责类(DataManager、Renderer、LayoutCalculator、AnimationManager、TemperatureReader),提高可维护性

  • 温度读取冷却机制:1 秒内不重复读取温度,减少不必要的开销

  • 合金卡片美观性提升:增加分割线、状态图标(✔/✘)、颜色区分(可行绿色/不可行橙色),原料状态彩色显示

  • 配方读取兼容性增强:支持 KubeJS 和 CraftTweaker 动态添加的配方

  • 日志优化:减少非必要日志输出,调试日志默认关闭

  • Panel code refactoring: split 1400+ line FloatingSearchPanel into 5 responsibility classes (DataManager, Renderer, LayoutCalculator, AnimationManager, TemperatureReader), improving maintainability

  • Temperature reading cooldown: prevent repeated temperature reads within 1 second, reducing overhead

  • Alloy card visual improvements: added separators, status icons (✔/✘), color differentiation (green feasible/orange infeasible), colored ingredient status display

  • Recipe reading compatibility enhancement: supports recipes dynamically added by KubeJS and CraftTweaker

  • Log optimization: reduced unnecessary log output, debug logs disabled by default

🔧 技术改进 / Technical Improvements

  • 新增 ScissorHelper 工具类:统一管理 OpenGL Scissor Test,解决 GL_INVALID_ENUM 错误

  • 新增 SmelteryTemperatureReader 类:独立管理温度读取逻辑

  • 新增 FluidNameHelper 工具类:统一流体名称处理(移除前缀、截断等)

  • 合金配方读取器重构:支持 5 种读取策略,自动降级

  • 版本信息统一:版本号由 mods.toml 管理,代码中通过 ModList 动态获取

  • Added ScissorHelper utility class: unified management of OpenGL Scissor Test, resolving GL_INVALID_ENUM errors

  • Added SmelteryTemperatureReader class: independent temperature reading logic

  • Added FluidNameHelper utility class: unified fluid name handling (prefix removal, truncation, etc.)

  • Alloy recipe reader refactoring: supports 5 reading strategies with automatic fallback

  • Version info unification: version number managed by mods.toml, dynamically retrieved via ModList in code