From b7419b0584118a3ff13a25abc944e6ee8de5ebba Mon Sep 17 00:00:00 2001 From: kappa_maintainer Date: Thu, 6 Jan 2022 12:32:58 +0800 Subject: [PATCH 1/2] Update Chinese translation to 1.1.0.0 --- .../resources/assets/rs_ctr2/lang/zh_cn.json | 197 +++++++++--------- .../manual/zh_cn/categories/automation.json | 6 + .../manual/zh_cn/categories/basics.json | 6 + .../manual/zh_cn/categories/theory.json | 7 + .../manual/zh_cn/entries/autocrafting.json | 12 ++ .../manual/zh_cn/entries/blockbreaker.json | 12 ++ .../zh_cn/entries/blockinteraction.json | 12 ++ .../manual/zh_cn/entries/circuit_debug.json | 31 +++ .../manual/zh_cn/entries/connecting.json | 34 +++ .../manual/zh_cn/entries/energy.json | 22 ++ .../manual/zh_cn/entries/io.json | 42 ++++ .../manual/zh_cn/entries/itemuser.json | 12 ++ .../manual/zh_cn/entries/placement.json | 28 +++ .../manual/zh_cn/entries/signals.json | 30 +++ .../manual/zh_cn/entries/timing.json | 20 ++ .../manual/zh_cn/entries/transport.json | 40 ++++ .../manual/zh_cn/templates/item.json | 10 + .../manual/zh_cn/templates/spotlight0.json | 13 ++ .../manual/zh_cn/templates/spotlight2.json | 14 ++ .../manual/zh_cn/templates/spotlight3.json | 17 ++ .../manual/zh_cn/templates/spotlight4.json | 20 ++ 21 files changed, 490 insertions(+), 95 deletions(-) create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/automation.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/basics.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/theory.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/autocrafting.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/blockbreaker.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/blockinteraction.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/circuit_debug.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/connecting.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/energy.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/io.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/itemuser.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/placement.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/signals.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/timing.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/transport.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/item.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight0.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight2.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight3.json create mode 100644 src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight4.json diff --git a/src/main/resources/assets/rs_ctr2/lang/zh_cn.json b/src/main/resources/assets/rs_ctr2/lang/zh_cn.json index 63b174c..8642856 100644 --- a/src/main/resources/assets/rs_ctr2/lang/zh_cn.json +++ b/src/main/resources/assets/rs_ctr2/lang/zh_cn.json @@ -1,17 +1,17 @@ { - "itemGroup.rs_ctr2": "红石控制 2", + "itemGroup.rs_ctr2": "红石控制2", "rs_ctr2.subtitle.switch_flip": "开关:拨动", "rs_ctr2.subtitle.button_press": "按钮:按下", "rs_ctr2.subtitle.button_release": "按钮:松开", - "msg.rs_ctr2.battery": "%s / %s RF,分布于 %s 个单元", - "msg.rs_ctr2.fluid_buffer": "%s / %s mB 的 %s,分布于 %s 个单元", - "msg.rs_ctr2.decode_hex": "§b正在以 intel hex 格式解码文件……", - "msg.rs_ctr2.decode_img": "§b正在作为每像素 %sd 位的图片解码文件……", + "msg.rs_ctr2.battery": "%s / %s RF,分布于%s个单元", + "msg.rs_ctr2.fluid_buffer": "%s / %s mB 的%s,分布于%s个单元", + "msg.rs_ctr2.decode_hex": "§b正在以intel hex格式解码文件……", + "msg.rs_ctr2.decode_img": "§b正在作为每像素%sd位的图片解码文件……", "msg.rs_ctr2.decode_bin": "§b正在作为二进制数据解码文件……", "msg.rs_ctr2.decode_bmp": "§b正在作为位图解码文件……", "msg.rs_ctr2.import_succ": "§a成功导入内存!", - "msg.rs_ctr2.encode_hex": "§b正在以 intel hex 格式编码文件……", - "msg.rs_ctr2.encode_img": "§b正在将文件编码为 %sdx%sd 大小,每像素 %sd 位的图片……", + "msg.rs_ctr2.encode_hex": "§b正在以intel hex格式编码文件……", + "msg.rs_ctr2.encode_img": "§b正在将文件编码为%sdx%sd大小,每像素%sd位的图片……", "msg.rs_ctr2.encode_bin": "§b正在将文件编码为二进制数据……", "msg.rs_ctr2.encode_bmp": "§b正在将文件编码为 %sdx%sd 位图……", "msg.rs_ctr2.export_succ": "§a成功导出内存!", @@ -27,9 +27,9 @@ "msg.rs_ctr2.invisible": "§c工作区域设置为不可见。", "gui.rs_ctr2.constant": "值", "gui.rs_ctr2.ram": "内存内容", - "gui.rs_ctr2.ram.layout": "共 %s2$d 字,字长 %sd", - "gui.rs_ctr2.fmt_w": "png 格式导出\n时为图像宽\nhex 格式导出\n§7时为每行字节数", - "gui.rs_ctr2.fmt_h": "png 格式导出\n§7时为图像高", + "gui.rs_ctr2.ram.layout": "共%s2$d字,字长%sd", + "gui.rs_ctr2.fmt_w": "png格式导出\n时为图像宽\nhex格式导出\n§7时为每行字节数", + "gui.rs_ctr2.fmt_h": "png格式导出\n§7时为图像高", "gui.rs_ctr2.import_file": "从文件导入内存", "gui.rs_ctr2.export_file": "将内存导出到文件", "gui.rs_ctr2.item_placer": "可控物品使用器", @@ -47,23 +47,23 @@ "advancements.rs_ctr2.microblocks": "小型建筑", "advancements.rs_ctr2.microblocks.desc": "使用小方块工作台将方块切成小块。", "advancements.rs_ctr2.replicate": "大规模生产", - "advancements.rs_ctr2.replicate.desc": "建筑小方块结构,并使用小方块工作台将其复制 16 次。", - "advancements.rs_ctr2.io": "控制面板 I", + "advancements.rs_ctr2.replicate.desc": "建筑小方块结构,并使用小方块工作台将其复制16次。", + "advancements.rs_ctr2.io": "控制面板I", "advancements.rs_ctr2.io.desc": "用于逻辑控制的小型开关和指示灯。", "advancements.rs_ctr2.probe": "电路监测", - "advancements.rs_ctr2.probe.desc": "使用门监测器了解你的电路在干什么。", + "advancements.rs_ctr2.probe.desc": "使用门探测器了解你的电路在干什么。", "advancements.rs_ctr2.research": "红石研究实验室", "advancements.rs_ctr2.research.desc": "提示:最初几个测试可以使用原版红石和与其相连的逻辑发射/读取器完成。", - "advancements.rs_ctr2.button": "控制面板 II", - "advancements.rs_ctr2.button.desc": "小型闪光按钮(需要延迟线缆)", - "advancements.rs_ctr2.7seg": "控制面板 III", - "advancements.rs_ctr2.7seg.desc": "数字的 7 段显示", + "advancements.rs_ctr2.button": "控制面板II", + "advancements.rs_ctr2.button.desc": "小型闪光按钮(需要延迟线)", + "advancements.rs_ctr2.7seg": "控制面板III", + "advancements.rs_ctr2.7seg.desc": "数字的7段显示", "advancements.rs_ctr2.logic": "基础逻辑门", "advancements.rs_ctr2.logic.desc": "非门、或门、或非门、与门、与非门", "advancements.rs_ctr2.logic2": "高级逻辑门", - "advancements.rs_ctr2.logic2.desc": "异或门、多路选择器、SR 锁存器", + "advancements.rs_ctr2.logic2.desc": "异或门、多路选择器、SR锁存器", "advancements.rs_ctr2.bitlogic": "按位逻辑", - "advancements.rs_ctr2.bitlogic.desc": "有了位乱序选择门,你就能分别操控 32 位信号的每一个比特。", + "advancements.rs_ctr2.bitlogic.desc": "有了位乱序选择门,你就能分别操控32位信号的每一个比特。", "advancements.rs_ctr2.memory": "内存作为查找表", "advancements.rs_ctr2.memory.desc": "有时,使用查找表比使用复杂、分离的逻辑电路更容易。", "advancements.rs_ctr2.arithmetic": "基础算术", @@ -74,10 +74,10 @@ "advancements.rs_ctr2.comparator.desc": "原版的比较器可没法通过测试。", "advancements.rs_ctr2.comparator2": "高级比较器", "advancements.rs_ctr2.comparator2.desc": "施密特触发器、范围限制器", - "advancements.rs_ctr2.counter": "计数 & 序列发生", + "advancements.rs_ctr2.counter": "计数&序列发生", "advancements.rs_ctr2.counter.desc": "结合内存使用的计数器也能当成序列发生器。", "advancements.rs_ctr2.bcd_converter": "请用十进制交流!", - "advancements.rs_ctr2.bcd_converter.desc": "将信号送进 BCD 转换器,它们就会在 7 段显示器上以十进制显示。", + "advancements.rs_ctr2.bcd_converter.desc": "将信号送进BCD转换器,它们就会在7段显示器上以十进制显示。", "advancements.rs_ctr2.wireless": "无线信号传输", "advancements.rs_ctr2.wireless.desc": "完成“并行数据转串行”和“串行数据转并行”两个测试。", "advancements.rs_ctr2.energy": "小型机器供能", @@ -107,48 +107,50 @@ "advancements.rs_ctr2.item_placer": "物品互动机器人", "advancements.rs_ctr2.autocraft": "自动合成", "advancements.rs_ctr2.autocraft.desc": "一个机器管理所有配方!", - "advancements.rs_ctr2.frames": "3D 打印建筑", + "advancements.rs_ctr2.frames": "3D打印建筑", "advancements.rs_ctr2.frames.desc": "随机方块访问控制器更容易操控,也更加昂贵。", "advancements.rs_ctr2.sensors": "方块感应器", "advancements.rs_ctr2.sensors.desc": "方块硬度感应器和植物生长感应器对各种自动化农场都十分有用。", + "item.rs_ctr2.manual": "红石控制手册", + "item.rs_ctr2.manual.info": "本手册包含了关于\\*红石控制2\\.的实用信息。这个模组提供了逻辑电路控制的,紧凑且模块化的自动化。\\p除了这本书,模组还有个能引导你发展的进度页面。", "item.rs_ctr2.data_cable": "数据线缆", "item.rs_ctr2.data_cable.tip": "将§n一个§7数据§a输出§7连接到\n§n一个§7数据§9输入§7。", "item.rs_ctr2.logic_in": "逻辑信号读取器", - "item.rs_ctr2.logic_in.tip": "外部红石信号 > 0 时 §a⏴§7[t+1] = -1 (所有位为 1),否则输出 0。", - "item.rs_ctr2.analog_in": "模拟信号读取器 / ADC", + "item.rs_ctr2.logic_in.tip": "外部红石信号 > 0 时 §a⏴§7[t+1] = -1 (所有位为1),否则输出0。", + "item.rs_ctr2.analog_in": "模拟信号读取器/ADC", "item.rs_ctr2.analog_in.tip": "§a⏴§7[t+1] = 接收到的外部红石信号。", "item.rs_ctr2.comp_in": "比较器信号读取器", "item.rs_ctr2.comp_in.tip": "§a⏴§7[t+1] = 外部方块的比较器信号。", "item.rs_ctr2.logic_out": "逻辑信号发射器", - "item.rs_ctr2.logic_out.tip": "如果 §9⏴§7 ≠ 0 (任一位为 1)则发出强度 15 的外部红石信号,否则输出 0。", - "item.rs_ctr2.analog_out": "模拟信号发射器 / DAC", - "item.rs_ctr2.analog_out.tip": "发出等于 §9⏴§7 的外部红石信号。\n信号强度可以在 0 到 15 之外!", - "item.rs_ctr2.splitter.tip": "在 5 个输出口上重复输入的数据。", + "item.rs_ctr2.logic_out.tip": "如果 §9⏴§7 ≠ 0 (任一位为1)则发出强度15的外部红石信号,否则输出0。", + "item.rs_ctr2.analog_out": "模拟信号发射器/DAC", + "item.rs_ctr2.analog_out.tip": "发出等于§9⏴§7的外部红石信号。\n信号强度可以在0到15之外!", + "item.rs_ctr2.splitter.tip": "在5个输出口上重复输入的数据。", "item.rs_ctr2.splitter": "数据分离器", - "item.rs_ctr2.constant.tip": "§a⏵§7 = GUI 中设置的数字(与方块互动打开设置界面)。", + "item.rs_ctr2.constant.tip": "§a⏵§7 = GUI中设置的数字(与方块互动打开设置界面)。", "item.rs_ctr2.constant": "常量", - "item.rs_ctr2.clock.tip": "§a⏵§7 每 §9⏴§7 tick 会在 0 和 -1 间切换,\n§9⏴§7 < 0 时暂停,§9⏴§7 = 0 时重置(§a⏵§7 = 0)。", + "item.rs_ctr2.clock.tip": "§a⏵§7每§9⏴§7tick会在0和-1间切换,\n§9⏴§7 < 0 时暂停,§9⏴§7 = 0 时重置(§a⏵§7 = 0)。", "item.rs_ctr2.clock": "时钟", - "item.rs_ctr2.not_gate.tip": "§a⏵§7 = 非 §9⏴§7(按位)", + "item.rs_ctr2.not_gate.tip": "§a⏵§7 = 非§9⏴§7(按位)", "item.rs_ctr2.not_gate": "非门", - "item.rs_ctr2.xor_gate.tip": "§A⏵§7[t+1] = §9⏷§7 异或 §9⏶§7(按位)。\n初始 §9⏷⏶§7 = 0。", + "item.rs_ctr2.xor_gate.tip": "§A⏵§7[t+1] = §9⏷§7异或§9⏶§7(按位)。\n初始§9⏷⏶§7 = 0。", "item.rs_ctr2.xor_gate": "异或门", "item.rs_ctr2.schmitt_trigger.tip": "若 (§9⏴§7 - §9⏷§7) * (§9⏶§7 - §9⏷§7) ≤ 0 则 §A⏵§7[t+1] = 0\n否则,若 (§9⏴§7 - §9⏶§7) * (§9⏶§7 - §9⏷§7) ≥ 0 则 §A⏵§7[t+1] = -1\n否则 §A⏵§7[t+1] = §A⏵§7[t]。\n初始 §9⏴⏷⏶§7 = 0。", "item.rs_ctr2.schmitt_trigger": "施密特触发器", - "item.rs_ctr2.or_gate.tip": "§A⏵§7[t+1] = §9⏴§7 或 §9⏷§7 或 §9⏶§7(按位)。\n初始 §9⏴⏷⏶§7 = 0。", + "item.rs_ctr2.or_gate.tip": "§A⏵§7[t+1] = §9⏴§7或§9⏷§7或§9⏶§7(按位)。\n初始§9⏴⏷⏶§7 = 0。", "item.rs_ctr2.or_gate": "或门", - "item.rs_ctr2.and_gate.tip": "§A⏵§7[t+1] = §9⏴§7 与 §9⏷§7 与 §9⏶§7 (按位)。\n初始 §9⏴⏷⏶§7 = -1。", + "item.rs_ctr2.and_gate.tip": "§A⏵§7[t+1] = §9⏴§7与§9⏷§7与§9⏶§7(按位)。\n初始§9⏴⏷⏶§7 = -1。", "item.rs_ctr2.and_gate": "与门", - "item.rs_ctr2.nand_gate.tip": "§A⏵§7[t+1] = 非 (§9⏴§7 与 §9⏷§7 与 §9⏶§7) (按位)。\n初始 §9⏴⏷⏶§7 = -1。", + "item.rs_ctr2.nand_gate.tip": "§A⏵§7[t+1] = 非(§9⏴§7与§9⏷§7与§9⏶§7)(按位)。\n初始§9⏴⏷⏶§7 = -1。", "item.rs_ctr2.nand_gate": "与非门", - "item.rs_ctr2.nor_gate.tip": "§A⏵§7[t+1] = 非 (§9⏴§7 或 §9⏷§7 或 §9⏶§7) (按位)。\n初始 §9⏴⏷⏶§7 = 0。", + "item.rs_ctr2.nor_gate.tip": "§A⏵§7[t+1] = 非(§9⏴§7或§9⏷§7或§9⏶§7)(按位)。\n初始§9⏴⏷⏶§7 = 0。", "item.rs_ctr2.nor_gate": "或非门", "item.rs_ctr2.delay.tip": "§A⏵§7[t+1] = §9⏴§7[t]。", - "item.rs_ctr2.delay": "延迟线缆", - "item.rs_ctr2.comparator.tip": "若 §9⏷§7 < §9⏶§7 则 §A⏵§7[t+1] = -1,否则为 0。\n初始 §9⏷⏶§7 = 0。", + "item.rs_ctr2.delay": "延迟线", + "item.rs_ctr2.comparator.tip": "若 §9⏷§7 < §9⏶§7 则 §A⏵§7[t+1] = -1,否则为0。\n初始§9⏷⏶§7 = 0。", "item.rs_ctr2.comparator": "比较器", - "item.rs_ctr2.sr_latch.tip": "按位进行:若 §9⏷§7 为 1 则 §A⏵§7[t+1] = 0\n否则,若 §9⏶§7 为 1 则 §A⏵§7[t+1] = 1\n否则 §A⏵§7[t+1] = §A⏵§7[t]\n§a⏴§7 = 非 §A⏵§7,初始 §A⏵§7§9⏷⏶§7 = 0。", - "item.rs_ctr2.sr_latch": "SR 锁存器", + "item.rs_ctr2.sr_latch.tip": "按位进行:若§9⏷§7为1则 §A⏵§7[t+1] = 0\n否则,若§9⏶§7为1则 §A⏵§7[t+1] = 1\n否则 §A⏵§7[t+1] = §A⏵§7[t]\n§a⏴§7 = 非§A⏵§7,初始§A⏵§7§9⏷⏶§7 = 0。", + "item.rs_ctr2.sr_latch": "SR锁存器", "item.rs_ctr2.item_cable.tip": "将§n一个§7§f物品存储§a使用端§7连接到\n§n一个§7§f物品存储§9提供端§7。", "item.rs_ctr2.item_cable": "物品线缆", "item.rs_ctr2.fluid_cable.tip": "将§n一个§7§f流体存储§a使用端§7连接到\n§n一个§7§f流体存储§9提供端§7。", @@ -159,53 +161,53 @@ "item.rs_ctr2.fluid_io": "流体端口", "item.rs_ctr2.power_io.tip": "§e⏴§7 提供一个外部方块的能量存储。", "item.rs_ctr2.power_io": "能量端口", - "item.rs_ctr2.item_io.tip": "§f⏴§7 提供一个外部方块/实体的物品存储/物品栏,\n范围为第 §9⏷§7 格到第 §9⏶§7 格。\n初始 §9⏷§7 = 0,§9⏶§7 = 255。", + "item.rs_ctr2.item_io.tip": "§f⏴§7 提供一个外部方块/实体的物品存储/物品栏,\n范围为第§9⏷§7格到第§9⏶§7格。\n初始§9⏷§7 = 0,§9⏶§7 = 255。", "item.rs_ctr2.item_io": "物品端口", - "item.rs_ctr2.transformer.tip": "以 §a⏵§7 RF/tick 将能量从 §e⏷§7 传输到 §e⏶§7。\n能量传输速度被限制为 §9⏴§7[t-1] RF/tick (可以为负)。\n初始 §9⏴§7 = 0。", + "item.rs_ctr2.transformer.tip": "以 §a⏵§7 RF/tick 将能量从§e⏷§7传输到§e⏶§7。\n能量传输速度被限制为 §9⏴§7[t-1] RF/tick (可以为负)。\n初始§9⏴§7 = 0。", "item.rs_ctr2.transformer": "变压器", - "item.rs_ctr2.battery.tip": "相邻单元会合并。\n§e⏺§7 (使用能量线缆)提供能量存储。\n§a⏺§7 (使用数据线缆)输出存储的 RF 数量。", + "item.rs_ctr2.battery.tip": "相邻单元会合并。\n§e⏺§7 (使用能量线缆)提供能量存储。\n§a⏺§7 (使用数据线缆)输出存储的RF数量。", "item.rs_ctr2.battery": "电池单元", - "item.rs_ctr2.item_splitter.tip": "将一个使用过的物品存储重新提供 5 次。", + "item.rs_ctr2.item_splitter.tip": "将一个使用过的物品存储重新提供5次。", "item.rs_ctr2.item_splitter": "物品访问分离器", - "item.rs_ctr2.fluid_splitter.tip": "将一个使用过的流体存储重新提供 5 次。", + "item.rs_ctr2.fluid_splitter.tip": "将一个使用过的流体存储重新提供5次。", "item.rs_ctr2.fluid_splitter": "流体访问分离器", - "item.rs_ctr2.fluid_mover.tip": "当 §9⏶-§7[t-1] 中的任何一位从 0 变成 1 时,尝试将 §9-⏶§7[t-1] mB 流体从 §b⏵§7 传输到 §b⏴§7,从 §e⏴§7 处消耗一定能量并将实际流体传输数输出至 §a⏵§7。\n初始 §9-⏶§7 = 1000。", + "item.rs_ctr2.fluid_mover.tip": "当§9⏶-§7[t-1]中的任何一位从0变成1时,尝试将§9-⏶§7[t-1]mB流体从§b⏵§7传输到§b⏴§7,从§e⏴§7处消耗一定能量并将实际流体传输数输出至§a⏵§7。\n初始§9-⏶§7 = 1000。", "item.rs_ctr2.fluid_mover": "流体泵", - "item.rs_ctr2.item_mover.tip": "当 §9⏶-§7[t-1] 中的任何一位从 0 变成 1 时,尝试将 §9-⏶§7[t-1] 个物品从 §b⏵§7 传输到 §b⏴§7,从 §e⏴§7 处消耗一定能量并将实际物品传输数输出至 §a⏵§7。\n初始 §9-⏶§7 = 64。", + "item.rs_ctr2.item_mover.tip": "当§9⏶-§7[t-1]中的任何一位从0变成1时,尝试将§9-⏶§7[t-1]个物品从§b⏵§7传输到§b⏴§7,从§e⏴§7处消耗一定能量并将实际物品传输数输出至§a⏵§7。\n初始§9-⏶§7 = 64。", "item.rs_ctr2.item_mover": "物品转运器", - "item.rs_ctr2.power_splitter.tip": "将一个使用过的能量存储重新提供 5 次。", + "item.rs_ctr2.power_splitter.tip": "将一个使用过的能量存储重新提供5次。", "item.rs_ctr2.power_splitter": "能量分离器", "item.rs_ctr2.division_gate.tip": "§A⏵§7[t+1] = §9⏶§7 / §9⏷§7,\n§a⏴§7[t+1] = §9⏶§7 mod §9⏷§7。", "item.rs_ctr2.division_gate": "除法门", - "item.rs_ctr2.clamp_gate.tip": "§A⏵§7[t+1] = 离 §9⏴§7 最近的 §lx§7,其中\nmin(§9⏶§7, §9⏷§7) ≤ §lx§7 ≤ max(§9⏶§7, §9⏷§7)。", + "item.rs_ctr2.clamp_gate.tip": "§A⏵§7[t+1] = 离§9⏴§7最近的§lx§7,其中\nmin(§9⏶§7, §9⏷§7) ≤ §lx§7 ≤ max(§9⏶§7, §9⏷§7)。", "item.rs_ctr2.clamp_gate": "范围限制器", - "item.rs_ctr2.data_mux.tip": "按位进行:若 §9⏶§7 为 1 则 §A⏵§7[t+1] = §9⏴§7,否则为 §9⏷§7。", + "item.rs_ctr2.data_mux.tip": "按位进行:若§9⏶§7为1则 §A⏵§7[t+1] = §9⏴§7,否则为 §9⏷§7。", "item.rs_ctr2.data_mux": "数据多路选择器", "item.rs_ctr2.sum_gate.tip": "§A⏵§7[t+1] = §9⏴§7 + §9⏶§7 - §9⏷§7。", "item.rs_ctr2.sum_gate": "加/减法门", "item.rs_ctr2.product_gate.tip": "§A⏵§7[t+1] = §9⏴§7 * §9⏶§7 / 2^§9⏷§7。", "item.rs_ctr2.product_gate": "乘法门", - "item.rs_ctr2.or_buffer.tip": "若 §9⏴§7 ≠ 0(任一位为 1)则 §a⏵§7 = -1 ,否则为 0。", + "item.rs_ctr2.or_buffer.tip": "若 §9⏴§7 ≠ 0(任一位为1)则 §a⏵§7 = -1 ,否则为0。", "item.rs_ctr2.or_buffer": "或缓存门", - "item.rs_ctr2.bit_shift.tip": "§a⏵§7[t+1] = §9⏴§7 二进制左移 §9⏶§7 位(可以为负)。", + "item.rs_ctr2.bit_shift.tip": "§a⏵§7[t+1] = §9⏴§7二进制左移§9⏶§7位(可以为负)。", "item.rs_ctr2.bit_shift": "移位器", "item.rs_ctr2.neg_gate.tip": "§a⏵§7 = -§9⏴§7", "item.rs_ctr2.neg_gate": "负门", "item.rs_ctr2.battery.ext": "容量:%sd RF/单元", - "item.rs_ctr2.item_mover.ext": "能量消耗:%sd RF/堆叠(64 物品)", - "item.rs_ctr2.fluid_mover.ext": "能量消耗:%sd RF/桶(1024mB)", - "item.rs_ctr2.solarcell.ext": "功率峰值:%sd RF/单元每 8 tick\n平均太阳时间:%s.3f", + "item.rs_ctr2.item_mover.ext": "能量消耗:%sd RF/堆叠(64物品)", + "item.rs_ctr2.fluid_mover.ext": "能量消耗:%sd RF/桶(1024 mB)", + "item.rs_ctr2.solarcell.ext": "功率峰值:%sd RF/单元每8 tick\n平均太阳时间:%s.3f", "item.rs_ctr2.solarcell": "太阳能单元", "item.rs_ctr2.solarcell.tip": "从阳光中收获能量。\n必须放在方块顶层,相邻单元自动合并。\n§e⏺§7 使用能量线缆进行能量输出。", "item.rs_ctr2.probe": "门探测器", "state.rs_ctr2.transformer": "§a0:§c%sd §7RF/t 流速\n§91:§c%sd §7RF/t 限制\n§a2:§7出 §e%ss/%sd RF\n§a3: §7入 §e%ss/%ss RF", "state.rs_ctr2.fluid_mover": "§90:§c0x%s08X§7 时钟\n§91:§c%sd§7 mB 限制\n§a2: §c%sd§7 mB 已移动\n§a3:§e%sd RF§7 可用能量\n§a4: §b可抽取流体:%ss\n§a5:§b可插入流体:%ss", - "state.rs_ctr2.item_mover": "§90: §c0x%s08X§7 时钟\n§91:§c%sd§7 堆叠限制\n§a2: §c%sd§7 个物品已移动\n§a3:§e%sd RF§7 可用能量\n§a4: §f可抽取物品:%ss\n§a5: §f可插入物品:%ss", + "state.rs_ctr2.item_mover": "§90: §c0x%s08X§7 时钟\n§91:§c%sd§7 堆叠限制\n§a2: §c%sd§7 个物品已移动\n§a3:§e%sd RF§7 可用能量\n§a4: §f可抽取物品:%ss\n§a5:§f可插入物品:%ss", "state.rs_ctr2.division": "§a0:§c%sd§7 A / B\n§a1:§c%sd§7 余数\n§92:§c%sd§7 A\n§93:§c%sd§7 B", "state.rs_ctr2.mover": "", "state.rs_ctr2.no_connection": "与门元件互动来进行探测!", "state.rs_ctr2.in": "§a0:§c0x%s08X %s1$d", - "state.rs_ctr2.ports": "%sd 个端口:", + "state.rs_ctr2.ports": "%sd个端口:", "state.rs_ctr2.out": "§90:§c0x%s08X %s1$d", "state.rs_ctr2.none": "<无状态信息>", "state.rs_ctr2.splitter": "§90:§c0x%s08X %s1$d\n§c-> §a1 2 3 4 5", @@ -215,7 +217,7 @@ "state.rs_ctr2.gate3": "§a0:§c0x%s08X %s1$d\n§91:§c0x%s08X %s2$d\n§92:§c0x%s08X %s3$d\n§93:§c0x%s08X %s4$d", "state.rs_ctr2.direct": "§90:§c?\n§a1:§c0x%s08X %s1$d", "state.rs_ctr2.clock": "§a0:§c0x%s08X§7 时钟\n§91:§c%sd§7 tick\nt = %sd", - "state.rs_ctr2.item_io": "§a0:§5%ss\n§91:§f物品栏[第 %sd 格]\n§92:§c%sd§7 第一格\n§93:§c%sd§7 最后一格", + "state.rs_ctr2.item_io": "§a0:§5%ss\n§91:§f物品栏[共%sd格]\n§92:§c%sd§7 第一格\n§93:§c%sd§7 最后一格", "state.rs_ctr2.sr_latch": "§a0:§c0x%s08X§7 Q\n§a1:§c0x%s08X§7 ¬Q\n§92:§c0x%s08X§7 重置\n§93: §c0x%s08X§7 设定", "state.rs_ctr2.comp": "§a0:§c0x%s08X§7 大 > 小\n§91:§c%sd§7 小\n§92:§c%sd§7 大", "state.rs_ctr2.mux": "§a0:§c0x%s08X %s1$d\n§91:§c0x%s08X§7 控制\n§92:§c0x%s08X %s3$d§7 I0\n§93:§c0x%s08X %s4$d§7 I1", @@ -223,7 +225,7 @@ "state.rs_ctr2.sum": "§a0:§7 Σ §c%sd\n§91:§7 + §c%sd\n§92:§7 + §c%sd\n§93:§7 - §c%sd", "state.rs_ctr2.shift": "§a0:§c0x%s08X %s1$d\n§91:§c0x%s08X %s2$d\n§92:§c%sd§7 移位 <<", "state.rs_ctr2.multiply": "§a0:§7 Π §c%sd\n§91:§7 x §c%sd\n§92:§7 x §c%sd\n§93:§7 /2^ §c%sd", - "state.rs_ctr2.schmitt_trigger": "§a0:§c0x%s08X§7 状态\n§91:§c%sd§7 输入\n§92:§c%sd§7 OFF 门槛\n§93: §c%sd§7 ON 门槛", + "state.rs_ctr2.schmitt_trigger": "§a0:§c0x%s08X§7 状态\n§91:§c%sd§7 输入\n§92:§c%sd§7 OFF门槛\n§93: §c%sd§7 ON门槛", "block.rs_ctr2.autocraft": "自动合成器", "gui.rs_ctr2.autocraft": "缓冲区 合成区", "gui.rs_ctr2.pattern": "合成样板十六进制编码", @@ -233,12 +235,12 @@ "item.rs_ctr2.mem_write": "内存写入器", "item.rs_ctr2.mem_read": "内存读取器", "state.rs_ctr2.counter": "§a0:§c%sd§7 计数\n§a1:§c0x%s08X§7 溢出\n§92:§c%sd§7 最大计数\n§93:§c0x%s08X§7 步长", - "state.rs_ctr2.mem_read": "§a0:§c0x%sX %s1$d§7 值\n§81:%sd 比特§7 内存\n§92:§c0x%s04X %s2$d§7 地址\n§93:字长 §c%sd§7 位", + "state.rs_ctr2.mem_read": "§a0:§c0x%sX %s1$d§7 值\n§81:%sd 比特§7 内存\n§92:§c0x%s04X %s2$d§7 地址\n§93:字长§c%sd§7位", "state.rs_ctr2.memory": "内存大小 = %sd 比特", - "state.rs_ctr2.mem_write": "§80:%sd 比特§7 内存\n§91:§c0x%sX %s1$d§7 值\n§92:§c0x%s04X %s2$d§7 地址\n§93:字长 §c%sd§7 位", - "item.rs_ctr2.counter.tip": "当 §9⏷§7[t-1] 中任一位从 0 变成 1 时 §A⏵§7 增加 1。§A⏵§7 在 ≥ §9⏴§7[t-1] 时重置到 0。\n若 §A⏵§7 = 0 且 §9⏴§7[t-1] > 0 则 §A⏶§7 = §9⏷§7[t-1],否则 §A⏶§7 = 0。", - "item.rs_ctr2.mem_read.tip": "§a⏶§7[t+1] = 从内存 §8⏵§7 中的 §9⏷§7 位置读取字长 §9⏴§7 位的字。\n每当 §9⏷§7 或 §9⏴§7 改变且 §9⏴§7 ≠ 0 时读取在 t+½ 处发生。\n§4字长必须为 2 的幂,否则结果为未定义!", - "item.rs_ctr2.mem_write.tip": "在内存 §8⏵§7 中的 §9⏷§7 位置写入字长 §9⏴§7 位的字。\n每当 §9⏷§7 或 §9⏴§7 改变且 §9⏴§7 ≠ 0 时写入在 t+1 处发生。\n对同一内存的同一个 32 比特块,在同 tick 内进行多次写入,只有一个会成功!\n§4字长必须为 2 的幂,否则结果为未定义!", + "state.rs_ctr2.mem_write": "§80:%sd 比特§7 内存\n§91:§c0x%sX %s1$d§7 值\n§92:§c0x%s04X %s2$d§7 地址\n§93:字长§c%sd§7位", + "item.rs_ctr2.counter.tip": "当 §9⏷§7[t-1] 中任一位从0变成1时§A⏵§7增加1。§A⏵§7在 ≥ §9⏴§7[t-1] 时重置到0。\n若 §A⏵§7 = 0 且 §9⏴§7[t-1] > 0 则 §A⏶§7 = §9⏷§7[t-1],否则 §A⏶§7 = 0。", + "item.rs_ctr2.mem_read.tip": "§a⏶§7[t+1] = 从内存§8⏵§7中的§9⏷§7位置读取字长§9⏴§7位的字。\n每当§9⏷§7或§9⏴§7改变且 §9⏴§7 ≠ 0 时读取在t+½处发生。\n§4字长必须为2的幂,否则结果为未定义!", + "item.rs_ctr2.mem_write.tip": "在内存§8⏵§7中的§9⏷§7位置写入字长§9⏴§7位的字。\n每当§9⏷§7或§9⏴§7改变且 §9⏴§7 ≠ 0 时写入在t+1处发生。\n对同一内存的同一个32比特块,在同tick内进行多次写入,只有一个会成功!\n§4字长必须为2的幂,否则结果为未定义!", "item.rs_ctr2.memory.tip": "存储能被相连§6内存读取器§7s和§6写入器§7s读取和写入的数据。\n内容可互动查看。\n相邻单元会合并。\n§4移除单元或合并结构可能导致数据丢失!", "item.rs_ctr2.corerope2": "核心绳矩阵", "item.rs_ctr2.corerope1": "核心编织绳", @@ -251,13 +253,13 @@ "item.rs_ctr2.block_cable.tip": "将§n一个§7§5方块互动§a使用端§7连接到\n§n一个§7§5方块互动§9提供端§7。", "item.rs_ctr2.block_io": "方块互动端口", "item.rs_ctr2.block_splitter": "方块互动分离器", - "item.rs_ctr2.block_splitter.tip": "将一个使用过的方块互动存储重新提供 5 次。", + "item.rs_ctr2.block_splitter.tip": "将一个使用过的方块互动存储重新提供5次。", "state.rs_ctr2.link1": "%sd #%s08X -> %sd", "state.rs_ctr2.link2": "%sd <-> %sd 线缆连接", "state.rs_ctr2.link3": "%sd #%s08X", "state.rs_ctr2.links": " 连接调试信息:", "state.rs_ctr2.link0": "%sd 线缆终点 -> %sd", - "state.rs_ctr2.autocraft": "§90:§c0x%s08X§7 合成时钟\n§91:§c0x%s08X§7 下方 2x3 合成样板\n§92:§c0x%s03X§7 上方 1x3 合成样板\n§93:§c0x%sX§7 I/O 槽\n§94:§f内部物品栏\n§a5:§c0x%s01X§7 错误代码\n§a6:§e%sd RF§7 可用能量", + "state.rs_ctr2.autocraft": "§90:§c0x%s08X§7 合成时钟\n§91:§c0x%s08X§7 下方2x3合成样板\n§92:§c0x%s03X§7 上方1x3合成样板\n§93:§c0x%sX§7 I/O槽\n§94:§f内部物品栏\n§a5:§c0x%s01X§7 错误代码\n§a6:§e%sd RF§7 可用能量", "state.rs_ctr2.block_breaker": "§90:§c0x%s08X§7 时钟\n§a1:§c0x%s01X§7 错误代码\n§a2:§e%sd RF§7 可用能量\n§a3:§f输出方块掉落物:%ss\n§a4:§5%ss", "state.rs_ctr2.item_placer": "§90:§c0x%s08X§7 时钟\n§95:§c0x%s06X§7 互动设置\n§a1:§c0x%s01X§7 错误代码\n§a2:§e%sd RF§7 可用能量\n§a3:§f为手补充物品:%ss\n§a4:§5%ss", "state.rs_ctr2.solar": "以 %sd RF / 8 tick 发电\n§a0:§e%sd RF§7 能量可存储", @@ -265,29 +267,29 @@ "cd4017be.unloaded": "<位置未加载>", "state.rs_ctr2.fluid_io": "§a0:§5%ss\n§91:§b是否为流体容器:%ss", "item.rs_ctr2.and_filter": "位乱序选择门", - "item.rs_ctr2.and_filter.tip": "§A⏵§7 = §9⏴§7 与 GUI 中设置的数字(与方块互动打开设置界面)。", + "item.rs_ctr2.and_filter.tip": "§A⏵§7 = §9⏴§7 与 GUI中设置的数字(与方块互动打开设置界面)。", "state.rs_ctr2.and_filter": "§7#:§c0x%s08X§7 与掩码\n§90:§c0x%s08X§7 输入\n§a1:§c0x%s08X§7 输出", "item.rs_ctr2.switch": "小型开关", "item.rs_ctr2.led": "小型灯", - "item.rs_ctr2.switch.tip": "若打开,§A⏵§7 = -1,否则为 0。", + "item.rs_ctr2.switch.tip": "若打开,§A⏵§7 = -1,否则为0。", "item.rs_ctr2.led.tip": "§9⏵§7 ≠ 0 时亮灯。\n对其使用染料可染色。", "item.rs_ctr2.switch_array": "二进制开关阵列", "item.rs_ctr2.led_array": "二进制灯阵列", "item.rs_ctr2.switch_array.tip": "§a⏵§7 = 开关表示的二进制数。\n对侧面摆放开关阵列进行扩展。", - "item.rs_ctr2.led_array.tip": "以二进制形式显示 §9⏵§7。\n对侧面摆放灯阵列可进行扩展。\n对其使用染料可染色。", - "item.rs_ctr2._7segment": "7 段显示器", - "item.rs_ctr2._7segment.tip": "将 §9⏵§7 以十六进制数的形式显示(参见 §6BCD 转换器§7)。\n对侧面摆放可进行扩展。\n对其使用染料可染色。", + "item.rs_ctr2.led_array.tip": "以二进制形式显示§9⏵§7。\n对侧面摆放灯阵列可进行扩展。\n对其使用染料可染色。", + "item.rs_ctr2._7segment": "7段显示器", + "item.rs_ctr2._7segment.tip": "将§9⏵§7以十六进制数的形式显示(参见§6BCD转换器§7)。\n对侧面摆放可进行扩展。\n对其使用染料可染色。", "item.rs_ctr2.bcd_converter": "BCD 转换器", - "item.rs_ctr2.bcd_converter.tip": "§a⏵§7 = 将 §9⏴§7 转换为“二进制编码的十进制数”。\n用于在 §67 段显示器§7s中显示十进制数。", + "item.rs_ctr2.bcd_converter.tip": "§a⏵§7 = 将§9⏴§7转换为“二进制编码的十进制数”。\n用于在§67段显示器§7中显示十进制数。", "block.rs_ctr2.pipe_controller": "互动管道驱动器", "block.rs_ctr2.access_pipe": "互动管道", "state.rs_ctr2.pipe_controller": "§90:§c%sd§7 方向 [↑↓⨂⨀←→]\n§91:§f%sd 互动管道\n§92,3:§5%ss", "block.rs_ctr2.access_pipe.tip": "插入§6互动管道驱动器§7的§f物品栏端口§7进行路径构建。", "block.rs_ctr2.pipe_controller.tip": "能让机器通过§6互动管道§7§5与远处方块互动§7。在§f物品栏端口§7插入管道可以延长管道,抽取则可以收回管道。\n管道延伸方向和目标方块由§c数据输入§7 [t-½] 控制。", - "block.rs_ctr2.item_placer.tip": "当§9时钟§7 [t-1] 的任一位从 0 变成 1 时对正前方方块模拟一次玩家互动。\n§9设置§7 [t-1] 控制着互动参数,比如选中的物品、瞄准的位置,是否潜行等等(详见 GUI)。\n互动中消耗的物品会自动从§f相连的容器§7补充。\n§a错误代码§7:1 = 方块未加载,2 = 动作失败/穿过方块,4 = 无法补充物品,8 = 能量不足。", - "block.rs_ctr2.block_breaker.tip": "当§9时钟§7 [t-1] 的任一位从 0 变成 1 时破坏正前方的方块。\n收获的物品会被送到§f相连的容器§7。\n§a错误代码§7:1 = 方块未加载,2 = 方块不可破坏/方块为空气,4 = 容器已满,8 = 能量不足。", - "block.rs_ctr2.autocraft.tip": "基于十六进制§9样板§7自动合成物品。§9样板§7负责将机器的 16 格§f内部物品栏§7映射到合成栏上。\n当§9时钟§7的任一位从 0 变成 1 时在 t+½ 时刻执行一次合成。\n§a错误代码§7:1 = 缺少原料,2 = 无效配方,4 = 输出槽已满,8 = 能量不足。", - "block.rs_ctr2.pipe_controller.ext": "管道最多可以延伸 %sd 个方块。", + "block.rs_ctr2.item_placer.tip": "当§9时钟§7[t-1] 的任一位从0变成1时对正前方方块模拟一次玩家互动。\n§9设置§7[t-1] 控制着互动参数,比如选中的物品、瞄准的位置,是否潜行等等(详见GUI)。\n互动中消耗的物品会自动从§f相连的容器§7补充。\n§a错误代码§7:1 = 方块未加载,2 = 动作失败/穿过方块,4 = 无法补充物品,8 = 能量不足。", + "block.rs_ctr2.block_breaker.tip": "当§9时钟§7[t-1] 的任一位从0变成1时破坏正前方的方块。\n收获的物品会被送到§f相连的容器§7。\n§a错误代码§7:1 = 方块未加载,2 = 方块不可破坏/方块为空气,4 = 容器已满,8 = 能量不足。", + "block.rs_ctr2.autocraft.tip": "基于十六进制§9样板§7自动合成物品。§9样板§7负责将机器的16格§f内部物品栏§7映射到合成栏上。\n当§9时钟§7的任一位从0变成1时在t+½时刻执行一次合成。\n§a错误代码§7:1 = 缺少原料,2 = 无效配方,4 = 输出槽已满,8 = 能量不足。", + "block.rs_ctr2.pipe_controller.ext": "管道最多可以延伸%sd个方块。", "block.rs_ctr2.block_breaker.ext": "能量消耗:%sd RF + 方块硬度 * %sd RF", "block.rs_ctr2.autocraft.ext": "能量消耗:每合成 %sd RF。", "block.rs_ctr2.item_placer.ext": "能量消耗:%sd RF", @@ -297,14 +299,14 @@ "state.rs_ctr2.item_counter": "§a0:§c%sd§7 物品数\n§a1:§f有无物品栏:%ss\n§92:§c%s08X§7 时钟", "state.rs_ctr2.item_filter": "§90:§f被提供的物品栏\n§91:§c%sd§7 抽取模式\n§a2:§f有无物品匹配路径:%ss\n§a3:§f有无“其他”路径:%ss", "gui.rs_ctr2.item_filter": "物品过滤器", - "item.rs_ctr2.item_counter.tip": "计算物品栏 §f⏵§7 中的物品数。\n每当 §9⏶§7 中任一位从 0 变成 1 时更新结果 §A⏴§7。", - "item.rs_ctr2.item_filter.tip": "插入到 §f⏵§7 的物品若匹配过滤器中的任何物品则前往匹配路径 §f⏷§7,否则前往“其他”路径 §f⏴§7。\n抽取模式由 §9⏶§7 控制:\n-2 = 设置中物品为黑名单,匹配者前往 §f⏷§7\n\n-1 = 设置中物品为白名单,匹配者前往 §f⏷§7\n0...7 = 匹配选中单个物品者前往 §f⏷§7\n8... = 统一不作过滤前往“其他”路径 §f⏴§7\n过滤器物品需要在 GUI 设置(与方块互动打开设置界面)。", + "item.rs_ctr2.item_counter.tip": "计算物品栏 §f⏵§7 中的物品数。\n每当 §9⏶§7 中任一位从0变成1时更新结果 §A⏴§7。", + "item.rs_ctr2.item_filter.tip": "插入到 §f⏵§7 的物品若匹配过滤器中的任何物品则前往匹配路径 §f⏷§7,否则前往“其他”路径 §f⏴§7。\n抽取模式由 §9⏶§7 控制:\n-2 = 设置中物品为黑名单,匹配者前往 §f⏷§7\n\n-1 = 设置中物品为白名单,匹配者前往 §f⏷§7\n0...7 = 匹配选中单个物品者前往 §f⏷§7\n8... = 统一不作过滤前往“其他”路径 §f⏴§7\n过滤器物品需要在GUI设置(与方块互动打开设置界面)。", "gui.cd4017be.scroll": "格子 %s.0f... / %s3$.0f", - "item.rs_ctr2.item_buffer": "物品缓冲区", + "item.rs_ctr2.item_buffer": "物品缓存", "gui.rs_ctr2.buffer_fill": "%s.0f/%s3$.0f 个物品", "gui.rs_ctr2.scroll": "格子 %s.0f... / %s3$.0f", "item.rs_ctr2.item_dropper": "物品投掷器/收集器", - "item.rs_ctr2.item_buffer.ext": "容量:每单元 %sd 个物品\n每单元 1 种物品。", + "item.rs_ctr2.item_buffer.ext": "容量:每单元%sd个物品\n每单元1种物品。", "item.rs_ctr2.item_buffer.tip": "插入物品会优先与现有内容堆叠,不同物品则存放在共享堆叠限制的“先进先出”队列中。\n相邻单元会自动合并。\n§f⏺§7(使用物品线缆)提供物品栏。", "gui.rs_ctr2.item_buffer": "物品缓存", "item.rs_ctr2.data_send": "无线数据发送器", @@ -331,42 +333,42 @@ "gui.rs_ctr2.label": "标签文本", "block.rs_ctr2.frame_controller": "随机方块访问控制器", "state.rs_ctr2.frame_controller": "§90:§c%sd§7 ← [%sd...%sd]\n§91:§c%sd§7 ↑ [%sd...%sd]\n§92:§c%sd§7 ⨂ [%sd...%sd]\n§93:§5%ss", - "block.rs_ctr2.frame.tip": "需要放在§6随机方块访问控制器§7操作区域长方体的 8 个角落上(若控制器位于长方体中央,则最多可以放置 27 个)。\n设备会连接到其轴上最近的框架方块,并使用其和周围框架划定的区域(最多 8 个卦限)作为工作范围。", - "block.rs_ctr2.frame.ext": "框架间最远 %sd 格,框架离机器最远 %sd 格。", - "block.rs_ctr2.frame_controller.tip": "提供§6互动框架§7定义的长方体区域内的方块互动。\n方块使用相对于最初连接框架的 3 个§c座标数§7 [t-½] 表示。", + "block.rs_ctr2.frame.tip": "需要放在§6随机方块访问控制器§7操作区域长方体的8个角落上(若控制器位于长方体中央,则最多可以放置27个)。\n设备会连接到其轴上最近的框架方块,并使用其和周围框架划定的区域(最多8个卦限)作为工作范围。", + "block.rs_ctr2.frame.ext": "框架间最远%sd格,框架离机器最远%sd格。", + "block.rs_ctr2.frame_controller.tip": "提供§6互动框架§7定义的长方体区域内的方块互动。\n方块使用相对于最初连接框架的3个§c座标数§7 [t-½] 表示。", "item.rs_ctr2.button": "小型按钮", - "item.rs_ctr2.button.tip": "开时 §A⏵§7 = -1,关时为 0。\n经过一段延时后自动关闭(潜行与按钮互动可进行配置)。", + "item.rs_ctr2.button.tip": "开时 §A⏵§7 = -1,关时为0。\n经过一段延时后自动关闭(潜行与按钮互动可进行配置)。", "gui.rs_ctr2.pulse_len": "脉冲长度", "item.rs_ctr2.fluid_buffer": "流体缓存", "item.rs_ctr2.fluid_buffer.tip": "能存储单一类型的流体。\n相邻单元会自动合并。\n§b⏺§7 (使用流体线缆)提供流体访问。", - "item.rs_ctr2.fluid_buffer.ext": "容量:每单元 %sd mB", + "item.rs_ctr2.fluid_buffer.ext": "容量:每单元%sdmB", "state.rs_ctr2.fluid_buffer": "含有 §b%ss\n%sd / %sd mB", "item.rs_ctr2.fluid_counter": "流体计数器", - "item.rs_ctr2.fluid_filter.tip": "插入到 §b⏵§7 的流体若匹配过滤器中的流体则前往匹配路径 §b⏷§7,否则前往“其他”路径 §b⏴§7。\n抽取模式由 §9⏶§7 控制:\n-2 = 与设置中流体不匹配者前往 §b⏷§7\n0 = 与设置中流体匹配者前往 §b⏷§7\n1 = 统一不作过滤前往“其他”路径 §b⏴§7\n手持装有流体的桶与过滤器互动可设置过滤器流体。", + "item.rs_ctr2.fluid_filter.tip": "插入到§b⏵§7的流体若匹配过滤器中的流体则前往匹配路径§b⏷§7,否则前往“其他”路径§b⏴§7。\n抽取模式由§9⏶§7控制:\n-2 = 与设置中流体不匹配者前往§b⏷§7\n0 = 与设置中流体匹配者前往§b⏷§7\n1 = 统一不作过滤前往“其他”路径 §b⏴§7\n手持装有流体的桶与过滤器互动可设置过滤器流体。", "item.rs_ctr2.fluid_filter": "流体过滤器", - "item.rs_ctr2.fluid_counter.tip": "统计储罐 §b⏵§7 中的流体数量。\n每当 §9⏶§7 中任一位从 0 变成 1 时更新结果 §A⏴§7。", + "item.rs_ctr2.fluid_counter.tip": "统计储罐§b⏵§7中的流体数量。\n每当§9⏶§7中任一位从0变成1时更新结果§A⏴§7。", "state.rs_ctr2.fluid_counter": "§a0:§c%ss§7 mB 流体\n§a1:§b有无流体:%ss\n§92:§c0x%s08X§7 时钟信号", "state.rs_ctr2.air_counter": "§a0:§c%ss§7 mB 剩余空间\n§a1:§b有无流体:%ss\n§92:§c0x%s08X§7 时钟信号", "state.rs_ctr2.fluid_filter": "§90:§b提供流体访问\n§91:§c%sd§7 抽取模式\n§a2:§b有无流体匹配路径:%ss\n§a3:§b有无“其他”路径:%ss\n§7过滤器流体 = §b%ss", - "item.rs_ctr2.hardness_sensor.tip": "测量位于 §5⏵§7 的方块硬度(石头为 150)。\n每当 §9⏶§7 中任一位从 0 变成 1 时更新结果 §A⏴§7。", - "item.rs_ctr2.growth_sensor.tip": "测量位于 §5⏵§7 的植物的生长阶段:\n0 = 并非植物\n1 = 仍在成长\n2 = 完全成熟\n每当 §9⏶§7 中任一位从 0 变成 1 时更新结果 §A⏴§7。", + "item.rs_ctr2.hardness_sensor.tip": "测量位于§5⏵§7的方块硬度(石头为150)。\n每当§9⏶§7 中任一位从0变成1时更新结果§A⏴§7。", + "item.rs_ctr2.growth_sensor.tip": "测量位于§5⏵§7的植物的生长阶段:\n0 = 并非植物\n1 = 仍在成长\n2 = 完全成熟\n每当 §9⏶§7 中任一位从0变成1时更新结果§A⏴§7。", "item.rs_ctr2.growth_sensor": "植物生长传感器", - "item.rs_ctr2.power_counter.tip": "统计能量存储 §e⏵§7 中的能量数量。\n每当 §9⏶§7 中任一位从 0 变成 1 时更新结果 §A⏴§7。", + "item.rs_ctr2.power_counter.tip": "统计能量存储 §e⏵§7 中的能量数量。\n每当 §9⏶§7 中任一位从0变成1时更新结果 §A⏴§7。", "item.rs_ctr2.power_counter": "能量计数器", "state.rs_ctr2.cap_counter": "§a0:可存储 §c%ss§7 RF\n§a1:§e是否已连接:%ss\n§92:§c0x%s08X§7 时钟信号", "state.rs_ctr2.energy_counter": "§a0:现存 §c%ss§7 RF\n§a1:§e是否已连接:%ss\n§92: §c0x%s08X§7 时钟信号", - "item.rs_ctr2.const_inc.tip": "§A⏵§7 = §9⏴§7 + GUI 中设置的数字(与方块互动打开设置界面)。", + "item.rs_ctr2.const_inc.tip": "§A⏵§7 = §9⏴§7 + GUI中设置的数字(与方块互动打开设置界面)。", "item.rs_ctr2.const_inc": "递增门", "state.rs_ctr2.const_inc": "§7#:§c%sd§7 步长\n§90:§c%sd§7 输入\n§a1:§c%sd§7 输出", "state.rs_ctr2.dropper": "§a0:§5%ss\n§91:§f%sd 已投掷物品数", "state.rs_ctr2.block_io": "§90:§5%ss", "block.rs_ctr2.circuit_tester": "红石研究实验室", - "block.rs_ctr2.circuit_tester.tip": "用于解锁电路元件的配方(仅在启用相关游戏规则时)。\n要解锁某个组件,需要通过该组件对应的测试。建造一个符合要求的电路,将其连接到实验室方块背面,再运行测试。", + "block.rs_ctr2.circuit_tester.tip": "用于解锁电路元件的配方(仅在启用相关游戏规则时)。\n要解锁某个元件,需要通过该元件对应的测试。建造一个符合要求的电路,将其连接到实验室方块背面,再运行测试。", "item.rs_ctr2.probe.tip": "提供有关电路元件的信号状态的信息。", "test.rs_ctr2.half_adder": "半加器(仅用于辅助搭建)", "test.rs_ctr2.full_adder": "全加器(仅用于辅助搭建)", "test.rs_ctr2.adder32": "32 位加法器(仅用于辅助搭建)", - "test.rs_ctr2.ls0": "比较是否 < 0(仅用于辅助搭建)", + "test.rs_ctr2.ls0": "比较是否<0(仅用于辅助搭建)", "test.rs_ctr2.data_send": "并行数据转串行", "test.rs_ctr2.data_recv": "串行数据转并行", "gui.rs_ctr2.circuit_test": "没有正在激活的测试", @@ -375,7 +377,7 @@ "gui.rs_ctr2.hex0": "十进制格式", "gui.rs_ctr2.test_mode0": "运行测试", "gui.rs_ctr2.hex1": "十六进制格式", - "gui.rs_ctr2.test_lat": "I/O 延迟", + "gui.rs_ctr2.test_lat": "I/O延迟", "gui.rs_ctr2.test_int": "测试间隔", "gui.rs_ctr2.text_open": "选择一个测试", "gui.rs_ctr2.test_in": "提供值", @@ -386,5 +388,10 @@ "gui.rs_ctr2.bit_shuffle": "位变换", "gui.rs_ctr2.and_mask": "与掩码", "gui.rs_ctr2.xor_mask": "异或掩码", - "gui.rs_ctr2.shift": "循环移位" + "gui.rs_ctr2.shift": "循环移位", + "item.rs_ctr2.fluid_splitter.ext": "该元件组成的的元件链最深为%sd层。", + "item.rs_ctr2.splitter.ext": "该元件组成的的元件链最深为%sd层。", + "item.rs_ctr2.item_splitter.ext": "该元件组成的的元件链最深为%sd层。", + "item.rs_ctr2.block_splitter.ext": "该元件组成的的元件链最深为%sd层。", + "item.rs_ctr2.power_splitter.ext": "该元件组成的的元件链最深为%sd层。" } diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/automation.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/automation.json new file mode 100644 index 0000000..d3e9d5d --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/automation.json @@ -0,0 +1,6 @@ +{ + "name": "自动化", + "sortnum": 1, + "description": "自动化特性总览。", + "icon": "rs_ctr2:item_mover" +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/basics.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/basics.json new file mode 100644 index 0000000..dce3da0 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/basics.json @@ -0,0 +1,6 @@ +{ + "name": "模组基础", + "sortnum": 0, + "description": "解释了\\*红石控制2\\.的核心机制。极度建议阅读,哪怕你玩过红石控制1。", + "icon": "rs_ctr2:logic_in" +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/theory.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/theory.json new file mode 100644 index 0000000..89458cf --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/categories/theory.json @@ -0,0 +1,7 @@ +{ + "name": "理论概念", + "sortnum": 2, + "flag": "testing_mode", + "description": "本章节旨在教授一些数字电路的基本概念,以防你对它们还不熟悉。", + "icon": "minecraft:book" +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/autocrafting.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/autocrafting.json new file mode 100644 index 0000000..10d1a10 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/autocrafting.json @@ -0,0 +1,12 @@ +{ + "name": "自动合成器", + "icon": "rs_ctr2:autocraft", + "category": "rs_ctr2:automation", + "flag": "testing_mode", + "pages": [ + { + "type": "patchouli:text", + "text": "\\/本章节还没完成!" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/blockbreaker.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/blockbreaker.json new file mode 100644 index 0000000..8dc1ffa --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/blockbreaker.json @@ -0,0 +1,12 @@ +{ + "name": "可控方块破坏器", + "icon": "rs_ctr2:block_breaker", + "category": "rs_ctr2:automation", + "flag": "testing_mode", + "pages": [ + { + "type": "patchouli:text", + "text": "\\/本章节还没完成!" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/blockinteraction.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/blockinteraction.json new file mode 100644 index 0000000..3f681e0 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/blockinteraction.json @@ -0,0 +1,12 @@ +{ + "name": "远程方块互动", + "icon": "rs_ctr2:block_cable", + "category": "rs_ctr2:automation", + "flag": "testing_mode", + "pages": [ + { + "type": "patchouli:text", + "text": "\\/本章节还没完成!" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/circuit_debug.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/circuit_debug.json new file mode 100644 index 0000000..7e321cd --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/circuit_debug.json @@ -0,0 +1,31 @@ +{ + "name": "电路调试", + "icon": "rs_ctr2:probe", + "category": "rs_ctr2:basics", + "pages": [ + { + "type": "patchouli:text", + "text": "复杂的装置在第一次搭成时无法正常工作是相当正常的。无论是被忽略的边缘用例还是元件工作方式与你想的不同,有太多事情可能出错。\\p接下来的几页讲解了一些有用的工具,这些工具能在这种情况下帮到你。" + }, { + "type": "patchouli:spotlight", + "item": "rs_ctr2:probe", + "text": "大多数元件都是不透明的,而且视觉上没有任何能指示其状态的东西。因此,你需要一个\\i门探测器\\d来查看元件的内部状况。\\p使用该工具右击元件就能让探测器把元件作为目标。之后,探测器的屏幕上就会显示目标元件的缩小版模型,元件的实时状态信息会显示为下方的文本。" + }, { + "type": "patchouli:text", + "text": "这个缩小的3D模型会和真实的元件有相同的朝向,在你转动视角时也会跟着旋转。元件上的所有\\o端口\\d都有白色数字标记,这个数字与下方每行文本的开头数字对应。蓝色或者绿色指示着端口的输入输出方向:\\b输入/从\\d或者\\g输出/主\\d。\\p每个端口的状态会用与其$(l:connecting)类型$(/l)相匹配的颜色写出,额外的描述则会显示为灰色。" + }, { + "type": "patchouli:image", + "images": ["rs_ctr2:textures/gui/manual/probe.png"], + "border": true, + "title": "门探测器显示", + "text": "你可能会看见的样子。" + }, { + "type": "patchouli:text", + "title": "调试命令", + "text": "如果你在你的世界里有命令权限你还能:\\+$(c:/gateUpdater pause)暂停所有电路更新$(/c)\\+$(c:/gateUpdater step)进行单步更新$(/c)\\+$(c:/gateUpdater resume)使电路恢复常态$(/c)\\p这些命令在调试信号时序问题使非常有用,它们能让电路慢慢运行,你便能在每一tick分析其状态,而不会落在高速运转的电路后面。" + }, { + "type": "patchouli:text", + "text": "需要注意,电路tick停止后红石控制的所有设备都会停止响应,但世界里的一切其他事物都会照常运作。\\n这可能会带来预想外的副作用,所以一定要小心!" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/connecting.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/connecting.json new file mode 100644 index 0000000..3e2087a --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/connecting.json @@ -0,0 +1,34 @@ +{ + "name": "连接元件", + "icon": "rs_ctr2:data_cable", + "category": "rs_ctr2:basics", + "pages": [ + { + "type": "patchouli:text", + "text": "小方块元件间需要通过其表明的\\o端口\\.进行交互。\\p不同种类的的\\o端口\\.可以从其材质区分:\\+\\r数据\\d(红色棋盘)\\+\\y能量\\d(金色插槽)\\+\\w物品\\d(白色管道洞)\\+\\c流体\\d(蓝色管道洞)\\+\\m方块互动\\d(紫色)\\+\\D特殊\\d(黑色正方形)" + }, { + "type": "patchouli:text", + "text": "每个\\o端口\\d还有自身的输入输出方向,通过其周围的绿色或蓝色标记指示。\\p对于\\r数据端口\\d,绿色意味着\\g输出信号\\d,蓝色意味着\\b输入信号\\d。\\p对于其他类型的端口,绿色代表着\\g“主设备”一侧\\d,控制着互动过程;蓝色代表着\\b“从设备”一侧\\d,只会被动地反应。" + }, { + "type": "patchouli:text", + "text": "连接端口最直接的方式是将两个元件有端口的一面贴在一起放置。两个端口的类型必须相同,输入输出方向必须相反。\\p如果条件所限不能直接连接,还可以通过\\i线缆\\d相连。除了只能直接相连的\\D“特殊”\\d类型端口以外,每种端口都有相应的专用线缆。" + }, { + "type": "patchouli:text", + "anchor": "cable", + "text": "线缆形成的路径只能有两个端点,不能分支。所以如果你想将一个数据输出连接到多个数据输入,或者想让一个从端口能被多个主端口访问,你就需要用到\\i分离器\\d。\\p和线缆一样,每种端口类型(除了“特殊”)都有相应的分离器。\\p注意:分离器组成元件链只能反复相连\\c$(t:参见“工作数据”提示文本)有限次$(/t)\\d,否则就会停止传输!" + }, { + "type": "patchouli:spotlight", + "item": "rs_ctr2:not_gate", + "title": "提示文本中的端口", + "text": "在物品的提示文本中,元件的端口会以彩色箭头表示。其颜色代表了端口的类型,蓝色和绿色则是代表数据输入和输出。箭头指向该元件物品模型上的对应端口的朝向。\\n在上面的示例物品中,\\g>\\d是右方的数据输出端口,\\b<\\d是左方的数据输入端口。" + }, { + "type": "patchouli:relations", + "entries": [ + "rs_ctr2:placement", + "rs_ctr2:io", + "rs_ctr2:signals" + ], + "text": "" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/energy.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/energy.json new file mode 100644 index 0000000..38384d6 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/energy.json @@ -0,0 +1,22 @@ +{ + "name": "能量", + "icon": "rs_ctr2:power_cable", + "category": "rs_ctr2:automation", + "pages": [ + { + "type": "patchouli:text", + "text": "能在世界中进行操作的设备通常需要能量运行。\\p但是红石控制的机器本身不能存储能量。作为代替,在设备需要能量进行操作时,它会尝试从$(l:connecting)相连$(/l)的能量存储设备中抽取能量。如果能量不能立即提供,这个操作就会失败。" + }, { + "type": "patchouli:text", + "text": "同样的规则也适用于发电设备。这意味着,你不能直接将用电器连接到发电机,中间必须有某种存储设备!\\p由于存储设备是被动的从设备,它们之间也不能直接相连。不过,你可以使用\\i变压器\\d来在电池间持续转移能量。" + }, { + "type": "patchouli:text", + "title": "存储", + "text": "\\i电池单元\\d在同一方块内相邻放置时会组成一个相连的结构,这个结构暴露在外的任何表面都能通过手持\\i能量线缆\\d右击转化成能量端口。类似地,使用数据线缆能创造出一个数据端口,能用于读取存储的能量读数。\\p你也可以使用兼容FE的外部方块进行存储,只需要$(l:io#resource)使用\\i能量端口\\d连接它们$(/l)。" + }, { + "type": "patchouli:text", + "title": "发电机", + "text": "当前只有用阳光发电的\\i太阳能单元\\d这一种发电机。它们工作时需要能对天空一览无余,其输出取决于太阳的角度。\\n太阳能单元也能组成相连的结构,但只能有一个能量端口。" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/io.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/io.json new file mode 100644 index 0000000..01ecaf1 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/io.json @@ -0,0 +1,42 @@ +{ + "name": "外部I/O", + "icon": "rs_ctr2:analog_out", + "category": "rs_ctr2:basics", + "pages": [ + { + "type": "patchouli:text", + "text": "小方块元件的端口只能和端口互动,不能接上外部方块的非端口机制。为了让信号元件接收或发送常规红石信号,或者让主设备端口访问常规箱子,你需要使用特殊的转接元件,在端口和外部系统间进行转译。" + }, { + "type": "patchouli:text", + "text": "这些转接器会与它们面向的相邻方块互动,而且放置时也必须紧贴相邻方块。\\p一些转接器也有方块互动端口,使得它们也能远程连接到其他外部方块。" + }, { + "type": "rs_ctr2:spotlight2", + "a.item": "rs_ctr2:logic_out", + "b.item": "rs_ctr2:logic_in", + "_.title": "逻辑信号I/O", + "_.text": "\\i逻辑信号读取器\\d和\\i逻辑信号发射器\\d能将外部红石信号转换为基于端口的数据信号,或者反过来。但它们只会区分开和关状态(真或假),并不会保留信号强度信息。\\p它们对转换逻辑门的输入输出很有帮助。" + }, { + "type": "rs_ctr2:spotlight3", + "a.item": "rs_ctr2:analog_out", + "b.item": "rs_ctr2:analog_in", + "c.item": "rs_ctr2:comp_in", + "_.title": "模拟信号I/O", + "_.text": "\\i模拟信号读取器\\d和\\i模拟信号发射器\\d能将外部红石信号强度数值转换为基于端口的数据信号,或者反过来。\\i比较器信号读取器\\d则是在一个元件内整合了普通的原版比较器+模拟信号读取器。\\p注意:不要混用模拟和逻辑信号,除非你$(l:bitwise)知道自己在干什么$(/l)!" + }, { + "type": "rs_ctr2:spotlight2", + "a.item": "rs_ctr2:growth_sensor", + "b.item": "rs_ctr2:hardness_sensor", + "_.title": "方块传感器", + "_.text": "这些元件能测量方块的不同属性,并将其转换为数值。与前述的红石读取器不同,它们不会自动持续更新,而是需要时钟信号来刷新读数。\\p\\/可以通过\\o远程方块互动\\d工作。" + }, { + "anchor": "resource", + "type": "rs_ctr2:spotlight4", + "a.item": "rs_ctr2:power_io", + "b.item": "rs_ctr2:fluid_io", + "c.item": "rs_ctr2:item_io", + "d.item": "rs_ctr2:item_dropper", + "_.title": "资源I/O", + "_.text": "用于连接外部物品、流体容器或能量存储。\\p\\/可以通过\\o远程方块互动\\d工作。" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/itemuser.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/itemuser.json new file mode 100644 index 0000000..11b05e6 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/itemuser.json @@ -0,0 +1,12 @@ +{ + "name": "可控物品使用器", + "icon": "rs_ctr2:item_placer", + "category": "rs_ctr2:automation", + "flag": "testing_mode", + "pages": [ + { + "type": "patchouli:text", + "text": "\\/本章节还没完成!" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/placement.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/placement.json new file mode 100644 index 0000000..362df40 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/placement.json @@ -0,0 +1,28 @@ +{ + "name": "元件放置诀窍", + "icon": "cd4017be_lib:microblock", + "category": "rs_ctr2:basics", + "pages": [ + { + "type": "patchouli:text", + "text": "要从一个已放置的\\i小方块结构\\d中移除元件,你需要手持另一个小方块元件对目标元件左键(手持\\i门探测器\\d也可以)。若你空手或使用常规工具破坏一个\\i小方块结构\\d,该结构会以整个方块的形式掉落。\\p此时物品形式的结构可以放在\\i小方块工作台\\d里拆解成它的组成元件,也可以用更多的元件复制出一样的结构。" + }, { + "type": "patchouli:text", + "text": "重新放置结构时,它的朝向还是和被破坏时一样,与你的放置方式无关。不过你可以手持\\i小方块结构\\d物品对空气右击,此时打开的GUI能改变其朝向。\\p小方块元件的放置和普通方块基本相同,只不过网格边长只有原来的1/4。一个例外是像线缆这样的透明或不完整元件,在用\\i小块方块\\d对其放置时会把它们覆盖住。" + }, { + "type": "patchouli:text", + "title": "有方向元件", + "text": "许多小方块元件能朝不同方向放置:\\p如果放置元件时\\*不潜行\\.,物品模型的右面会指向你,正面会则背向你放置时点击的墙。而当你垂直面向墙放置时,模型正面会指向离放置时瞄准的点最近的小方块网格边缘。" + }, { + "type": "patchouli:text", + "text": "\\*潜行放置\\.模式下,元件物品模型的右面总会指向你放置时点击的墙,正面总会指向离瞄准点最近的小方块网格边缘。\\p\\/未来可能会添加旋转小方块元件的工具。" + }, { + "type": "patchouli:text", + "title": "线缆放置", + "text": "一块线缆总是连接着两个不同的面,其中一个面是你放置时点击的面。\\p\\*不潜行\\.时另一端会指向你,这在快速放置长距离线缆时最为方便。" + }, { + "type": "patchouli:text", + "text": "\\*潜行时\\.,另一端会指向离放瞄准点最近的小方块网格边缘,而如果你瞄准点基本在网格中心的话,则会指向与墙面相反的方向。\\n该模式相当适用于在狭窄空间内进行精准放置。" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/signals.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/signals.json new file mode 100644 index 0000000..f9040f6 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/signals.json @@ -0,0 +1,30 @@ +{ + "name": "数字信号", + "icon": "rs_ctr2:not_gate", + "category": "rs_ctr2:basics", + "pages": [ + { + "type": "patchouli:text", + "text": "逻辑门这样的小方块元件有着自己的一套信号系统,需要通过$(l:io)转换器$(/l)来连接到常规原版红石。这个系统和红石的主要不同是:\\n\\+输入和输出间只可能有$(l:connecting#cable)单向1对1连接$(/l)。\\+信号传输无损且没有距离限制。" + }, { + "type": "patchouli:text", + "text": "\\+信号值的范围是-2147483648到+2147483647(而不是0到15),而且这个值是通过一条线缆内32个独立的二元逻辑信道以二进制表示的。\\+断开的输入是浮置的,它们\\*不会重置到0\\.,而是维持在最后一次接受到的数据。\\p最后两点与电路行为特别相关。" + }, { + "type": "patchouli:text", + "title": "按位操作", + "text": "一些信号操作元件(包括所有逻辑门)是按位进行的,它们的逻辑操作会在所有32位信道上同时进行:\\n输出的第一位是所有输入第一位的运算结果,输出的第二位是所有输入第二位的运算结果,等等。\\p\\i位乱序选择门\\d可以用于单独设置、翻转和重排信号的每一位。" + }, { + "type": "patchouli:text", + "text": "一些情况下,比如信号作为比较器的结果时,信号应该被表示为纯布尔状态(非真即假)。纯布尔信号要么所有位都为1(真),要么所有位都为0(假)。\\n这种表示在进行按位逻辑操作时很方便,因为纯布尔信号的运算结果也是纯布尔信号。\\p\\i或缓存门\\d能对一个信号所有信道上的位进行或操作,将一般数据信号转换为纯布尔信号。" + }, { + "type": "patchouli:text", + "anchor": "clock", + "title": "时钟信号", + "text": "很多设备使用时钟信号来触发操作。本模组里相关要求的通常形式为:输入信号的任一位从0变成1,则视为一次触发;每tick里哪怕有多个位发生变化,最多也只能有一次触发。\\p使用纯布尔时钟信号最为简单,但因为全部位变成1需要时间再变回0,它们最多只能每两tick触发一次。" + }, { + "type": "patchouli:text", + "title": "浮置输入", + "text": "断开的输入端口还会维持其最后的状态,这意味着你在用常量元件设定输入后就可以将其移除,从而节省空间和元件。如果在使用有3个输入的逻辑门时只需要其中两个,你可以不管第三个输入,因为它们的输入值是不影响逻辑操作的初始值。\\p小心不要失手连上了要保留的浮置输入,否则就会变成新值!" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/timing.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/timing.json new file mode 100644 index 0000000..e9f38b5 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/timing.json @@ -0,0 +1,20 @@ +{ + "name": "时序", + "icon": "rs_ctr2:delay", + "category": "rs_ctr2:basics", + "pages": [ + { + "type": "patchouli:text", + "text": "就像红石火把和中继器的传播延迟一样,大多数元件也有一tick的信号延迟(只有普通红石延迟的一半)。这意味着当前tick的输出值取决于上一tick的输入值。\\p在物品的提示文本中,输出会标记上[t+1],输入会标为[t-1]。" + }, { + "type": "patchouli:text", + "text": "少数元件的提示里你可能还会遇到[t+1/2],这代表着在两个电路tick间发生的事件。常规的世界事件,例如方块和实体更新,通通都发生在t和t+1/2之间。\\p也有一些只有一个输入的操作延迟为零tick,它们的输出会根据输入即时改变。这些操作也会计入\\c$(t:参见分离器的工作数据提示文本)分离器链路限制$(/t)\\d,所以你需要在使用这些操作时插入\\i延迟线\\d或者其他有延迟的元件来重置链路深度计数。" + }, { + "type": "patchouli:text", + "text": "\\i延迟线\\d对于其他特定情景也很重要,比如改变不同信号的相对时间来使其同时到达某设备,或者让设备以特定顺序执行动作。" + }, { + "type": "patchouli:text", + "text": "在建造复杂电路时,你会发现信号传播延迟是电路运行速度的主要瓶颈。在某些地方超频,使其运作频率超过电路支持的上限会产生错误的控制信号,而这可能造成大麻烦。所以如果电路开始出错,有可能是运转得太快了。\\p优化电路,使其支持更高时钟频率,这是高级玩家的挑战,也是他们的奖励。" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/transport.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/transport.json new file mode 100644 index 0000000..dffff6f --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/entries/transport.json @@ -0,0 +1,40 @@ +{ + "name": "物品与流体传输", + "icon": "rs_ctr2:item_cable", + "category": "rs_ctr2:automation", + "pages": [ + { + "type": "patchouli:text", + "text": "除了使用的元件不同外,进行物品和流体传输大体相同。促使物品移动的主要$(l:connecting)主动$(/l)设备是\\i物品转运器\\d和\\i流体泵\\d。\\p接收到一个$(l:signals#clock)时钟脉冲$(/l)后,它们会从输入端提取信号指定数量的物品/流体,将其送到输出端。" + }, { + "type": "patchouli:text", + "text": "整个传输过程发生在1个tick内,物品或流体不会有任何一刻存储于线缆或其他元件中(当然,除了$(l:transport#buffer)缓存$(/l))。传输完成后,设备会发出信号,指示实际上移动的物品/流体数量。可以请求传输负数个物品/流体,这样做会将输入和输出反转过来。\\p如果没有足够的能量供给,设备不会执行任何操作,而且输出信号为0。" + }, { + "type": "patchouli:text", + "title": "传输端点", + "text": "传输端点指的是某些元件,它们实际接收或提供了转运器/泵移动的物品/流体。它们包括负责与外部世界交互的$(l:io#resource)外部连接器$(/l)、单纯进行存储的\\i缓存\\d,以及少量有被动物品/流体端口的机器。" + }, { + "anchor": "buffer", + "type": "rs_ctr2:spotlight2", + "a.item": "rs_ctr2:item_buffer", + "b.item": "rs_ctr2:fluid_buffer", + "_.title": "缓存", + "_.text": "这种元件能在同一个方块内组成相连结构,任何暴露在外的表面都能通过手持\\i流体/物品线缆\\d变成相应端口。\\n与箱子不同,\\i物品缓存\\d有一个“全局”堆叠上限,该上限在存储的所有类型物品间共享,能够让物品堆叠超过普通的上限。" + }, { + "type": "rs_ctr2:spotlight2", + "a.item": "rs_ctr2:item_filter", + "b.item": "rs_ctr2:fluid_filter", + "_.title": "过滤器", + "_.text": "过滤器能放在一个转运器/泵和它们的\\o传输端点\\d间来进行更多传输控制。它们有两种工作方式,取决于物品/流体是插入还是提取:\\p对于插入它们的物品/流体,过滤器会简单地根据匹配规则决定其去向。" + }, { + "type": "patchouli:text", + "text": "对于从过滤器处提取物品/流体,则有一个信号控制着过滤器是黑名单、白名单还是“穿透”模式。\\i物品过滤器\\d还有额外功能,允许选择单个物品作为过滤(详见其提示文本)。\\p你可以在转运器/泵的两边都放置过滤器,甚至能连接多个过滤器组成链路(需要连接上个过滤器的“其他路径”),链路深度和$(t:参见物品/流体分离器工作数据提示)分离器链路限制$(/t)一样。" + }, { + "type": "rs_ctr2:spotlight2", + "a.item": "rs_ctr2:item_counter", + "b.item": "rs_ctr2:fluid_counter", + "_.title": "计数器", + "_.text": "计数器能让你将\\o传输端点\\d处存储的物品/流体数读取为数字信号并用于控制电路。在二者中间放置过滤器会让计数根据过滤器的提取模式进行,能让你统计特定种类物品或流体的数量。" + } + ] +} diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/item.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/item.json new file mode 100644 index 0000000..ae77af5 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/item.json @@ -0,0 +1,10 @@ +{ + "components": [ + { + "type": "item", + "item": "#item", + "framed": true, + "x": 50, "y": 15 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight0.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight0.json new file mode 100644 index 0000000..b2d8dad --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight0.json @@ -0,0 +1,13 @@ +{ + "components": [ + { + "type": "header", + "text": "#title", + "x": -1, "y": -1 + }, { + "type": "text", + "text": "#text", + "x": 0, "y": 40 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight2.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight2.json new file mode 100644 index 0000000..0521212 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight2.json @@ -0,0 +1,14 @@ +{ + "include": [ + { + "template": "rs_ctr2:spotlight0", + "as": "_" + }, { + "template": "rs_ctr2:item", + "as": "a", "x": -12 + }, { + "template": "rs_ctr2:item", + "as": "b", "x": 12 + } + ], "components": [] +} \ No newline at end of file diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight3.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight3.json new file mode 100644 index 0000000..74b1c24 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight3.json @@ -0,0 +1,17 @@ +{ + "include": [ + { + "template": "rs_ctr2:spotlight0", + "as": "_" + }, { + "template": "rs_ctr2:item", + "as": "a", "x": -24 + }, { + "template": "rs_ctr2:item", + "as": "b", "x": 0 + }, { + "template": "rs_ctr2:item", + "as": "c", "x": 24 + } + ], "components": [] +} \ No newline at end of file diff --git a/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight4.json b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight4.json new file mode 100644 index 0000000..b638666 --- /dev/null +++ b/src/main/resources/data/rs_ctr2/patchouli_books/manual/zh_cn/templates/spotlight4.json @@ -0,0 +1,20 @@ +{ + "include": [ + { + "template": "rs_ctr2:spotlight0", + "as": "_" + }, { + "template": "rs_ctr2:item", + "as": "a", "x": -36 + }, { + "template": "rs_ctr2:item", + "as": "b", "x": -12 + }, { + "template": "rs_ctr2:item", + "as": "c", "x": 12 + }, { + "template": "rs_ctr2:item", + "as": "d", "x": 36 + } + ], "components": [] +} \ No newline at end of file From 5dc6d3958cf176a09c4b13dbf5857eae52978201 Mon Sep 17 00:00:00 2001 From: kappa_maintainer Date: Thu, 16 Feb 2023 23:05:18 +0800 Subject: [PATCH 2/2] Update forge --- build.gradle | 15 ++++----------- gradle.properties | 11 ++++++----- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/build.gradle b/build.gradle index 819581f..3cf12ec 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ buildscript { mavenCentral() } dependencies { - classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '4.1.+', changing: true + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true } } apply plugin: 'net.minecraftforge.gradle' @@ -137,15 +137,7 @@ repositories { url = "https://modmaven.k-4u.nl" } maven { url 'https://maven.blamejared.com' } - maven { - // CD4017BE_lib releases - name = "GitHub" - url = "https://maven.pkg.github.com/cd4017be/cd4017be_lib" - credentials { - username = project.findProperty("gpr.user") ?: System.getenv("USERNAME") - password = project.findProperty("gpr.key") ?: System.getenv("PASSWORD") - } - } + } dependencies { @@ -162,7 +154,8 @@ dependencies { compileOnly fg.deobf("vazkii.patchouli:Patchouli:${patchouli_version}:api") runtimeOnly fg.deobf("vazkii.patchouli:Patchouli:${patchouli_version}") // CD4017BE_lib: using deobf version here because source code attachment isn't working with fg.deobf() - implementation "com.cd4017be.lib:cd4017be_lib:${mc_version}-${lib_version}:deobf" + //implementation fg.deobf(files("./libs/*")) + implementation fileTree(dir: 'libs', include: '*.jar') } task deobfJar(type: Jar) { diff --git a/gradle.properties b/gradle.properties index 7b62756..154d3ce 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,18 +1,19 @@ # Sets default memory used for gradle commands. Can be overridden by user or command line properties. # This is required to provide enough memory for the Minecraft decompilation process. -org.gradle.jvmargs=-Xmx3G +org.gradle.jvmargs=-Xmx3G -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1081 + org.gradle.daemon=false java_version=1.8 //minecraft mc_version=1.16.5 -forge_version=36.1.12 +forge_version=36.2.39 //mod and library -mod_version=1.1.0.0 +mod_version=1.2.0.0 lib_version=7.2.0.0 //mod dependencies -jei_version=1.16.4:7.6.1.71 -patchouli_version=1.16.4-53.2 +jei_version=1.16.5:7.7.1.153 +patchouli_version=1.16.4-53.3 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1c4bcc2..8fad3f5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists