为映射表加载添加热重载

This commit is contained in:
GaLicn 2025-08-16 10:01:03 +08:00
parent 61cff67716
commit 411a8b9c1f

View File

@ -125,6 +125,12 @@ public class ProviderSelectScreen extends Screen {
this.addRenderableWidget(prev);
this.addRenderableWidget(next);
// 重载映射按钮热重载 recipe_type_names.json移至下一行与关闭按钮并排
Button reload = Button.builder(Component.translatable("extendedae_plus.screen.reload_mapping"), b -> reloadMapping())
.bounds(centerX - 130, navY + 30, 80, 20)
.build();
this.addRenderableWidget(reload);
// 关闭按钮
Button close = Button.builder(Component.translatable("gui.cancel"), b -> onClose())
.bounds(centerX - 40, navY + 30, 80, 20)
@ -141,6 +147,22 @@ public class ProviderSelectScreen extends Screen {
needsRefresh = true;
}
private void reloadMapping() {
try {
com.extendedae_plus.util.ExtendedAEPatternUploadUtil.loadRecipeTypeNames();
var player = Minecraft.getInstance().player;
if (player != null) {
player.sendSystemMessage(Component.literal("ExtendedAE Plus: 已重载映射表"));
}
// 重载后不强制刷新筛选但如需立即应用到名称匹配可手动编辑搜索框或翻页
} catch (Throwable t) {
var player = Minecraft.getInstance().player;
if (player != null) {
player.sendSystemMessage(Component.literal("ExtendedAE Plus: 重载映射表失败: " + t.getClass().getSimpleName()));
}
}
}
private String buildLabel(int idx) {
String name = fNames.get(idx);
int totalSlots = fTotalSlots.get(idx);