diff --git a/build.gradle b/build.gradle index 5b5ca13..5151329 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ group = project.maven_group loom { forge { mixinConfigs = [ - "forgematica.mixins.json" + "forgematica.mixins.json", "forgematica.forge.mixins.json" ] } } diff --git a/gradle.properties b/gradle.properties index 80394c6..33cb14a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,14 +12,14 @@ loom.platform=forge yarn_mappings=1.20.1+build.3 # Mod Properties - mod_version=0.1.4 + mod_version=0.1.5 maven_group=org.thinkingstudio.forgematica archives_base_name=Forgematica mod_id=forgematica mod_author=ThinkingStudio # Dependencies - malilib_version=0.1.9-mc1.20.1 + malilib_version=0.1.11-mc1.20.1 # Publish Properties modrinth_id=dCKRaeBC diff --git a/src/main/java/fi/dy/masa/litematica/Litematica.java b/src/main/java/fi/dy/masa/litematica/Litematica.java index fc9f158..455fba9 100644 --- a/src/main/java/fi/dy/masa/litematica/Litematica.java +++ b/src/main/java/fi/dy/masa/litematica/Litematica.java @@ -1,30 +1,13 @@ package fi.dy.masa.litematica; -import fi.dy.masa.malilib.compat.forge.ForgePlatformUtils; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.loading.FMLLoader; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import fi.dy.masa.litematica.gui.GuiConfigs; -import fi.dy.masa.malilib.event.InitializationHandler; import fi.dy.masa.litematica.config.Configs; -@Mod(Reference.MOD_ID) + public class Litematica { public static final Logger logger = LogManager.getLogger(Reference.MOD_ID); - public Litematica() { - if (FMLLoader.getDist().isClient()) { - ForgePlatformUtils.getInstance().getClientModIgnoredServerOnly(); - InitializationHandler.getInstance().registerInitializationHandler(new InitHandler()); - ForgePlatformUtils.getInstance().getMod(Reference.MOD_ID).registerModConfigScreen((screen) -> { - GuiConfigs gui = new GuiConfigs(); - gui.setParent(screen); - return gui; - }); - } - } - public static void debugLog(String msg, Object... args) { if (Configs.Generic.DEBUG_LOGGING.getBooleanValue()) { Litematica.logger.info(msg, args); diff --git a/src/main/java/fi/dy/masa/litematica/gui/GuiConfigs.java b/src/main/java/fi/dy/masa/litematica/gui/GuiConfigs.java index 065c295..41eb530 100644 --- a/src/main/java/fi/dy/masa/litematica/gui/GuiConfigs.java +++ b/src/main/java/fi/dy/masa/litematica/gui/GuiConfigs.java @@ -19,7 +19,7 @@ public class GuiConfigs extends GuiConfigsBase { public GuiConfigs() { - super(10, 50, Reference.MOD_ID, null, "litematica.gui.title.configs"); + super(10, 50, Reference.MOD_ID, null, "litematica.gui.title.configs", Reference.MOD_NAME, Reference.MOD_VERSION); } @Override diff --git a/src/main/java/org/thinkingstudio/forgematica/Forgematica.java b/src/main/java/org/thinkingstudio/forgematica/Forgematica.java new file mode 100644 index 0000000..1749692 --- /dev/null +++ b/src/main/java/org/thinkingstudio/forgematica/Forgematica.java @@ -0,0 +1,24 @@ +package org.thinkingstudio.forgematica; + +import fi.dy.masa.litematica.InitHandler; +import fi.dy.masa.litematica.Reference; +import fi.dy.masa.litematica.gui.GuiConfigs; +import fi.dy.masa.malilib.event.InitializationHandler; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.loading.FMLLoader; +import org.thinkingstudio.mafglib.util.ForgePlatformUtils; + +@Mod(Reference.MOD_ID) +public class Forgematica { + public Forgematica() { + if (FMLLoader.getDist().isClient()) { + ForgePlatformUtils.getInstance().getClientModIgnoredServerOnly(); + InitializationHandler.getInstance().registerInitializationHandler(new InitHandler()); + ForgePlatformUtils.getInstance().registerModConfigScreen(Reference.MOD_ID, (screen) -> { + GuiConfigs gui = new GuiConfigs(); + gui.setParent(screen); + return gui; + }); + } + } +} diff --git a/src/main/java/fi/dy/masa/litematica/mixin/compat/MixinModelDataManager.java b/src/main/java/org/thinkingstudio/forgematica/mixin/MixinModelDataManager.java similarity index 73% rename from src/main/java/fi/dy/masa/litematica/mixin/compat/MixinModelDataManager.java rename to src/main/java/org/thinkingstudio/forgematica/mixin/MixinModelDataManager.java index c216925..a82578f 100644 --- a/src/main/java/fi/dy/masa/litematica/mixin/compat/MixinModelDataManager.java +++ b/src/main/java/org/thinkingstudio/forgematica/mixin/MixinModelDataManager.java @@ -1,20 +1,20 @@ -package fi.dy.masa.litematica.mixin.compat; +package org.thinkingstudio.forgematica.mixin; +import fi.dy.masa.litematica.world.WorldSchematic; import net.minecraft.block.entity.BlockEntity; import net.minecraftforge.client.model.data.ModelDataManager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import fi.dy.masa.litematica.world.WorldSchematic; @Mixin(ModelDataManager.class) public abstract class MixinModelDataManager { /** * if we don't catch this Forge does stupid things - * it calls requestModelData on any client world when adding a BlockEntity - * but if it's not mc.world it crashes because model data may only + * it calls {@code requestModelData} on any client world when adding a BlockEntity + * but if it's not {@code mc.world} it crashes because model data may only * be used on the current client world * * @author ZacSharp @@ -23,10 +23,6 @@ public abstract class MixinModelDataManager { */ @Inject(method = "requestRefresh", at = @At("HEAD"), cancellable = true, remap = false) public void requestRefresh(BlockEntity blockEntity, CallbackInfo cir) { - // if we don't catch this Forge does stupid things - // it calls requestModelData on any client world when adding a te - // but if it's not mc.world it crashes because model data may only - // be used on the current client world if (blockEntity.getWorld() instanceof WorldSchematic) { cir.cancel(); } diff --git a/src/main/resources/assets/forgematica/lang/en_us.json b/src/main/resources/assets/forgematica/lang/en_us.json index 794de73..570b455 100644 --- a/src/main/resources/assets/forgematica/lang/en_us.json +++ b/src/main/resources/assets/forgematica/lang/en_us.json @@ -337,7 +337,7 @@ "litematica.gui.title.area_selection_manager": "Area Selection Manager", "litematica.gui.title.configure_schematic_placement": "Configure Schematic placement", "litematica.gui.title.configure_schematic_sub_region": "Configure Placement Sub-Region", - "litematica.gui.title.configs": "Litematica Configs", + "litematica.gui.title.configs": "%s Configs - %s", "litematica.gui.title.confirm_file_deletion": "Confirm file deletion", "litematica.gui.title.copy_area_selection": "Copy Area Selection '%s'", "litematica.gui.title.create_area_selection": "Create a new Area Selection", diff --git a/src/main/resources/assets/forgematica/lang/ru_ru.json b/src/main/resources/assets/forgematica/lang/ru_ru.json index 7b5a922..e7748d8 100644 --- a/src/main/resources/assets/forgematica/lang/ru_ru.json +++ b/src/main/resources/assets/forgematica/lang/ru_ru.json @@ -337,7 +337,7 @@ "litematica.gui.title.area_selection_manager": "Менеджер областей выделения", "litematica.gui.title.configure_schematic_placement": "Настройка размещения схемы", "litematica.gui.title.configure_schematic_sub_region": "Настройка размещения подрегиона", - "litematica.gui.title.configs": "Настройки Litematica", + "litematica.gui.title.configs": "Настройки %s - %s", "litematica.gui.title.confirm_file_deletion": "Подтвердите удаление файла", "litematica.gui.title.copy_area_selection": "Копировать область выделения \"%s\"", "litematica.gui.title.create_area_selection": "Создать новую область выделения", diff --git a/src/main/resources/assets/forgematica/lang/zh_cn.json b/src/main/resources/assets/forgematica/lang/zh_cn.json index d0df6f5..d48f39e 100644 --- a/src/main/resources/assets/forgematica/lang/zh_cn.json +++ b/src/main/resources/assets/forgematica/lang/zh_cn.json @@ -14,8 +14,8 @@ "litematica.error.area_editor.create_sub_region.exists": "名为'%s' 子区域已经存在", "litematica.error.area_editor.no_selection": "无活动区域的选择", "litematica.error.area_editor.open_gui.no_selection": "当前处于选择模式:Normal,但当前未选择任何区域", - "litematica.error.area_editor.rename_sub_region.exists": "重命名子区域失败\\n已存在子区域名字为 '%s'", - "litematica.error.area_editor.switch_mode.no_selection": "无法切换到选择模式:Normal,因为当前没有选择区域.\\n请在区域选择浏览器中选择一个区域或创建一个新的选择", + "litematica.error.area_editor.rename_sub_region.exists": "重命名子区域失败\n已存在子区域名字为 '%s'", + "litematica.error.area_editor.switch_mode.no_selection": "无法切换到选择模式:Normal,因为当前没有选择区域.\n请在区域选择浏览器中选择一个区域或创建一个新的选择", "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_create_schematic": "创建litematica原理图失败", "litematica.error.schematic_conversion.schematic_to_litematica.failed_to_read_schematic": "加载原理图失败", "litematica.error.schematic_conversion.structure_to_litematica_failed": "无法将结构转换为litematica原理图", @@ -27,7 +27,7 @@ "litematica.error.schematic_load.unsupported_type": "未知或不支持的文件类型 '%s'", "litematica.error.schematic_manager.schematic_export.unsupported_type": "只能以其他格式导出Litematica原理图", "litematica.error.schematic_manager.schematic_import.unsupported_type": "所选的原理图类型不支持导入", - "litematica.error.schematic_placements.remove_fail_locked": "位置已锁定\\n- 按住SHIFT键强制删除", + "litematica.error.schematic_placements.remove_fail_locked": "位置已锁定\n- 按住SHIFT键强制删除", "litematica.error.schematic_save.directory_doesnt_exist": "没有这样的目录: '%s'", "litematica.error.schematic_save.file_already_exists": "文件'%s' 已经存在", "litematica.error.schematic_save.invalid_directory": "无效目录 '%s'", @@ -35,6 +35,7 @@ "litematica.error.schematic_save.schematic_creation_failed": "创建原理图失败", "litematica.error.schematic_read_from_file_failed.cant_read": "从文件 '%s'中读取原理图", "litematica.error.schematic_read_from_file_failed.exception": "从文件 '%s'中读取原理图时出现异常", + "litematica.error.schematic_read_from_file_failed.no_file": "从文件中读取原理图失败:没有可用的文件(内存中的原理图?)", "litematica.error.schematic_projects.empty_selection": "空白区域选择(0个子区域)", "litematica.error.schematic_projects.failed_to_load_project": "加载项目失败", "litematica.error.schematic_projects.failed_to_load_schematic": "加载当前版本的原理图失败", @@ -54,10 +55,10 @@ "litematica.hotkeys.category.generic_hotkeys": "通用热键", "litematica.info.schematic_load.schematic_loaded": "原理图 '%s' 成功加载到内存中", "litematica.info.schematic_manager.preview.right_click_to_cancel": "右键单击该按钮可取消挂起的预览操作", - "litematica.info.schematic_manager.preview.set_preview_by_taking_a_screenshot": "使用普通屏幕截图键设置预览\\n或者右键单击“设置预览”按钮取消设置预览", + "litematica.info.schematic_manager.preview.set_preview_by_taking_a_screenshot": "使用普通屏幕截图键设置预览\n或者右键单击“设置预览”按钮取消设置预览", "litematica.info.schematic_manager.preview.success": "已成功设置预览图像", "litematica.gui.button.area_editor.analyze_area": "分析区域", - "litematica.gui.button.area_editor.change_corner_mode": "角点模式:%s", + "litematica.gui.button.area_editor.change_corner_mode": "选区模式:%s", "litematica.gui.button.area_editor.change_selection_mode": "选择模式:%s", "litematica.gui.button.area_editor.create_schematic": "保存原理图", "litematica.gui.button.area_editor.create_sub_region": "新建子区域", @@ -88,13 +89,15 @@ "litematica.gui.button.hover.area_editor.shift_for_in_memory": "按住shift创建一个仅在内存中的原理图", "litematica.gui.button.hover.area_selections.unselect": "取消选择当前区域选择", "litematica.gui.button.hover.material_list.clear_cache": "清除材料缓存\n通常这不应该需要做的\n这可以用来代替删除'material_cache.nbt'\n文件,以防缓存含有一些错误的数据,\n如一些不应存在的物品储存,如活塞头", - "litematica.gui.button.hover.material_list.write_hold_shift_for_csv": "按住shift写入csv文件,\\n而不是普通的ASCII艺术表文本文件", + "litematica.gui.button.hover.material_list.write_hold_shift_for_csv": "按住shift写入csv文件,\n而不是普通的ASCII艺术表文本文件", "litematica.gui.button.hover.material_list_shift_to_select_sub_regions": "按住shift选择用于材料列表的子区域", - "litematica.gui.button.hover.plus_minus_tip": "左键单击可增大\\n右键单击可减小\\nShift and/or Alt 增加步长", - "litematica.gui.button.hover.plus_minus_tip_ctrl_alt_shift": "左键单击可增大\\n右键单击可减小\\nShift/Alt/Ctrl 增加步长(乘法)", - "litematica.gui.button.hover.schematic_projects.area_browser_disabled_currently_in_projects_mode": "当前打开了一个原理图项目\\n原理图项目将覆盖正常区域选择功能", + "litematica.gui.button.hover.plus_minus_tip": "左键单击可增大\n右键单击可减小\nShift and/or Alt 增加步长", + "litematica.gui.button.hover.plus_minus_tip_ctrl_alt_shift": "左键单击可增大\n右键单击可减小\nShift/Alt/Ctrl 增加步长(乘法)", + "litematica.gui.button.hover.schematic_list.reload_schematic": "如果你在原理图编辑模式下出错,从文件中重新加载原理图。这将非常有用。", + "litematica.gui.button.hover.schematic_projects.area_browser_disabled_currently_in_projects_mode": "当前打开了一个原理图项目\n原理图项目将覆盖正常区域选择功能", "litematica.gui.button.hover.schematic_projects.delete_area": "§6删除最后放置或保存的区域§r", - "litematica.gui.button.hover.schematic_projects.move_origin_to_player": "将项目原点移动到玩家当前位置\\n这还会移动区域选择和放置", + "litematica.gui.button.hover.schematic_projects.menu_warning": "(这之前被称为原理图项目)通常你§6不应该使用这个功能§r,\n除非你真的知道它是如何工作的。它在一定程度上改变了\n区域的选择、放置和粘贴的工作方式,特别是在粘贴时,\n也有一个区域删除的操作。基本上,这个功能是更新、\n修改图纸而设计的,它允许你更容易地创建相同构建的\n多个版本/快照,也可以通过首先删除世界上的原理图,\n然后在其位置粘贴下一个版本来在版本之间切换。", + "litematica.gui.button.hover.schematic_projects.move_origin_to_player": "将项目原点移动到玩家当前位置\n这还会移动区域选择和放置", "litematica.gui.button.hover.schematic_projects.place_to_world_warning": "§6警告:这将在一个之前放置或者保存的\n§6一个版本的区域里,删除/覆盖当前世界里的方块\n§6(基本上是最后一次看到的“有效区域选择”)", "litematica.gui.button.hover.schematic_projects.save_new_version": "将新的原理图/版本保存到当前项目", "litematica.gui.button.material_list": "材料列表", @@ -117,8 +120,8 @@ "litematica.gui.button.schematic_placement.toggle_all_off": "全部 §c关闭§r", "litematica.gui.button.schematic_placement.toggle_all_on": "全部 §a开§r", "litematica.gui.button.schematic_placement.hover.enclosing_box": "封闭框呈现: %s", - "litematica.gui.button.schematic_placement.hover.lock": "锁定位置可防止移动\\n以其他方式更改它(意外地)", - "litematica.gui.button.schematic_placement.hover.rendering": "呈现: %s\\n请注意,这有点奇怪\\n并且不会阻止实体呈现.\\n通常,您应该完全禁用\\n完全放置", + "litematica.gui.button.schematic_placement.hover.lock": "锁定位置可防止移动\n以其他方式更改它(意外地)", + "litematica.gui.button.schematic_placement.hover.rendering": "呈现: %s\n请注意,这有点奇怪\n并且不会阻止实体呈现.\n通常,您应该完全禁用\n完全放置", "litematica.gui.button.schematic_placements.configure": "配置", "litematica.gui.button.schematic_placements.disable": "禁用", "litematica.gui.button.schematic_placements.locked": "已锁定: %s", @@ -156,7 +159,8 @@ "litematica.gui.button.load_schematic_to_memory": "加载原理图", "litematica.gui.button.mirror_value": "镜像: %s", "litematica.gui.button.move_to_player": "移动到玩家", - "litematica.gui.button.ok": "OOk", + "litematica.gui.button.ok": "Ok", + "litematica.gui.button.reload": "重载", "litematica.gui.button.remove": "删除", "litematica.gui.button.remove_placement": "删除放置", "litematica.gui.button.rename": "重命名", @@ -187,7 +191,13 @@ "litematica.gui.label.block_info.state_schematic": "原理图世界的方块信息", "litematica.gui.label.block_info_list_type.all": "ALL", "litematica.gui.label.block_info_list_type.render_layers": "渲染层", - "litematica.gui.label.material_list.abbr.shulker_box": "SB", + "litematica.gui.label.easy_place_protocol.auto": "Auto", + "litematica.gui.label.easy_place_protocol.none": "None", + "litematica.gui.label.easy_place_protocol.slabs_only": "Slabs only", + "litematica.gui.label.easy_place_protocol.v2": "Version 2", + "litematica.gui.label.easy_place_protocol.v3": "Version 3", + "litematica.gui.label.loaded_schematic.modified_on": "§6在%s上修改§r", + "litematica.gui.label.material_list.abbr.shulker_box": "潜影盒", "litematica.gui.label.material_list.title.available": "可用", "litematica.gui.label.material_list.title.item": "项目", "litematica.gui.label.material_list.title.missing": "缺少", @@ -202,12 +212,16 @@ "litematica.gui.label.missing_chunks": "%s, 缺失区块 (%s)", "litematica.gui.label.origin.auto": "自动", "litematica.gui.label.origin.manual": "手动", + "litematica.gui.label.paste_nbt_behavior.none": "None", + "litematica.gui.label.paste_nbt_behavior.place_data_modify": "Place & Data Modify", + "litematica.gui.label.paste_nbt_behavior.place_clone": "Place & Clone", + "litematica.gui.label.paste_nbt_behavior.teleport_place": " Teleport & Place", "litematica.gui.label.placement_sub.region_name": "区域名: %s", "litematica.gui.label.placement_sub.region_position": "区域位置", "litematica.gui.label.placement_sub.region_size": "区域大小: %s", "litematica.gui.label.placement_settings.placement_origin": "放置原点", "litematica.gui.label.render_layers.hotkey": "热键", - "litematica.gui.label.render_layers.hover.hotkey": "下一个/上一个图层热键将影响此边界\\n如果两者都被选中,那么热键将被影响\\n在最接近玩家的边界", + "litematica.gui.label.render_layers.hover.hotkey": "下一个/上一个图层热键将影响此边界\n如果两者都被选中,那么热键将被影响\n在最接近玩家的边界", "litematica.gui.label.replace_behavior.all": "所有", "litematica.gui.label.replace_behavior.none": "无", "litematica.gui.label.replace_behavior.with_non_air": "非空气", @@ -223,7 +237,7 @@ "litematica.gui.label.schematic_info.total_blocks_and_volume": "方块/体积: §f%d§r/§f%d§r", "litematica.gui.label.schematic_info.total_volume": "总体积: §f%d§r 个方块", "litematica.gui.label.schematic_load.checkbox.create_placement": "创建放置", - "litematica.gui.label.schematic_load.hoverinfo.create_placement": "立即创建新位置\\n并选择该位置", + "litematica.gui.label.schematic_load.hoverinfo.create_placement": "立即创建新位置\n并选择该位置", "litematica.gui.label.schematic_paste.missing_chunks": "粘贴,丢失的方块 (%s)", "litematica.gui.label.schematic_placement.enclosing_size": "框尺寸: %s", "litematica.gui.label.schematic_placement.hoverinfo.hold_shift_to_create_as_disabled": "按住shift以在创建时禁用放置", @@ -243,8 +257,8 @@ "litematica.gui.label.schematic_save.checkbox.ignore_entities": "忽略实体", "litematica.gui.label.schematic_save.hoverinfo.hold_shift_to_overwrite": "按住shift覆盖现有文件", "litematica.gui.label.schematic_verifier.count": "数量", - "litematica.gui.label.schematic_verifier.expected": "预期", - "litematica.gui.label.schematic_verifier.found": "找到", + "litematica.gui.label.schematic_verifier.expected": "投影原方块", + "litematica.gui.label.schematic_verifier.found": "当前放置方块", "litematica.gui.label.schematic_verifier_display_type.all": "全部 (非忽略的)", "litematica.gui.label.schematic_verifier_display_type.correct_state": "正确状态", "litematica.gui.label.schematic_verifier_display_type.extra": "额外的方块", @@ -255,6 +269,7 @@ "litematica.gui.label.schematic_verifier.status.done_correct_total": "§a正确: %s§r, 总共: %s", "litematica.gui.label.schematic_verifier.status.verifying": "不可见的区块: %s / %s", "litematica.gui.label.schematic_verifier.verifier": "原理图验证程序", + "litematica.gui.label.task.title.remaining_chunks": "%s, 剩余区块 (%s)", "litematica.gui.label.task_name.area_analyzer": "区域分析器", "litematica.gui.label.task_name.delete": "删除任务", "litematica.gui.label.task_name.fill": "填充任务", @@ -264,7 +279,7 @@ "litematica.gui.label.task_name.verifier": "验证程序", "litematica.gui.message.confirm_file_deletion": "是否要删除文件 '%s'", "litematica.gui.message.schematic_projects.confirm_delete_area": "是否删除“上次受影响”的区域?\n这将删除这个工程管理器上次放置在世界上的,或者上次保存为一个版本文件的区域中任何方块实体\n(基本上是“最后一次看到受影响的区域”,这样如果你要循环版本,它就不会留下以前版本的方块)", - "litematica.gui.message.schematic_projects.confirm_place_to_world": "你想把这个版本放到世界吗?\\n这将删除项目管理器最后放置到世界的区域内的任何方块和实体,或最后保存为版本. (基本上 \\\"最后见过受影响的区域\\\", 这样,如果你要循环版本,它不会留下以前版本的方块.)", + "litematica.gui.message.schematic_projects.confirm_place_to_world": "你想把这个版本放到世界吗?\n这将删除项目管理器最后放置到世界的区域内的任何方块和实体,或最后保存为版本. (基本上 \\\"最后见过受影响的区域\\\", 这样,如果你要循环版本,它不会留下以前版本的方块.)", "litematica.gui.title.area_editor_normal": "区域编辑器(普通/多框模式)", "litematica.gui.title.area_editor_normal_schematic_projects": "区域编辑器 (§6§l图形项目区域§r)", "litematica.gui.title.area_editor_simple": "区域编辑器 (简单模式)", @@ -273,7 +288,6 @@ "litematica.gui.title.area_selection_manager": "区域选择管理器", "litematica.gui.title.configure_schematic_placement": "配置原理图放置", "litematica.gui.title.configure_schematic_sub_region": "配置放置子区域", - "litematica.gui.title.configs": "投影配置", "litematica.gui.title.confirm_file_deletion": "确认文件删除", "litematica.gui.title.copy_area_selection": "复制区域选择 '%s'", "litematica.gui.title.create_area_selection": "新建区域选择", @@ -325,8 +339,9 @@ "litematica.hud.misc.render_layer_mode": "图层模式: %s - %s", "litematica.hud.misc.render_layer_mode_all": "图层模式: %s", "litematica.hud.misc.renderer_status": "渲染器: A: %s S: %s B: %s O: %s SEL: %s", + "litematica.hud.misc.schematic_paste.data_restore_mode": "数据恢复模式: §b%s", "litematica.hud.misc.schematic_paste.replace_mode": "替换方块: %s", - "litematica.hud.schematic_placement.hover_info.lock_coordinate": "锁定此坐标\\n这允许改变其他坐标\\n不影响锁定的", + "litematica.hud.schematic_placement.hover_info.lock_coordinate": "锁定此坐标\n这允许改变其他坐标\n不影响锁定的", "litematica.hud.schematic_placement.hover_info.placement_locked": "此位置已锁定,如果不先解锁,则无法修改", "litematica.hud.schematic_placement.hover_info.placement_modified": "此位置已修改", "litematica.hud.schematic_placement.hover_info.placement_sub_region_modified": "此子区域已修改", @@ -344,7 +359,7 @@ "litematica.hud.schematic_projects.origin": "项目来源: %s", "litematica.hud.schematic_projects.project_name": "项目: %s", "litematica.hud.schematic_projects_mode": "§6原理图项目模式§r", - "litematica.info.material_list": "- 材料清单热键将打开上次查看的材料清单,\\n 如果有一个存储\\n- 要切换到其他材料列表,请打开一个\\n 放置配置GUI中的GUI按钮或原理图浏览器\\n- 存储/上次查看的列表也会被忘记\\n 如果选择的原理图放置已更改\\n- 如果还没有最后查看的材料清单,\\n 然后使用选定的放置,如果有的话", + "litematica.info.material_list": "- 材料清单热键将打开上次查看的材料清单,\n 如果有一个存储\n- 要切换到其他材料列表,请打开一个\n 放置配置GUI中的GUI按钮或原理图浏览器\n- 存储/上次查看的列表也会被忘记\n 如果选择的原理图放置已更改\n- 如果还没有最后查看的材料清单,\n 然后使用选定的放置,如果有的话", "litematica.label.alignment.center": "中心", "litematica.label.alignment.top_center": "顶部中心", "litematica.label.none_lower": "none", @@ -385,6 +400,8 @@ "litematica.message.schematic_exported_as": "原理图导出为 '%s'", "litematica.message.schematic_pasted": "在世界上粘贴原理图", "litematica.message.schematic_pasted_using_setblock": "原理图粘贴使用 %s 放置命令", + "litematica.message.schematic_pasted_using_fill_and_setblock": "使用 §b%s§r setblock命令粘贴的原理图", + "litematica.message.schematic_pasted_using_world_edit": "使用 §b%s§r 创世神 //set 命令粘贴的原理图", "litematica.message.schematic_placement_created": "创建放置 '%s'", "litematica.message.schematic_preview_cancelled": "预览任务已取消", "litematica.message.schematic_read_from_file_success": "加载原理图从文件中 '%s'", @@ -394,21 +411,22 @@ "litematica.message.set_area_origin": "将区域原点设置为%s", "litematica.message.set_selection_box_point": "设置/移动点从 %d 到 %s", "litematica.message.toggled": "已切换 %s %s", - "litematica.message.value.on": "NO", + "litematica.message.value.on": "ON", "litematica.message.value.off": "OFF", "litematica.message.schematic_projects.project_created": "已创建项目 '%s'", "litematica.message.schematic_projects.project_loaded": "已加载项目 '%s'", "litematica.message.schematic_projects.version_saved": "新版本 (#%s) 保存为 '%s'", "litematica.message.warn.area_selection.browser_open_in_simple_mode": "注意:您当前处于简单区域选择模式", "litematica.message.warn.layer_mode_currently_at": "注意:你当前处在 '%s' 显示层模式", - "litematica.message.warn.main_rendering_disabled": "警告:主渲染当前已禁用\\n查看视觉效果 -> %s, 或者热键 -> %s ['%s']", - "litematica.message.warn.schematic_blocks_rendering_disabled": "警告:原理图块呈现当前被禁用\\n查看视觉效果 -> %s, or 或者热键 -> %s ['%s']", - "litematica.message.warn.schematic_load_non_litematica": "警告:直接加载非Litematica原理图时,创建的展示位置不会持久。\\n此外,如果您必须多次加载原理图,那么每次加载时都会发生原理图类型转换滞后尖峰(对于大型原理图)。\\n\\n因此,建议导入原理图并通过原理图管理器菜单以Litematica格式保存,或者更好的是,使用MCEdit或Litematica中的粘贴模式将原始原理图粘贴到临时世界中,然后制作新的Litematica原理图 从那里开始,在适用的情况下,最好使用多个子区域来紧密捕获构建。", + "litematica.message.warn.main_rendering_disabled": "警告:主渲染当前已禁用\n查看视觉效果 -> %s, 或者热键 -> %s ['%s']", + "litematica.message.warn.schematic_blocks_rendering_disabled": "警告:原理图块呈现当前被禁用\n查看视觉效果 -> %s, or 或者热键 -> %s ['%s']", + "litematica.message.warn.schematic_load_non_litematica": "警告:直接加载非Litematica原理图时,创建的展示位置不会持久。\n此外,如果您必须多次加载原理图,那么每次加载时都会发生原理图类型转换滞后尖峰(对于大型原理图)。\n\n因此,建议导入原理图并通过原理图管理器菜单以Litematica格式保存,或者更好的是,使用MCEdit或Litematica中的粘贴模式将原始原理图粘贴到临时世界中,然后制作新的Litematica原理图 从那里开始,在适用的情况下,最好使用多个子区域来紧密捕获构建。", "litematica.message.warn.schematic_rebuild_placement_not_selected": "目前未选择目标展示位置。 “全部替换”热键仅适用于您单击的放置的当前选定子区域。 因此,要仅替换一个子区域中的块,请选择该子区域。 要替换整个原理图(所有太阳区域),请选择整个位置而不是其子区域。 这些块也仅在当前“渲染层”设置限制的区域内被替换。", - "litematica.message.warn.schematic_rendering_disabled": "警告:当前禁用了原理图渲染\\n查看视觉效果 -> %s, 或者热键 -> %s ['%s']", + "litematica.message.warn.schematic_rendering_disabled": "警告:当前禁用了原理图渲染\n查看视觉效果 -> %s, 或者热键 -> %s ['%s']", "litematica.message.warn.schematic_verifier.overlay_disabled": "警告:验证程序重叠渲染当前已禁用! 请参阅信息 -> %s (或者热键 -> %s ['%s'])", "litematica.message.warning.invalid_number": "输入无效的数字 '%s'", - "litematica.warning.area_editor.area_rendering_disabled": "注意:区域选择框呈现当前被禁用\\n查看视觉效果 -> %s, 或者热键 -> %s ['%s']", + "litematica.message.warning.schematic_projects_hidden": "警告: 原理图版本控制系统目前是隐藏的。一般来说,你不应该使用这个,除非你真的知道它是如何工作的,该功能改变了一些mod的功能。这意味着更新、修改原理图,需要在不同版本的原理图之间切换(=删除和替换以前的版本)。如果您想使用它,那么启用通用 -> 不隐藏原理图版本控制系统", + "litematica.warning.area_editor.area_rendering_disabled": "注意:区域选择框呈现当前被禁用\n查看视觉效果 -> %s, 或者热键 -> %s ['%s']", "litematica.tool_hud.block_1": "方块: %s", "litematica.tool_hud.block_2": "替换: %s", "litematica.tool_hud.facing": "朝向: %s", @@ -420,5 +438,440 @@ "litematica.tool_mode.name.paste_schematic": "在世界上粘贴原理图", "litematica.tool_mode.name.rebuild": "重建原理", "litematica.tool_mode.name.replace_block": "替换方块", - "litematica.tool_mode.name.schematic_placement": "原理图放置" + "litematica.tool_mode.name.schematic_placement": "原理图放置", + + "addSelectionBox":"addSelectionBox | 添加选区", + "Add a new selection box (position 1) here":"在当前位置添加一个新的选区(位置1)", + "cloneSelection":"cloneSelection | 克隆选区", + "Quickly clone the current area selection.\nThis basically just creates an in-memory-only schematic,\nand then creates a placement of that schematic and selects it,\nand also switches the tool mode to the Paste mode.":"快速克隆当前选定的区域,基本上是创建了一个储存中的示意图\n然后在当前位置创建一个示意图并选择它,并将工具模式切换为粘贴。", + "deleteSelectionBox":"deleteSelectionBox | 删除选区", + "Delete the currently selected box":"删除当前选区", + "easyPlaceActivation":"easyPlace | 简单放置(长按激活)", + "When the easyPlaceMode is enabled, this key must\nbe held to enable placing the blocks when\nusing the vanilla Use key":"当easyPlaceMode(简单放置)启用后,\n如果希望使用简单放置的功能,需要按住此按键。", + "easyPlaceToggle":"easyPlaceToggle | 简单放置(模式切换)", + "Allows quickly toggling on/off the Easy Place mode":"允许玩家快速的切换简单放置的模式。", + "executeOperation":"executeOperation | 执行操作", + "Execute the currently selected tool operation with the\ncurrent selection or placement in the Fill, Replace,\nPaste Schematic etc. modes":"在填充、替换、粘贴原理图等模式中,\n以当前选择模式或放置方式执行当前选择的工具操作", + "invertGhostBlockRenderState":"invertGhost | 调整投影方块渲染状态", + "Inverts the schematic/ghost block rendering status\nwhile this keybind is held down":"当按住该按键后,对投影的方块渲染效果是否开启进行调整。", + "invertOverlayRenderState":"invertOverlay | 调整投影线框渲染状态", + "Inverts the Overlay rendering status while this keybind is held down":"当按住该按键后,对投影的线框渲染效果是否开启进行调整", + "layerModeNext":"layerModeNext | 下一渲染模式", + "Cycle the rendering mode (all, layers) forward":"切换为下一个渲染模式", + "layerModePrevious":"layerModePrevious | 上一渲染模式", + "Cycle the rendering mode (all, layers) backwards":"切换为上一个渲染模式", + "layerNext":"layerNext | 下一层", + "Move the rendered layer selection up":"将渲染的图层向上移动一层", + "layerPrevious":"layerPrevious | 上一层", + "Move the rendered layer selection down":"将渲染的图层向下移动一层", + "layerSetHere":"layerSetHere | 设置初始层", + "Set the Render Layer to the player's current position":"将渲染层的初始位置设定为玩家当前位置", + "nudgeSelectionNegative":"nudgeSelection | 正向推动选区", + "Nudge the current selection in the \"negative\" direction\nThis is basically the same as mouse wheel down\nwith the Nudge modifier pressed":"向面向方向前移选区位置,其效果与alt+鼠标滚轮效果类似", + "nudgeSelectionPositive":"nudgeSelection | 反向推动选区", + "Nudge the current selection in the \"positive\" direction\nThis is basically the same as mouse wheel up\nwith the Nudge modifier pressed":"向面向方向后移选区位置,其效果与alt+鼠标滚轮效果类似", + "moveEntireSelection":"moveEntire | 选区定位", + "Move the entire current selection here":"移动整个选区至玩家所在的当前位置", + "openGuiAreaSettings":"openGuiArea | 区域编辑器", + "Open the Area Settings GUI for the currently selected area":"打开当前选区的区域设置GUI界面", + "openGuiLoadedSchematics":"openGuiLoaded | 原理图加载", + "Open the Loaded Schematic GUI":"打开原理图加载的GUI界面", + "openGuiMainMenu":"openGuiMainMenu | 主界面", + "Open the Litematica main menu":"打开Litematica的主界面菜单", + "openGuiMaterialList":"openGuiMaterialList | 材料列表", + "Open the Material List GUI for the currently\nselected schematic placement":"打开当前选择的投影材料列表GUI", + "openGuiPlacementSettings":"openGuiPlacement | 配置原理图放置", + "Open the Placement Settings GUI for the currently\nselected placement or sub-region":"打开当前选区或其子区域的配置原理图放置GUI", + "openGuiSchematicPlacements":"openGuiSchematic | 管理原理图放置", + "Open the Schematic Placements GUI":"打开管理原理图放置GUI", + "openGuiSchematicProjects":"openGuiSchematic | 原理图文件夹", + "Open the Schematic Projects GUI":"打开原理图工程文件夹GUI", + "openGuiSchematicVerifier":"openGuiSchematic | 原理图验证器", + "Open the Schematic Verifier GUI for the currently\nselected schematic placement":"打开当前选定的原理图的示意图验证器GUI", + "openGuiSelectionManager":"openGuiSelection | 区域选择管理器", + "Open the Area Selection manager GUI":"打开区域选择管理器的GUI", + "openGuiSettings":"openGuiSettings | 配置菜单", + "Open the Config GUI":"打开投影配置菜单的GUI", + "operationModeChangeModifier":"operationMode | 模式选择", + "The modifier key to quickly change the operation mode.\nHold this and scroll while holding the \"tool item\" to quickly cycle the mode.":"快速修改模式,当玩家手持木棍时。\n玩家可以按住该按键滚动滚轮快速调整模式。", + "pickBlockFirst":"pickBlockFirst | 选择当前方块", + "A key to pick block the first\nschematic block ray traced to":"该按键可以选中指向的表面方块,\n并将将其切换至手中", + "pickBlockLast":"pickBlockLast | 选择可放置方块", + "A key to pick block the last schematic block\nray traced to, before the first (possible) client world\nblock ray traced to. Basically this would get\nyou the block you could place against an existing block.":"该按键可以选中当前可以放置的方块\n怎么解释呢?就是说,这个键会选择你现在可以放置的最远的方块,\n当然这得看你对准了哪个面", + "pickBlockToggle":"pickBlockToggle | 选择方块开关", + "A hotkey to toggle the pick block toggle option in the\nGeneric configs. This is provided as a quick way to enable\nor disable the pick block keys, if they interfere with something.":"在通用配置当中快速关闭或开启方块选择的快捷键\n这是一种快速切换其模式的方法。\n如果它们产生了什么干扰(比如功能冲突)", + "renderInfoOverlay":"renderInfo | 方块信息", + "The key that enables rendering the block info overlay.\nUse NONE for not requiring a key to be pressed.\nDisable the similarly named option in the Visuals\nconfigs to disable the overlay completely.":"在方块放置后,如果是错误的放置,会提示投影原本的方块信息\n如果是正确的,投影会显示当前方块的信息", + "renderOverlayThroughBlocks":"renderOverlay | 原理图透视渲染", + "A hotkey to allow the overlays to render through blocks.\nThis is just a quicker way to temporarily enable\nthe same thing that the 'schematicOverlayRenderThroughBlocks' option in Visuals does.":"该快捷键将高亮显示投影原理图未完成部分\n高亮的部分会穿透显示,无视方块遮挡。", + "rerenderSchematic":"rerenderSchematic | 重载渲染图", + "Hotkey to refresh/redraw only the schematic, instead of\nhaving to refresh the vanilla terrain too with F3 + A":"使用该快捷键重载原理图,而不需要使用F3+A刷新区块", + "saveAreaAsInMemorySchematic":"saveAreaAs | 将原理图存至内存", + "Save the current Area Selection as an in-memory Schematic":"将当前选中区域的原理图保存于内存当中", + "saveAreaAsSchematicToFile":"saveAreaAs | 将原理图存至文件", + "Save the current Area Selection as a Schematic to a file":"将当前选中区域的原理图保存于文件当中", + "schematicRebuildBreakPlaceAll":"schematicRebuild | 同方块全部清除", + "Modifier key to activate the \"break all identical blocks\"\nfunction in the Schematic Rebuild tool mode":"在重建原理图的模式当中\n按住该键可添加或删除原理图内所有相同方块\n如果使用添加,该方块会填满所有空位", + "schematicRebuildBreakPlaceDirection":"schematicRebuild | 同方块线性增删", + "Modifier key to activate the directional/continuous\nbreak or place function in the Schematic Rebuild tool mode":"在重建原理图的模式当中\n按住该键可添加或删除原理图内指定方向的相同方块\n如果使用添加,该方块会填满该方向的所有空位", + "schematicRebuildReplaceAll":"schematicRebuild | 同方块全部替换", + "Modifier key to activate the \"replace all identical\"\nreplace mode/function in the Schematic Rebuild tool mode":"在重建原理图的模式当中\n按住该键可使用手中方块替换原理图内所有相同方块", + "schematicRebuildReplaceDirection":"schematicRebuild | 同方块线性替换", + "Modifier key to activate the directional/continuous\nreplace mode/function in the Schematic Rebuild tool mode":"在重建原理图的模式当中\n按住该键可使用手中方块替换原理图内指定方向的相同方块", + "schematicVersionCycleModifier":"schematic | 投影版本选择", + "The modifier key to hold to be able to use the mouse wheel\nto cycle through the schematic versions in the Version Control tool mode":"按住该键滚动滚轮可以选择投影的版本", + "schematicVersionCycleNext":"schematic | 下一个投影版本", + "A hotkey to cycle to the next schematic version in the Version Control tool mode":"在版本控制工具模式下,循环到下一个投影版本的热键", + "schematicVersionCyclePrevious":"schematic | 上一个投影版本", + "A hotkey to cycle to the next schematic version in the Version Control tool mode":"在版本控制工具模式下,循环到上一个投影版本的热键", + "selectionGrabModifier":"selection | 移动选区", + "The modifier key to hold to \"grab\" a selection\nbox or corner for cursor moving.":"按住快捷键,抓取选择框角点,\n移动选区(模式7_移动)", + "selectionGrow":"selectionGrow | 扩大选区", + "The action hotkey to auto-grow the selection box around\nany adjacent/diagonally connected blocks":"点击快捷键后,在任何相邻的/对角线连接的块周围自动扩大选区范围\n(§4然而它直接选中了我能看到的整个地图384*72*384——来自ZMDF的吐槽§r)", + "selectionGrowModifier":"selectionGrow | 扩大选区调节器", + "The modifier key to hold to grow or shrink\na selection box while scrolling":"按住快捷键,滑动滚轮\n可以延长体对角线的长度", + "selectionNudgeModifier":"selection | 位移调节器", + "The modifier key to hold while scrolling\nto nudge the selected area or corner":"按住快捷键,滑动滚轮\n可以移动选区位置", + "selectionModeCycle":"selection | 选区模式选择", + "Change the mode between Corners and Cuboid\nin the Area Selection mode":"在选区模式当中切换角点或展开模式。", + "selectionShrink":"selectionShrink | 精简选框", + "The action hotkey to shrink the selection box so that there\nisn't any empty space (empty layers) on any side":"使用该快捷键使得选区达到最小范围\n意思就是删除了多余的选定区域\n区域的长宽高就是选定的长宽高\n(§2这个愚蠢的汉化者ZMDF在说屁§r)", + "setAreaOrigin":"setAreaOrigin | 设置初始角点", + "Set/move the origin point of the current\narea selection to the player's position":"设置/移动当前区域选择的原点到玩家的位置", + "setSelectionBoxPosition1":"setSelectionBox | 设置角点1", + "Set the first position of the currently selected\nbox to the player's position":"将选区第一个角点的位置设置为玩家当前位置", + "setSelectionBoxPosition2":"setSelectionBox | 设置角点2", + "Set the second position of the currently selected\nbox to the player's position":"将选区第二个角点的位置设置为玩家当前位置", + "toggleAllRendering":"toggleAllRendering | 切换所有渲染", + "Toggle all rendering on/off":"打开或关闭所有的渲染", + "toggleAreaSelectionBoxesRendering":"toggleAreaSelection | 区域选框渲染", + "Toggle Area Selection boxes rendering on/off":"切换区域选择的框线是否显示的快捷键", + "toggleSchematicRendering":"toggleSchematic | 投影方块渲染", + "Toggle schematic rendering (blocks & overlay) on/off":"切换投影区域内方块是否显示的快捷键", + "toggleInfoOverlayRendering":"toggleInfoOverlay | 方块信息显示", + "Toggle the info overlay rendering (for hovered block info)":"切换准心所指向的方块信息是否显示的快捷键", + "toggleOverlayRendering":"toggleOverlay | 投影方块显示", + "Toggle the block overlay rendering on/off":"切换投影区域的方块是否显示方块边框及方块色差的快捷键", + "toggleOverlayOutlineRendering":"toggleOverlay | 方块描边显示", + "Toggle the block overlay outline rendering on/off":"切换投影区域的方块是否显示方块边框的快捷键", + "toggleOverlaySideRendering":"toggleOverlay | 方块表面显示", + "Toggle the block overlay side rendering on/off":"切换投影区域的方块是否显示方块色差的快捷键", + "togglePlacementBoxesRendering":"togglePlacement | 范围框线显示", + "Toggle Schematic Placement boxes rendering on/off":"切换投影范围框线是否显示的快捷键", + "togglePlacementRestriction":"togglePlacement | 位置限制", + "A hotkey to toggle the placement restriction mode":"切换位置限制模式的快捷键", + "toggleSchematicBlockRendering":"toggleSchematic | 投影方块视觉", + "Toggle schematic block rendering on/off":"切换投影范围中所有方块的贴图是否显示的快捷键", + "toggleTranslucentRendering":"toggleTrans | 透明切换", + "Toggle translucent vs. opaque ghost block rendering":"切换投影范围中所有方块是否为透明显示的快捷键", + "toggleVerifierOverlayRendering":"toggleVerifier | 验证覆盖", + "Toggle the Schematic Verifier overlay rendering":"切换示意图验证器覆盖渲染\n(§4然而我并不知道怎么用——ZMDF§r)", + "toolEnabledToggle":"toolEnabledToggle | 工具切换", + "The keybind to toggle the \"tool\" item functionality on/off":"切换是否开启范围设定工具(木棍)的快捷键", + "toolPlaceCorner1":"toolPlaceCorner | 角点1放置", + "The button to use while holding the \"tool\" item\nto place the primary/first corner":"当手持范围设定工具(木棍)时放置角点1", + "toolPlaceCorner2":"toolPlaceCorner | 角点2放置", + "The button to use while holding the \"tool\" item\nto place the second corner":"当手持范围设定工具(木棍)时放置角点2", + "toolSelectElements":"toolSelectElements | 区域选择", + "The button to use to select corners or boxes\nwhile holding the \"tool\" item":"当手持范围设定工具(木棍)时指向角点或区域将选中角点或区域", + "toolSelectModifierBlock1":"toolSelect | 主方块选择", + "The modifier key to hold while using the 'toolSelectElements'\nhotkey, to select the primary block type to use in some of the tool modes":"按住该键时按下§6区域选择§f\n选择要在某些工具模式中使用的主要块类型\n(§4适用于替换填充等功能§r)", + "toolSelectModifierBlock2":"toolSelect | 副方块选择", + "The modifier key to hold while using the 'toolSelectElements'\nhotkey, to select the secondary block type to use in some of the tool modes":"按住该键时按下§6区域选择§f\n选择要在某些工具模式中使用的辅助块类型\n(§4适用于替换填充等功能§r)", + "unloadCurrentSchematic":"unloadCurrent | 卸载投影", + "Unloads the schematic of the currently selected placement,and thus also removes all placements created from it\n":"卸载当前所加载的投影,并删除从中创建的更改", + + "areaSelectionBoxSideColor":"areaSelection | 选区边框颜色", + "The color of the area selection boxes, when they are unselected":"选区未被选中时边框的颜色", + "materialListHudItemCountsColor":"materialListHud | 材料数量颜色", + "The color of the item count text in the Material List info HUD":"材料列表开启HUD后的游戏内材料数量的颜色", + "schematicRebuildBreakPlaceOverlayColor":"schematicRebuild | 重建原理图删除指示器", + "The color of Schematic Rebuild mode's break or place blocks selector overlay":"在重建原理图模式的批量删除当中,\n在方向选择器上的指示器颜色", + "schematicRebuildReplaceOverlayColor":"schematicRebuild | 重建原理图替换指示器", + "The color of Schematic Rebuild mode's replace selector overlay":"在重建原理图模式的批量替换当中,\n在方向选择器上的指示器颜色", + "schematicOverlayColorExtra":"schematicOverlay | 多余方块颜色", + "The color of the blocks overlay for extra blocks":"多余方块在投影内显示的颜色", + "schematicOverlayColorMissing":"schematicOverlay | 缺失方块颜色", + "The color of the blocks overlay for missing blocks":"缺失方块在投影内显示的颜色", + "schematicOverlayColorWrongBlock":"schematicOverlay | 错误方块颜色", + "The color of the blocks overlay for wrong blocks":"错误方块在投影内显示的颜色", + "schematicOverlayColorWrongState":"schematicOverlay | 错误方向颜色", + "The color of the blocks overlay for wrong block states":"方块方向错误在投影内显示的颜色", + + "blockInfoLinesAlignment":"blockInfo | 方块提示位置", + "The alignment of the block info lines overlay":"方块信息弹窗的显示位置", + "blockInfoLinesEnabled":"blockInfo | 方块信息启用", + "If enabled, then MiniHUD-style block info overlay\nis rendered for the looked-at block":"如果开启该功能,MiniHUD将显示方块信息\n默认位于屏幕右上角", + "blockInfoLinesFontScale":"blockInfo | 方块信息大小", + "The font scale for the block info lines":"默认在右上角的方块信息的字体大小控制", + "blockInfoLinesOffsetX":"blockInfo | 方块信息横移", + "The x offset of the block info lines from the selected edge":"方块信息与边框的横向偏移量(横向距离)", + "blockInfoLinesOffsetY":"blockInfo | 方块信息纵移", + "The y offset of the block info lines from the selected edge":"方块信息与边框的纵向偏移量(纵向距离)", + "blockInfoOverlayAlignment":"blockInfo | 方块信息位置", + "The alignment of the Block Info Overlay":"方块信息在屏幕位置调整的选项", + "blockInfoOverlayOffsetY":"blockInfo | 方块提示位置纵移", + "The y offset of the block info overlay from the selected edge":"方块信息弹窗的纵向偏移量", + "blockInfoOverlayEnabled":"blockInfo | 方块提示启用", + "Enable Block Info Overlay rendering to show info\nabout the looked-at block or verifier error marker,\nwhile holding the 'renderInfoOverlay' key":"启用方块信息弹窗,其功能为图形显示方块贴图\n主要是可以在投影放错时,为你提供投影原本方块的信息。", + "infoHudAlignment":"infoHud | 材料HUD位置", + "The alignment of the \"Info HUD\",\nused for the Material List, Schematic Verifier mismatch positions etc.":"材料信息位置的调整\n(其实和材料有关的hud显示都是这玩意)", + "infoHudMaxLines":"infoHud | 材料HUD行数", + "The maximum number of info lines to show on the HUD at once":"控制材料HUD的最大行数", + "infoHudOffsetX":"infoHud | 材料HUD横移", + "The X offset of the Info HUD from the screen edge":"材料HUD与边框的横向偏移量(横向距离)", + "infoHudOffsetY":"infoHud | 材料HUD纵移", + "The Y offset of the Info HUD from the screen edge":"材料HUD与边框的纵向偏移量(纵向距离)", + "infoHudScale":"infoHud | 材料HUD缩放", + "Scale factor for the generic Info HUD text":"控制材料HUD的缩放大小", + "materialListHudMaxLines":"materialList | 材料HUD最大行数", + "The maximum number of items to show on\nthe Material List Info HUD at once":"控制材料HUD的最大行数", + "materialListHudScale":"materialList | 材料HUD缩放", + "Scale factor for the Material List Info HUD":"控制材料HUD的缩放大小", + "statusInfoHud":"statusInfoHud | 状态信息HUD", + "Enable a status info HUD renderer,\nwhich renders a few bits of status info, such as\nthe current layer mode and renderers enabled state":"启用状态信息的显示,该显示内容默认位于左下角\n其内容包含当前渲染层的状态与层数\n当然,这是在手持非木棍的情况下显示的。", + "statusInfoHudAuto":"status | 状态HUD自动显示", + "Allow automatically momentarily enabling the status info HUD \"when needed\",\nfor example when creating a placement and having rendering disabled":"允许自动暂时开启状态信息HUD比如当需要时,\n例如当创建一个位置或者渲染禁用时", + "toolHudAlignment":"toolHudAlignment | 工具HUD位置", + "The alignment of the \"tool HUD\", when holding the configured \"tool\"":"当你使用木棍时,将工具的HUD选择区域定位与该位置", + "toolHudOffsetX":"toolHud | 工具HUD横移", + "The X offset of the Info HUD from the screen edge":"工具HUD与边框的横向偏移量(横向距离)", + "toolHudOffsetY":"toolHud | 工具HUD纵移", + "The X offset of the Info HUD from the screen edge":"工具HUD与边框的纵向偏移量(纵向距离)", + "toolHudScale":"toolHudScale | 工具HUD缩放", + "Scale factor for the Tool HUD text":"控制工具HUD的文本缩放大小", + "verifierErrorHilightAlpha":"verifierError | 验证错误方块高亮", + "The alpha value of the error marker box sides":"在打开原理图验证程序对当前放置进行验证后,\n点击验证当中出现问题的方块,\n错误的方块将在透视状态下所产生的亮度显示", + "verifierErrorHilightMaxPositions":"verifierError | 验证错误方块上限", + "The maximum number of mismatched positions to render\nat once in the Schematic Verifier overlay.":"在打开原理图验证程序对当前放置进行验证后,\n点击验证当中出现问题的方块,\n错误的方块在透视状态下的最大数量显示", + "verifierOverlayEnabled":"verifier | 原理图验证渲染", + "Enable Schematic Verifier marker overlay rendering":"启用原理图验证渲染", + "warnDisabledRendering":"warnDisabled | 关闭告警信息", + "Should the warning message about being in a layer mode\nor having some of the rendering options disabled\nbe shown when loading a new schematic\nor creating a new placement":"当加载一个新的示意图或创建一个新的位置时,\n是否应该显示关于该层的一些警告消息", + + "enableAreaSelectionBoxesRendering":"enableArea | 选区边框启用切换", + "Enable Area Selection boxes rendering":"该选项可以切换是否显示选区的边框", + "enablePlacementBoxesRendering":"enablePlacement | 投影边框启用切换", + "Enable Schematic Placement boxes rendering":"该选项可以切换是否显示投影区域的边框", + "enableRendering":"enableRendering | 开启全部渲染", + "Main rendering toggle option. Enables/disables ALL mod rendering.":"主渲染切换选项,该选项可切换所有渲染是否开启", + "enableSchematicBlocksRendering":"enableSchematic | 投影方块显示", + "Enables schematic block rendering.\nDisabling this allows you to only see the color overlay":"该选项可以切换是否在投影内显示方块的贴图\n(开启后可以更好辨识出投影缺失的是什么方块)", + "enableSchematicOverlay":"enableSchematic | 渲染方块特征", + "The main toggle option for the schematic\nblock overlay rendering":"该选项可以切换是否在投影内使用边框表示未放置的方块\n未被放置的方块虽然没有边框,但是仍可以显示(显示状态由透明度决定)", + "enableSchematicRendering":"enableSchematic | 渲染投影", + "Enable rendering the schematic and overlay":"该选项可以切换是否显示投影原理图", + "ghostBlockAlpha":"ghostBlock | 虚影方块透明度", + "The alpha value of the ghost blocks,\nwhen rendering them as translucent":"调节投影内虚影方块的透明度,\n该值可以选定投影图内的虚影方块透明度。", + "placementBoxSideAlpha":"placementBox | 放置边框透明度", + "The alpha value of the sub-region boxes' side":"子区域边框的透明度(§2没有找到实际的功能体现——ZMDF§r)", + "overlayReducedInnerSides":"overlayReduced | 减少内侧面渲染", + "If enabled, then the adjacent/touching inner sides\nfor the block overlays are removed/not rendered":"如果启用,可以使得投影内方块接触的侧面不被显示\n有两个优点\n-1.首先减少了投影的渲染工作量\n-2.在投影内部时,内部的杂色会变淡\n(§6虽然默认是关闭但建议开启-ZMDF§r)", + "renderAreaSelectionBoxSides":"renderArea | 选择框边渲染", + "If enabled, then the area selection boxes will\nhave their side quads rendered":"该选项可以选择是否开启选区边框显示(渲染)", + "renderBlocksAsTranslucent":"renderBlocks | 方块半透明化", + "If enabled, then the schematics are rendered\nusing translucent \"ghost blocks\"":"如果启用该选项,投影原理图内的方块展示将由\n不透明变为半透明状态", + "renderCollidingSchematicBlocks":"renderColliding | 渲染重叠块", + "If enabled, then blocks in the schematics are rendered\nalso when there is already a (wrong) block in the client world.\nProbably mostly useful when trying to build\nsomething where there are snow layers or water in the way.":"如果启用该选项,那么当客户端世界中存在错误的方块时\n投影原理图内的方块仍然会进行显示\n当你试图在一些有水或着雪层的地方建造时。\n(就是无视雪片与流动液体的意思,大概)", + "renderErrorMarkerConnections":"renderError | 验证器错误连接", + "Render connecting lines between subsequent verifier hilight box corners.\nThis was a rendering bug that some people experienced, but at least some players\nliked it and requested for it to stay, so this options \"restores\" it":"启用该选项时,当用户在使用验证器验证原理图是否正确后,\n当你在验证器内选中了错误方块\n错误方块间会有连线。\n(这个功能有部分bug,但是作者应该是为了方便错误方块的定位)", + "renderErrorMarkerSides":"renderError | 验证器错误显示", + "If enabled, then the error markers in the Schematic Verifier\nwill have (translucent) sides rendered instead of just the outline":"关闭该选项时,用户在使用验证器验证原理图是否正确后,\n当你在验证器内选中了错误方块\n它的展示方式将不仅仅标明颜色,\n还会标明它的贴图(便于用户知道错误的方块是什么)", + "renderPlacementBoxSides":"renderPlacement | 放置框渲染", + "If enabled, then the placed schematic sub-region boxes\nwill have their side quads rendered":"如果启用该选项,则放置区域会显示侧面颜色\n(§6就是侧面将显示默认的选区颜色,影响视线——ZMDF§r)", + "renderPlacementEnclosingBox":"renderPlacement | 渲染封闭放置", + "If enabled, then an enclosing box is rendered around\nall the sub-regions in a schematic (placement)":"如果启用,则在投影中的所有子区域周围呈现一个封闭框", + "renderPlacementEnclosingBoxSides":"renderPlacement | 渲染封闭放置边缘", + "If enabled, then the enclosing box around\na schematic placement will have its side quads rendered":"如果启用,则在投影中的所有子区域周围的封闭框会显示一个完整的面", + "renderTranslucentBlockInnerSides":"renderTranslucent | 渲染投影方块", + "If enabled, then the model sides are also rendered\nfor inner sides in the translucent mode":"如果启用该选项,则投影内所有方块的面将成为透明\n(这将使得你可以看透很多方块,嗯没错,看透。)", + "schematicOverlayEnableOutlines":"schematicOverlay | 渲染框线", + "Enables rendering a wire frame outline for\nthe schematic block overlay":"如果启用该选项,投影原理图方块边框的框线将会显示", + "schematicOverlayEnableSides":"schematicOverlay | 渲染块面", + "Enables rendering translucent boxes/sides for\nthe schematic block overlay":"如果启用该选项,投影原理图方块的块面将会显示", + "schematicOverlayModelOutline":"schematicOverlay | 覆盖模型框线", + "If enabled, then the schematic overlay will use the\nblock model quads/vertices instead of the\ntraditional full block overlay":"如果启用,那么示意图覆盖将使用块模型的四块/顶点,而不是传统的全块覆盖\n(主要针对不完整方块)", + "schematicOverlayModelSides":"schematicOverlay | 覆盖模型块面", + "If enabled, then the schematic overlay will use the\nblock model quads/vertices instead of the\ntraditional full block overlay":"如果启用,那么示意图覆盖将使用块模型的四块/顶点,而不是传统的全块覆盖\n(主要针对不完整方块)", + "schematicOverlayOutlineWidth":"schematicOverlay | 轮廓线宽度", + "The line width of the block (model) outlines":"投影原理图当中方块轮廓线的宽度设置", + "schematicOverlayOutlineWidthThrough":"schematicOverlay | 透视轮廓线宽度", + "The line width of the block (model) outlines,\nwhen the overlay is rendered through blocks":"投影原理图当中透视方块轮廓线的宽度设置", + "schematicOverlayRenderThroughBlocks":"schematicOverlay | 原理图透视", + "If enabled, then the schematic overlay will be rendered\nthrough blocks. This is probably only useful once you are\nfinished building and want to see any errors easier":"如果启用,那么原理图将可透视观察。\n这可能只在您完成构建并希望更容易地看到任何错误时才有用", + "schematicOverlayTypeExtra":"schematicOverlay | 原理图透视多余", + "Enables the schematic overlay for extra blocks":"当开启了原理图透视后,关闭该选项将不再显示多余的方块", + "schematicOverlayTypeMissing":"schematicOverlay | 原理图透视缺失", + "Enables the schematic overlay for missing blocks":"当开启了原理图透视后,关闭该选项将不再显示缺失的方块", + "schematicOverlayTypeWrongBlock":"schematicOverlay | 原理图透视错误", + "Enables the schematic overlay for wrong blocks":"当开启了原理图透视后,关闭该选项将不再显示错误的方块", + "schematicOverlayTypeWrongState":"schematicOverlay | 原理图透视错位", + "Enables the schematic overlay for wrong states":"当开启了原理图透视后,关闭该选项将不再显示错位的方块", + "schematicVerifierUseBlockModels":"schematicVerifier | 原理图验证图片", + "Forces using blocks models for everything in the Schematic Verifier\nresult list. Normally item models are used for anything\nthat has an item, and block models are only used for blocks\nthat don't have an item, plus for Flower Pots to see the contained item.":"当你使用原理图验证的时候,如果你开启了该选项,\n那么原理图验证界面当中,只会存在文字,而并非方块贴图", + + "areaSelectionsPerWorld":"areaSelections | 世界区域选择", + "changeSelectedCornerOnMove":"changeSelected | 更改角点选择", + "If true, then the selected corner of an area selection\nis always set to the last moved corner,\nwhen using the set corner hotkeys":"如果启用,那么在使用角点模式进行区域选择时\n区域选择的角总是被设置为最后选择的角\n(最后选择的角就是角点的框线与面都有颜色)\n(PS:虽然在实际使用过程当中没有太大影响)", + "easyPlaceMode":"easyPlaceMode | 简单放置模式", + "When enabled, then simply trying to use an item/place a block\non schematic blocks will place\nthat block in that position":"这是一个模式,通过切换激活\n当启用时,在投影原理图当中放置方块将变得简单\n其功能包括\n1.自动切换方块\n2.支持凭空放置\n3.非原理图内方块禁止放置\n§6PS:该功能在放置具有方向性的方块时很蠢——ZMDF§r", + "easyPlaceHoldEnabled":"easyPlace | 简单放置状态", + "When enabled, then simply holding down the use key\nand looking at different schematic blocks will place them":"这是一个状态,通过长按快捷键激活\n当启用时,长按快捷键在投影原理图当中放置方块将变得简单\n其功能包括\n1.自动切换方块\n2.支持凭空放置\n3.非原理图内方块禁止放置\n§6PS:该功能在放置具有方向性的方块时很蠢——ZMDF§r", + "executeRequireHoldingTool":"executeRequire | 执行长按工具", + "Require holding an enabled tool item\nfor the executeOperation hotkey to work":"需要持有已启用的工具项以使executeOperation热键工作", + "fixRailRotation":"fixRailRotation | 铁路旋转修复", + "If true, then a fix is applied for the vanilla bug in rails,\nwhere the 180 degree rotations of straight north-south and\neast-west rails rotate 90 degrees counterclockwise instead >_>":"如果为真,那么就对轨道中常见的bug进行了修正,\n即南北方向和东西方向的直线轨道180度旋转时逆时针旋转90度,而不是>_>\n应该是对于轨道显示做了调整", + "loadEntireSchematics":"loadEntire | 加载全部投影", + "If true, then the entire schematic is always loaded at once.\nIf false, then only the part that is within the client's view distance is loaded.":"如果启用,那么整个投影总是同时加载。如果为关闭,则只加载客户端视距内的部分。", + "pasteCommandInterval":"pasteCommand | 粘贴命令CD", + "The interval in game ticks the Paste schematic task runs at,\nin the command-based mode":"在基于命令的模式下,粘贴原理图任务运行的时间间隔", + "pasteCommandLimit":"pasteCommand | 粘贴命令限制", + "Max number of commands sent per game tick,\nwhen using the Paste schematic feature in the\ncommand mode on a server":"在服务器上的命令模式中使用粘贴原理图特性时,每个游戏刻中发送的命令的最大数量", + "pasteCommandNameSetblock":"pasteCommand | 粘贴命令块名", + "The setblock command name to use for the\nPaste schematic feature on servers, when\nusing the command-based paste mode":"在使用基于命令的粘贴模式时,用于服务器上粘贴原理图特性的setblock命令名", + "pasteIgnoreInventories":"pasteIgnore | 忽略粘贴库存", + "Don't paste inventory contents when pasting a schematic":"粘贴示意图时不要粘贴库存内容\n(大概指箱子内物品)", + "pasteReplaceBehavior":"pasteReplace | 粘贴替换模式", + "The behavior of replacing existing blocks\nin the Paste schematic tool mode":"在粘贴原理图工具模式中替换现有块的方式", + "pickBlockEnabled":"pickBlock | 方块抓取启用", + "Enables the schematic world pick block hotkeys.\nThere is also a hotkey for toggling this option to toggle those hotkeys... o.o":"启用投影原理图方块选择快捷键。\n还有一个热键来切换这个选项来切换这些热键的工作模式\n... o.o(来自于作者masady的小表情)", + "pickBlockableSlots":"pickBlockable | 快捷选择栏位", + "The hotbar slots that are allowed to be\nused for the schematic pick block":"允许用于投影原理图挑选的快捷栏\n(12345大概是整个背包加上副手)", + "placementRestriction":"placementRestriction | 限制放置", + "When enabled, the use key can only be used\nwhen holding the correct item for the targeted position,\nand the targeted position must have a missing block in the schematic":"当启用时,使用键只能在保持目标位置的正确项目时使用,\n而目标位置必须在示意图中缺少块\n(本来以为是方向不对就不能放置,结果是方块一样就行,\n§4无视方向,那我为什么不用简单放置???\n——来自ZMDF的吐槽§r)", + "renderMaterialListInGuis":"renderMaterial | 在gui中显示材质列表", + "Whether or not the material list should\nbe rendered inside GUIs":"材质列表是否应该在gui中呈现", + "renderThreadNoTimeout":"renderThread | 移除渲染超时", + "Removes the timeout from the rendering worker threads.\nIf you get very stuttery rendering when moving around\nor dealing with large schematics, try disabling this. It will however make\nthe schematic rendering a lot slower in some cases.":"从渲染工作线程中移除超时。\n如果你在处理大型原理图的时候渲染的很不流畅,\n试着禁用它。但是在某些情况下,它会使示意图的渲染速度慢很多。", + "selectionCornersMode":"selection | 选择选区模式", + "The Area Selection corners mode to use (Corners, or Expand)":"要使用的区域选择模式(角点,或展开)", + "toolItem":"toolItem | 工具", + "The item to use as the \"tool\" for selections etc.":"作为用于选择的工具,虽然默认是木棍\n(§3但是其实你想拿末影龙头也是可以的hhh§r)", + "toolItemEnabled":"toolItemEnabled | 启用工具项目", + "If true, then the \"tool\" item can be used to control selections etc.":"如果启用该选项,那么你可以使用工具进行操作\n如果你关了的话,那它就是一根朴素的木棍\n§6如果你没有改默认工具的话——ZMDF§r", + + "schematicRebuildBreakExceptPlaceOverlayColor":"schematicRebuild | 重建原理图保留指示器", + "The color of Schematic Rebuild mode's break all blocks except targeted selector overlay":"在重建原理图模式当中,选择保留方块的指示器颜色", + "schematicRebuildBreakAllExcept":"schematicRebuild | 同方块选择保留", + "Modifier key to activate the \"break everything except\"\nmode/function in the Schematic Rebuild tool mode.\nBasically when you hold this key and punch a schematic block,\nall other blocks except this block will be removed from the schematic.":"在重建原理图的模式当中\n按住该键可使得玩家在原理图当中仅保留指定的选中方块\n这也就意味着除了你选中的方块,其他投影方块将被删除。", + + "hightlightBlockInInventoryColor":"hightlightBlock | 高亮显示颜色", + "The highlight color for the item of the looked at block":"在物品栏中高亮显示目标方块的颜色", + "debugLogging":"debugLogging | 调试日志", + "Enables some debug log messages in the game console,\nfor debugging certain issues or crashes.":"在游戏控制台中启用一些调试日志消息,用于调试某些问题或崩溃。", + "highlightBlockInInventory":"highlightBlock | 物品栏高亮显示", + "When enabled, highlights the item (including Shulker Boxes containing it)\nof the looked at block in the schematic":"当启用时,背包内高亮显示指向原理图的方块\n(无论是物品栏还是潜影盒)", + "layerModeFollowsPlayer":"layerMode | 图层显示跟随", + "If true, then the render layer follows the player.\nNote: This currently collapses Layer Range type ranges unfortunately":"如果开启,则渲染层跟随玩家,但是只能跟随当前高度", + "pickBlockShulkers":"pickBlock | 潜影盒选块", + "If enabled, then if the required item for the pick bloc\nis not found directly in the player's inventory, but there\nis a Shulker box that contains it, the Shulker Box\nwill be switched to the player's hand instead":"如果启用,那么如果选取方块物品没有在玩家背包找到\n那么就切换出包含他的潜影盒", + + "ignoreExistingFluids":"ignoreExisting | 忽略投影内液体", + "If enabled, then any fluid blocks are ignored as \"extra blocks\"\nand as \"wrong blocks\", ie. where the schematic has air or other blocks.\nBasically this makes building stuff under water a whole lot less annoying.\nNote: You will most likely also want to enable the 'renderCollidingSchematicBlocks'\noption at the same time, to allow the blocks to get rendered inside fluids.":"如果启用该选项,原理图中如果有空气或其他块,\n那么任何的“额外块”或“错误块”的液体将被忽略。\n基本上,这使得在水下建造东西少了很多麻烦。\n注意:你很可能还想同时启用'renderCollidingSchematicBlocks(渲染重叠块)',以允许块在流体中渲染。", + + "Use per-world or server root directories for the area selections\n§6NOTE: Don't switch this OFF while you are live streaming,\n§6as then the Area Selection browser will show the server IP\n§6in the navigation widget and also in the current selection name/path\n§6until you change the current directory and selection again":"使用每个世界或服务器根目录进行区域选择\n§6注意:直播时请勿关闭此功能,\n§6否则区域选择浏览器将显示服务器IP\n§6在指南以及当前选择名称/路径中\n§6直到您再次更改当前目录和选择", + "When enabled, then you can hold down the use key\nand look at different schematic blocks to place them,\nwithout having to click on every block individually.":"启用后,您可以按住使用键\n根据投影以放置它们,\n而无需单独点击每个方块", + "When enabled, then simply trying to use an item/place a block\non schematic blocks will place that block in that position":"启用后,只需根据投影以放置它们", + "The alpha value of the ghost blocks,\nwhen rendering them as translucent.\n§6Note: §7You also need to enable the translucent rendering separately,\nusing the 'renderBlocksAsTranslucent' option!":"虚影方块的alpha值,当它们渲染为半透明时\n§6注意:§7您还需要单独启用方块半透明化,\n使用“renderBlocksAsTranslucent”选项!", + "easyPlaceFirst":"easyPlace | 简单放置最近块", + "This causes the Easy Place mode to place the first/closest block\nyou are looking at first, instead of the furthest/bottom-most block.\nSetting this to false allows you to place multiple layers \"at once\",\nsince the furthest blocks would be placed before the closer ones block the line of sight.":"这将使得简单放置模式放置你首先看到的方块\n而不是最远的方块,设置为关闭将可以放置多层\n因为是由远到近放置。", + "easyPlaceSinglePlayerHandling":"PlayerHandling | 单机精准放置", + "If enabled, then Litematica handles the so called\n\"Carpet mod Accurate Placement Protocol\" itself in single player.\nIf you also have Tweakeroo installed, then this can be disabled,\nas Tweakeroo's 'clientPlacementRotation' option does the exact same thing.":"如果启用,那么投影会在单人游戏中处理所谓的地毯精确放置协议\n”如果您还安装了Tweakeroo,则可以禁用它,\n与Tweakeroo的“客户端放置旋转”选项执行完全相同的操作。", + "easyPlaceProtocolV3":"easyPlaceV3 | 简单放置V3", + "If enabled, then Litematica uses \"version 3\"\nof the so-called \"accurate placement protocol\".\nThis is currently only supported by Litematica itself (in single player).":"如果启用,则投影使用所谓的“精确放置协议”的“版本3”\n目前仅投影本身支持(在单人游戏中)。", + "generateLowercaseNames":"Names | 命名建议", + "If enabled, then by default the suggested schematic names\nwill be lowercase and using underscores instead of spaces":"如果启用,则默认情况下建议的原理图名称将为小写并使用下划线而不是空格", + "pasteIgnoreEntities":"Entities | 实体屏蔽", + "If enabled, then the Paste feature will not paste any entities":"如果启用,则粘贴功能将不会粘贴任何实体", + "pasteNbtRestoreBehavior":"pasteNbt | NBT迁移", + "Whether or not the NBT data of blocks is attempted to be restored,\nand which method is used for that.\n- Place & Data Modify will try to place the \"NBT-picked\" block\n near the player, and then use the data modify\n command to transfer the NBT data to the setblock'ed block\n- Place & Clone will try to place the \"NBT-picked\" block\n near the player, and then clone it to the final location.\n- Teleport & Place will try to teleport the player nearby and then\n directly place the NBT-picked item in the correct position.\nNote that the teleport & place method doesn't currently work correctly/at all.\nThe recommended method is §ePlace & Data Modify§r, however for that to work\nyou will probably need to lower the pasteCommandLimit to 1 per tick and increase\nthe pasteCommandInterval to 1-4 ticks or something.\nThus you should only use this for pasting important blocks that need the data,\nfor example by making a schematic of just the inventories,\nand then paste that with replace behavior set to None.":"需要用何种方法尝试恢复方块NBT数据? \n- Place & Data Modify,会把带NBT的方块放在玩家附近后 \n 用data modify指令转换这些用setblock放的方块 \n- Place & Clone,会尝试放置带NBT方块在玩家附近然后 \n 用clone指令复制到最终位置 \n- Teleport & Place,会尝试tp到附近位置然后直接在 \n 正确的位置放下带NBT方块 \n请注意Teleport & Place方法现在不太好用甚至完全用不了。 \n建议的方法是Place & Data Modify,然而要让这种方法生效 \n得降低粘贴命令限制到 1/tick 并将粘贴间隔增加到 \n1-4 个tick或者调别的什么东西 \n因此你只应当用这种方法粘贴需要迁移数据的重要方块。 \n例如,做了包含库存内容的原理图, \n然后在替换规则被设置为None的时候粘贴原理图。", + "pasteToMcFunctionFiles":"pasteToMc | 原理图转存", + "If enabled, then instead of actually pasting schematics to the world,\nthey are written as setblock commands into text files.":"如果启用,则不是将实际的原理图粘贴到世界,\n它们将作为 setblock 命令写入文本文件。", + "infoOverlaysTargetFluids":"TargetFluids | 流体信息穿透", + "When enabled, the Block Info Overlay and Block Info Lines\nwill be able to ray trace to fluid blocks instead of going through them":"启用后,方块信息叠加时\n将能够焦点定位到流体块而不是穿过它们", + "easyPlaceUseKey":"easyPlaceUse | 简单放置应用", + "When the easyPlaceMode is enabled, this key is used for placing the blocks":"当启用简单放置时,此键用于放置方块", + + "easyPlaceProtocol":"easyPlace | 简单放置协议", + "The type of \"accurate placement protocol\" to use.\n- Version 3: Only supported by Litematica itself (in single player).\n- Version 2: Compatible with Carpet mod.\n- Slabs only: Only fixes top slabs. Compatible with Paper servers.\n- None: Does not modify coordinates.":"要使用的“精确放置协议”的类型。\n-Version3:仅支持Litematica本身(在单人游戏中)。\n-Version2:兼容Carpet mod。\n- Slabs only: 只修复top slabs.兼容Paper servers.\n- None: 不做调整.", + "easyPlaceVanillaReach":"easyPlace | 简单放置原版修正", + "If enabled, reduces reach distance from 6 to 4.5\nso servers don't reject placement of far blocks.":"如果启用,手长将从6改为4.5\n服务器便不会拒绝放置方块", + "unhideSchematicVCS":"VCS | 不隐藏原理图版本控制系统", + "Un-hides the Schematic VCS (Version Control System) menu button,\nand enables the hotkey and the VCS functionality in general.\n(This was called Schematic Projects before.)\n\nIn general you §6should not§r be using this feature,\nunless you really know how it works and what it does.\nIt somewhat changes how the area selections, placements and pasting works,\nin particular that there is also an area delete operation when pasting.\n\nBasically this feature is intended for §6iterative, in-place§r design work,\nand it allows you to easier create multiple versions/snapshots\nof the same build, and also to switch between the versions by deleting what is\nin the world first, and then pasting the next version in its place.":"取消隐藏Schematic VCS(版本控制系统)菜单按钮,\n并启用热键和VCS功能。(这之前被称为原理图项目。)\n\n一般来说,你不应该使用这个功能,\n除非你真的知道它是如何工作的。\n它在一定程度上改变了区域选择、放置和粘贴的工作方式,\n特别是在粘贴时还存在一个区域删除操作。\n\n基本上,这个功能是为更新、修改原理图而设计的,\n它允许你更容易地为同一版本原理图创建多个版本/快照,\n也可以通过先删除当前版本,\n然后粘贴下一个版本来在不同版本之间切换。", + "easyPlaceSwapInterval":"easyPlace | 简单放置延迟补正", + "The interval in milliseconds the Easy Place mode waits\nafter swapping inventory slots and placing a block.\nUseful to avoid placing wrong blocks when having high ping.":"简单放置模式在背包和手中块交换后等待的间隔(以毫秒为单位)。有效避免因为高ping放置错误的方块。", + + "cloneAtOriginalPosition":"cloneAt | 原位克隆", + "If enabled, then using the Clone Selection hotkey will create\nthe placement at the original area selection position,\ninstead of at the player's current position":"如果启用,那么使用克隆快捷键时\n将在原来选择的区域位置克隆,\n而不是在玩家的当前位置", + "commandDisableFeedback":"commandback | 禁用命令反馈", + "If enabled, then command feedback is automatically disabled\nand then re-enabled for multiplayer Paste, Fill and Delete operations\n(which are using /setblock and /fill commands) by disabling and then\nre-enabling the sendCommandFeedback game rule when the task is finished":"如果启用,命令反馈将被自动禁用,\n然后在多人游戏中的粘贴,填充和删除操作\n(使用/setblock和/ Fill命令)将没有反馈,\n即在仅仅在任务开始时禁用sendCommandFeedback游戏规则\n在任务结束时重新启用sendCommandFeedback游戏规则", + "commandUseWorldEdit":"WorldEdit | 使用创世神指令", + "If enabled, instead of using the configured setblock and fill commands,\nthe World Edit //pos1, //pos2 and //set commands are used.\nNote that using World Edit commands is around 3x slower\nthan using vanilla commands due to the command limit per tick,\nand WE requiring multiple commands per block or area (//pos1 //pos2 //set).\n§6WARNING: The paste replace behavior option WILL NOT WORK if using\n§6the World Edit commands and fill volumes instead of individual setblock commands!\nThus it's recommended to use the vanilla commands, if you have the permission to run them.\nOne other thing that might make you prefer WE commands in some cases\nis that they can prevent block updates, if the server doesn't have\nthe Carpet mod and thus the '/carpet fillUpdates false' rule available.":"如果启用该功能,而不是使用已经配置的setblock或fill命令,\n则使用World Edit的 //pos1, //pos2和//set命令。\n注意,使用创世神指令会比正常粘贴大约慢3倍\n且由于每tick的命令限制,比起使用普通命令,\n我们需要每个块或区域执行多个命令(//pos1 //pos2 //set)。\n§6警告:如果使用创世神指令或fill命令而不是单独的setblock命令!\n§6粘贴与替换功能将无法使用!\n因此,如果您有权限运行它们,建议使用普通命令。\n另一件让你在某些情况下更喜欢使用WE命令的事情是,\n如果服务器没有Carpet mod所导致的'/ Carpet fillUpdates false'\n规则不可用时,可以使用该功能防止方块更新。", + "customSchematicBaseDirectoryEnabled":"Schematic | 自定义原理图目录", + "If enabled, then the directory set in 'customSchematicBaseDirectory'\nwill be used as the root/base schematic directory,\ninstead of the normal '.minecraft/schematics/' directory":"如果启用该功能,则在'customSchematicBaseDirectory'\n中设置的目录路径将用为原理图的根目录,\n而不是正常的§1.minecraft /schematics/§r目录", + "If enabled, then Litematica handles the so called\n\"Carpet mod Accurate Block Placement Protocol\" itself in single player.\nThis is recommended to be kept enabled if you\nare going to use Easy Place in single player.":"如果启用该功能,那么投影将在单人游戏中处理所谓的“地毯精确放置协议”。\n如果你打算在单人游戏中使用简单放置,建议保持启用。", + "easyPlaceProtocolVersion":"easyPlace | 简单放置协议", + "The type of \"accurate placement protocol\" to use.\n- Auto: Uses v3 in single player, and by default Slabs-only in multiplayer,\n unless the server has Carpet mod that sends a 'carpet:hello'\n packet, in which case v2 is used on that server.\n- Version 3: Only supported by Litematica itself (in single player) for now.\n- Version 2: Compatible with servers with the Carpet mod\n (either QuickCarpet by skyrising and DeadlyMC,\n or CarpetExtra in addition to FabricCarpet.\n And in both cases the 'accurateBlockPlacement' Carpet rule needs\n to be enabled on the server).\n- Slabs only: Only fixes top slabs. Compatible with Paper servers.\n- None: Does not modify coordinates.":"要使用的“准确放置协议”的类型。\n- Auto:在单人游戏中使用 v3,在多人游戏中默认仅使用 Plate only,\n 除非服务器具有Carpet mod且发送了“carpet:hello”的数据包 ,\n 在这种情况下,在该服务器上使用 v2。\n- Version 3:目前仅受 Litematica 本身的支持(单人游戏)。\n- Version 2:与带有 Carpet mod 的服务器兼容\n (Skyrising 和 DeadlyMC 的 QuickCarpet 或\n FabricCarpet 之外的 CarpetExtra。在这两种情况下,\n 需要在服务器上启用“accurateBlockPlacement”地毯规则)。\n- Slabs only:仅修复最新版本。 与 Paper 服务器兼容。\n- None:不修改协议。", + "pasteUseFillCommand":"UseFill | 使用fill填充", + "If enabled, then instead of only using individual /setblock commands,\nthe command-based Paste operation (which is used on servers)\nwill also try to use /fill commands for any continuous areas of the same block.\nThis has no effect in single player, since the mod sets the blocks directly\nin the integrated server's world in and doesn't use commands at all.":"如果启用了该功能,那么粘贴时不是只使用单独的/setblock命令,\n而是基于命令的粘贴操作(比如在服务器后台使用)会尝试对\n同一块的任何连续区域使用/fill命令。这在单人游戏中没有效果,\n因为mod直接在服务器的世界中设置方块,而且根本不使用命令。", + "placementRestrictionWarn":"RestrictionWarn | 放置限制警告", + "Selects which type of warning message to show (if any)\nwhen either the Easy Place mode or Placement Restriction prevent placing a block":"当简单放置模式或放置限制阻止玩家放置一个方块时,\n选择要显示的警告信息类型\n-物品栏模式:显示在物品栏上方\n-消息模式:橙色的弹出消息样式", + "commandFillMaxVolume":"FillMax | 最大命令填充体积", + "The maximum size/volume of each individual box\nthat can be filled via the command-based Fill/Delete\noperations. Bigger areas/volumes will get split to multiple commands.\nAll areas are also split to per-chunk boxes at first anyway.":"可以通过命令填充/删除操作更改的每个单独框的最大的大小/体积。\n更大的区域/体积将被分割为多个命令去执行。\n但无论如何,所有区域在一开始也被分割为多个区块。", + "commandLimitPerTick":"LimitPerTick | 命令限速", + "Maximum number of commands sent per game tick,\nwhen using the Paste, Fill and Delete features on a server,\nwhere they will use setblock and fill commands.\nNote that he Paste feature can overshoot this by a couple of commands\nwhen using the NBT restore functionality, which needs two additional commands for each block.":"当玩家在服务器上使用粘贴,填充和删除功能时,他们将使用setblock和fill指令,\n该变量控制每个游戏周期所发送的最大指令数。请注意,在使用 NBT 恢复功能时,\n粘贴功能可能会因几个命令而失败,这需要为每个块添加两个额外的指令。", + "commandNameClone":"NameClone | Clone命名", + "The clone command name to use when using the\ncommand-based creative mode functionality on servers.\nThis is currently only used by the Paste function if the NBT restore\nbehavior is set to 'Place & Clone'.":"在服务器的创造模式中使用clone命令时要使用的clone命令名\n如果 NBT 迁移选项设置为“Place & Clone”,则当前功能仅使用粘贴。", + "commandNameFill":"NameFill | fill命名", + "The fill command name to use when using the\ncommand-based creative mode functionality on servers":"在服务器的创造模式中使用fill命令时要使用的fill命令名", + "commandNameSetblock":"NameSetblock | Setblock命名", + "The setblock command name to use when using the\ncommand-based creative mode functionality on servers,\nnamely the Paste Schematic in World function":"在服务器的创造模式中使用setblock命令时要使用的\nsetblock命令名,即在世界上粘贴原理图功能", + "commandNameSummon":"NameSummon | Summon命名", + "The summon command name to use when using the\ncommand-based creative mode functionality on servers,\nnamely the Paste Schematic in World function":"在服务器的创造模式中使用Summon命令时要使用的\nSummon命令名,即在世界上粘贴原理图功能", + "commandTaskInterval":"TaskInterval | 任务间隔", + "The interval in game ticks the Paste, Fill and Delete tasks\nare executed at. The commandLimitPerTick config sets the maximum\nnumber of commands to send per execution, and this config\nsets the interval in game ticks before the next execution.":"游戏中的粘贴,填充和删除任务的tick间隔。\ncommandLimitPerTick配置设置每次执行发送的命令的最大数量,\n这个变量配置下一次执行命令之前的游戏时间间隔。", + "customSchematicBaseDirectory":"BaseDirectory | 自定目录路径", + "The root/base schematic directory to use,\nif 'customSchematicBaseDirectoryEnabled' is enabled":"如果启用了自定义原理图目录\n所要使用的原理图的根目录", + "schematicEditBreakPlaceAll":"BreakPlace | 删除同类方块", + "Modifier key to activate the \"break all identical blocks\"\nfunction in the Schematic Edit tool mode":"在重建原理图模式当中\n按住该按键可以删除所有同类方块", + "schematicEditBreakAllExcept":"BreakAllExcept | 删除其他方块", + "Modifier key to activate the \"break everything except\"\nmode/function in the Schematic Edit tool mode.\nBasically when you hold this key and punch a schematic block,\nall other blocks except this block will be removed from the schematic.":"在重建原理图的模式当中\n按住该键可使得玩家在原理图当中仅保留指定的选中方块\n这也就意味着除了你选中的方块,其他投影方块将被删除。", + "schematicEditBreakPlaceDirection":"BreakPlace | 同方块线性增删", + "Modifier key to activate the directional/continuous\nbreak or place function in the Schematic Edit tool mode":"在重建原理图的模式当中\n按住该键可添加或删除原理图内指定方向的相同方块\n如果使用添加,该方块会填满该方向的所有空位", + "schematicEditReplaceAll":"ReplaceAll | 替换同类方块", + "Modifier key to activate the \"replace all identical\"\nreplace mode/function in the Schematic Edit tool mode":"在重建原理图的模式当中\n按住该键可使用手中方块替换原理图内的相同方块", + "schematicEditReplaceBlock":"ReplaceBlock | 替换其他方块", + "Modifier key to activate the \"replace block type\"\nreplace mode/function in the Schematic Edit tool mode":"在重建原理图的模式当中\n按住该键可使用手中方块替换原理图内的相同类型方块\n然而这个类型很模糊", + "schematicEditReplaceDirection":"ReplaceDirection | 同方块线性替换", + "Modifier key to activate the directional/continuous\nreplace mode/function in the Schematic Edit tool mode":"在重建原理图的模式当中\n按住该键可使用手中方块替换原理图内指定方向的相同方块", + + "commandFillNoChunkClamp":"commandFill | 命令填充无区块限制", + "Disables dividing the fill volumes (in the Fill, Replace and Delete modes)\nto per-chunk boxes":"禁用将填充体积划分为子区块\n(在填充、替换和删除模式下)\n效果:填充、替换和删除操作在功能开启前是按子区块操作的\n开启功能候是直接批量删\n(样本较少没有看出是什么方式)", + "itemUsePacketCheckBypass":"itemUse | 物品使用校验", + "Bypass the new distance/coordinate check that was added in 1.18.2.\n\nThat check breaks the \"accurate placement protocol\" and causes\nany blocks placed with a rotation (or other property) request to just become ghost blocks.\n\nThere is basically no need to ever disable this.\nThe check didn't even exist ever before 1.18.2.":"该功能绕过了1.18.2中新添加的距离/坐标校验。\n该校验破坏了“精确放置协议”的功能\n并导致任何带有旋转(或其他属性)\n请求放置的方块变成了幽灵方块\n基本上没有必要禁用这个校验。\n因为在1.18.2之前,这个校验甚至都不存在", + "pasteAlwaysUseFill":"pasteAlways | 粘贴总是使用fill", + "This forces using the fill command (instead of setblock) even for single blocks":"这将会强制使用fill命令(而不是setblock),即使是单个方块", + "pasteIgnoreBlockEntitiesEntirely":"pasteIgnore | 粘贴忽略实体方块", + "If enabled, then block entities ae not pasted at all\nvia the command-based pasting in multiplayer.\nThis allows you to easier paste in two passes if you\nwant to use the NBT-restore option for inventories etc. in the second pass,\nwhich usually requires a lot slower pasting speed/command rate.":"如果启用,则在多人游戏中通过基于命令的粘贴根本不粘贴实体方块。\n如果你想在第二遍中对箱子等方块使用 NBT-restore (NBT迁移)选项,\n这使您可以更轻松地在第二遍中粘贴,\n然而这通常需要更慢的粘贴速度/命令速率。", + "pasteIgnoreBlockEntitiesFromFill":"pasteIgnore | fill忽略实体方块", + "If enabled, then all block entities are ignored from the fill\ncommands when pasting. This allows them to get pasted individually,\nwhich is required if the NBT restore option is being used.":"如果启用,那么在使用填充命令(fill)粘贴时将忽略所有实体方块。\n这使得实体方块可以单独粘贴,如果想要使用NBT-restore (NBT迁移)恢复选项,\n这是必需的。", + "pasteIgnoreCommandLimitWithNbtRestore":"pasteIgnore | 粘贴忽略命令限制与Nbt恢复", + "If enabled, then the command limit is ignored when pasting\nblocks with a block entity with the NBT restore option enabled.\nThis seems to somehow fix an issue where the NBT restore\nwould otherwise fail for many blocks with a low command rate.":"如果启用,则在粘贴带有启用了NBT-restore (NBT迁移)选项的实体方块时将忽略命令限制。\n 这似乎以某种方式解决了一个问题,即NBT-restore (NBT迁移)会因许多命令速率低的方块而失败。", + + "toggleSignTextPaste":"signText | 告示牌文本", + "Toggle the signTextPaste config value (in Generic category)":"开关告示牌文本的选项(在通用类别中)", + "signTextPaste":"signText | 告示牌文本", + "Automatically set the text in the sign GUIs from the schematic":"该功能能在原理图的覆盖层显示投影中告示牌的内容\n§d这样就不用背了捏~", + "fixChestMirror":"fixChest | 大箱子修复", + "Enable a fix to the broken chest mirror code in vanilla":"修复投影中破碎的大箱子", + "pasteUsingCommandsInSp":"pasteUsing | 部分粘贴", + "This is a temporary hack workaround to use the command-based pasting\nalso in single player, which allows using the render layer limited\npasting in single player, which currently doesn't work with\nthe direct world access pasting that single player normally uses.\n\nNote that this will have all the same NBT data restoration\nlimitations that multiplayer pasting has normally.":"这是一个临时的方法,可以在单人游戏中基于命令粘贴,\n这使得在单人游戏中可以使用部分渲染层粘贴原理图,\n但这目前不适用于单人游戏通常使用的粘贴方式。", + "pickBlockAvoidDamageable":"AvoidDamageable | 避免选择耐久物品", + "Avoids replacing any damageable items in the hotbar":"在开启简单放置后,避免方块替换掉任何在快捷栏中\n有耐久度的物品。§d例如:打火石,毛刷等§r", + "pickBlockAvoidTools":"AvoidTools | 避免选择工具", + "Avoids replacing any tool items in the hotbar.\n\nThis means any items that extend the vanilla ToolItem class.":"在开启简单放置后,避免方块替换掉任何在快捷栏中的工具。", + "placementReplaceBehavior":"ReplaceBehavior | 粘贴替换模式优化", + "The block replace behavior when adding blocks\nto the schematic world.\n\nThis allows using overlapped placements without the\nlater handled placement always ovewriting earlier ones with air.\nOn the other hand some blocks like light blocks are considered\nto be air, so they would need the \"All\" replace behavior\nto get placed at all.":"当原理图粘贴时,方块的替换方式\n这将会允许直接改变重叠的位置,\n而不需要后面处理的位置总是先用空气覆盖前面的位置。\n另一方面,一些像光照方块这样的方块被认为是空气,\n所以它们需要“All”替换行为来放置。", + + "litematica.gui.title.configs": "%s 配置 - %s" } \ No newline at end of file diff --git a/src/main/resources/forgematica.forge.mixins.json b/src/main/resources/forgematica.forge.mixins.json new file mode 100644 index 0000000..323d909 --- /dev/null +++ b/src/main/resources/forgematica.forge.mixins.json @@ -0,0 +1,12 @@ +{ + "required": true, + "package": "org.thinkingstudio.forgematica.mixin", + "compatibilityLevel": "JAVA_17", + "minVersion": "0.8", + "client": [ + "MixinModelDataManager" + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/src/main/resources/forgematica.mixins.json b/src/main/resources/forgematica.mixins.json index 79f3275..2f19d2e 100644 --- a/src/main/resources/forgematica.mixins.json +++ b/src/main/resources/forgematica.mixins.json @@ -29,8 +29,7 @@ "MixinServerPlayNetworkHandler", "MixinWorld", "MixinWorldChunk", - "MixinWorldRenderer", - "compat.MixinModelDataManager" + "MixinWorldRenderer" ], "injectors": { "defaultRequire": 1