anvilssearch-1.0.0.jar
Curse Maven Snippet
What's new
AnvilsSearch-1.0.0
This is the first version of Anvil's Search
🆕 新增 / Added
全新侧边栏面板:在工匠砧界面左侧添加可收起侧栏,按
G(可重绑)开关三 Tab 页面:部件 / 模拟 / 强化,一键切换,每个 Tab 独立维护滚动偏移
部件浏览页:列出每一个可制作部件及其全部可产出材料,行可展开显示属性、词条、消耗
拼音搜索:复用 Tinkers' Search 的拼音引擎,支持全拼与首字母匹配
工具模拟器:选择工具 → 逐槽填入材料 → 实时预览属性、词条与工具图标
只读模拟:模拟过程不消耗材料,也不修改工匠砧状态
工具保存:保存到
config/anvilssearch-presets/,文件名带时间戳(<toolId>_<yyyyMMdd-HHmmss>.json),同一工具多次保存不覆盖工具导出:通过系统原生文件对话框选择导出位置
工具导入:支持从剪贴板或文件导入 JSON 配置
方案浏览器:内置弹窗列出所有已保存预设,点击直接导入
材料渲染图标:方案浏览器中每个预设显示实际材料渲染的工具图标,而非白板图标
方案删除:每个预设行右侧 ✕ 按钮,一键删除
部件完整性校验:保存 / 导出前检查所有部件槽位是否填满,未填满时拒绝并给出提示
强化浏览器:搜索所有匠魂强化配方,按槽位类型(升级 / 能力 / 防御 / 灵魂)过滤
前置条件校验:实时判断强化是否可应用于当前工匠砧上的物品
强化收藏:星标收藏,独立展示,持久化到
config/anvilssearch-favorites.json强化卡片:显示材料列表、槽位需求、配方变体、描述
部件材料选择器:弹窗式材料列表,支持拼音搜索,实时过滤
材料详情卡片:展开显示属性、词条标签、消耗量,词条支持悬停提示
统一视觉主题:
AnvilTheme集中管理颜色 / 尺寸 / 绘制辅助,三 Tab 风格一致面板展开动画:350ms cubic ease-out,展开 / 收起与宽度过渡独立
New sidebar panel: collapsible left sidebar in the Tinker's Anvil GUI, toggled with
G(rebindable)Three tabs: Parts / Simulator / Modifiers, with per-tab independent scroll offsets
Parts browser: lists every craftable part and all materials that can produce it; expandable rows show stats, traits, and cost
Pinyin search: reuses Tinkers' Search's pinyin engine, supporting full pinyin and initials
Tool Simulator: pick a tool → fill each slot with a material → preview stats, traits, and tool icon in real time
Read-only simulation: never consumes materials nor modifies the Anvil
Save presets: writes to
config/anvilssearch-presets/with timestamped file name (<toolId>_<yyyyMMdd-HHmmss>.json), no overwritingExport presets: uses system-native file dialog to choose export location
Import presets: supports importing JSON from clipboard or file
Preset browser: built-in popup listing all saved presets, click to import
Material-rendered icons: each preset shows its actual material-rendered tool icon instead of a blank icon
Delete presets: one-click ✕ button on each preset row
Part completeness check: rejects Save / Export when any part slot is empty, with a hint
Modifier browser: searches all Tinker's Construct modifier recipes, filterable by slot type (Upgrade / Ability / Defense / Soul)
Requirement check: real-time validation of whether a modifier applies to the item on the Anvil
Modifier favorites: star to favorite, dedicated section, persisted to
config/anvilssearch-favorites.jsonModifier cards: display materials, slot requirements, recipe variants, description
Part material picker: popup material list with pinyin search and real-time filtering
Material detail cards: expand to show stats, trait tags, cost; trait tags support hover tooltip
Unified visual theme:
AnvilThemecentralizes colors / sizes / draw helpers, consistent across all three tabsPanel animation: 350ms cubic ease-out, expand / collapse and width transitions run independently
🔧 技术改进 / Technical Improvements
新增
AnvilSidebarPanel:侧栏容器,管理 Tab 切换、搜索框焦点、动画、Tooltip 转发新增
AnvilPanelRenderer:面板主体绘制(标题栏、Tab 栏、搜索框、内容区)新增
AnvilPanelAnimation:展开 / 收起与宽度过渡的双进度动画新增
AnvilPanelLayout:三栏布局计算(工具 / 部件 / 预览)新增
AnvilTheme:全局视觉词典,颜色 / 尺寸 / 绘制辅助集中管理新增
AnvilTab接口:三 Tab 统一契约(渲染 / 交互 / 焦点 / Tooltip)新增
ToolDefinitionIndex:扫描ForgeRegistries.ITEMS中的IModifiable,按 ID 去重新增
PartMaterialIndex:部件 → 材料索引,支持普通部件(IMaterialItem)与特殊部件(MaterialRegistry反查)新增
MaterialDetailBuilder/MaterialDetail:材料详情构建与渲染新增
PartInfoLookup:桥接 Tinkers' Search 的FluidPartData,属性 / 词条全部从 Tinkers' Search 数据层取新增
ModifierIndex/ModifierIndexBuilder:从RecipeManager读取强化配方,三级分类(SIMPLE / INCREMENTAL / UNLIMITED / MULTILEVEL / SWAPPABLE)新增
ModifierReflect:反射工具集,沿继承链查找方法 / 字段新增
ModifierRequirementChecker:通过动态Proxy构造临时ITinkerStationContainer,调用getValidatedResult校验前置新增
ToolSimulationModel/ToolStatsCalculator:工具模拟与属性计算新增
ToolPreset/ToolPresetCodec/ToolPresetStore:预设数据结构、JSON 编解码、文件持久化新增
SystemFileDialogs:系统原生文件对话框(Windows 通过 JNA 调用IFileOpenDialogCOM 接口,失败时回退 AWTFileDialog;macOS / Linux 直接使用 AWT)新增
FavoritesStore:收藏持久化,1 秒 debounce 合并写入新增
AnvilSlotAccess:从砧的Menu读取 6 个槽位(按坐标归类,不依赖固定索引)事件总线全面接管:
ScreenEvent.InitScreenEvent.Post/DrawScreenEvent.Post/ 键盘 / 鼠标 / Tooltip 全部按HIGHEST优先级拦截搜索框聚焦时拦截一切按键与字符输入,避免触发底层工匠站快捷键
渲染层级:
ps.translate(0, 0, 500)+glClear(GL_DEPTH_BUFFER_BIT),绘制前保存 GL 状态、退出时恢复配方重载:
RecipesUpdatedEvent触发时清空全部缓存(ToolDefinitionIndex/PartMaterialIndex/ModifierIndex/MaterialFluidResolver)Added
AnvilSidebarPanel: sidebar container managing tab switching, search focus, animation, tooltip forwardingAdded
AnvilPanelRenderer: main panel drawing (title bar, tab bar, search box, content area)Added
AnvilPanelAnimation: dual-progress animation for expand / collapse and width transitionAdded
AnvilPanelLayout: three-column layout computation (tools / parts / preview)Added
AnvilTheme: global visual dictionary centralizing colors / sizes / draw helpersAdded
AnvilTabinterface: unified contract for all three tabs (render / interaction / focus / tooltip)Added
ToolDefinitionIndex: scansForgeRegistries.ITEMSforIModifiable, dedupes by IDAdded
PartMaterialIndex: part → material index, supporting both normal parts (IMaterialItem) and special parts (MaterialRegistryreverse lookup)Added
MaterialDetailBuilder/MaterialDetail: material detail building and renderingAdded
PartInfoLookup: bridges Tinkers' Search'sFluidPartData; stats / traits all come from Tinkers' Search's data layerAdded
ModifierIndex/ModifierIndexBuilder: reads modifier recipes fromRecipeManager, with 5-way classification (SIMPLE / INCREMENTAL / UNLIMITED / MULTILEVEL / SWAPPABLE)Added
ModifierReflect: reflection utilities for method / field lookup along the inheritance chainAdded
ModifierRequirementChecker: builds a temporaryITinkerStationContainervia dynamicProxyand invokesgetValidatedResultfor requirement checkingAdded
ToolSimulationModel/ToolStatsCalculator: tool simulation and stat computationAdded
ToolPreset/ToolPresetCodec/ToolPresetStore: preset data structure, JSON codec, file persistenceAdded
SystemFileDialogs: system-native file dialogs (Windows uses JNA to callIFileOpenDialogCOM interface, falls back to AWTFileDialog; macOS / Linux use AWT directly)Added
FavoritesStore: favorites persistence with 1-second debounceAdded
AnvilSlotAccess: reads the 6 Anvil slots from theMenu(position-classified, not index-dependent)Full event bus takeover:
ScreenEvent.InitScreenEvent.Post/DrawScreenEvent.Post/ keyboard / mouse / tooltip, all atHIGHESTprioritySearch box focus swallows all key and char input to avoid triggering underlying station hotkeys
Render layering:
ps.translate(0, 0, 500)+glClear(GL_DEPTH_BUFFER_BIT), with GL state save / restore around drawingRecipe reload:
RecipesUpdatedEventclears all caches (ToolDefinitionIndex/PartMaterialIndex/ModifierIndex/MaterialFluidResolver)
This mod has no additional files

