diff --git a/projects/1.16/assets/modular-routers/modularrouters/lang/en_us.json b/projects/1.16/assets/modular-routers/modularrouters/lang/en_us.json index 4b63efcbb143..826e3ecdff45 100644 --- a/projects/1.16/assets/modular-routers/modularrouters/lang/en_us.json +++ b/projects/1.16/assets/modular-routers/modularrouters/lang/en_us.json @@ -78,7 +78,6 @@ "modularrouters.chatText.targetValidation.NOT_LOADED": "§c✘ Not Loaded", "modularrouters.chatText.targetValidation.OK": "§a✔ Target OK", "modularrouters.chatText.targetValidation.OUT_OF_RANGE": "§c✘ Out of Range", - "modularrouters._comment": "JEI text", "modularrouters.gui.config.alwaysShowModuleSettings": "Show module settings tooltips without needing to hold down Shift", "modularrouters.gui.config.baseTickRate": "Base router tick rate (with no Speed Upgrades)", "modularrouters.gui.config.breakerParticles": "Show particle effects when a Breaker Module breaks a block", @@ -236,7 +235,7 @@ "modularrouters.guiText.tooltip.tunedValue": "§bTuned Value (%d → %d)", "modularrouters.guiText.tooltip.UP": "Up", "modularrouters.guiText.tooltip.xpVacuum.ejectFluid": "XP Fluids Ejected", - "modularrouters.itemGroup.modularrouters": "Modular Routers", + "itemGroup.modularrouters": "Modular Routers", "modularrouters.itemText.activator.action.ITEM_OR_BLOCK": "Right-click", "modularrouters.itemText.activator.action.USE_ITEM_ON_ENTITY": "Right-click entity", "modularrouters.itemText.activator.action.ATTACK_ENTITY": "Attack nearby entity", diff --git a/projects/1.16/assets/modular-routers/modularrouters/lang/zh_cn.json b/projects/1.16/assets/modular-routers/modularrouters/lang/zh_cn.json index 9e26dfeeb6e6..dab3b2134fad 100644 --- a/projects/1.16/assets/modular-routers/modularrouters/lang/zh_cn.json +++ b/projects/1.16/assets/modular-routers/modularrouters/lang/zh_cn.json @@ -1 +1,356 @@ -{} \ No newline at end of file +{ + "block.modularrouters.item_router": "模块化路由器", + "block.modularrouters.template_frame": "模板框架方块", + "item.modularrouters.activator_module": "执行模块", + "item.modularrouters.augment_core": "拓展核心", + "item.modularrouters.blank_module": "空白模块", + "item.modularrouters.blank_upgrade": "空白升级", + "item.modularrouters.blast_upgrade": "爆炸升级", + "item.modularrouters.breaker_module": "破坏模块", + "item.modularrouters.bulk_item_filter": "批量物品过滤器", + "item.modularrouters.camouflage_upgrade": "伪装升级", + "item.modularrouters.creative_module" : "创造模块", + "item.modularrouters.detector_module": "检测模块", + "item.modularrouters.distributor_module": "分配模块", + "item.modularrouters.dropper_module": "投掷器模块", + "item.modularrouters.energy_distributor_module" : "能量分配模块", + "item.modularrouters.energy_output_module" : "能量输出模块", + "item.modularrouters.energy_upgrade" : "能量升级", + "item.modularrouters.extruder_module_1": "挤出模块1型", + "item.modularrouters.extruder_module_2": "挤出模块2型", + "item.modularrouters.fast_pickup_augment": "快速拾取拓展", + "item.modularrouters.filter_round_robin_augment" : "过滤器轮询拓展", + "item.modularrouters.flinger_module": "投掷模块", + "item.modularrouters.fluid_module_2": "流体模块2型", + "item.modularrouters.fluid_module": "流体模块1型", + "item.modularrouters.fluid_upgrade": "流体传输升级", + "item.modularrouters.GuideBook": "§l§n模块化路由器", + "item.modularrouters.inspection_filter": "检测过滤器", + "item.modularrouters.mimic_augment": "模仿拓展", + "item.modularrouters.mod_filter": "模组过滤器", + "item.modularrouters.muffler_upgrade": "消声器升级", + "item.modularrouters.override_card": "安全覆盖卡", + "item.modularrouters.pickup_delay_augment": "延迟拾取拓展", + "item.modularrouters.placer_module": "放置模块", + "item.modularrouters.player_module": "玩家模块", + "item.modularrouters.puller_module_1": "抽取模块1型", + "item.modularrouters.puller_module_2": "抽取模块2型", + "item.modularrouters.pushing_augment": "推动拓展", + "item.modularrouters.range_down_augment": "范围降级拓展", + "item.modularrouters.rangedown_upgrade": "范围降级", + "item.modularrouters.range_up_augment": "范围升级拓展", + "item.modularrouters.range_upgrade": "范围升级", + "item.modularrouters.redstone_augment": "红石拓展", + "item.modularrouters.regex_filter": "正则过滤器", + "item.modularrouters.regulator_augment": "调节拓展", + "item.modularrouters.security_upgrade": "安全升级", + "item.modularrouters.sender_module_1": "发送模块1型", + "item.modularrouters.sender_module_2": "发送模块2型", + "item.modularrouters.sender_module_3": "发送模块3型", + "item.modularrouters.speed_upgrade": "速度升级", + "item.modularrouters.stack_augment": "堆叠拓展", + "item.modularrouters.stack_upgrade": "堆叠升级", + "item.modularrouters.sync_upgrade": "同步升级", + "item.modularrouters.vacuum_module": "真空模块", + "item.modularrouters.void_module": "销毁模块", + "item.modularrouters.xp_vacuum_augment": "经验吸收拓展", + "key.modularrouters.category": "模块化路由器", + "key.modularrouters.configure": "配置已安装的模块(GUI)", + "key.modularrouters.moduleInfo": "额外的工具提示信息(GUI)", + "modularrouters.chatText.misc.inventoryMerged": "已将%d个物品合并到%s中", + "modularrouters.chatText.misc.targetAdded": "目标已添加(%d/%d):", + "modularrouters.chatText.misc.targetCleared": "目标已移除", + "modularrouters.chatText.misc.targetRemoved": "目标已移除(%d/%d):", + "modularrouters.chatText.misc.targetSet": "目标已设定:", + "modularrouters.chatText.misc.target": "目标:§b%s", + "modularrouters.chatText.misc.tooManyTargets": "目标过多(最大:%d)", + "modularrouters.chatText.security.accessDenied": "§c--[拒绝访问]--", + "modularrouters.chatText.security.ADDED": "添加玩家[%s]", + "modularrouters.chatText.security.ALREADY_ADDED": "玩家[%s]已在此升级中添加", + "modularrouters.chatText.security.ERROR": "无法添加玩家[%s](内部错误)", + "modularrouters.chatText.security.FULL": "安全升级物品已满!", + "modularrouters.chatText.security.NOT_PRESENT": "玩家[%s]已移除", + "modularrouters.chatText.security.REMOVED": "移除玩家[%s]", + "modularrouters.chatText.subtitle.error": "错误", + "modularrouters.chatText.subtitle.success": "成功", + "modularrouters.chatText.subtitle.thud": "*砰的一声*", + "modularrouters.chatText.targetValidation.NOT_INVENTORY": "§c✘ 无物品栏", + "modularrouters.chatText.targetValidation.NOT_LOADED": "§c✘ 未加载", + "modularrouters.chatText.targetValidation.OK": "§a✔ 目标合格", + "modularrouters.chatText.targetValidation.OUT_OF_RANGE": "§c✘ 超出范围", + "modularrouters.gui.config.alwaysShowModuleSettings": "显示模块设置工具提示,而无需按住Shift键", + "modularrouters.gui.config.baseTickRate": "基本路由器速率(无速度升级)", + "modularrouters.gui.config.breakerParticles": "当破坏模块破坏方块时显示粒子效果", + "modularrouters.gui.config.ctgy.misc": "杂项", + "modularrouters.gui.config.ctgy.misc.tooltip": "其他设置", + "modularrouters.gui.config.ctgy.module": "模块", + "modularrouters.gui.config.ctgy.module.tooltip": "模块化路由器模块的配置设置", + "modularrouters.gui.config.ctgy.router": "路由器", + "modularrouters.gui.config.ctgy.router.tooltip": "模块化路由器的配置设置", + "modularrouters.gui.config.ecoTimeout": "如果路由器开启了节能模式,并待机了许多服务器刻,它将进入低耗模式", + "modularrouters.gui.config.extruder2BaseRange": "挤出模块2型的基础范围(无范围升级)", + "modularrouters.gui.config.extruder2MaxRange": "挤出模块2型的最大范围(带范围升级)", + "modularrouters.gui.config.extruderBaseRange": "挤出模块的基础范围(无范围升级)", + "modularrouters.gui.config.extruderMaxRange": "挤出模块的最大范围(带范围升级)", + "modularrouters.gui.config.extruderPushEntities": "挤出模块1型/2型伸出时可以推动实体", + "modularrouters.gui.config.extruderSound": "当挤出模块伸出或缩回时播放声音", + "modularrouters.gui.config.flingerEffects": "当投掷模块投掷物品时播放声音和烟雾效果", + "modularrouters.gui.config.hardMinTicks": "最小(最快)的路由器运行速率", + "modularrouters.gui.config.lowPowerTickRate": "开启节能模式的路由器在低耗模式下,每经过若干服务器刻才会执行一次路由器刻", + "modularrouters.gui.config.mainTitle": "模块化路由器配置", + "modularrouters.gui.config.moduleGuiBackgroundTint": "把模块GUI的背景色染成模块物品的颜色", + "modularrouters.gui.config.placerParticles": "当放置模块放置方块时显示粒子效果", + "modularrouters.gui.config.puller2BaseRange": "抽取模块2型的基础范围(无范围升级)", + "modularrouters.gui.config.puller2MaxRange": "抽取模块2型的最大范围(带范围升级)", + "modularrouters.gui.config.pullerParticles": "当抽取模块抽取物品时显示粒子效果", + "modularrouters.gui.config.sender1BaseRange": "发送模块1型的基础范围(无范围升级)", + "modularrouters.gui.config.sender1MaxRange": "发送模块1型的最大范围(带范围升级)", + "modularrouters.gui.config.sender2BaseRange": "发送模块2型的基础范围(无范围升级)", + "modularrouters.gui.config.sender2MaxRange": "发送模块2型的最大范围(带范围升级)", + "modularrouters.gui.config.senderParticles": "当发送模块发送物品时显示粒子效果", + "modularrouters.gui.config.startWithGuide": "新玩家在游戏开始时获得指南书", + "modularrouters.gui.config.ticksPerUpgrade": "每次速度升级加速的值", + "modularrouters.gui.config.vacuumBaseRange": "真空模块的基础范围(无范围升级)", + "modularrouters.gui.config.vacuumMaxRange": "真空模块的最大范围(带范围升级)", + "modularrouters.gui.config.vacuumParticles": "真空模块吸收物品时显示颗粒效果", + "modularrouters.guiText.label.breakMatchType.BLOCK": "匹配方块", + "modularrouters.guiText.label.breakMatchType.ITEM": "匹配掉落物", + "modularrouters.guiText.label.buffer": "缓存区", + "modularrouters.guiText.label.direction": "§e方向设置", + "modularrouters.guiText.label.filters": "过滤器", + "modularrouters.guiText.label.fluidForceEmpty": "强制", + "modularrouters.guiText.label.inspectionOp.EQ": "=", + "modularrouters.guiText.label.inspectionOp.GE": ">=", + "modularrouters.guiText.label.inspectionOp.GT": ">", + "modularrouters.guiText.label.inspectionOp.LE": "<=", + "modularrouters.guiText.label.inspectionOp.LT": "<", + "modularrouters.guiText.label.inspectionOp.NE": "!=", + "modularrouters.guiText.label.inspectionOp.NONE": "", + "modularrouters.guiText.label.inspectionSubject.DURABILITY": "耐久度", + "modularrouters.guiText.label.inspectionSubject.ENCHANT": "魔咒", + "modularrouters.guiText.label.inspectionSubject.ENERGY": "能量储量", + "modularrouters.guiText.label.inspectionSubject.FLUID": "流体储量", + "modularrouters.guiText.label.inspectionSubject.FOOD": "食物营养价值", + "modularrouters.guiText.label.inspectionSubject.NONE": "", + "modularrouters.guiText.label.installed": "(已安装)", + "modularrouters.guiText.label.matchAll.false": "匹配任意", + "modularrouters.guiText.label.matchAll.true": "匹配全部", + "modularrouters.guiText.label.modules": "模块", + "modularrouters.guiText.label.playerOp.EXTRACT": "从玩家提取至路由器", + "modularrouters.guiText.label.playerOp.INSERT": "从路由器输入至玩家", + "modularrouters.guiText.label.playerSect.ARMOR": "盔甲栏", + "modularrouters.guiText.label.playerSect.ENDER": "末影物品栏", + "modularrouters.guiText.label.playerSect.MAIN": "主物品栏", + "modularrouters.guiText.label.playerSect.MAIN_NO_HOTBAR": "主物品栏(不含快捷栏)", + "modularrouters.guiText.label.playerSect.OFFHAND": "副手栏", + "modularrouters.guiText.label.regexError": "无效的正则表达式", + "modularrouters.guiText.label.upgrades": "升级", + "modularrouters.guiText.label.xpVacuum.eject": "输出", + "modularrouters.guiText.label.xpVacuum": "经验类型", + "modularrouters.guiText.popup.activator.action": "§a§n行为 ${br} ${br}§r执行模块可以模拟下列行为:${br}- 使用路由器缓存区的物品右击方块${br}(比如:使用锄,或开关拉杆);${br}- 右击附近的实体${br} ${br}(比如:使用在路由器缓存区中的桶为${br}牛挤奶)。", + "modularrouters.guiText.popup.activator.entity" : "§a§n实体模式 ${br} ${br}§r执行模块时指向周围(三格内)的一${br}个实体:${br}- 最近的实体;${br}- 随机选择一个实体;${br}- 在该范围的所有实体中轮询选择。", + "modularrouters.guiText.popup.activator.look": "§a§n瞄准方向 ${br} ${br}§r右击时,路由器可以:${br}- 瞄准一个水平方向最多四格远、且路${br}由器正对着的方块;${br}- 瞄准一个在路由器方向上加一格正上${br}方的方块;${br}- 瞄准一个在路由器方向上加一格正下${br}方的方块。", + "modularrouters.guiText.popup.activator.sneak": "§a§n潜行 ${br} ${br}§r设置路由器模拟右击时是否应该潜行。", + "modularrouters.guiText.popup.augments": "§a§n拓展 ${br} ${br}§r这四个栏位可以放置模块拓展。你可${br}以合成模块拓展并放入模块来更改或${br}增强模块的功能。 ${br} ${br}参阅模块拓展物品提示来了解每个${br}拓展的作用。 ${br} ${br}请注意,你只有手持单个模块才能${br}放置/取出拓展,这是为了避免拓展${br}被复制。", + "modularrouters.guiText.popup.breaker.matchType" : "§a§n匹配类型 ${br} ${br}§r- 匹配掉落物:当破坏方块时,过滤器${br}会匹配该方块掉落的物品(注意精准${br}采集会影响掉落)${br}- 匹配方块:过滤器匹配方块本身,${br}比如过滤器有石头,则会匹配石头${br}方块,不会受精准采集影响(即使${br}掉落物仍是圆石)", + "modularrouters.guiText.popup.detector.signalLevel": "§a§n红石信号等级 ${br} ${br}§r在这里你可以指定一个红石信号强度,${br}这是一个0到15之间(包含0和15)的整数。${br}当路由器缓存区中的物品与过滤器匹配${br}时路由器将会输出与之相同强度的信号。", + "modularrouters.guiText.popup.detector.weakStrong": "§a§n红石信号充能方式 ${br} ${br}§r-§o弱充能§r 的红石信号只会充能相邻${br}的方块;${br}-§o强充能§r 的红石信号除了充能相邻${br}的方块之外,还能使该方块进一步${br}充能其相邻的方块(类似原版的${br}红石中继器)。", + "modularrouters.guiText.popup.direction": "§a§n方向控制 ${br} ${br}§rGUI里的这个部分允许你指定模块工作${br}的方向。显示的方向基准相对于路由${br}器的正面。默认的方向是“无”,${br}在大多数情况下这意味着放置的模块${br}不会工作,因此你将需要指定一个方向。", + "modularrouters.guiText.popup.distributor.direction" : "§a§n传输方向 ${br} ${br}§r在这里你可以控制路由器向哪里发送${br}物品,或从哪里接收物品。", + "modularrouters.guiText.popup.distributor.strategy": "§a§n分配策略 ${br} ${br}§r这定义了分配模块分配物品的方式,${br}分别存在四种可以设定的策略:${br} ${br}§e轮询§r - 按顺序依次尝试将物品送入绑定的${br}全部容器。 ${br} ${br}§e随机§r - 每游戏刻将物品随机送入绑定的不同${br}的容器。${br} ${br}§e最近§r - 将物品优先送入离路由器最近的绑定${br}的容器 ${br} ${br}§e最远§r - 将物品优先送入离路由器最远的绑定${br}的容器", + "modularrouters.guiText.popup.extruder2.template": "§a§n模板 ${br} ${br}§r你可以在这里指定挤出的方块模板;需要注意的是挤出模块放置的并不是${br}真正的方块,而是一种特殊的不可合成、${br}不可采集的模板方块。 ${br} ${br}在模板栏中标记用来挤出的方块;${br}模块会以从左至右、从上至下的方式${br}依次放置设定的方块。你也可以让${br}挤出模块连续放置多个同种物品(单击${br}或右击模板中的物品来调节)。 ${br} ${br}注意:你可以放置非方块物品(比如木棍);${br}虽然这些方块不能被放置到世界中,${br}但是它们可以充当间隔,在挤出的${br}行列中加入空气方块。", + "modularrouters.guiText.popup.filter": "§a§n过滤器 ${br} ${br}§r在此处标记物品和方块,以精确的控制${br}模块的工作。如果过滤器和缓存区里的${br}物品不匹配,那么这个模块将不会工作,${br}另请参阅下方的过滤器控制按钮。", + "modularrouters.guiText.popup.filterControl": "§a§n过滤器控制 ${br} ${br}§r这些按钮控制着过滤器如何影响路由器${br}的缓存区。阅读每个按钮的提示以获取${br}更多信息。", + "modularrouters.guiText.popup.flinger.pitch": "§a§n抛射俯仰角 ${br} ${br}§r这是抛射角度在竖直方向上的偏移量,${br}以度为单位:${br} ${br}- 如果模块朝向是水平的,这表示相对${br}于水平轴(X轴或Z轴)上或下的夹角${br}- 如果模块朝向是竖直的,这表示相对${br}于Y轴的夹角。", + "modularrouters.guiText.popup.flinger.speed": "§a§n抛射速度 ${br} ${br}§r这是路由器将物品扔出去时物品飞出去${br}的速度。 ${br} ${br}用一个粗糙的例子来说明,以1.0速度${br}和30°角度扔出去的物品(模块朝向${br}水平方向)会落在2格远的地方。", + "modularrouters.guiText.popup.flinger.yaw": "§a§n抛射偏转角 ${br} ${br}§r这是抛射角度在水平方向上的偏移量,${br}以度为单位:${br} ${br}- 如果模块朝向是水平的,这表示相对${br}于水平轴(X轴或Z轴)左或右的夹角 ${br}- 如果模块朝向是竖直的,这表示相对${br}于Y轴的夹角。仅当设定的值非零时起效。", + "modularrouters.guiText.popup.fluid.direction": "§a§n传输方向 ${br} ${br}§r你可以控制路由器是将流体输出到世界${br}或储罐中去,还是从世界或储罐中提${br}取流体到路由器。", + "modularrouters.guiText.popup.fluid.forceEmpty": "§a§n强制清空 ${br} ${br}§r当你在Minecraft内将一桶任意${br}流体倒入与他相同的流体中时,${br}桶中的流体就会永远消失。这可不太好。${br} ${br}默认情况下,流体模块不会尝试将任何${br}流体倒入世界,除非目标方块完全是${br}空的,也就是空气。你可以通过切换${br}“强制”按钮来改变这个设定;启用${br}后,流体模块会毫不犹豫地将缓存区${br}内的流体倒入其他流体中 ${br} ${br}- 但请记住,这样做可能会导致流体${br}白白损耗……", + "modularrouters.guiText.popup.fluid.maxTransfer": "§a§n最大传输量 ${br} ${br}§r这是路由器单次传输时试图传输流体${br}量的上限。 ${br} ${br}注意实际的传输速率仍然会被路由器${br}中流体传输升级的数量和外部容器的${br}传输速率(如果有限)所限制,所以${br}这个值应当被视为对原本传输速率的${br}限制。", + "modularrouters.guiText.popup.noDirection": "§a§n方向控制 ${br} ${br}§rGUI里的这个部分允许你指定模块${br}工作的方向。显示的方向基准相对于${br}路由器的正面。 ${br} ${br}该模块没有方向的概念,因此该区域为空。", + "modularrouters.guiText.popup.player.control": "§a§n玩家模块 ${br} ${br}§r你可以设定:${br}- 路由器是将物品从路由器传输给玩家,还是从将物品从玩家传输到路由器;${br}- 应该与玩家物品存储数据列表的哪一个部分进行交互", + "modularrouters.guiText.popup.xpVacuum": "§a§n经验吸取类型 ${br} ${br}§r你可以在这里指定这个模块如何吸取${br}经验球。可用的选项受不同模组和不同${br}的经验流体影响,但是原版的附魔之瓶${br}总是可用的。 ${br} ${br}如果要以流体形式吸收经验,那么你${br}必须在路由器的缓存区中放置一个${br}可以以mB为单位储存流体的物品${br}(因此,原版桶不可用),或者在路由器${br}旁边放置一个流体容器,然后检查下面${br}的“输出”按钮。", + "modularrouters.guiText.popup.xpVacuum.eject": "§a§n经验流体输出 ${br} ${br}§r如果被选中,路由器会试图将经验流体${br}输出到相邻的合适容器(输出面的检查${br}顺序为:下、上、北、南、西、东)。${br}注意:路由器只能输出经验流体,${br}不能输出经验物品。 ${br} ${br}如果你安装的模组中没有可以在路由器${br}中填充的流体容器,这可能会非常有用。", + "modularrouters.guiText.tooltip.activator.action": "动作", + "modularrouters.guiText.tooltip.activator.entityMode": "实体", + "modularrouters.guiText.tooltip.activator.lookDirection": "朝向", + "modularrouters.guiText.tooltip.activator.sneak": "潜行", + "modularrouters.guiText.tooltip.allDirections": "任何方向", + "modularrouters.guiText.tooltip.BACK": "后方", + "modularrouters.guiText.tooltip.BLACKLIST.1": "白名单${br}模块只会在过滤器匹配时运行${br}空的白名单将不匹配任何物品和方块。", + "modularrouters.guiText.tooltip.BLACKLIST.2": "黑名单${br}模块不会在过滤器匹配时运行${br}空的黑名单将匹配所有物品和方块。", + "modularrouters.guiText.tooltip.clearFilter": "清除过滤数据", + "modularrouters.guiText.tooltip.detectorTooltip": "§b红石信号等级", + "modularrouters.guiText.tooltip.distributor.strategy": "分配策略", + "modularrouters.guiText.tooltip.DOWN": "下方", + "modularrouters.guiText.tooltip.eco.false": "节能模式 §e关 ${br}§7路由器将始终以正常速度运行。", + "modularrouters.guiText.tooltip.eco.true": "节能模式 §a开 ${br}§7如果路由器进入空闲的时间大于%f秒,它将进入低耗模式,每%f秒检测运行一次。在重新开始处理任何物品时,它将回到正常运行速度。", + "modularrouters.guiText.tooltip.energy.from_router" : "将路由器缓存区的能量传输至物品", + "modularrouters.guiText.tooltip.energy.none" : "无能量传输", + "modularrouters.guiText.tooltip.energy.rate" : "最大传输速率: %sFE/刻", + "modularrouters.guiText.tooltip.energy.to_router" : "将物品的能量传输至路由器缓存区", + "modularrouters.guiText.tooltip.extruder2.template": "§b模板${br}在此处放置方块来作为挤出模块的模板,挤出模块将直接放置与模板内方块材质相似的模拟方块。${br}• §e左击:§7 减少堆叠数量${br}• §e右击:§7 增加堆叠数量${br}• §eShift+左击:§7 清除对应模板栏", + "modularrouters.guiText.tooltip.flinger.pitch": "§b俯仰角(%f → %f)", + "modularrouters.guiText.tooltip.flinger.speed": "§b投掷速度(%f → %f)", + "modularrouters.guiText.tooltip.flinger.yaw": "§b偏转角(%f → %f)", + "modularrouters.guiText.tooltip.fluidForceEmpty.false": "§b强制清空已禁用${br}如果路由器旁的容器或方块已满,那路由器内的流体将不会被导出。", + "modularrouters.guiText.tooltip.fluidForceEmpty.true": "§b强制清空已启用${br}如果可能,流体将始终从路由器中导出,即使这会导致流体被销毁(例如将水倒入已存在的水方块中)", + "modularrouters.guiText.tooltip.fluidRegulatorTooltip": "§b流体调节已启用${br}从路由器输出时:仅在目标流体储罐的存量小于设定的值时输出。提取到路由器时:仅在当流体储罐存储的量超过设定的值时提取。", + "modularrouters.guiText.tooltip.fluidTransferTooltip": "§b最大流体转移${br}你希望的一次操作能转移的流体的最大值(单位:mB)。这仍然受限于路由器的总传输速率(流体和速度升级)", + "modularrouters.guiText.tooltip.FRONT": "前方", + "modularrouters.guiText.tooltip.IGNORE_DAMAGE.1": "匹配物品耐久${br}耐久度不同的同种物品将被视为不同的物品", + "modularrouters.guiText.tooltip.IGNORE_DAMAGE.2": "忽略物品耐久${br}耐久度不同的同种物品将被视为相同的物品", + "modularrouters.guiText.tooltip.IGNORE_NBT.1": "匹配NBT${br}例如匹配时考虑物品上的魔咒", + "modularrouters.guiText.tooltip.IGNORE_NBT.2": "忽略NBT${br}例如匹配时忽略物品上的魔咒", + "modularrouters.guiText.tooltip.IGNORE_TAGS.1": "标签匹配已启用${br}匹配与过滤器中的物品在同一标签组的物品,例如,橡木和白桦原木", + "modularrouters.guiText.tooltip.IGNORE_TAGS.2": "标签匹配已禁用", + "modularrouters.guiText.tooltip.LEFT": "左方", + "modularrouters.guiText.tooltip.loadFilter": "从${br}§e%s§r @ %s中加载过滤器${br}§o现有过滤器中的内容将被覆盖!", + "modularrouters.guiText.tooltip.matchAll.false": "任意匹配${br}过滤器中的任何项目都可匹配到过滤器。${br} 在大多数情况下使用此选项。", + "modularrouters.guiText.tooltip.matchAll.true": "全体匹配${br}过滤器中的所有项目都必须匹配,过滤器才能匹配。${br} 在特定情况下使用,例如你想检测附魔的皮革盔甲时。", + "modularrouters.guiText.tooltip.maxFluidPerOp": "§f传输速率:%dmB每%d刻(%dmB/刻)", + "modularrouters.guiText.tooltip.mergeFilter": "从${br}§e%s§r @ %s中合并过滤器", + "modularrouters.guiText.tooltip.mouseOverHelp.false": "点击以开启鼠标悬停时的提示", + "modularrouters.guiText.tooltip.mouseOverHelp.true": "已开启鼠标悬停时提示${br}§7点击以关闭", + "modularrouters.guiText.tooltip.NONE": "无", + "modularrouters.guiText.tooltip.numberFieldTooltip": "• §e§o鼠标指针向上/向下移动§7或鼠标滚轮:调整${br}• 按住§e§oShift§7:粗调${br}• 按住§e§oCtrl§7:微调${br}• §e§oPage Up/Down§7:设置为最大/最小值", + "modularrouters.guiText.tooltip.redstone.ALWAYS": "始终", + "modularrouters.guiText.tooltip.redstone.HIGH": "高信号", + "modularrouters.guiText.tooltip.redstone.label": "红石控制模式", + "modularrouters.guiText.tooltip.redstone.LOW": "低信号", + "modularrouters.guiText.tooltip.redstone.NEVER": "从不", + "modularrouters.guiText.tooltip.redstone.PULSE": "脉冲", + "modularrouters.guiText.tooltip.regulator.label": "%d个物品", + "modularrouters.guiText.tooltip.regulator.labelFluidmB": "%dmB", + "modularrouters.guiText.tooltip.regulator.labelFluidPct": "%d%%", + "modularrouters.guiText.tooltip.regulatorTooltip": "§b物品调节已启用${br}物品输入时:仅在容器物品少于设定的数量的情况下放入/使用物品。${br}物品提取时:仅在容器物品超过设定的数量时抽取/使用物品。", + "modularrouters.guiText.tooltip.removeFilterHint": "§7§o潜行+左击:从过滤器中删除物品信息", + "modularrouters.guiText.tooltip.RIGHT": "右方", + "modularrouters.guiText.tooltip.terminate.NONE" : "模块化路由器将继续执行后续模块,无论当前模块是否进行过任何操作。", + "modularrouters.guiText.tooltip.terminate.NONE.header" : "始终继续", + "modularrouters.guiText.tooltip.terminate.NOT_RAN" : "如果此模块没有进行任何操作,则模块化路由器将不会在此游戏刻上执行任何后续模块。", + "modularrouters.guiText.tooltip.terminate.NOT_RAN.header" : "找不到匹配时停止", + "modularrouters.guiText.tooltip.terminate.RAN" : "如果此模块进行过任何操作,则模块化路由器将不会在此游戏刻上执行任何后续模块。", + "modularrouters.guiText.tooltip.terminate.RAN.header" : "找到匹配时停止", + "modularrouters.guiText.tooltip.tunedValue": "§b调整值(%d → %d)", + "modularrouters.guiText.tooltip.UP": "上方", + "modularrouters.guiText.tooltip.xpVacuum.ejectFluid": "经验流体已输出", + "itemGroup.modularrouters": "模块化路由器", + "modularrouters.itemText.activator.action.ITEM_OR_BLOCK": "右击", + "modularrouters.itemText.activator.action.USE_ITEM_ON_ENTITY": "使用缓存区物品右击最近的实体", + "modularrouters.itemText.activator.action.ATTACK_ENTITY": "攻击附近实体", + "modularrouters.itemText.activator.direction.ABOVE": "朝向上方", + "modularrouters.itemText.activator.direction.BELOW": "朝向下方", + "modularrouters.itemText.activator.direction.LEVEL": "朝向水平", + "modularrouters.itemText.activator.entityMode.NEAREST": "范围内最近实体", + "modularrouters.itemText.activator.entityMode.RANDOM": "范围内随机实体", + "modularrouters.itemText.activator.entityMode.ROUND_ROBIN": "轮询范围内实体", + "modularrouters.itemText.augments": "§e拓展:", + "modularrouters.itemText.augments.pickupDelay": "%d刻(%f秒)", + "modularrouters.itemText.augments.stackInfo": "%d物品/路由器刻", + "modularrouters.itemText.camouflage.held": "伪装成:", + "modularrouters.itemText.distributor.strategy.FURTHEST_FIRST": "最远优先", + "modularrouters.itemText.distributor.strategy.NEAREST_FIRST": "最近优先", + "modularrouters.itemText.distributor.strategy.RANDOM": "随机", + "modularrouters.itemText.distributor.strategy.ROUND_ROBIN": "轮询", + "modularrouters.itemText.extruder2.template": "§e模板方块:", + "modularrouters.itemText.extruder.mode.ALWAYS": "§e延长:§b红石信号大于0时", + "modularrouters.itemText.extruder.mode.HIGH": "§e延长:§b红石信号等于15时", + "modularrouters.itemText.extruder.mode.LOW": "§e延长:§b红石信号等于0时", + "modularrouters.itemText.extruder.mode.NEVER": "§e延长:§b从不", + "modularrouters.itemText.extruder.mode.PULSE": "§e延长:§b从不", + "modularrouters.itemText.fluid.direction": "§e流体传输方向:§b%s", + "modularrouters.itemText.fluid.direction.IN": "传输至路由器", + "modularrouters.itemText.fluid.direction.OUT": "从路由器中传出", + "modularrouters.itemText.fluid.maxTransfer": "§e流体传输速率:§b最多%dmB/操作", + "modularrouters.itemText.misc.blacklist": "§e黑名单", + "modularrouters.itemText.misc.breakerPick": "§e镐:", + "modularrouters.itemText.misc.bulkItemFilter.count": "• 过滤器中有%d个物品", + "modularrouters.itemText.misc.configureHint": "§7§o▶ 按§e§o[%s]§7§o或§e§o[鼠标中键]§7§o进行配置", + "modularrouters.itemText.misc.ecoMode": "§2低耗模式", + "modularrouters.itemText.misc.energyUsage" : "§e能耗:§b%dFE/操作", + "modularrouters.itemText.misc.energyWarning" : "§6至少有一个已安装的模块需要FE来运行。${br}路由器需要更多FE!", + "modularrouters.itemText.misc.energyWarning.noBuffer" : "§6至少有一个已安装的模块需要FE来运行。${br}增加一个或更多能量升级!", + "modularrouters.itemText.misc.flags": "§e筛选类型", + "modularrouters.itemText.misc.flingerDetails": "§e投掷速度:§b%f§f | §e俯仰角:§b%f§f | §e偏转角:§b%f", + "modularrouters.itemText.misc.holdKey": "§7§o▶ 按§3§o[%s]§7§o查看更多信息", + "modularrouters.itemText.misc.holdShiftKey": "§7§o▶ 按§3§o[Shift]§7§o进行设置,§3§o[%s]§7§o查看更多信息", + "modularrouters.itemText.misc.IGNORE_DAMAGE": "耐久度", + "modularrouters.itemText.misc.IGNORE_NBT": "NBT", + "modularrouters.itemText.misc.IGNORE_TAGS": "标签", + "modularrouters.itemText.misc.itemList" : "§e物品列表", + "modularrouters.itemText.misc.matchAll": "所有", + "modularrouters.itemText.misc.matchAny": "任何", + "modularrouters.itemText.misc.match": "§e匹配", + "modularrouters.itemText.misc.modFilter.count": "• 过滤器中有%d个模组", + "modularrouters.itemText.misc.moduleCount": "模块:%d", + "modularrouters.itemText.misc.noItems": "空", + "modularrouters.itemText.misc.operation": "操作", + "modularrouters.itemText.misc.rangeInfo": "§e范围:%s%d §7[无升级%d,满升级%d]", + "modularrouters.itemText.misc.redstoneLevel": "§e信号等级:§b%d(%s)", + "modularrouters.itemText.misc.regexFilter.count": "• 过滤器中有%d个正则表达式", + "modularrouters.itemText.misc.routerConfigured": "此路由器已配置", + "modularrouters.itemText.misc.strongSignal.false": "弱充能", + "modularrouters.itemText.misc.strongSignal.true": "强充能", + "modularrouters.itemText.misc.TERMINATE": "终止", + "modularrouters.itemText.misc.upgradeCount": "▶ %d x %s", + "modularrouters.itemText.misc.upgrades" : "升级:", + "modularrouters.itemText.misc.whitelist": "§e白名单", + "modularrouters.itemText.security.count": "%d/%d其他玩家:", + "modularrouters.itemText.security.owner": "§e所有者:§b%s", + "modularrouters.itemText.sync.tuning": "§e调整值:§b%d", + "modularrouters.itemText.targetingHintMulti": "• 潜行右击容器以设置目标,${br}• 潜行右击已经被选择的容器以清除目标", + "modularrouters.itemText.targetingHint": "• 潜行右击容器以设置目标,${br}• 潜行右击其他非容器方块以清除目标", + "modularrouters.itemText.usage.item.activator_module": "模拟右击方块或实体以使用路由器缓存区中的物品。${br}表现得就像一个假玩家一样。", + "modularrouters.itemText.usage.item.blast_upgrade": "让路由器抵御来自爆炸或者boss级生物的破坏。", + "modularrouters.itemText.usage.item.breaker_module": "在模块配置的方向上破坏与路由器相邻的方块,将其作为物品放入路由器的缓存区。", + "modularrouters.itemText.usage.item.bulk_item_filter": "大容量,高性能的过滤器,用于大量物品。可以像任何物品一样录入到路由器过滤器中。${br}• 潜行+右击任何容器:将内容合并到过滤器。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.camouflage_upgrade": "使路由器看起来像另一个方块。${br}• 潜行+右击方块以便将其外观复制到升级。", + "modularrouters.itemText.usage.item.creative_module" : "凭空创造物品并将其放入路由器的缓存区。", + "modularrouters.itemText.usage.item.detector_module": "如果路由器缓存区中的物品与模块的过滤器中配置的物品一致,则在模块配置的方向上从路由器发出红石信号。", + "modularrouters.itemText.usage.item.distributor_module": "将路由器缓存区中的物品分配给多个容器,可选择列表轮询、随机、最近或最远的传输模式。", + "modularrouters.itemText.usage.item.dropper_module": "在模块配置的方向上,将路由器缓存区中物品投掷到主世界。", + "modularrouters.itemText.usage.item.energy_distributor_module" : "将路由器能量缓存区或物品缓存区的任何储能物品中的FE无线分配给周围的储能方块", + "modularrouters.itemText.usage.item.energy_output_module" : "输出路由器能量缓存区或物品缓存区的任何储能物品中的FE", + "modularrouters.itemText.usage.item.energy_upgrade" : "增加路由器的能量缓存区容量%dFE,增加传输速率%dFE/路由器刻", + "modularrouters.itemText.usage.item.energyUpgradeRouter" : "• 该路由器的能量容量:%dFE${br}• 该路由器的传输速率:%dFE/路由器刻", + "modularrouters.itemText.usage.item.extruder_module_1": "根据红石信号控制,在模块设定的方向上放置或收回一条直线的方块。${br}默认为信号开放置,信号关收回;添加红石拓展到模块可以进行自定义设置。", + "modularrouters.itemText.usage.item.extruder_module_2": "与挤出模块1型类似,但是会按照内部的模板栏设定的方块来放置模板方块而不是放置路由器缓存区中的真实方块。", + "modularrouters.itemText.usage.item.fast_pickup_augment": "允许真空模块无视一般情况下捡起掉落物的延迟时间。", + "modularrouters.itemText.usage.item.filter_round_robin_augment" : "不会执行默认的任何/全部匹配。路由器会根据过滤器在每个执行刻匹配单个物品。所有被选中的物品会进行递增轮询。${br}这对处理一系列含有特殊顺序的物品很有用。", + "modularrouters.itemText.usage.item.flinger_module": "从路由器的缓存区中将物品长距离投掷到世界。 可以在模块的GUI中调整投掷的速度与距离,仰角与偏角。", + "modularrouters.itemText.usage.item.fluid_module_2": "从任意周围方块中提取流体或向其中输入流体。${br}• 路由器的缓存区中必须装有流体容器。${br}• 可将流体输出至储罐或世界中或从中提取流体。", + "modularrouters.itemText.usage.item.fluid_module": "从正对路由器朝向的相邻方块中提取流体或向其中输入流体。${br}• 路由器的缓存区中必须装有流体容器。${br}• 可将流体输出至储罐或世界中或从中提取流体。", + "modularrouters.itemText.usage.item.fluid_upgrade": "增加路由器(在每个方向)上传输的流体量,以%dmB/刻为单位。", + "modularrouters.itemText.usage.item.fluidUpgradeRouter": "• 此路由器的传输速率:%dmB/刻", + "modularrouters.itemText.usage.item.inspection_filter": "通过检查物品的各种属性过滤物品。可以像任何物品一样录入到路由器过滤器中。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.mimic_augment": "使挤出模块2型产生的虚拟方块同时模拟原方块的亮度、红石充能、硬度和爆炸抗性。", + "modularrouters.itemText.usage.item.mod_filter": "按照一个物品来自的模组ID过滤物品,可以像任何物品一样录入到路由器过滤器中。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.muffler_upgrade": "抑制来自路由器/模块的声音和粒子效果:${br}• 1个升级会抑制声音效果${br}• 2个或更多个会抑制更多粒子效果${br}• 3个或更多个则会抑制路由器的运行动画。", + "modularrouters.itemText.usage.item.pickup_delay_augment": "每个拓展会增加10刻捡起掉落物品的延迟时间。", + "modularrouters.itemText.usage.item.placer_module": "如果可能,将路由器缓存区中的方块或物品放置到模块配置的方向。", + "modularrouters.itemText.usage.item.player_module": "在玩家的个人存储列表和路由器的缓存区之间远程传输物品。", + "modularrouters.itemText.usage.item.puller_module_1": "从模块已配置方向的相邻容器中将物品提取到路由器的缓存区中。", + "modularrouters.itemText.usage.item.puller_module_2": "从附近的任何容器中将物品提取到路由器缓存区中。", + "modularrouters.itemText.usage.item.pushing_augment": "增加挤出1型/2型伸出时推动实体的力量。可堆叠。", + "modularrouters.itemText.usage.item.range_down_augment": "每个拓展会将模块的作用范围减少1格。", + "modularrouters.itemText.usage.item.range_up_augment": "每个拓展会将模块的作用范围增加1格(直到达到模块提示信息中描述的最大值)", + "modularrouters.itemText.usage.item.redstone_augment": "允许模块指定自身的红石特性,这会无视路由器的红石特性。", + "modularrouters.itemText.usage.item.regex_filter": "通过将其显示名称与一个或多个正则表达式匹配来过滤物品。可以像任何物品一样录入到路由器过滤器中。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.regulator_augment": "允许预先设置在容器中保留多少物品。", + "modularrouters.itemText.usage.item.security_upgrade": "保护路由器;只有列出的玩家可以访问路由器。${br}• 右击玩家以记录到模块${br}• 潜行+右击玩家以删除他们的配置", + "modularrouters.itemText.usage.item.sender_module_1": "将路由器缓存区中的物品直接沿X/Y/Z轴发送到选定的容器里。${br}不能有方块阻隔;不透明的方块将阻止发送。", + "modularrouters.itemText.usage.item.sender_module_2": "将路由器缓存区中的物品发送到临近的容器里。${br}传输可以穿透方块。", + "modularrouters.itemText.usage.item.sender_module_3": "将路由器缓存区中的物品发送到任何维度的任何容器内。", + "modularrouters.itemText.usage.item.speed_upgrade": "提高路由器工作间隔的速度。${br}• 路由器每隔%.02f秒(%d刻)工作一次${br}• 升级最多可以放置:%d个", + "modularrouters.itemText.usage.item.stack_augment": "允许模块在每游戏刻中处理多个物品。${br}这会无视路由器中的堆叠升级。", + "modularrouters.itemText.usage.item.stack_upgrade": "增加路由器每游戏刻处理的物品数${br}• 每游戏刻可以处理的物品数目:%d个${br}• 升级最多可以放置:%d个", + "modularrouters.itemText.usage.item.sync_upgrade": "同步激活路由器${br}• 右击:打开调整GUI${br}• 潜行+右击:调整为随机值。${br}• 所有具有相同调整值的同步升级(和相同数量的速度升级)的路由器将以相同的频率运行。", + "modularrouters.itemText.usage.item.vacuum_module": "将世界中掉落的物品吸收到路由器的缓存区中。仅在配置的方向上收集掉落物,如果方向为无,则收集任何方向。", + "modularrouters.itemText.usage.item.void_module": "§c*** 警告 ***${br}永久销毁缓存区中的物品!", + "modularrouters.itemText.usage.item.xp_vacuum_augment": "允许真空模块收集经验球而不是物品。${br}经验球可以被转化为各种物品或流体。可用的选项受其他mod和经验流体影响,${br}但是原版的附魔之瓶总是可用的。如果要将经验转化为流体,${br}那么你必须在路由器的缓存区中放置一个可以以mB为单位储存流体的物品,${br}或者在路由器旁边放置一个流体容器(并在模块GUI中打开输出模式)。", + "modularrouters.jei.recipe.module_reset.description": "将模块完全重置到刚制作出来的状态。警告:所有数据,包括过滤器设置和附魔都会丢失,但是安装的拓展会返还", + "modularrouters.jei.recipe.module_reset": "重置模块", + "modularrouters.patchouli.book.landing": "这本手册是$(#228)模块化路由器/$的完整参考指南。", + "modularrouters.patchouli.book.name": "模块化路由器手册" +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/book.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/book.json new file mode 100644 index 000000000000..b11b5e08443b --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/book.json @@ -0,0 +1,12 @@ +{ + "name": "modularrouters.patchouli.book.name", + "landing_text": "modularrouters.patchouli.book.landing", + "creative_tab": "modularrouters", + "version": 1, + "model": "modularrouters:manual", + "book_texture": "patchouli:textures/gui/book_blue.png", + "macros": { + "$(modr)": "$(#228)Modular Routers$()", + "$(ttcolor)": "$(#880)" + } +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/augments.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/augments.json new file mode 100644 index 000000000000..11a88e9ae6b2 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/augments.json @@ -0,0 +1,6 @@ +{ + "name": "Augments", + "description": "Module Augments can be installed in Modules to enhance or extend their functionality", + "icon": "modularrouters:xp_vacuum_augment", + "sortnum": 4 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/filters.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/filters.json new file mode 100644 index 000000000000..db1fb9e437c1 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/filters.json @@ -0,0 +1,6 @@ +{ + "name": "Smart Filters", + "description": "Smart Filters are a group of filter items, which can be placed in any module's filter slots instead of a normal item, and provide more sophisticated item matching features.", + "icon": "modularrouters:bulk_item_filter", + "sortnum": 5 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/intro.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/intro.json new file mode 100644 index 000000000000..6c85fddbd6a0 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/intro.json @@ -0,0 +1,6 @@ +{ + "name": "Introduction", + "description": "Welcome to $(modr) !", + "icon": "minecraft:knowledge_book", + "sortnum": 0 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/modules.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/modules.json new file mode 100644 index 000000000000..ffb790558ecc --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/modules.json @@ -0,0 +1,6 @@ +{ + "name": "Modules", + "description": "Modules are placed into an Modular Router and define the router's functionality.", + "icon": "modularrouters:sender_module_1", + "sortnum": 2 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/router.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/router.json new file mode 100644 index 000000000000..3daaa6459a6f --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/router.json @@ -0,0 +1,6 @@ +{ + "name": "Modular Router", + "description": "The Modular Router is the only block in the $(modr) mod.", + "icon": "modularrouters:item_router", + "sortnum": 1 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/upgrades.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/upgrades.json new file mode 100644 index 000000000000..d213a68dac18 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/upgrades.json @@ -0,0 +1,6 @@ +{ + "name": "Upgrades", + "description": "Upgrades can be installed in an Modular Router to enhance or modify its functionality.", + "icon": "modularrouters:speed_upgrade", + "sortnum": 3 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/fast_pickup.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/fast_pickup.json new file mode 100644 index 000000000000..7daa711e1e34 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/fast_pickup.json @@ -0,0 +1,15 @@ +{ + "name": "Fast Pickup Augment", + "category": "augments", + "icon": "modularrouters:fast_pickup_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/vacuum)Vacuum Module/$. It allows the Vacuum Module to ignore the normal pickup delay on dropped items - 40 ticks for items dropped by players, and 10 ticks for items dropped by other means (e.g. sheep shearing) - and pick up items as soon as it sees them.$(p)A max of one Fast Pickup Augment can be added." + }, + { + "type": "crafting", + "recipe": "modularrouters:fast_pickup_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/mimic.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/mimic.json new file mode 100644 index 000000000000..9a2aec4a8b8b --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/mimic.json @@ -0,0 +1,15 @@ +{ + "name": "Mimic Augment", + "category": "augments", + "icon": "modularrouters:mimic_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/extruder_2)Extruder Module Mk2/$.$(p)When present, any fake blocks extruded by the module take on the properties of the faked block, e.g. $(item)Obsidian/$ is hard to break, $(item)Glowstone/$ emits light, and $(item)Redstone Blocks/$ emit a redstone signal." + }, + { + "type": "crafting", + "recipe": "modularrouters:mimic_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pickup_delay.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pickup_delay.json new file mode 100644 index 000000000000..89d9fcfb572e --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pickup_delay.json @@ -0,0 +1,15 @@ +{ + "name": "Pickup Delay Augment", + "category": "augments", + "icon": "modularrouters:pickup_delay_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/dropper)Dropper/$ and $(l:modules/flinger)Flinger/$ modules.$(p)It can be stacked; each augment added will increase the pickup delay on dropped/flung items by 10 ticks (0.5 sec). This can be useful if you don't want players accidentally picking up nearby dropped items, for example." + }, + { + "type": "crafting", + "recipe": "modularrouters:pickup_delay_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pushing.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pushing.json new file mode 100644 index 000000000000..191fdf7d3e2a --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pushing.json @@ -0,0 +1,15 @@ +{ + "name": "Pushing Augment", + "category": "augments", + "icon": "modularrouters:pushing_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/extruder_1)Extruder Mk1/$ and $(l:modules/extruder_2)Extruder Mk2/$ modules.$(p)It can be stacked; each augment increases the force that entities are shoved when the module extrudes a block." + }, + { + "type": "crafting", + "recipe": "modularrouters:pushing_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_down.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_down.json new file mode 100644 index 000000000000..9b08f2724f1f --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_down.json @@ -0,0 +1,16 @@ +{ + "name": "Range Down Augment", + "category": "augments", + "icon": "modularrouters:range_down_augment", + "pages": [ + { + "type": "text", + "text": "This augment can be added to any module which has a range (Sender $(l:modules/sender_1)Mk1/$ / $(l:modules/sender_2)Mk2/$, Puller $(l:modules/puller_1)Mk1/$ / $(l:modules/puller_2)Mk2/$, Extruder $(l:modules/extruder_1)Mk1/$ / $(l:modules/extruder_2)Mk2/$, $(l:modules/fluid_2)Fluid Mk2/$, $(l:modules/vacuum)Vacuum/$).$(p)It can be stacked; each augment will reduce the range of the module by one block.$(p)This is probably only useful in conjunction with the $(l:modules/vacuum)Vacuum Module/$, to control the range it scans for items." + }, + { + "type": "crafting", + "recipe": "modularrouters:range_down_augment", + "recipe2": "modularrouters:range_down_from_up" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_up.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_up.json new file mode 100644 index 000000000000..6dad8eff4898 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_up.json @@ -0,0 +1,16 @@ +{ + "name": "Range Up Augment", + "category": "augments", + "icon": "modularrouters:range_up_augment", + "pages": [ + { + "type": "text", + "text": "This augment can be added to any module which has a range (Sender $(l:modules/sender_1)Mk1/$ / $(l:modules/sender_2)Mk2/$, Puller $(l:modules/puller_1)Mk1/$ / $(l:modules/puller_2)Mk2/$, Extruder $(l:modules/extruder_1)Mk1/$ / $(l:modules/extruder_2)Mk2/$, $(l:modules/fluid_2)Fluid Mk2/$, $(l:modules/vacuum)Vacuum/$).$(p)It can be stacked; each augment will increase the range of the module by one block." + }, + { + "type": "crafting", + "recipe": "modularrouters:range_up_augment", + "recipe2": "modularrouters:range_up_from_down" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/redstone.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/redstone.json new file mode 100644 index 000000000000..ac69f350ba2d --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/redstone.json @@ -0,0 +1,15 @@ +{ + "name": "Redstone Augment", + "category": "augments", + "icon": "modularrouters:redstone_augment", + "pages": [ + { + "type": "text", + "text": "This augment can be added to any module.$(p)Normally, modules are run when the router runs, no questions asked. However, if this augment is added to a module, that module can define its own redstone behaviour; an extra button is added to the module's GUI to control this." + }, + { + "type": "crafting", + "recipe": "modularrouters:redstone_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/regulator.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/regulator.json new file mode 100644 index 000000000000..7048e3a250a8 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/regulator.json @@ -0,0 +1,27 @@ +{ + "name": "Regulator Augment", + "category": "augments", + "icon": "modularrouters:regulator_augment", + "pages": [ + { + "type": "text", + "text": "This augment allows for precise control over how many items may be sent to or pulled from an inventory, or the router's buffer.$(p)When a module has a Regulator Augment, you will see an extra numeric textfield in its GUI where you can configure a limit. This limit is interpreted differently depending on the particular module:" + }, + { + "type": "text", + "text": "$(li)For the Sender $(l:modules/sender_1)Mk1/$ / $(l:modules/sender_2)Mk2/$ / $(l:modules/sender_3)Mk3/$ Modules and $(l:modules/player)Player Module/$ (in insert mode), the modules will only send an item to the inventory if there are fewer than the configured number of that item already in the inventory.$(li)For the Puller $(l:modules/puller_1)Mk1/$ / $(l:modules/puller_2)Mk2/$ and $(l:modules/player)Player Module/$ (in extract mode), the modules will only pull an item from the inventory if there are more than the configured number of that item in the inventory." + }, + { + "type": "text", + "text": "$(li)For the $(l:modules/dropper)Dropper/$, $(l:modules/flinger)Flinger/$, $(l:modules/placer)Placer/$ & $(l:modules/void)Void/$ Modules, the modules will only run if there are more than the configured number of that item in the router's buffer.$(li)For the $(l:modules/breaker)Breaker/$ & $(l:modules/vacuum)Vacuum/$ Modules, the modules will only run if there are fewer than the configured number of that item in the router's buffer." + }, + { + "type": "text", + "text": "$(li)For the Fluid $(l:modules/fluid)Mk1/$ / $(l:modules/fluid_2)Mk2/$ modules, the limit can be a percentage of the target tank's capacity or an absolute amount in mB (selectable in the GUI) rather than a number of items. When pulling fluid, the module will only run if there is $(italic)more/$ fluid in the target than the configured amount; when pushing fluid, it will only run if there is $(italic)less/$ fluid than the configured amount." + }, + { + "type": "crafting", + "recipe": "modularrouters:regulator_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/stack.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/stack.json new file mode 100644 index 000000000000..e9e41d1c4aa8 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/stack.json @@ -0,0 +1,19 @@ +{ + "name": "Stack Augment", + "category": "augments", + "icon": "modularrouters:stack_augment", + "pages": [ + { + "type": "text", + "text": "This module can be added to any module which handles $(italic)items/$ (as opposed to $(italic)blocks/$, $(italic)fluids/$ or $(italic)energy/$).$(p)Adding Stack Augments to a module increases the number of items it can process per tick; each Stack Augment doubles the number of items, up to a maximum of the item's natural stack size (64 for most items)." + }, + { + "type": "text", + "text": "If the $(l:router/item_router)router/$ also has $(l:upgrades/stack)Stack Upgrades/$ installed, the module's Stack Augments will override that; e.g. if a router has 6 Stack Upgrades, and a module has 2 Stack Augments, the module will process 4 items per tick, not 64." + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/xp_vacuum.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/xp_vacuum.json new file mode 100644 index 000000000000..bda342724f86 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/xp_vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "XP Vacuum Augment", + "category": "augments", + "icon": "modularrouters:xp_vacuum_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to a $(l:modules/vacuum)Vacuum Module/$.$(p)When this augment is added, the Vacuum Module will absorb experience orbs instead of items. The orbs will be converted into $(item)Bottles o' Enchanting/$ at the rate of 7XP per bottle (which is the average amount of XP gained by breaking a Bottle o' Enchanting)." + }, + { + "type": "text", + "text": "Depending on what other mods are installed, it might also be possible to convert orbs into XP fluids. This requires that either a fluid-containing tank is in the router's buffer, or adjacent to the router. In the latter case, ensure that the $(bold)Eject/$ button is enabled in the Vacuum Module's GUI." + }, + { + "type": "crafting", + "recipe": "modularrouters:xp_vacuum_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/bulk_item.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/bulk_item.json new file mode 100644 index 000000000000..018d0b29fa71 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/bulk_item.json @@ -0,0 +1,27 @@ +{ + "name": "Bulk Item Filter", + "category": "filters", + "icon": "modularrouters:bulk_item_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for high-performance matching of up to 54 different items, including optional NBT matching. The Bulk Item Filter can be configured in a few different ways:$(p)$(li)$(thing)Sneak+Right-click/$ the filter against any inventory to merge a copy of that inventory's contents into the filter." + }, + { + "type": "text", + "text": "$(li)$(thing)Right-click/$ the filter to open a GUI showing the items currently in the filter. You can add (ghost copies of) items to the filter here, click items to remove them, or press the red $(bold)$(4)X/$ button to clear the filter completely." + }, + { + "type": "text", + "text": "$(li)When the filter is in a module that is in a router, you can open the filter's GUI by middle-clicking it, or pressing $(bold)$(4)[$(k:modularrouters.configure)]/$ over it.$(p)$(bold)If/$ the module has a valid inventory targeted, two extra buttons appear on the GUI: a green $(bold)$(2)+/$ button to $(italic)merge/$ the target inventory's items, and a blue $(bold)$(1)=/$ button to $(italic)load/$ the target inventory's items (overwriting the filter's current contents)." + }, + { + "type": "text", + "text": "This last configuration method is particularly useful combined with a $(l:modules/sender_2)Sender Module/$ to implement a sorting system, since the Bulk Item Filter will remember what should be in an inventory, even if the actual inventory later gets emptied." + }, + { + "type": "crafting", + "recipe": "modularrouters:bulk_item_filter" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/inspection.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/inspection.json new file mode 100644 index 000000000000..220c6b65184e --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/inspection.json @@ -0,0 +1,23 @@ +{ + "name": "Inspection Filter", + "category": "filters", + "icon": "modularrouters:inspection_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for matching of items by various miscellaneous integer properties of the item. The current inspections supported are:$(li)For fluid container items (buckets, tanks...), the fluid level as a percentage.$(li)For energy container items (batteries, powered tools...), the energy level as a percentage." + }, + { + "type": "text", + "text": "$(li)The highest enchantment level of enchantments on the item (can be used to filter out enchanted items, e.g. from a mob farm)$(li)The durability of items (tools, weapons) as a percentage of the max durability.$(li)For edible items, the food value as the number of half-shanks restored (e.g. steak has a value of 8)." + }, + { + "type": "text", + "text": "For items which don't have the inspected property at all, the returned value will always be -1, e.g. a piece of $(item)Cobblestone/$ has a durability value of -1. This is distinct from a 0 return, since a tool with <1% durability remaining would return a value of 0.$(p)This filter can be useful to automatically pull out damaged or discharged items for repair/recharging, etc." + }, + { + "type": "crafting", + "recipe": "modularrouters:inspection_filter" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/mod.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/mod.json new file mode 100644 index 000000000000..95a1171c60c8 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/mod.json @@ -0,0 +1,19 @@ +{ + "name": "Mod Filter", + "category": "filters", + "icon": "modularrouters:mod_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for matching of items by the mod they belong to. Up to 6 mods can be added per installed filter.$(li)$(thing)Right-click/$ the filter to open its GUI (or $(thing)middle-click/$ / press $(bold)$(4)[$(k:modularrouters.configure)]/$ on a filter which is installed in a module)." + }, + { + "type": "text", + "text": "$(li)Drop any item into the item slot in the top-left corner of the GUI. The item's mod name will be displayed to the right. Click the $(bold)$(2)+/$ button to add it to the mod list below.$(li)Click the red $(bold)$(4)X/$ button beside an entry to remove that mod from the list.$(p)Vanilla items can be added too, and their \"mod\" will be shown as $(italic)Minecraft/$." + }, + { + "type": "crafting", + "recipe": "modularrouters:mod_filter" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/regex.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/regex.json new file mode 100644 index 000000000000..0a936f1db112 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/regex.json @@ -0,0 +1,34 @@ +{ + "name": "Regex Filter", + "category": "filters", + "icon": "modularrouters:regex_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for matching of blocks and items with a regular expression, against the item's $(strong)registry name/$. Regular expressions are very powerful, but take some learning to unlock their full potential. However, basic regex usage isn't too difficult. There are many websites with tutorial information on regular expressions, e.g. $(l:https://regexone.com/)RegexOne/$." + }, + { + "type": "text", + "title": "Registry Names", + "text": "Because item filtering is done purely on the server, it can't know for sure what an item's displayed text is. Therefore, all filtering matches are made against the item's internal $(thing)registry name/$. You can find this registry name by toggling on advanced tooltip display with $(thing)F3+H/$.$(p)Note that matching is done against only the part of the registry name $(italic)after/$ the colon." + }, + { + "type": "text", + "text": "$(thing)To open the module GUI, $(thing)right-click/$ the filter, or $(thing)middle-click/$ / press $(bold)$(4)[$(k:modularrouters.configure)]/$ on a filter which is installed in a module.$(li)Type your regex into the textfield at the top, and hit $(thing)Return/$ or click the green $(bold)$(2)+/$ button. Your regex will be added to the list, assuming its syntax is valid. You can have up to 6 entries in one filter.$(li)Click the red $(bold)$(4)X/$ next to any regex to remove it from the list.$(li)Matches are case-insensitive." + }, + { + "type": "text", + "title": "Example 1", + "text": "A regex of 'ore' will match any items with 'ore' in their registry name (\"iron_ore\", \"gold_ore\", \"redstone_ore\"). Unfortunately, it will also match \"drill_core\", but you can avoid this by using a regex of $(1)_ore/$. To be even more specific, you could use $(1)_ore$/$, which also ensures that the string \"_ore\" is at the end of the item's registry name." + }, + { + "type": "text", + "title": "Example 2", + "text": "Configure a $(l:modules/player)Player Module/$ to extract from the player's main inventory, and put a regex filter containing $(1)_ore/$ in the module. This can be used to extract any ores from your inventory, regardless of where you are, into your ore processing system; very handy if you're mining far from your base and you want ores that you've mined to be sent home immediately." + }, + { + "type": "crafting", + "recipe": "modularrouters:regex_filter" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/augments.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/augments.json new file mode 100644 index 000000000000..f8a809958aad --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/augments.json @@ -0,0 +1,19 @@ +{ + "name": "Augments", + "icon": "modularrouters:augment_core", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Augments/$ are like $(l:intro/upgrades)upgrades/$ but are inserted into a $(l:intro/modules)module/$ rather than a $(l:intro/item_router)Modular Router/$. Each module has slots for 4 augments (some augments can be stacked). Augments enhance or extend a module's functionality in various ways." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/augments.png" + ], + "text": "$(italic)A Vacuum Module with 6 Range Up augments and an XP Vacuum augment/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/filters.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/filters.json new file mode 100644 index 000000000000..c6eb2ef3e0a9 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/filters.json @@ -0,0 +1,19 @@ +{ + "name": "Smart Filters", + "icon": "modularrouters:bulk_item_filter", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Smart Filters/$ can be inserted into a $(l:intro/modules)module's/$ filter slots in place of regular items. Instead of just trying to match against the item directly, filters have special matching functionality.$(p)For example, the $(l:filters/bulk_item)Bulk Item Filter/$ can efficiently match against up to 54 different items, and its items can be configured from an existing inventory." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/bulk_filter.png" + ], + "text": "$(italic)Bulk Item Filter installed in a Puller Mk2 Module/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/item_router.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/item_router.json new file mode 100644 index 000000000000..1f137a33ff81 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/item_router.json @@ -0,0 +1,15 @@ +{ + "name": "Modular Router Overview", + "icon": "modularrouters:item_router", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "The $(item)Modular Router/$ is the central block of the routing system. By itself, it does nothing other than serve as a one-slot inventory (which can be piped into and out of by hoppers and other mod piping systems).$(p)To do anything useful with a router, however, you need to install one or more (up to nine) $(l:intro/modules)Modules/$." + }, + { + "type": "text", + "text": "Every time a router ticks - once per second by default - it will execute every installed module, in order. Each of these modules will operate on the item(s) in the buffer or on the world around the router in a specific way - see the $(bold)Modules/$ section for info on each individual module type.$(p)The router's operation can also be modified with $(bold)Upgrades/$ - speed it up, let it handle more items per tick, increase the range of certain modules..." + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/misc.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/misc.json new file mode 100644 index 000000000000..baca9369764f --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/misc.json @@ -0,0 +1,26 @@ +{ + "name": "Miscellaneous Stuff", + "icon": "minecraft:book", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "This chapter covers some miscellaneous items and crafting components." + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "See $(l:upgrades/security#override)Security Upgrade/$." + }, + { + "type": "crafting", + "recipe": "modularrouters:blank_module", + "recipe2": "modularrouters:blank_upgrade" + }, + { + "type": "crafting", + "recipe": "modularrouters:augment_core" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/modules.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/modules.json new file mode 100644 index 000000000000..2ae4d2cc38ad --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/modules.json @@ -0,0 +1,50 @@ +{ + "name": "Modules", + "icon": "modularrouters:breaker_module", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Modules/$ are inserted into an $(l:intro/item_router)Modular Router/$ and tell the router what to do. There are 20 different module types, each of which has a specific function. All modules have some characteristics in common, however:$(li)All modules have 9 $(thing)filter slots/$ to control which item(s) a module will process.$(li)Many modules have a defined $(thing)direction/$, relative to the router's facing." + }, + { + "type": "text", + "text": "$(li)Some modules have extra settings for configuring module-specific functionality.$(p)All this can be configured in the module's GUI, which you can access by $(thing)Right-Clicking/$ the module in hand.$(p)You can also configure an installed module in a router GUI by pressing $(4)$(bold)[$(k:modularrouters.configure)]/$ while hovering over it, or $(thing)Middle-Clicking/$ the module in the GUI, without needing to remove it from the router." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/module_gui.png" + ], + "text": "$(italic)Module GUI: see following pages for a description of each part of the GUI/$", + "border": true + }, + { + "type": "text", + "title": "1. Filter Slots", + "anchor": "filter", + "text": "There are nine filter slots, where you can insert ghost copies of any item or block. The module will only operate if the item in the router's $(thing)buffer/$ matches an item in the module's filter (if whitelisting; the opposite if blacklisting)." + }, + { + "type": "text", + "anchor": "direction", + "title": "2. Direction Selector", + "text": "Most modules operate in a defined direction, relative to the router's facing. Here you can define the direction.$(p)Some modules (e.g. the $(l:modules/sender2)Sender Mk2/$) target a distant block directly, so do not have a definable direction. In this case, the direction selector will be blank." + }, + { + "type": "text", + "title": "3. Filter Control", + "text": "Here there are several buttons which control:$(li)Whitelisting vs. blacklisting$(li)Whether to match item damage (for items with durability)$(li)Whether to match item NBT, e.g. enchantments$(li)Whether to match by $(l:https://minecraft.gamepedia.com/Tag)item tags/$$(p)There is also a button here to control $(l:router/termination)Termination Behaviour/$, which is explained in a separate page." + }, + { + "type": "text", + "title": "4. Augments", + "text": "Every module has four $(thing)Augment/$ slots where augments (module-specific upgrades) can be inserted.$(p)The Augments which may be inserted here depend on the module type; not every module type accepts every augment type." + }, + { + "type": "text", + "title": "5. Extra Settings", + "text": "Some modules have some extra configuration options. For example, the $(l:modules/detector)Detector Module/$ shown earlier has options to set the redstone output level, and whether the output signal should be a weak or strong redstone signal.$(p)Where modules have such options, they're shown on the right-hand side of the GUI." + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/overview.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/overview.json new file mode 100644 index 000000000000..1771dad4891b --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/overview.json @@ -0,0 +1,20 @@ +{ + "name": "Overview", + "icon": "minecraft:cake", + "category": "intro", + "priority": "true", + "pages": [ + { + "type": "text", + "text": "Welcome to Modular Routers!$(p)This is a highly flexible mod for moving items around the world in various ways. With a single block - the $(thing)Modular Router/$ - and one or more plug-in $(thing)modules/$, you can pull items from any inventory, send them to other inventories near & far, place items as blocks, break blocks, drop items into the world, sort items, and much more." + }, + { + "type": "image", + "text": "$(italic)Think of it like a super-configurable Hopper on steroids.../$", + "images": [ + "modularrouters:textures/patchouli/item_router.png" + ], + "border": "true" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/upgrades.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/upgrades.json new file mode 100644 index 000000000000..3e1e606dd081 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/upgrades.json @@ -0,0 +1,11 @@ +{ + "name": "Upgrades", + "icon": "modularrouters:speed_upgrade", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Upgrades/$ improve a $(l:intro/item_router)Modular Router's/$ functionality in various ways. There are 8 different upgrade types, and 5 upgrade slots in an Modular Router.$(p)You can put multiple upgrades in an upgrade slot, although there is a limit on how many upgrades of a particular type can be inserted; see the individual upgrade pages or upgrade item tooltips for more information on this." + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/activator.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/activator.json new file mode 100644 index 000000000000..deacd2949e80 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/activator.json @@ -0,0 +1,34 @@ +{ + "name": "Activator Module", + "category": "modules", + "icon": "modularrouters:activator_module", + "pages": [ + { + "type": "text", + "text": "This powerful module acts like a $(italic)fake player/$ which can use an item in the router's buffer, against nearby blocks or entities. There are three modes, which can be selected via the controls on the right of the GUI. Each mode is detailed in the following pages." + }, + { + "type": "text", + "title": "Right-click", + "text": "This mode performs a right-click with the item in the router's buffer, just as if a player had done so. The logic used is the same as for player clicks, e.g. right-clicking a $(item)Flint and Steel/$ on a door will open the door, not start a fire.$(p)The targeted block (if any) depends on the router's facing, module direction, and also the Look Above/Below/Level module setting." + }, + { + "type": "text", + "title": "Right-click Entity", + "text": "This mode performs a right-click with the item in the router's buffer on a nearby $(thing)entity/$. You could use this to milk a cow for example, or shear a sheep.$(p)This can result in items being dropped on the ground, e.g. if a cow is clicked with a stack of more than one bucket in the router's buffer." + }, + { + "type": "text", + "title": "Attack Entity", + "text": "This mode performs a left-click with the item in the router's buffer on a nearby $(thing)entity/$, attacking it. This mode costs $(l:upgrades/energy)Forge Energy/$ by default, unlike other modules.$(p)Note: while $(l:upgrades/speed)Speed Upgrades/$ can be useful here, weapon cooldowns do apply, so excessive Speed Upgrades will just end up wasting energy and weapon durability." + }, + { + "type": "text", + "text": "The Activator has a range of about 4 blocks, similar to what an actual player has. The module can also be configured to look $(thing)Above/$ or $(thing)Below/$ (default is $(thing)Level/$).$(p)$(thing)Above/$ is particularly handy for planting things on top of a solid block beside or above the router, while $(thing)Below/$ is useful when you want to target the ground directly adjacent to the router, rather than a more distant block." + }, + { + "type": "crafting", + "recipe": "modularrouters:activator_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/breaker.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/breaker.json new file mode 100644 index 000000000000..226434ce6828 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/breaker.json @@ -0,0 +1,23 @@ +{ + "name": "Breaker Module", + "category": "modules", + "icon": "modularrouters:breaker_module", + "pages": [ + { + "type": "text", + "text": "This module tries to break a block, adjacent to the $(l:router/item_router)Router/$ in the module's $(l:intro/modules#direction)configured direction/$.$(p)Most blocks are breakable, although anything with an unbreakable hardness (e.g. vanilla $(item)Bedrock/$ or $(item)End Portal/$) can not be broken, nor can any fluid blocks. If the block is broken, its primary drop(s) will be automatically inserted into the item router's buffer, if possible." + }, + { + "type": "text", + "text": "The Breaker Module can be crafted with any type of pickaxe (including modded pickaxes), but the pickaxe used to craft the module determines its harvest level. E.g. if you create a Breaker Module with an $(item)Iron Pickaxe/$, it will not be able to break $(item)Obsidian/$.$(p)Additionally, any $(thing)enchantments/$ on the pickaxe used will be noted in the module ($(thing)Silk Touch/$ and $(thing)Fortune/$ are of particular use)." + }, + { + "type": "text", + "text": "By default the Breaker Module filter works on $(thing)items that would be dropped/$, rather than on the block itself. E.g. filtering on $(item)Stone/$ would not work to break Stone, unless the module has $(thing)Silk Touch/$ enabled. In this case, you should filter on $(item)Cobblestone/$.$(p)You can set the module to match by the $(thing)block/$ via the module GUI; this can be useful to distinguish between blocks that both drop nothing, e.g. $(item)Ice/$ and $(item)Packed Ice/$." + }, + { + "type": "crafting", + "recipe": "modularrouters:breaker_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/creative.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/creative.json new file mode 100644 index 000000000000..14989294e8b4 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/creative.json @@ -0,0 +1,11 @@ +{ + "name": "Creative Module", + "category": "modules", + "icon": "modularrouters:creative_module", + "pages": [ + { + "type": "text", + "text": "The Creative Module is a special uncraftable module which simply inserts items, from out of nowhere, into the router's buffer.$(p)It uses the module's filter as an item list, and on each tick moves to the next item in the filter in round-robin fashion. It doesn't care about any other filter settings (whitelist/blacklist, match NBT...)." + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/detector.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/detector.json new file mode 100644 index 000000000000..e1f6150ddb41 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/detector.json @@ -0,0 +1,15 @@ +{ + "name": "Detector Module", + "category": "modules", + "icon": "modularrouters:detector_module", + "pages": [ + { + "type": "text", + "text": "This module doesn't actually manipulate items, but instead detects specific items in the router's buffer. If the buffer contents are matched by the module's filter, it will make the router emit a redstone signal in the $(l:intro/modules#direction)configured direction/$.$(p)The signal level (default: 15) and signal type (default: weak) can be adjusted via the module GUI." + }, + { + "type": "crafting", + "recipe": "modularrouters:detector_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/distributor.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/distributor.json new file mode 100644 index 000000000000..945bd701d977 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/distributor.json @@ -0,0 +1,19 @@ +{ + "name": "Distributor Module", + "category": "modules", + "icon": "modularrouters:distributor_module", + "pages": [ + { + "type": "text", + "text": "This is an extended version of the $(l:modules/sender_2)Sender Module Mk2/$, which can send items to multiple targets. $(thing)Sneak-right-click/$ an inventory to add it to the Distributor Module, and $(thing)Sneak-right-click/$ the inventory again to remove it.$(p)The Distributor Module can distribute to up to 8 targets." + }, + { + "type": "text", + "text": "A little extra control over distribution strategy is available via the GUI control on the right:$(li)$(bold)Round Robin/$ - distribute to each inventory in turn, as evenly as possible$(li)$(bold)Random/$ - pick one of the targets at random$(li)$(bold)Nearest/$ - always fill the closest target with space for the item$(li)$(bold)Furthest/$ - always fill the furthest target with space for the item" + }, + { + "type": "crafting", + "recipe": "modularrouters:distributor_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/dropper.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/dropper.json new file mode 100644 index 000000000000..346780735ec7 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/dropper.json @@ -0,0 +1,15 @@ +{ + "name": "Dropper Module", + "category": "modules", + "icon": "modularrouters:dropper_module", + "pages": [ + { + "type": "text", + "text": "This module tries to drop an item from the router's buffer as an item entity in the world. The drop will be adjacent to the router in the module's $(l:intro/modules#direction)configured direction/$. The item entity will be placed with a zero velocity, unlike the vanilla $(item)Dropper/$ which adds an irritating random velocity to the item." + }, + { + "type": "crafting", + "recipe": "modularrouters:dropper_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_distributor.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_distributor.json new file mode 100644 index 000000000000..77ab73442ac0 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_distributor.json @@ -0,0 +1,19 @@ +{ + "name": "Energy Distributor Module", + "category": "modules", + "icon": "modularrouters:energy_distributor_module", + "pages": [ + { + "type": "text", + "text": "This module is like a combination of an $(l:modules/energy_output)Energy Output/$ and a $(l:modules/distributor)Distributor/$ Module, in that it can wirelessly distribute FE (Forge Energy) to up to 8 nearby energy-accepting blocks.$(p)$(thing)Sneak-right-click/$ a block to add it to the Energy Distributor Module, and $(thing)Sneak-right-click/$ the block again to remove it." + }, + { + "type": "text", + "text": "Like the $(l:modules/energy_output)Energy Output Module/$, this module can extract energy from either the router's internal energy buffer (if any $(l:upgrades/energy)Energy Upgrades/$ are installed) or from an energy-containing item in the router's item buffer. The internal energy buffer is used by preference." + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_distributor_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_output.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_output.json new file mode 100644 index 000000000000..b3cc3f588c5e --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_output.json @@ -0,0 +1,15 @@ +{ + "name": "Energy Output Module", + "category": "modules", + "icon": "modularrouters:energy_output_module", + "pages": [ + { + "type": "text", + "text": "This module attempts to output FE (Forge Energy) from the Router to an adjacent energy-receiving block, in its configured direction. The module can extract energy from either the router's internal energy buffer (if any $(l:upgrades/energy)Energy Upgrades/$ are installed) or from an energy-containing item in the router's item buffer. The internal energy buffer is used by preference." + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_output_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_1.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_1.json new file mode 100644 index 000000000000..51dcff14d7b7 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_1.json @@ -0,0 +1,31 @@ +{ + "name": "Extruder Module Mk1", + "category": "modules", + "icon": "modularrouters:extruder_module_1", + "pages": [ + { + "type": "text", + "text": "This module extends and withdraws a row of blocks (from the router's buffer) in the module's configured direction.$(p)By default, the module extends blocks when the router has a redstone signal, and withdraws them when the router has no signal, but a Redstone Enhancement can be added to the module to customise this behaviour." + }, + { + "type": "text", + "text": "Using this module, it's possible to build large extending bridges and doorways. (If you ever used the Tinker's Drawbridge from the Tinker's Mechworks mod in 1.7.10, the functionality will be familiar).$(li)See also the $(l:upgrades/camouflage)Camouflage Upgrade/$, which may be useful to hide the router.$(li)The default range (i.e. number of blocks which can be placed) is 12, but this can be increased up to 24 with $(l:augments/range_up)Range Up Augments/$." + }, + { + "type": "text", + "text": "$(li)If you change the module's direction while it has blocks extended, you may get the router a little confused. In this case, breaking and replacing the router will help.$(li)If you break the router while blocks are extended, it won't remember that, and you'll need to manually remove those blocks." + }, + { + "type": "text", + "text": "$(li)If you have multiple routers together with Extruder Modules installed (e.g. for a wide door or bridge), you may find the $(l:upgrades/sync)Sync Upgrade/$ useful to ensure they all run on the same tick.$(li)The Extruder (like the $(l:modules/placer)Placer/$) can also plant crop seeds on farmland, and cocoa beans on an adjacent jungle log." + }, + { + "type": "text", + "text": "It is important to note that the $(l:modules/breaker)Breaker Module/$ used to craft this module will transfer its harvest level (and enchantments) to this module. So if you want your Extruder Module to be able to break $(item)Obsidian/$, for example, make sure you use a Breaker Module crafted with a $(item)Diamond Pickaxe/$!" + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_1" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_2.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_2.json new file mode 100644 index 000000000000..887feafe7b73 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_2.json @@ -0,0 +1,19 @@ +{ + "name": "Extruder Module Mk2", + "category": "modules", + "icon": "modularrouters:extruder_module_2", + "pages": [ + { + "type": "text", + "text": "This module behaves somewhat like the $(l:modules/extruder_1)Extruder Module Mk1/$, but with a few important differences:$(li)The Mk2 module doesn't place items from the router's buffer, but rather from a template defined within the module itself.$(li)This template appears on the right-hand side of the module's GUI, has 9 slots, and can have multiple items per slot. Items placed in the template are \"ghost\" items." + }, + { + "type": "text", + "text": "$(li)Blocks extruded are \"virtual\" - effectively created out of nowhere, but drop nothing when broken and can't be crafted normally.$(li)Therefore, this module isn't suitable for farming like the Extruder Mk1, but can be used to place doors/bridges etc. with more complex patterns than the Mk1 could.$(li)The default range for the Extruder Mk2 is 24 blocks, which can be increased to 48 with Range Upgrades." + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_2" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/flinger.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/flinger.json new file mode 100644 index 000000000000..52addcd0dd6c --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/flinger.json @@ -0,0 +1,19 @@ +{ + "name": "Flinger Module", + "category": "modules", + "icon": "modularrouters:flinger_module", + "pages": [ + { + "type": "text", + "text": "This module behaves like the $(l:modules/dropper)Dropper Module/$, except that it also imparts a configurable velocity to the dropped item, potentially throwing the item a considerable distance. You can adjust the item's speed, pitch and yaw via the module's GUI.$(li)Pitch and Yaw are in degrees, relative to a base pitch or yaw." + }, + { + "type": "text", + "text": "$(li)If the module ejects Up or Down, the base pitch is +90° or -90°, respectively. Otherwise, the base pitch is 0°.$(li)If the module ejects Up or Down, the base yaw is the router's facing direction. Otherwise the base yaw is taken from the module's direction.$(li)Example: a speed of 1.0, pitch/yaw of 0°, and a horizontal module direction, will throw an item along the ground for a distance of about 7 blocks." + }, + { + "type": "crafting", + "recipe": "modularrouters:flinger_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid.json new file mode 100644 index 000000000000..db3cf4545707 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid.json @@ -0,0 +1,31 @@ +{ + "name": "Fluid Module Mk1", + "category": "modules", + "icon": "modularrouters:fluid_module", + "pages": [ + { + "type": "text", + "text": "While Routers can't handle fluids directly (they don't have an internal tank), they can manipulate fluids if there is a (single) fluid container item in the buffer. This includes buckets and any fluid containers added by other mods." + }, + { + "type": "text", + "text": "The Fluid Module's GUI allows the transfer direction to be set:$(li)$(bold)Transfer To Router/$ means the router will try to pull fluids from an adjacent block (either a fluid in the world or a fluid-holding block) into a fluid-holding item in the buffer.$(li)$(bold)Transfer From Router/$ means the router will try to push fluids from a fluid-holding item in the buffer to the world; either pouring fluid out, or putting fluid into an adjacent tank." + }, + { + "type": "text", + "text": "The GUI also allows the maximum transfer rate to be set. Note this is the maximum that will be $(italic)attempted/$, and is still limited by the Router's overall transfer rate, which is 1 bucket per second, and the transfer rate of the external fluid or fluid container.$(p)The Fluid Module's filter slots will only accept fluid-containing items, and will filter by the contained fluid, not by the container item." + }, + { + "type": "text", + "text": "Adding $(l:upgrades/speed)Speed Upgrades/$ will not transfer fluids any faster, only more often. A Router with 9 speed upgrades will still only transfer 1 bucket per second, just more often and in smaller quantities. To increase the overall transfer rate, add $(l:upgrades/fluid)Fluid Transfer Upgrades/$.$(p)Be very careful tinkering with Fluid Module settings if the router holds any dangerous fluids, such as a lava bucket. The router will not hesitate to pour lava over you if you get it wrong..." + }, + { + "type": "text", + "text": "Note that you can also connect fluid pipes from other mods to a router, $(bold)if/$ the buffer has a fluid container in it, and pump fluids in and out of the router; fluids will be directed to/from the container item.$(p)You $(italic)don't/$ need a Fluid Module installed to do this; Fluid Modules are only required if you want to actively push or pull fluids." + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid_2.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid_2.json new file mode 100644 index 000000000000..1272c9afc580 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid_2.json @@ -0,0 +1,19 @@ +{ + "name": "Fluid Module Mk2", + "category": "modules", + "icon": "modularrouters:fluid_module_2", + "pages": [ + { + "type": "text", + "text": "Like the $(l:modules/fluid_1)Fluid Module Mk1/$, this module can transfer fluids into or out of the router, if it has a fluid-containing item in the buffer. However, this module can also target more distant locations, up to 12 blocks away (up to 24 with $(l:augments/range_up)Range Up Augments/$)." + }, + { + "type": "text", + "text": "$(thing)Sneak-right-click/$ any block with the module to set its target.$(p)Note that the target block does not necessarily need to be a fluid tank; if you break the block after setting the module target, the module will be able to empty a bucket of fluid into the world at that location." + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module_2" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/placer.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/placer.json new file mode 100644 index 000000000000..7703f71dd9ba --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/placer.json @@ -0,0 +1,19 @@ +{ + "name": "Placer Module", + "category": "modules", + "icon": "modularrouters:placer_module", + "pages": [ + { + "type": "text", + "text": "This module tries to place an item from the router's buffer as a block, adjacent to the router in the module's $(l:intro/modules#direction)configured direction/$.$(li)If the item isn't a block or the destination block space is obstructed, nothing will be done.$(li)Normal Minecraft placement rules are followed; e.g. sugar cane can only be placed next to water on sand/dirt." + }, + { + "type": "text", + "text": "$(li)Fluid blocks will be replaced, as will replaceable blocks such as tall grass.$(li)The Placer module can plant seeds on farmland, and cocoa beans on an adjacent jungle log." + }, + { + "type": "crafting", + "recipe": "modularrouters:placer_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/player.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/player.json new file mode 100644 index 000000000000..61819901d480 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/player.json @@ -0,0 +1,31 @@ +{ + "name": "Player Module", + "category": "modules", + "icon": "modularrouters:player_module", + "pages": [ + { + "type": "text", + "text": "This module tries to transfer items between the router and a player's own inventory. The player can be anywhere in any dimension, making this a rather powerful module.$(p)The module can transfer items either from or to the player; you can set this in the module's GUI." + }, + { + "type": "text", + "text": "$(p)The module can operate on either the player's main 36-slot inventory, their 4-slot armor inventory, their offhand slot, or their Ender inventory (as shown by vanilla $(item)Ender Chests/$). This can also be set in the module's GUI.$(p)Extracted/inserted items can, of course, be filtered by the module." + }, + { + "type": "text", + "text": "A good use-case for this module would be to extract ores/cobblestone/dirt etc. from the player's inventory, and send it on to the player's main storage system in their base. With a little design, it should be possible to build a system to auto-swap your armor sets (maybe even in the field, with some wireless redstone from another mod...)" + }, + { + "type": "text", + "text": "The Player Module is keyed to a specific player; the item tooltip shows the owner. This is set to the player who initially crafted the module, but can be overridden by holding the module and sneak-right-clicking it. You might also need to do this if you obtained the module by other means (creative, JEI cheat mode...)." + }, + { + "type": "text", + "text": "Using a Security Upgrade in conjunction with this module is probably wise on servers where you don't trust the players; you don't want a hostile player stealing this module..." + }, + { + "type": "crafting", + "recipe": "modularrouters:player_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_1.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_1.json new file mode 100644 index 000000000000..34d24a750ba2 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_1.json @@ -0,0 +1,15 @@ +{ + "name": "Puller Module Mk1", + "category": "modules", + "icon": "modularrouters:puller_module_1", + "pages": [ + { + "type": "text", + "text": "This module tries to pull the first eligible item from the adjacent inventory in its $(l:intro/modules#direction)configured direction/$ into the router's buffer. If the buffer is full or contains something that stacks with nothing in the inventory, nothing will be pulled." + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_1" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_2.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_2.json new file mode 100644 index 000000000000..737a1f4646e6 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_2.json @@ -0,0 +1,20 @@ +{ + "name": "Puller Module Mk2", + "category": "modules", + "icon": "modularrouters:puller_module_2", + "pages": [ + { + "type": "text", + "text": "This behaves like the $(l:modules/puller_1)Puller Mk1/$, but can pull items from non-adjacent inventories.$(p)The inventory can be up to 12 blocks away (up to 24 with $(l:augments/range_up)Range Augments/$); clear line of sight is $(italic)not/$ required." + }, + { + "type": "text", + "text": "$(li)To select the target inventory, $(thing)Sneak-Right-click/$ the block with the Puller Mk2 module in hand. You will get a confirmation message.$(li)While holding a Puller Mk2 with a target set, the targeted block will be highlighted." + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_2", + "recipe2": "modularrouters:puller_module_2_x4" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_1.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_1.json new file mode 100644 index 000000000000..3a5781e7d1f7 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_1.json @@ -0,0 +1,16 @@ +{ + "name": "Sender Module Mk1", + "category": "modules", + "icon": "modularrouters:sender_module_1", + "pages": [ + { + "type": "text", + "text": "This module tries to send an item from the router's buffer to an inventory in the module's $(l:intro/modules#direction)configured direction/$:$(li)The target inventory can be up to 8 blocks away (up to 16 with $(l:augments/range_up)Range Up Augments/$)$(li)The target inventory $(italic)must/$ be directly along the X, Y, or Z axis.$(li)The router $(italic)must/$ have clear line of sight to the target; no opaque blocks, but blocks such as glass, fences, iron bars etc. are OK." + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_1", + "recipe2": "modularrouters:sender_module_1_alt" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_2.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_2.json new file mode 100644 index 000000000000..c9af6b119792 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_2.json @@ -0,0 +1,20 @@ +{ + "name": "Sender Module Mk2", + "category": "modules", + "icon": "modularrouters:sender_module_2", + "pages": [ + { + "type": "text", + "text": "This module behaves like a $(l:modules/sender_1)Sender Module Mk1/$, but has more powerful inventory targeting capabilities:$(li)The target inventory can be up to 24 blocks away (up to 48 with $(l:augments/range_up)Range Augments/$).$(li)Clear line of sight is $(italic)not/$ required." + }, + { + "type": "text", + "text": "$(li)To select the target inventory, $(thing)Sneak-Right-click/$ the target with the Sender Mk2 module in hand. You will get a confirmation message.$(li)While holding a Sender Mk2 with a target set, the targeted block will be highlighted." + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_2", + "recipe2": "modularrouters:sender_module_2_x4" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_3.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_3.json new file mode 100644 index 000000000000..c7e7d9e16a5c --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_3.json @@ -0,0 +1,15 @@ +{ + "name": "Sender Module Mk3", + "category": "modules", + "icon": "modularrouters:sender_module_3", + "pages": [ + { + "type": "text", + "text": " This top-end sender module operates very much like the $(l:modules/sender_3)Sender Mk2/$, but can send to any inventory (in any dimension) with no restrictions!$(p)Note: the target inventory must be chunk-loaded; $(modr) will not do this for you." + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_3" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/vacuum.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/vacuum.json new file mode 100644 index 000000000000..11899ca7afdf --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "Vacuum Module", + "category": "modules", + "icon": "modularrouters:vacuum_module", + "pages": [ + { + "type": "text", + "text": "This module scans for dropped items in a 13x13x13 cubic area around the router (i.e. up to 6 blocks in each direction), and absorbs them into the router's buffer, if possible.$(p)The range can be increased up to 25x25x25 (12 blocks in each direction) with $(l:augments/range_up)Range Up Augments/$, or shrunk to just 3x3x3 with $(l:augments/range_down)Range Down Augments/$." + }, + { + "type": "text", + "text": "The scanned area is centered on the router if the module's $(l:intro/modules#direction)configured direction/$ is $(bold)All/$ (the default).$(p)If the module has an actual direction configured, the area is offset in that direction by 6 blocks, plus one for each Range Up Augment installed, minus one for each Range Down Augment installed.$(p)E.g. with a direction of $(bold)UP/$, the module will only scan an area directly above the router." + }, + { + "type": "crafting", + "recipe": "modularrouters:vacuum_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/void.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/void.json new file mode 100644 index 000000000000..a4bb71e4f46a --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/void.json @@ -0,0 +1,15 @@ +{ + "name": "Void Module", + "category": "modules", + "icon": "modularrouters:void_module", + "pages": [ + { + "type": "text", + "text": "This dangerous module permanently destroys items in the router's buffer! It is strongly recommended to configure this module with a $(l:intro/modules#filter)whitelist filter/$ to prevent accidental deletion of valuable items..." + }, + { + "type": "crafting", + "recipe": "modularrouters:void_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/item_router.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/item_router.json new file mode 100644 index 000000000000..c99ce361e814 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/item_router.json @@ -0,0 +1,53 @@ +{ + "name": "Modular Router", + "icon": "modularrouters:item_router", + "category": "router", + "pages": [ + { + "type": "text", + "text": "The $(thing)Modular Router/$ is core of the system. It is responsible for executing all the modules plugged into it, moving items, blocks and fluids around in various ways." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/router_gui.png" + ], + "text": "$(italic)An Modular Router GUI with several modules and upgrades installed", + "border": true + }, + { + "type": "text", + "title": "1. The Buffer", + "text": "The $(thing)Modular Router/$ has a one-slot buffer, able to hold up to stack of items. This buffer is exposed as a normal inventory, so it can be interacted with via $(item)Hoppers/$ and other mod piping systems.$(p)In addition, a $(item)Comparator/$ placed against the router will measure the slot's fullness as expected." + }, + { + "type": "text", + "title": "2. Module Slots", + "text": "The $(thing)Modular Router/$ has nine slots for $(l:intro/modules)modules/$. Each time the router runs (between 1 and 10 times per second depending on Speed Upgrades), it will $(thing)execute/$ each module in turn, from left to right.$(p)You can configure installed modules without removing them from the router by pressing $(4)$(bold)[$(k:modularrouters.configure)]/$ while hovering over it, or $(thing)Middle-Clicking/$ the module in the GUI." + }, + { + "type": "text", + "title": "3. Upgrade Slots", + "text": "The $(thing)Modular Router/$ has five slots for $(l:intro/upgrades)upgrades/$. Upgrades enhance the router's functionality in various ways; for example, each inserted $(l:upgrades/speed)Speed Upgrade/$ makes the router tick a little faster, while each $(l:upgrades/stack)Stack Upgrade/$ allows it to handle more items in each operation." + }, + { + "type": "text", + "title": "4. Redstone Control", + "text": "The $(thing)Modular Router/$ has some flexibility over how it responds to redstone input, controlled by the top-right button:$(li)Default: always run, regardless of redstone signal$(li)Only run when there is $(italic)no/$ redstone signal$(li)Only run when there $(italic)is/$ a redstone signal$(li)Never run$(li)Run $(italic)once/$ when a redstone pulse is received (any signal higher than previously)." + }, + { + "type": "text", + "title": "5. Eco Mode", + "text": "In the spirit of being environmentally-friendly, the router has an option to automatically slow down if it's been idle for a while.$(p)When Eco Mode is enabled, if the router has done no work in the last $(ttcolor)$(t:Adjustable in mod config - 'ecoTimeout')5 seconds/$ then it will slow down and only tick once every $(ttcolor)$(t:Adjustable in mod config - 'lowPowerTickRate')5 seconds/$ (regardless of $(l:upgrades/speed)Speed Upgrades/$). However, as soon as it does any work, it will return to normal tick speed." + }, + { + "type": "text", + "title": "Eco Mode (cont)", + "text": "This is primarily intended for busy servers, to save on CPU cycles, but it's potentially nice-to-have for any router that only runs rarely and where rapid item transfer isn't that important (e.g. a sheep farm where you might have a $(l:modules/vacuum)Vacuum Module/$ gathering sheared wool periodically)." + }, + { + "type": "crafting", + "recipe": "modularrouters:item_router" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/termination.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/termination.json new file mode 100644 index 000000000000..0931b3ae1004 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/termination.json @@ -0,0 +1,23 @@ +{ + "name": "Termination", + "icon": "minecraft:barrier", + "category": "router", + "pages": [ + { + "type": "text", + "text": "This a slightly esoteric topic which in most cases you won't need to worry about. However, when you do need it, it'll be very useful!" + }, + { + "type": "text", + "text": "Termination is configured on a per-module basis, by the 'T' button beneath the filter slots. By default, it's inactive; if you switch if on for a module, then $(italic)if/$ the module does any work this router tick, the router will stop there. No further modules (i.e. to the right of this module) will be executed this time round." + }, + { + "type": "text", + "text": "Why would this be useful? Imagine a scenario where your router is being supplied with many items, e.g. from a quarry. You want to void $(item)Cobblestone/$, and send everything else to another inventory; so you would add a $(l:modules/void)Void Module/$ with a whitelist of Cobblestone, followed by a $(l:modules/sender_1)Sender Module/$ to send anything else onwards." + }, + { + "type": "text", + "text": "When the router runs, say there's already a stack of Cobblestone in the buffer. The Void Module will void a Cobblestone, and then the Sender module will send the remaining 63 Cobblestone on to your storage. This is probably not you want.$(p)However, if you switch on Termination on the Void Module, then when it runs, the router will stop for that tick; the Sender module won't run until the Void Module has nothing else to do." + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/blast.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/blast.json new file mode 100644 index 000000000000..1a76431b042c --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/blast.json @@ -0,0 +1,15 @@ +{ + "name": "Blast Upgrade", + "category": "upgrades", + "icon": "modularrouters:blast_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade makes the router fully immune to explosion damage, and also to being destroyed by boss mobs." + }, + { + "type": "crafting", + "recipe": "modularrouters:blast_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/camouflage.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/camouflage.json new file mode 100644 index 000000000000..a6f05bafe312 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/camouflage.json @@ -0,0 +1,15 @@ +{ + "name": "Camouflage Upgrade", + "category": "upgrades", + "icon": "modularrouters:camouflage_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade allows you to disguise the router as another block. $(thing)Sneak+Right-click/$ the module against a block to record that block on the camouflage upgrade. When inserted into a router, that router will take on the appearance of the recorded block.$(p)Note: holding a $(thing)Modular Router/$ will highlight any nearby camouflaged Routers." + }, + { + "type": "crafting", + "recipe": "modularrouters:camouflage_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/energy.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/energy.json new file mode 100644 index 000000000000..2cca6787853a --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/energy.json @@ -0,0 +1,35 @@ +{ + "name": "Energy Upgrade", + "category": "upgrades", + "icon": "modularrouters:energy_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade gives the Router an internal energy buffer. Each upgrade increases the buffer size by 50,000 FE and the transfer rate by 1,000 FE per $(italic)router tick/$ (these figures are adjustable in mod config).$(p)There are several scenarios where an Energy Upgrade is useful, detailed in the following pages." + }, + { + "type": "text", + "title": "1. Routing Energy", + "text": "The $(l:modules/energy_output)Energy Output/$ and $(l:modules/energy_distributor)Energy Distributor/$ modules are both capable of actively pushing energy from the router's buffer to adjacent or nearby blocks.$(p)With these modules, you can effectively build an energy cell with limited wireless energy transfer capabilities." + }, + { + "type": "text", + "title": "2. Powering Modules", + "text": "By default, router modules do not cost any energy to run, with the exception of the $(l:modules/activator)Activator Module/$ in attack mode. $(p)However, energy usage is configurable and it's possible that energy costs may apply to other modules in the pack you're playing; all modules list energy usage numbers in their tooltip where it applies." + }, + { + "type": "text", + "title": "3. Charging Items", + "text": "Any energy-holding item in the router's buffer can optionally have energy transferred from the router's internal buffer to the item, or vice versa.$(p)When an energy-holding item is in the item buffer, the router GUI will show a switchable button between the buffer and the energy bar to set the energy transfer direction." + }, + { + "type": "text", + "title": "Transfer Rates", + "text": "It is important to note that stated transfer rates on tooltips are in FE per $(italic)router tick/$, which is not the same as FE/t. A Router's tick rate depends on its $(l:upgrades/speed)Speed Upgrades/$; with no Speed Upgrades, a router tick is every 20 server ticks. Therefore, the overall transfer rate may be lower than you might expect." + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_upgrade" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/fluid.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/fluid.json new file mode 100644 index 000000000000..53597dc2981c --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/fluid.json @@ -0,0 +1,15 @@ +{ + "name": "Fluid Transfer Upgrade", + "category": "upgrades", + "icon": "modularrouters:fluid_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade only affects the $(l:modules/fluid)Fluid Module Mk1/$ and $(l:modules/fluid_2)Fluid Module Mk2/$.$(p)It increases the overall fluid transfer rate of the $(l:router/item_router)Router/$ (in each direction; in & out of the router) from the base rate of 50mB/tick by 10mB/tick, up to a maximum of 400mB/tick. Therefore the maximum number of Fluid Transfer Upgrades in a router is 35." + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/muffler.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/muffler.json new file mode 100644 index 000000000000..573065c7dd86 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/muffler.json @@ -0,0 +1,19 @@ +{ + "name": "Muffler Upgrade", + "category": "upgrades", + "icon": "modularrouters:muffler_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade can be used to suppress sounds and particle effects made by item routers, and can be useful if a noisy module is regularly running in a place where a player often is.$(li)One or more Muffler Upgrades in a router will disable all audible effects$(li)Two or more will also disable all particle effects (beams and flying items)" + }, + { + "type": "text", + "text": "$(li)Three upgrades will also disable the router's active animation; the pulsing texture on the front face of the router block$(p)Note that all sounds and particle effects can also be disabled in the mod config; this upgrade is only useful if sounds/effects have not been disabled." + }, + { + "type": "crafting", + "recipe": "modularrouters:muffler_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/security.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/security.json new file mode 100644 index 000000000000..1c33086aa426 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/security.json @@ -0,0 +1,40 @@ +{ + "name": "Security Upgrade", + "category": "upgrades", + "icon": "modularrouters:security_upgrade", + "pages": [ + { + "type": "text", + "text": "The $(thing)Security Upgrade/$ has several important functions, detailed in the following pages." + }, + { + "type": "text", + "title": "Protection", + "text": "A Router with a Security Upgrade installed can $(italic)only/$ be opened by players whitelisted by that upgrade. The upgrade doesn't prevent a router being broken; but since upgrades and modules remain in a broken router, players can't break a router to steal modules/upgrades or reconfigure the router. If you want to prevent a router being broken, you may wish to explore other mods' block protection capabilities." + }, + { + "type": "text", + "title": "Fake Players", + "text": "Several modules ($(l:modules/placer)Placer/$, $(l:modules/breaker)Breaker/$, $(l:modules/activator)Activator/$) do their work as a $(thing)fake player/$. By default this is a player with the username $(thing)[Modular Routers]/$, but when a security upgrade is installed, those modules operate as the upgrade's owner. This is much safer on multiplayer servers with claim protection than simply allowing $(thing)[Modular Routers]/$ to do anything with your claims." + }, + { + "type": "text", + "title": "Activator Attack Mode", + "text": "When the $(l:modules/activator)Activator Module/$ is in $(thing)Attack Mode/$, it will ignore any players whitelisted by a Security Upgrade installed in the Router. This is generally a good idea to avoid pain & suffering if you have a high-damage weapon in your Router..." + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "$(li)There is a non-craftable item called the $(thing)Security Override Card/$ - this can be obtained in creative mode or by cheating the item in via JEI etc. A player who holds one of these in either hand is not affected by any Security Upgrade, and can access any router." + }, + { + "type": "text", + "text": "You can add extra players to a Security Upgrade by $(thing)right-clicking/$ the player with the upgrade in your main hand.$(p)You can remove players from a Security Upgrade by $(thing)sneak-right-clicking/$ the player.$(p)There is a maximum of 6 additional players per Security Upgrade (so 7 in total, including the creator), but you can install more than one Security Upgrade in a router if necessary." + }, + { + "type": "crafting", + "recipe": "modularrouters:security_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/speed.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/speed.json new file mode 100644 index 000000000000..1717971249b6 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/speed.json @@ -0,0 +1,19 @@ +{ + "name": "Speed Upgrade", + "category": "upgrades", + "icon": "modularrouters:speed_upgrade", + "pages": [ + { + "type": "text", + "text": "By default, a $(l:router/item_router)router/$ ticks every 20 server ticks, or once per second. On each tick, every installed module is executed in order, left to right.$(p)If you need a router to run faster than this, add $(thing)Speed Upgrades/$; each Speed Upgrade reduces the tick interval by 2 server ticks, down to a minimum of every 2 server ticks (or 10 times per second)." + }, + { + "type": "text", + "text": "The base tick rate, tick increase per upgrade, and hard minimum tick rate are all configurable in the module's config (config/modularrouters-common.toml).$(p)For performance reasons, $(l:upgrades/stack)Stack Upgrades/$ should be preferred over Speed Upgrades where possible; use Speed Upgrades judiciously and only where absolutely required for maximum item transfer rate.$(p)Be Kind To Your Server (tm)." + }, + { + "type": "crafting", + "recipe": "modularrouters:speed_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/stack.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/stack.json new file mode 100644 index 000000000000..3c9631d01814 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/stack.json @@ -0,0 +1,19 @@ +{ + "name": "Stack Upgrade", + "category": "upgrades", + "icon": "modularrouters:stack_upgrade", + "pages": [ + { + "type": "text", + "text": "Modules in a router operate on a single item at a time: e.g. a $(l:modules/sender_1)Sender Module/$ will send a single item from the router's buffer each router tick, regardless of how many items are in the buffer." + }, + { + "type": "text", + "text": "By adding Stack Upgrades to a router, this can be increased. Each Stack Upgrade doubles the number of items that can be processed by each module, up to a maximum of 64, or the item's native stack size (e.g. 16 for $(item)Ender Pearls/$).$(p)It therefore follows that 6 is the maximum number of useful Stack Upgrades which can be installed in one router." + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/sync.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/sync.json new file mode 100644 index 000000000000..ea3d80efea08 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/sync.json @@ -0,0 +1,27 @@ +{ + "name": "Sync Upgrade", + "category": "upgrades", + "icon": "modularrouters:sync_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade is used to guarantee that two or more routers run at the same time. The Sync Upgrade has a tuning value of 0 .. 19 (i.e. 1 less than the base router tick rate of 20). This tuning value can be set by $(thing)right-clicking/$ the Sync Upgrade to open its GUI, or quickly set to a random value by $(thing)sneak-right-clicking/$ the upgrade." + }, + { + "type": "text", + "text": "Any routers with this upgrade installed, with same the tuning value, and with the same number of $(l:upgrades/speed)Speed Upgrades/$ installed, will always run on the same tick. The actual tuning value doesn't matter; only that the value is consistent across the routers you want to synchronise.$(p)This is particularly useful if you have a group of routers with $(l:modules/extruder_1)Extruder Modules/$ installed, and want to ensure all modules extend/retract at exactly the same time." + }, + { + "type": "text", + "text": "Advanced notes #1: the Sync Upgrade's tuning value actually specifies precisely when the router will run relative to its tick rate. E.g. routers tick every 20 server ticks by default; a Sync Upgrade with a tuning upgrade of 15 ensures the router $(italic)always/$ runs 15 ticks after that, and that applies to $(italic)all/$ routers with a 15-tuned Sync Upgrade. And a 16-tuned Sync Upgrade always runs 1 tick after a 15-tuned Sync Upgrade, at least for routers with the same number of $(l:upgrades/speed)Speed Upgrades/$ installed..." + }, + { + "type": "text", + "text": "Advanced notes #2: Because $(l:upgrades/speed)Speed Upgrades/$ make routers tick more frequently, they affect how Sync Upgrades work. A router with 9 Speed Upgrades ticks every 2 server ticks (instead of every 20). For Sync Upgrades in such a router, it only matters whether the tuning value is even or odd; 2 (or 4/6/8...) ticks later is effectively the same as 0 ticks later! General case: the tuning value is calculated modulo the router's actual tick rate after Speed Upgrades are accounted for." + }, + { + "type": "crafting", + "recipe": "modularrouters:sync_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/augments.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/augments.json new file mode 100644 index 000000000000..cefecd312926 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/augments.json @@ -0,0 +1,6 @@ +{ + "name": "拓展", + "description": "模块拓展可以安装在模块中以增强或拓展它们的功能。", + "icon": "modularrouters:xp_vacuum_augment", + "sortnum": 4 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/filters.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/filters.json new file mode 100644 index 000000000000..1f69169d28aa --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/filters.json @@ -0,0 +1,6 @@ +{ + "name": "智能过滤器", + "description": "智能过滤器是一组过滤器物品,可以放在任何模块的过滤栏位中来取代普通物品,并提供更加复杂的物品匹配功能。", + "icon": "modularrouters:bulk_item_filter", + "sortnum": 5 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/intro.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/intro.json new file mode 100644 index 000000000000..ae707f69165f --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/intro.json @@ -0,0 +1,6 @@ +{ + "name": "介绍", + "description": "欢迎来到$(#228)模块化路由器$()!", + "icon": "minecraft:knowledge_book", + "sortnum": 0 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/modules.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/modules.json new file mode 100644 index 000000000000..fe5ad56aeadd --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/modules.json @@ -0,0 +1,6 @@ +{ + "name": "模块", + "description": "模块可以放进模块化路由器并决定路由器的功能。", + "icon": "modularrouters:sender_module_1", + "sortnum": 2 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/router.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/router.json new file mode 100644 index 000000000000..c7680a6c150a --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/router.json @@ -0,0 +1,6 @@ +{ + "name": "模块化路由器", + "description": "模块化路由器是$(#228)模块化路由器$()中唯一的方块。", + "icon": "modularrouters:item_router", + "sortnum": 1 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/upgrades.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/upgrades.json new file mode 100644 index 000000000000..ca2888620aa2 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/upgrades.json @@ -0,0 +1,6 @@ +{ + "name": "升级", + "description": "升级可以安装在模块化路由器中以增强或修改其功能。", + "icon": "modularrouters:speed_upgrade", + "sortnum": 3 +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/fast_pickup.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/fast_pickup.json new file mode 100644 index 000000000000..d553e6ff456f --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/fast_pickup.json @@ -0,0 +1,15 @@ +{ + "name": "快速拾取拓展", + "category": "augments", + "icon": "modularrouters:fast_pickup_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/vacuum)真空模块/$中。它可以使真空模块无视掉落物品的正常拾取延迟——玩家投掷的物品有 40 刻的延迟,其它手段投掷的物品有 10 刻的延迟(例如绵羊剪毛)——立刻拾取任何检测到的物品。$(p)最多可以添加一个快速拾取拓展。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fast_pickup_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/mimic.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/mimic.json new file mode 100644 index 000000000000..f505708ceb59 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/mimic.json @@ -0,0 +1,15 @@ +{ + "name": "模仿拓展", + "category": "augments", + "icon": "modularrouters:mimic_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/extruder_2)挤出模块 2 型/$中。$(p)添加后,任何由模块挤出的假方块都会有对应方块的特性,例如$(item)黑曜石/$难以被破坏、$(item)荧石/$会发光,以及$(item)红石块/$会发出红石信号。" + }, + { + "type": "crafting", + "recipe": "modularrouters:mimic_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pickup_delay.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pickup_delay.json new file mode 100644 index 000000000000..2b5bc9537efe --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pickup_delay.json @@ -0,0 +1,15 @@ +{ + "name": "延迟拾取拓展", + "category": "augments", + "icon": "modularrouters:pickup_delay_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/dropper)投掷器/$和$(l:modules/flinger)投掷/$模块中。$(p)它可以堆叠;每添加一个拓展,投掷的物品就会增加 10 刻(0.5 秒)的拾取延迟。例如,这对防止玩家意外捡起附近的掉落物品来说非常有用。" + }, + { + "type": "crafting", + "recipe": "modularrouters:pickup_delay_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pushing.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pushing.json new file mode 100644 index 000000000000..38cfaa25aba0 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pushing.json @@ -0,0 +1,15 @@ +{ + "name": "推动拓展", + "category": "augments", + "icon": "modularrouters:pushing_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/extruder_1)挤出 1 型/$和$(l:modules/extruder_2)挤出 2 型/$模块中。$(p)它可以堆叠;每个拓展都会增加模块挤出方块时推动实体的推力。" + }, + { + "type": "crafting", + "recipe": "modularrouters:pushing_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_down.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_down.json new file mode 100644 index 000000000000..780d7057bbce --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_down.json @@ -0,0 +1,16 @@ +{ + "name": "范围缩小拓展", + "category": "augments", + "icon": "modularrouters:range_down_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至有范围的模块中(发送$(l:modules/sender_1)1 型/$ / $(l:modules/sender_2)2 型/$、抽取$(l:modules/puller_1)1 型/$ / $(l:modules/puller_2)2 型/$、挤出$(l:modules/extruder_1)1 型/$ / $(l:modules/extruder_2)2 型/$、$(l:modules/fluid_2)流体 2 型/$、$(l:modules/vacuum)真空/$)。$(p)它可以堆叠;每个拓展都会降低一格模块的范围。$(p)此拓展可能只适合与$(l:modules/vacuum)真空模块/$一起使用,以便控制模块检测物品的范围。" + }, + { + "type": "crafting", + "recipe": "modularrouters:range_down_augment", + "recipe2": "modularrouters:range_down_from_up" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_up.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_up.json new file mode 100644 index 000000000000..402729c73495 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_up.json @@ -0,0 +1,16 @@ +{ + "name": "范围扩大拓展", + "category": "augments", + "icon": "modularrouters:range_up_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至有范围的模块中(发送$(l:modules/sender_1)1 型/$ / $(l:modules/sender_2)2 型/$、抽取$(l:modules/puller_1)1 型/$ / $(l:modules/puller_2)2 型/$、挤出$(l:modules/extruder_1)1 型/$ / $(l:modules/extruder_2)2 型/$、$(l:modules/fluid_2)流体 2 型/$、$(l:modules/vacuum)真空/$)。$(p)它可以堆叠;每个拓展都会增加一格模块的范围。" + }, + { + "type": "crafting", + "recipe": "modularrouters:range_up_augment", + "recipe2": "modularrouters:range_up_from_down" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/redstone.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/redstone.json new file mode 100644 index 000000000000..3915e6b948f2 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/redstone.json @@ -0,0 +1,15 @@ +{ + "name": "红石拓展", + "category": "augments", + "icon": "modularrouters:redstone_augment", + "pages": [ + { + "type": "text", + "text": "该拓展可以被添加至任意模块。$(p)通常情况下,模块会在路由器运行时运行,不需要其他条件。然而,如果将此拓展添加到模块中,就可使模块定义自己的红石行为;模块的 GUI 中会添加一个额外的按钮用于控制红石行为。" + }, + { + "type": "crafting", + "recipe": "modularrouters:redstone_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/regulator.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/regulator.json new file mode 100644 index 000000000000..61e625bb2c57 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/regulator.json @@ -0,0 +1,27 @@ +{ + "name": "调节拓展", + "category": "augments", + "icon": "modularrouters:regulator_augment", + "pages": [ + { + "type": "text", + "text": "该拓展可以精确控制从容器或路由器缓存区中输入或输出的物品量。$(p)当模块安装调节拓展时,你会看到其 GUI 中有额外的数字文本框供你配置限度。此限度在特定的模块上有着不同的解释:" + }, + { + "type": "text", + "text": "$(li)对于发送$(l:modules/sender_1)1 型/$ / $(l:modules/sender_2)2 型/$ / $(l:modules/sender_3)3 型/$模块和$(l:modules/player)玩家模块/$(输入模式)来说,只有当容器中该物品的数量小于配置的数字时,模块才会向容器发送物品。$(li)对于抽取$(l:modules/puller_1)1 型/$ / $(l:modules/puller_2)2 型/$和$(l:modules/player)玩家模块/$(提取模式)来说,只有当容器中的该物品的数量大于配置的数字时,模块才会从容器中抽取物品。" + }, + { + "type": "text", + "text": "$(li)对于$(l:modules/dropper)投掷器/$、$(l:modules/flinger)投掷/$、$(l:modules/placer)放置/$和$(l:modules/void)销毁/$模块来说,只有当路由器缓存区的物品数量大于配置的数字时模块才会运作。$(li)对于$(l:modules/breaker)破坏/$和$(l:modules/vacuum)真空/$模块来说,只有当路由器缓存区的物品数量小于配置的数字时模块才会运作。" + }, + { + "type": "text", + "text": "$(li)对于流体$(l:modules/fluid)1 型/$ / $(l:modules/fluid_2)2 型/$模块来说,限度可以是目标储罐容量的百分比,或以 mB 为单位的绝对含量(在 GUI 中可选),而不是物品数量。当抽取流体时,只有当目标中流体$(italic)多于/$配置的量时模块才会运作;当输出流体时,只有当目标中流体$(italic)少于/$配置的量时模块才会运作。" + }, + { + "type": "crafting", + "recipe": "modularrouters:regulator_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/stack.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/stack.json new file mode 100644 index 000000000000..0fe9b9dcc46a --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/stack.json @@ -0,0 +1,19 @@ +{ + "name": "堆叠拓展", + "category": "augments", + "icon": "modularrouters:stack_augment", + "pages": [ + { + "type": "text", + "text": "该模块可以被添加至任何可以处理$(italic)物品/$(与$(italic)方块/$、$(italic)流体/$或$(italic)能量/$相对)的模块中。$(p)向模块中添加堆叠拓展可以增加模块每游戏能够处理的物品数量;每个堆叠拓展可使物品数量翻倍,最大上限为物品的自然堆叠大小(大多数物品为 64)。" + }, + { + "type": "text", + "text": "如果$(l:router/item_router)路由器/$同时安装了$(l:upgrades/stack)堆叠升级/$,模块中的堆叠拓展会覆盖它;比如说,如果路由器有 6 个堆叠升级,而模块有 2 个堆叠拓展,模块每游戏刻只会处理 4 个物品,而不是 64 个。" + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/xp_vacuum.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/xp_vacuum.json new file mode 100644 index 000000000000..bcc58f31ef09 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/xp_vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "经验真空拓展", + "category": "augments", + "icon": "modularrouters:xp_vacuum_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/vacuum)真空模块中/$。$(p)添加该拓展后,真空模块将会吸收经验球,而不是物品。经验球将会以每瓶 7 经验的倍率(摔碎附魔之瓶得到的平均经验值)转化为$(item)附魔之瓶/$。" + }, + { + "type": "text", + "text": "取决于安装的其他模组,该拓展也有可能将经验球转化为经验流体。这需要路由器的缓存区或相邻处有一个流体储罐。在后一种情况下,请确保真空模块 GUI 中的$(bold)输出/$按钮为开启状态。" + }, + { + "type": "crafting", + "recipe": "modularrouters:xp_vacuum_augment" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/bulk_item.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/bulk_item.json new file mode 100644 index 000000000000..b050155a015a --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/bulk_item.json @@ -0,0 +1,27 @@ +{ + "name": "批量物品过滤器", + "category": "filters", + "icon": "modularrouters:bulk_item_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以进行高达 54 种不同物品的高性能匹配,包括可选的 NBT 匹配。批量物品过滤器可以一些别样的方式进行配置:$(p)$(li)用过滤器$(thing)潜行+右击/$任意容器将容器内物品的副本合并至过滤器中。" + }, + { + "type": "text", + "text": "$(li)$(thing)右击/$过滤器以打开显示目前过滤物品的 GUI。你可以添加物品(的副本)至过滤器,点击物品来移除它们,或按红色的$(bold)$(4)“X”/$按钮来彻底清除过滤器。" + }, + { + "type": "text", + "text": "$(li)当过滤器在路由器里的模块中时,你可以将鼠标悬停在其上方并按鼠标中键或$(bold)$(4)[$(k:modularrouters.configure)]/$打开过滤器的 GUI。$(p)$(bold)如果/$模块找到了有效的容器,GUI 中将会出现两个额外的按钮:一个用于$(italic)合并/$目标容器物品的绿色$(bold)$(2)“+”/$按钮,以及一个用于$(italic)加载/$(覆盖过滤器的当前内容)目标容器物品的蓝色$(bold)$(1)“=”/$按钮。" + }, + { + "type": "text", + "text": "最后一种配置手段非常适合用于和$(l:modules/sender_2)发送模块/$结合以实现分类系统,因为批量物品过滤器可以记住容器中应有的物品,即使后续容器被取空。" + }, + { + "type": "crafting", + "recipe": "modularrouters:bulk_item_filter" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/inspection.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/inspection.json new file mode 100644 index 000000000000..e8da1a595fea --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/inspection.json @@ -0,0 +1,23 @@ +{ + "name": "检测过滤器", + "category": "filters", + "icon": "modularrouters:inspection_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以按物品的各种杂项整型属性匹配物品。目前支持的检测有:$(li)流体容器物品(桶、储罐……)的流体储量百分比。$(li)能量容器物品(电池、电力工具……)的能量储量百分比。" + }, + { + "type": "text", + "text": "$(li)物品上魔咒的最高魔咒等级(可以用于过滤附魔物品,比如从刷怪塔中来的物品)。$(li)物品(工具、武器)的耐久度与最大耐久度百分比。$(li)可食用物品的食物营养价值,恢复多少半个鸡腿的数量(例如牛排的值为 8)。" + }, + { + "type": "text", + "text": "没有检测属性的物品,返回值将会永远为 -1,比如一块$(item)圆石/$的耐久度值为 -1。这与 0 返回值不同,因为有着小于 1% 耐久度的工具会返回 0 这个值。$(p)该过滤器非常适合自动抽取损坏或没电的物品,进行修复/充电,等等。" + }, + { + "type": "crafting", + "recipe": "modularrouters:inspection_filter" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/mod.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/mod.json new file mode 100644 index 000000000000..106db30a7317 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/mod.json @@ -0,0 +1,19 @@ +{ + "name": "模组过滤器", + "category": "filters", + "icon": "modularrouters:mod_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以按物品属于的模组匹配物品。每个过滤器最多可以添加 6 个模组。$(li)$(thing)右击/$过滤器以打开其GUI(也可以对安装在模块中的过滤器按$(thing)鼠标中键/$ / $(bold)$(4)[$(k:modularrouters.configure)]/$ )。" + }, + { + "type": "text", + "text": "$(li)将任意物品放入GUI左上角的物品栏位中。物品的模组名称将会显示在右方。点击$(bold)$(2)“+”/$按钮将其添加至下方的模组列表中。$(li)点击条目旁的红色$(bold)$(4)“X”/$按钮将模组从列表中移除。$(p)原版物品也可以被添加,它们的“模组”名称将会显示为$(italic)Minecraft/$。" + }, + { + "type": "crafting", + "recipe": "modularrouters:mod_filter" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/regex.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/regex.json new file mode 100644 index 000000000000..4af0b42bf395 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/regex.json @@ -0,0 +1,34 @@ +{ + "name": "正则过滤器", + "category": "filters", + "icon": "modularrouters:regex_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以用正则表达式匹配物品和方块,和物品的$(strong)注册名/$进行比对。正则表达式非常强大,但需要花一些时间进行学习才能解锁其全部潜力。不过,基础的正则表达式运用并不是很困难。有许多网站都有关于正则表达式的教程信息,例如$(l:https://regexone.com/)RegexOne/$。" + }, + { + "type": "text", + "title": "注册名", + "text": "因为物品过滤是完全在服务器中进行的,因此无法确保物品的显示文本是什么。因此,所有过滤都会按照物品的内部$(thing)注册名/$进行比对。你可以通过按$(thing)F3+H/$开启高级提示框来查看其注册名。$(p)请注意,匹配只会比对冒号$(italic)后/$的部分。" + }, + { + "type": "text", + "text": "$(thing)$(thing)右击/$过滤器,或对安装在模块中的过滤器按$(thing)鼠标中键/$ / $(bold)$(4)[$(k:modularrouters.configure)]/$来打开模块GUI。$(li)在顶部的文本框中输入正则表达式,然后按$(thing)回车键/$或点击绿色的$(bold)$(2)“+”/$按钮。假设语法正确,你的正则表达式将会添加到列表中。一个过滤器中最多有 6 个条目。$(li)点击任意正则表达式旁的红色$(bold)$(4)“X”/$将其从列表中移除。$(li)匹配不区分大小写。" + }, + { + "type": "text", + "title": "示例 1", + "text": "正则表达式'ore'会匹配所有注册名中含有'ore'的物品(\"iron_ore\"、\"gold_ore\"、\"redstone_ore\")。不幸的是,它也会匹配\"drill_core\",你可以通过使用正则表达式$(1)_ore/$来避免这种情况。想要更精确,你可以使用$(1)_ore$/$,这可以确保字符串\"_ore\"在物品注册名的结尾。" + }, + { + "type": "text", + "title": "示例 2", + "text": "配置一个$(l:modules/player)玩家模块/$让它从玩家的主物品栏中提取物品,并在模块中放一个含有$(1)_ore/$的正则过滤器。这可以用于提取任何来自你物品栏中的矿石,无论你身在何地,并将它们放到矿石处理系统中;如果你在离你基底很远的地方采矿,并且你想要让采掘的矿物立即送回家,这会很方便。" + }, + { + "type": "crafting", + "recipe": "modularrouters:regex_filter" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/augments.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/augments.json new file mode 100644 index 000000000000..07f90db98b4b --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/augments.json @@ -0,0 +1,19 @@ +{ + "name": "拓展", + "icon": "modularrouters:augment_core", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)拓展/$和$(l:intro/upgrades)升级/$相似,但用于$(l:intro/modules)模块/$而不是$(l:intro/item_router)模块化路由器/$。每个模块都有可以安装 4 个拓展的栏位(一些拓展可以堆叠)。拓展可以各种方式增强或拓展模块的功能。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/augments.png" + ], + "text": "$(italic)一个带有 6 个范围扩大拓展和经验真空拓展的真空模块/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/filters.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/filters.json new file mode 100644 index 000000000000..5cad000821ef --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/filters.json @@ -0,0 +1,19 @@ +{ + "name": "智能过滤器", + "icon": "modularrouters:bulk_item_filter", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)智能过滤器/$可以代替常规物品放入$(l:intro/modules)模块/$的过滤器栏位中。和直接匹配物品不同,过滤器有特殊的匹配功能。$(p)比方说,$(l:filters/bulk_item)批量物品过滤器/$可以高效的匹配 54 种不同的物品,且其物品可以直接从现有容器中配置。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/bulk_filter.png" + ], + "text": "$(italic)安装在抽取模块 2 型中的批量物品过滤器/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/item_router.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/item_router.json new file mode 100644 index 000000000000..28c88d143695 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/item_router.json @@ -0,0 +1,15 @@ +{ + "name": "模块化路由器总览", + "icon": "modularrouters:item_router", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(item)模块化路由器/$是路由系统的核心方块。仅凭路由器自己,它最多只能提供一个栏位的物品栏(可以通过漏斗和其他模组的管道系统进行输入或输出)。$(p)然而,想要通过路由器做任何有用的事,你需要安装一个或多个(最多九个)$(l:intro/modules)模块/$。" + }, + { + "type": "text", + "text": "每当路由器走过一个路由器刻——默认每秒一次——它就会按照顺序执行所有安装的模块。每个模块都会对缓存区的物品或路由器周围的世界进行特定的操作——查看$(bold)模块/$部分以了解每种单独的模块类型。$(p)路由器的操作也可以通过$(bold)升级/$修改——将其加速、每路由器刻处理更多物品、增加特定模块的范围……" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/misc.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/misc.json new file mode 100644 index 000000000000..450daec97b03 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/misc.json @@ -0,0 +1,26 @@ +{ + "name": "杂项", + "icon": "minecraft:book", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "此章节介绍了一些杂项物品和合成部件。" + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "见$(l:upgrades/security#override)安全升级/$。" + }, + { + "type": "crafting", + "recipe": "modularrouters:blank_module", + "recipe2": "modularrouters:blank_upgrade" + }, + { + "type": "crafting", + "recipe": "modularrouters:augment_core" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/modules.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/modules.json new file mode 100644 index 000000000000..92c11aba7de6 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/modules.json @@ -0,0 +1,50 @@ +{ + "name": "模块", + "icon": "modularrouters:breaker_module", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)模块/$可以放进$(l:intro/item_router)模块化路由器中/$并告诉路由器干什么。有 20 种模块类型,每种都有特定的功能。不过,所有模块都具有共性:$(li)所有模块都有 9 个$(thing)过滤器栏位/$来控制模块处理的物品。$(li)许多模块有明确的$(thing)方向/$,和路由器的朝向有关。" + }, + { + "type": "text", + "text": "$(li)一些模块有用于配置相关功能的额外设置。$(p)这些都可以在模块的 GUI 中配置,你可以手持模块时$(thing)右击/$来访问 GUI。$(p)你还可以通过鼠标悬浮在模块中按$(4)$(bold)[$(k:modularrouters.configure)]/$或$(thing)鼠标中键/$在路由器GUI中配置安装好的模块,无需将其从路由器中移出。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/module_gui.png" + ], + "text": "$(italic)模块 GUI:有关 GUI 每个部分的描述,请查阅以下页面/$", + "border": true + }, + { + "type": "text", + "title": "1. 过滤器栏位", + "anchor": "filter", + "text": "总共有九个过滤器栏位,你可以将任何物品或方块的拷贝放入其中。只有当路由器$(thing)缓存区/$中的物品与过滤器中的某个物品匹配(白名单时;黑名单则相反)模块才会运作。" + }, + { + "type": "text", + "anchor": "direction", + "title": "2. 方向选择器", + "text": "大多数模块以明确的方向运作,和路由器的朝向有关。你可以在这里定义方向。/$(p)一些模块(例如$(l:modules/sender2)发送 2 型/$)直接指向一个远处的方块,因此没有可定义的方向。这种情况下,方向选择器将为空白。" + }, + { + "type": "text", + "title": "3. 过滤器控制", + "text": "这里有一些按钮,它们控制着:$(li)白名单 / 黑名单$(li)是否匹配物品的损害值(用于有耐久度的物品)$(li)是否匹配物品 NBT,例如魔咒$(li)是否按$(l:https://zh.minecraft.wiki/w/%E6%A0%87%E7%AD%BE)物品标签/$匹配$(p)还有一个用于控制$(l:router/termination)终止行为/$的按钮,在单独一页中有解释。" + }, + { + "type": "text", + "title": "4. 拓展", + "text": "每个模块都有四个$(thing)拓展/$栏位,可以放入拓展(用于模块的升级)。$(p)可以放入的拓展种类取决于模块类型;不是每个模块类型都接受所有拓展类型。" + }, + { + "type": "text", + "title": "5. 额外设置", + "text": "一些模块有额外配置选项。比方说,之前展示的$(l:modules/detector)检测模块/$有设置红石输出等级的选项,以及输出信号为强或弱充能的选项。$(p)当模块有类似的选项时,它们会在 GUI 的右侧显示出来。" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/overview.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/overview.json new file mode 100644 index 000000000000..a92ec125237e --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/overview.json @@ -0,0 +1,20 @@ +{ + "name": "总览", + "icon": "minecraft:cake", + "category": "intro", + "priority": "true", + "pages": [ + { + "type": "text", + "text": "欢迎来到$(#228)模块化路由器$()!$(p)这是一个高度灵活的模组,能够以多种方式在世界中搬运物品。你只需要用一个方块——$(thing)模块化路由器/$——以及一个或多个可插入的$(thing)模块/$,就可以从任何容器中抽取物品、将它们发送到或近或远的其他容器中、放置方块、破坏方块、投掷物品到世界中、分类物品,还有更多可以做的事。" + }, + { + "type": "image", + "text": "$(italic)把它想象成一个更强大的可调节性极高的漏斗……/$", + "images": [ + "modularrouters:textures/patchouli/item_router.png" + ], + "border": "true" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/upgrades.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/upgrades.json new file mode 100644 index 000000000000..85233f648cb2 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/upgrades.json @@ -0,0 +1,11 @@ +{ + "name": "升级", + "icon": "modularrouters:speed_upgrade", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)升级/$可在多种方面提升$(l:intro/item_router)模块化路由器/$的功能。共有 8 种不同的升级,每个模块化路由器有 5 个升级栏位。$(p)你可以在升级栏位中放置多个升级,尽管每种可以放入路由器的升级数量有限;见单独介绍升级的页面或升级物品的提示以了解更多信息。" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/activator.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/activator.json new file mode 100644 index 000000000000..4dbd5808d786 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/activator.json @@ -0,0 +1,34 @@ +{ + "name": "执行模块", + "category": "modules", + "icon": "modularrouters:activator_module", + "pages": [ + { + "type": "text", + "text": "这个强大的模块表现得像一个$(italic)假玩家/$,可以对周围的方块或实体使用路由器缓存区中的物品。有三种模式可在 GUI 右边的控制进行选择。以下页面详细描述了每种模式。" + }, + { + "type": "text", + "title": "右击", + "text": "此模式会用路由器缓存区中的物品执行右击操作,和玩家执行是一样的。其中的逻辑与玩家点击是相同的,比如用$(item)打火石/$右击门会打开门,而不是点火。$(p)目标方块(如果有的话)取决于路由器的朝向、模块方向和朝向上方/下方/水平模块设置。" + }, + { + "type": "text", + "title": "右击实体", + "text": "此模式会用路由器缓存区中的物品对附近的一个$(thing)实体/$执行右击操作。例如,你可以使用此模式为牛挤奶,或为绵羊剪毛。$(p)这会导致物品掉落在地面上,比如用路由器缓存区中多于一个的桶点击牛时。" + }, + { + "type": "text", + "title": "攻击实体", + "text": "此模式会用路由器缓存区中的物品对附近的一个一个$(thing)实体/$执行左击操作,对其进行攻击。与其他模式不同,此模式默认会消耗$(l:upgrades/energy)Forge 能量/$。$(p)注:虽然$(l:upgrades/speed)速度升级/$在这里会很有用,但是依然会有武器冷却,因此过量的速度升级只会浪费能量和武器耐久度。" + }, + { + "type": "text", + "text": "执行模块大约有 4 格的距离,和真正的玩家相似。该模块也可以配置成朝向$(thing)上方/$或$(thing)下方/$(默认为$(thing)水平/$)。$(p)$(thing)朝向上方/$对于在路由器旁或上方的完整方块上种植东西是非常方便,而$(thing)朝向下方/$在你想要直接指向路由器周围而非远处的地面时很有用。" + }, + { + "type": "crafting", + "recipe": "modularrouters:activator_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/breaker.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/breaker.json new file mode 100644 index 000000000000..8ca3755b09e2 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/breaker.json @@ -0,0 +1,23 @@ +{ + "name": "破坏模块", + "category": "modules", + "icon": "modularrouters:breaker_module", + "pages": [ + { + "type": "text", + "text": "该模块会尝试破坏与$(l:router/item_router)路由器/$模块$(l:intro/modules#direction)配置方向/$相邻的方块。$(p)它可以破坏大多数方块,但任何硬度为不可破坏(比如原版的$(item)基岩/$或$(item)末地传送门/$)的方块不可以被破坏,流体方块也无法被破坏。方块破坏后,如果可行,其主要掉落物会被自动放进路由器的物品缓存区。" + }, + { + "type": "text", + "text": "破坏模块可以由任意类型的镐(包括模组中的镐)合成而得,但用于合成模块的镐决定了模块的采集等级。比如你用一把$(item)铁镐/$合成了破坏模块,它就无法破坏$(item)黑曜石/$。$(p)此外,镐上的任何$(thing)魔咒/$都会在模块中生效($(thing)精准采集/$和$(thing)时运/$有特殊用途)。" + }, + { + "type": "text", + "text": "默认状态下破坏模块过滤器会对$(thing)预期掉落的物品生效/$,而不是方块本身。比如过滤$(item)石头/$不会在破坏石头时起效,除非模块开启了$(thing)精准采集/$。在此情况下,你应该过滤$(item)圆石/$。$(p)你可以在模块 GUI 中设置按$(thing)方块/$匹配;这对区分不掉落任何东西的方块很有用,比如$(item)冰/$和$(item)浮冰/$。" + }, + { + "type": "crafting", + "recipe": "modularrouters:breaker_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/creative.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/creative.json new file mode 100644 index 000000000000..fc683a97c343 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/creative.json @@ -0,0 +1,11 @@ +{ + "name": "创造模块", + "category": "modules", + "icon": "modularrouters:creative_module", + "pages": [ + { + "type": "text", + "text": "创造模块是一种无法合成的特殊模块,会无中生有,产生物品进入路由器的缓存区。$(p)它将模块的过滤器作为物品列表,每路由器刻都会以轮询的方式遍历过滤器中的物品。它不会受任何其它过滤器设置的影响(白名单/黑名单,NBT 匹配……)。" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/detector.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/detector.json new file mode 100644 index 000000000000..d05fda6713a3 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/detector.json @@ -0,0 +1,15 @@ +{ + "name": "检测模块", + "category": "modules", + "icon": "modularrouters:detector_module", + "pages": [ + { + "type": "text", + "text": "该模块不会操纵物品,而是检测路由器缓存区中的特定物品。如果缓存区中的物品与模块的过滤器相匹配,它就会使路由器在$(l:intro/modules#direction)配置方向/$发出红石信号。$(p)信号等级(默认:15)和信号充能方式(默认:弱)可以通过模块 GUI 调整。" + }, + { + "type": "crafting", + "recipe": "modularrouters:detector_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/distributor.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/distributor.json new file mode 100644 index 000000000000..d80e5a085297 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/distributor.json @@ -0,0 +1,19 @@ +{ + "name": "分配模块", + "category": "modules", + "icon": "modularrouters:distributor_module", + "pages": [ + { + "type": "text", + "text": "这是$(l:modules/sender_2)发送模块 2 型/$的拓展版本,可以向多个目标发送物品。$(thing)潜行右击/$容器将其加入分配模块,再次$(thing)潜行右击/$容器将其移除。$(p)分配模块最多可以向8个目标分配物品。" + }, + { + "type": "text", + "text": "通过 GUI 右侧的控制可以控制分配策略:$(li)$(bold)轮询/$——轮回为每个容器分配,尽可能地平均$(li)$(bold)随机/$——随机选取其中一个目标$(li)$(bold)最近/$——总是填充最近且有空位的目标$(li)$(bold)最远/$——总是填充总是填充最远且有空位的目标。" + }, + { + "type": "crafting", + "recipe": "modularrouters:distributor_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/dropper.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/dropper.json new file mode 100644 index 000000000000..8603a4e6eaa9 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/dropper.json @@ -0,0 +1,15 @@ +{ + "name": "投掷器模块", + "category": "modules", + "icon": "modularrouters:dropper_module", + "pages": [ + { + "type": "text", + "text": "该模块会试着从路由器缓存区投掷物品,将其变为世界中的物品实体。此掉落物会在以模块的$(l:intro/modules#direction)配置方向/$与路由器相邻的位置。物品实体放置时速度为零,和为物品增加烦人的随机速度的原版$(item)投掷器/$不同。" + }, + { + "type": "crafting", + "recipe": "modularrouters:dropper_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_distributor.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_distributor.json new file mode 100644 index 000000000000..bc5279a19433 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_distributor.json @@ -0,0 +1,19 @@ +{ + "name": "能量分配模块", + "category": "modules", + "icon": "modularrouters:energy_distributor_module", + "pages": [ + { + "type": "text", + "text": "该模块很像$(l:modules/energy_output)能量输出/$和$(l:modules/distributor)分配/$模块的结合,因为它可为至多 8 个附近的能量接收方块无线分配 FE(Forge 能量)。$(p)$(thing)潜行右击/$一个方块将其添加至能量分配模块,再次$(thing)潜行右击/$方块将其移除。" + }, + { + "type": "text", + "text": "和$(l:modules/energy_output)能量输出模块/$相似,该模块会从路由器的内部能量缓存区(如果安装了任何$(l:upgrades/energy)能量升级/$)或路由器物品缓存区中的承载能量的物品中提取能量。优先使用内部能量缓存区。" + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_distributor_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_output.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_output.json new file mode 100644 index 000000000000..a859405a5f38 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_output.json @@ -0,0 +1,15 @@ +{ + "name": "能量输出模块", + "category": "modules", + "icon": "modularrouters:energy_output_module", + "pages": [ + { + "type": "text", + "text": "该模块会试图从路由器中向其配置方向相邻的能量接收方块输出 FE(Forge 能量)。该模块会从路由器的内部能量缓存区(如果安装了任何$(l:upgrades/energy)能量升级/$)或路由器物品缓存区中的承载能量的物品中提取能量。优先使用内部能量缓存区。" + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_output_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_1.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_1.json new file mode 100644 index 000000000000..bd14cc1c3ed4 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_1.json @@ -0,0 +1,31 @@ +{ + "name": "挤出模块 1 型", + "category": "modules", + "icon": "modularrouters:extruder_module_1", + "pages": [ + { + "type": "text", + "text": "该模块会向模块配置方向延伸和收回一行方块(来自路由器缓存区)。$(p)默认状态下,该模块会在路由器收到红石信号后延伸方块,并在路由器没有信号时收回它们,但是可以向模块添加红石增强来自定义其行为。" + }, + { + "type": "text", + "text": "使用该模块,可以建造大型的延伸桥和门(如果你曾使用过来自 1.7.10 Tinker's Mechworks 模组的造桥器,你会对这个功能很熟悉)。$(li)也看看$(l:upgrades/camouflage)伪装升级/$,它对隐藏路由器很有用。$(li)默认范围(既可以放置的方块数量)为 12 个,最高可以被$(l:augments/range_up)范围扩大拓展/$增加至 24 个。" + }, + { + "type": "text", + "text": "$(li)如果你在其方块延伸时改变了模块的方向,路由器可能会有一点困惑。在这种情况下,破坏并重放路由器会有帮助。$(li)如果你在方块延伸时破坏了路由器,它不会记住这事,因此你需要手动移除这些方块。" + }, + { + "type": "text", + "text": "$(li)如果你有多个安装挤出模块的路由器(例如用于较宽的门或桥),你也许会发现$(l:upgrades/sync)同步升级/$在保证它们在同一游戏刻运行很有用。$(li)挤出模块(和$(l:modules/placer)放置模块/$一样)也可以在耕地上种植作物种子,在相邻的丛林原木上种植可可豆。" + }, + { + "type": "text", + "text": "需要注意的是用于此模块的$(l:modules/breaker)破坏模块/$会将其采集等级(和魔咒)转移到该模块上。因此,比如你想让你的挤出模块破坏$(item)黑曜石/$,请确保使用$(item)钻石镐/$合成的破坏模块!" + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_1" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_2.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_2.json new file mode 100644 index 000000000000..a0f7e51f2678 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_2.json @@ -0,0 +1,19 @@ +{ + "name": "挤出模块 2 型", + "category": "modules", + "icon": "modularrouters:extruder_module_2", + "pages": [ + { + "type": "text", + "text": "该模块表现和$(l:modules/extruder_1)挤出模块 1 型/$相似,但有几个重要的差别:$(li)2 型模块不会从路由器缓存器中放置物品,而是来自模块内定义的模板。$(li)此模板会在模块 GUI 右侧出现,有 9 个栏位,并且每个栏位可以放多个物品。放置在模板中的物品为“幽灵”物品。" + }, + { + "type": "text", + "text": "$(li)挤出的方块是“虚拟”的——一种高效的无中生有,但破坏时不会掉落任何东西,也不能被正常合成。$(li)因此,该模块不适合像挤出 1 型一样收获方块,但可以用于放置比 1 型更复杂样式的门/桥等。。$(li)挤出 2 型的默认范围为 24 格,可以被范围升级增加至 48 格。" + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_2" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/flinger.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/flinger.json new file mode 100644 index 000000000000..8b2ca87faf86 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/flinger.json @@ -0,0 +1,19 @@ +{ + "name": "投掷模块", + "category": "modules", + "icon": "modularrouters:flinger_module", + "pages": [ + { + "type": "text", + "text": "该模块和$(l:modules/dropper)投掷器模块/$行为相似,只不过它会为投掷的物品提供可配置的速度,能够将物品扔出可观的距离。你可以通过模块 GUI 调整物品速度、俯仰和偏转角。$(li)俯仰和偏转角按角度计量,相对于基本俯仰和偏转角。" + }, + { + "type": "text", + "text": "$(li)如果模块向上或向下弹出,基准俯仰角分别为 +90° 或 -90°。否则,基准俯仰角为 0°。$(li)如果模块向上或向下弹出,基准偏转角为路由器面向的方向。否则基准偏转角将从模块朝向中获取。$(li)示例:投掷速度 1.0、俯仰/偏转角 0°、水平模块朝向,将会将沿地面将一个物品投掷约7格远。" + }, + { + "type": "crafting", + "recipe": "modularrouters:flinger_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid.json new file mode 100644 index 000000000000..0d4bb73040f4 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid.json @@ -0,0 +1,31 @@ +{ + "name": "流体模块 1 型", + "category": "modules", + "icon": "modularrouters:fluid_module", + "pages": [ + { + "type": "text", + "text": "虽然路由器不能直接处理流体(它们没有内部储罐),但当缓存区有存储流体物品时可以操控流体。这包括桶和任何其他模组添加的流体容器。" + }, + { + "type": "text", + "text": "流体模块的 GUI 可以设置传输方向:$(li)$(bold)传输至路由器/$意味着路由器将会尝试从相邻方块(世界中的流体或承载流体的方块)中提取流体至缓存区的承载流体的物品中。$(li)$(bold)从路由器传出/$意味着路由器将会尝试从缓存区承载流体的物品中将流体输出至世界;要么将流体倒出,要么将其放入相邻的储罐中。" + }, + { + "type": "text", + "text": "其 GUI 也可以设置最大传输速率。请注意它将会$(italic)尝试/$这个最大值,其仍然会被路由器整体的传输速率限制,也就是每秒 1 桶,以及外部流体或流体容器的传输速率。$(p)流体模块过滤栏位只能接受容纳流体的物品,并且会按照容纳的流体过滤,而不是容器物品。" + }, + { + "type": "text", + "text": "添加$(l:upgrades/speed)速度升级/$不会使传输流体更快,只会让其更加频繁。带有 9 个速度升级的路由器依然只能每秒传输 1 桶,只不过会以小数量更频繁地传输。想要增加其总体的传输速率,需添加$(l:upgrades/fluid)流体传输升级/$。$(p)如果路由器盛装了任何危险的流体,比如熔岩桶,请非常小心的修改流体模块设置。如果你搞错了,路由器可不会犹豫将熔岩倒在你身上……" + }, + { + "type": "text", + "text": "请注意,$(bold)如果/$缓存区内有一个流体容器,你也可以将路由器与其他模组的流体管道连接,并将流体输入或输出路由器;流体将会被直接导入/导出容器物品。$(p)你$(italic)不/$需要安装流体模块来干这个;只有你想要主动输出或输入流体时需要流体模块。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid_2.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid_2.json new file mode 100644 index 000000000000..f71c3421a90c --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid_2.json @@ -0,0 +1,19 @@ +{ + "name": "流体模块 2 型", + "category": "modules", + "icon": "modularrouters:fluid_module_2", + "pages": [ + { + "type": "text", + "text": "和$(l:modules/fluid_1)流体模块 1 型/$相似,该模块可以将流体传输至或传输出路由器,如果缓存区有一个承载流体的物品。然而,该模块也可以将远处的方块作为目标,最多 12 格远(有$(l:augments/range_up)范围扩大拓展/$时最多可达 24 格)。" + }, + { + "type": "text", + "text": "用该模块$(thing)潜行右击/$任意方块将其设置为目标。$(p)请注意目标方块并不一定需要是流体储罐;如果你在设置模块目标后破坏该方块,模块可以将一桶流体倒入世界中的那个位置。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module_2" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/placer.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/placer.json new file mode 100644 index 000000000000..5e4ec178a1f8 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/placer.json @@ -0,0 +1,19 @@ +{ + "name": "放置模块", + "category": "modules", + "icon": "modularrouters:placer_module", + "pages": [ + { + "type": "text", + "text": "该模块会尝试从路由器缓存区取出物品以放置方块,放在路由器模块的$(l:intro/modules#direction)配置方向/$相邻的位置。$(li)如果物品不是一个方块或目标空间被阻挡,就不会发生任何事。$(li)遵循普通 Minecraft 的放置规则;比如甘蔗只能放置在临水的沙子/泥土上。" + }, + { + "type": "text", + "text": "$(li)流体方块,以及如高草丛一类的可替换方块,将会被替换。$(li)放置模块可以在耕地上种植种子,在相邻丛林原木上放置可可豆。" + }, + { + "type": "crafting", + "recipe": "modularrouters:placer_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/player.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/player.json new file mode 100644 index 000000000000..acf604716fee --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/player.json @@ -0,0 +1,31 @@ +{ + "name": "玩家模块", + "category": "modules", + "icon": "modularrouters:player_module", + "pages": [ + { + "type": "text", + "text": "该模块会尝试将物品在路由器和玩家物品栏之间传输。该玩家可以在任何维度的任何地方,因此这是一个非常强大的模块。$(p)该模块可以对玩家输入或输出物品;你可以在模块的 GUI 中进行设置。" + }, + { + "type": "text", + "text": "$(p)模块可以对玩家的 36 栏位主物品栏、4 栏位盔甲物品栏、副手栏或者末影物品栏(由原版$(item)末影箱/$显示)进行操作。你也可以在模块 GUI 中进行设置。当然,$(p)提取/输入的物品可以通过模块被过滤。" + }, + { + "type": "text", + "text": "一个优秀的模块使用案例为从玩家物品栏中提取矿石/圆石/泥土等物品,并将其发送至玩家基地中的主存储系统。加上一点小设计,就可以建立一个用于自动替换盔甲套装的系统(加上来自另一个模组的无线红石,也许还可以在野外实现……)。" + }, + { + "type": "text", + "text": "玩家模块与一位特定的玩家对应;物品提示会显示所有者。它设置为最初合成该模块的玩家,但可以手持模块潜行右击来覆盖。如果你通过其它手段(创造、JEI 作弊模式……)获得了该模块,你也许也需要这么做。" + }, + { + "type": "text", + "text": "将安全升级和该模块合并使用也许是在有不信任玩家服务器中的明智之举;你不会希望一个恶意玩家窃取这个模块……" + }, + { + "type": "crafting", + "recipe": "modularrouters:player_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_1.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_1.json new file mode 100644 index 000000000000..bc4a32a00210 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_1.json @@ -0,0 +1,15 @@ +{ + "name": "抽取模块 1 型", + "category": "modules", + "icon": "modularrouters:puller_module_1", + "pages": [ + { + "type": "text", + "text": "该模块会尝试抽取来自其$(l:intro/modules#direction)配置方向/$相邻的容器中的第一个可抽取物品,放进路由器的缓存区。如果缓存区已满或不存在可以与物品栏中物品堆叠的物品,就不会抽取任何东西。" + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_1" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_2.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_2.json new file mode 100644 index 000000000000..e73fc197b5c8 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_2.json @@ -0,0 +1,20 @@ +{ + "name": "抽取模块 2 型", + "category": "modules", + "icon": "modularrouters:puller_module_2", + "pages": [ + { + "type": "text", + "text": "此模块与$(l:modules/puller_1)抽取 1 型/$行为相似,但可以从非相邻的容器中抽取物品。$(p)容器最远可以达到 12 格(有$(l:augments/range_up)范围扩大拓展/$时最多可以达 24);$(italic)不/$需要清除连线处的障碍物。" + }, + { + "type": "text", + "text": "$(li)用抽取模块 2 型$(thing)潜行右击/$方块以选择目标容器。你将会收到一条确认信息。$(li)当手持设定目标的抽取 2 型时,目标方块将会被高亮显示。" + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_2", + "recipe2": "modularrouters:puller_module_2_x4" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_1.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_1.json new file mode 100644 index 000000000000..b7a7fca24563 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_1.json @@ -0,0 +1,16 @@ +{ + "name": "发送模块 1 型", + "category": "modules", + "icon": "modularrouters:sender_module_1", + "pages": [ + { + "type": "text", + "text": "该模块会尝试从路由器缓存区发送物品至与模块$(l:intro/modules#direction)配置方向/$相邻的容器中:$(li)目标容器最多可以离 8 格远(有$(l:augments/range_up)范围扩大拓展/$时最多可以有 16 格远)$(li)目标容器$(italic)必须/$沿 X、Y 或 Z 轴与路由器成直线。$(li)路由器$(italic)必须/$清除与目标连线间的障碍物;不能是不透明方块,但玻璃、栅栏、铁栏杆等方块可以。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_1", + "recipe2": "modularrouters:sender_module_1_alt" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_2.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_2.json new file mode 100644 index 000000000000..6f594ce3907d --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_2.json @@ -0,0 +1,20 @@ +{ + "name": "发送模块 2 型", + "category": "modules", + "icon": "modularrouters:sender_module_2", + "pages": [ + { + "type": "text", + "text": "该模块和$(l:modules/sender_1)发送模块 1 型/$行为相似,但是有更为强大的容器连接能力:$(li)目标容器可以达 24 格远(有$(l:augments/range_up)范围扩大拓展/$时可达 48 格)。$(li)$(italic)不/$需要清除连线上的障碍物。" + }, + { + "type": "text", + "text": "$(li)用发送模块 2 型$(thing)潜行右击/$目标容器,将其选中。你会收到一条确认信息。$(li)当手持设定目标的发送 2 型时,目标方块将会被高亮显示。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_2", + "recipe2": "modularrouters:sender_module_2_x4" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_3.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_3.json new file mode 100644 index 000000000000..ce5badc1e427 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_3.json @@ -0,0 +1,15 @@ +{ + "name": "发送模块 3 型", + "category": "modules", + "icon": "modularrouters:sender_module_3", + "pages": [ + { + "type": "text", + "text": "这个最高阶的发送模块运作方式和$(l:modules/sender_3)发送 2 型/$非常相似,但是可以不受限制地向(任何维度的)任何容器发送物品!$(p)注:目标容器必须被区块加载;$(#228)模块化路由器$()不会为你做这件事。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_3" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/vacuum.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/vacuum.json new file mode 100644 index 000000000000..eb41d904da76 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "真空模块", + "category": "modules", + "icon": "modularrouters:vacuum_module", + "pages": [ + { + "type": "text", + "text": "该模块会在路由器周围 13x13x13 的立方区域内扫描掉落的物品(即每个方向 6 格远),如果可行,就将它们吸入路由器的缓存区中。$(p)通过$(l:augments/range_up)范围扩大拓展/$可以将最大范围增加到 25x25x25(每个方向 12 格),或通过$(l:augments/range_down)范围缩小拓展/$将范围减少到只有 3x3x3。" + }, + { + "type": "text", + "text": "如果模块的$(l:intro/modules#direction)配置方向/$为$(bold)所有方向/$(默认状态下),扫描的区域将以路由器为中心。$(p)如果模块有配置过的方向,区域将会以该方向偏离 6 格,同时每安装一个范围扩大拓展就会再多一格,每安装一个范围缩小拓展就会再少一格。$(p)比如,方向为$(bold)上方/$时,模块将只会扫描其正上方的一块区域。" + }, + { + "type": "crafting", + "recipe": "modularrouters:vacuum_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/void.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/void.json new file mode 100644 index 000000000000..6ad2f24f3998 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/void.json @@ -0,0 +1,15 @@ +{ + "name": "销毁模块", + "category": "modules", + "icon": "modularrouters:void_module", + "pages": [ + { + "type": "text", + "text": "这个危险的模块会永久地销毁路由器缓存区的物品!强烈建议用$(l:intro/modules#filter)白名单过滤器/$来配置这个模块以防止宝贵物品被意外删除……" + }, + { + "type": "crafting", + "recipe": "modularrouters:void_module" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/item_router.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/item_router.json new file mode 100644 index 000000000000..83f8d2eaf406 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/item_router.json @@ -0,0 +1,53 @@ +{ + "name": "模块化路由器", + "icon": "modularrouters:item_router", + "category": "router", + "pages": [ + { + "type": "text", + "text": "$(thing)模块化路由器/$是本系统的核心。它负责执行所有插入其中的模块,以各种方式移动物品、方块和流体。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/router_gui.png" + ], + "text": "$(italic)装有数个模块和升级的模块化路由器 GUI", + "border": true + }, + { + "type": "text", + "title": "1. 缓存区", + "text": "$(thing)模块化路由器/$有一格栏位的缓存区,可以存放一组物品。该缓存区和正常物品栏一样开放,因此可以通过$(item)漏斗/$和其他模组的运输系统与其进行互动。$(p)此外,对着路由器放置的$(item)比较器/$将会测量栏位的空满程度。" + }, + { + "type": "text", + "title": "2. 模块栏位", + "text": "$(thing)模块化路由器/$有九个栏位用于安装$(l:intro/modules)模块/$。每当路由器运行一次(每秒 1 至 10 次,取决于速度升级),它就会从左到右轮流$(thing)执行/$每个模块。$(p)你可以在GUI中将鼠标悬浮在模块上方按$(4)$(bold)[$(k:modularrouters.configure)]/$或$(thing)鼠标中键/$就能配置安装的模块,无需将它们移除。" + }, + { + "type": "text", + "title": "3. 升级栏位", + "text": "$(thing)模块化路由器/$有五个栏位用于安装$(l:intro/upgrades)升级/$。升级会以多种方式增强路由器的功能;比如说,每个放入的$(l:upgrades/speed)速度升级/$都会时路由器刻来的更快,而每个$(l:upgrades/stack)堆叠升级/$都可使其每次操作处理更多物品。" + }, + { + "type": "text", + "title": "4. 红石控制", + "text": "$(thing)模块化路由器/$在如何响应红石输入方面具有一定的灵活性,这是通过右上角的按钮控制的:$(li)默认:总是运行,忽视红石信号$(li)只在$(italic)无/$红石信号时运行$(li)只在$(italic)有/$红石信号时运行$(li)从不运行$(li)当接收红石脉冲(任何强度高于先前的信号)时运行$(italic)一次/$。" + }, + { + "type": "text", + "title": "5. 低耗模式", + "text": "本着环境友好的精神,路由器有一个选项,可以让路由器待机一段时间后自动放慢速度。$(p)当低耗模式开启时,如果路由器在上$(ttcolor)$(t:在模组配置中可调——'ecoTimeout')5 秒钟/$都没有可做的事,它就会放慢速度,每$(ttcolor)$(t:在模组配置中可调——'lowPowerTickRate')5 秒/$只运行一次(无视$(l:upgrades/speed)速度升级/$)。然而,当它有可做的事时,就会回到正常的工作速度。" + }, + { + "type": "text", + "title": "低耗模式(续)", + "text": "这主要是为了繁忙的服务器设计,用于节省 CPU 周期,但是,对于任何很少运行并且快速传输物品没有那么重要的路由器来说,这可能是一种很好的选择(比如一个有着$(l:modules/vacuum)真空模块/$定期收集羊毛的绵羊牧场)。" + }, + { + "type": "crafting", + "recipe": "modularrouters:item_router" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/termination.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/termination.json new file mode 100644 index 000000000000..d89fb281d4f3 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/termination.json @@ -0,0 +1,23 @@ +{ + "name": "终止", + "icon": "minecraft:barrier", + "category": "router", + "pages": [ + { + "type": "text", + "text": "这是一个稍微深奥的话题,在大多数情况下你不需要关心这个问题。然而,当你确实需要它时,它将非常有用!" + }, + { + "type": "text", + "text": "终止可以通过滤器栏位下方的'T'按钮进行配置,且每个模块可以单独配置。默认状态下,它不会激活;如果你开启了一个模块的终止选项,那么$(italic)如果/$该模块在路由器刻工作了,路由器就会停止于此。此轮的后续模块(既在该模块右方的模块)将不会被执行。" + }, + { + "type": "text", + "text": "为什么这会很有用?想象一个路由器被提供了很多物品的场景,比如说来自采石场的物品。你希望销毁$(item)圆石/$,并将其他东西送至另一个容器;因此你会添加一个带有圆石白名单的$(l:modules/void)销毁模块/$,以及向别处发送剩余物品的$(l:modules/sender_1)发送模块/$。" + }, + { + "type": "text", + "text": "当路由器运行时,假设缓存区已经有一组圆石了。虚空模块将会销毁一个圆石,然后发送模块将会把剩余的 63 个圆石送至你的存储系统。这也许不是你想要的。$(p)然而,如果你将销毁模块的终止打开,然后当其运行时,路由器将会在那一游戏刻停止;在销毁模块没有事可以做前,发送模块将不会运行。" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/blast.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/blast.json new file mode 100644 index 000000000000..59d1961e5b19 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/blast.json @@ -0,0 +1,15 @@ +{ + "name": "爆炸升级", + "category": "upgrades", + "icon": "modularrouters:blast_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级可使路由器完全免疫爆炸伤害,也不会被boss级生物摧毁。" + }, + { + "type": "crafting", + "recipe": "modularrouters:blast_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/camouflage.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/camouflage.json new file mode 100644 index 000000000000..ea54dfd12e55 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/camouflage.json @@ -0,0 +1,15 @@ +{ + "name": "伪装升级", + "category": "upgrades", + "icon": "modularrouters:camouflage_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级可以让路由器伪装成其它方块。用模块$(thing)潜行+右击/$一个方块,将该方块记录在伪装升级中。将升级放入路由器后,路由器将会变成记录方块的样子。$(p)注:手持$(thing)模块化路由器/$将会高亮显示周围任何的伪装路由器。" + }, + { + "type": "crafting", + "recipe": "modularrouters:camouflage_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/energy.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/energy.json new file mode 100644 index 000000000000..8d7111b9e101 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/energy.json @@ -0,0 +1,35 @@ +{ + "name": "能量升级", + "category": "upgrades", + "icon": "modularrouters:energy_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级给予了路由器一个内置的能量缓存区。每个升级都会增加缓存区大小 50,000 FE ,传输速率 1,000 FE 每$(italic)路由器刻/$(数值在模组配置中可调)。$(p)有几个场景能量升级会很有用,后续页面将会详细说明。" + }, + { + "type": "text", + "title": "1. 能量路由", + "text": "$(l:modules/energy_output)能量输出/$和$(l:modules/energy_distributor)能量分配/$模块都可以主动从路由器的缓存区输出能量至相邻或周围的方块。$(p)有了这些模块,你可以建造一个有着有限的无线能量传输能力的能量单元。" + }, + { + "type": "text", + "title": "2. 模块供电", + "text": "默认情况下,路由器模块不需要任何能量来运行,攻击模式下的$(l:modules/activator)执行模块/$除外。$(p)然而,能耗是可调的,并且你游玩的模组包中其它模块也有可能消耗能量;所有消耗能量的模块都在其物品提示下方列出了能耗数字。" + }, + { + "type": "text", + "title": "3. 物品充能", + "text": "任何路由器缓存区中承载能量的物品都可以将路由器内置缓存区的能量传输至自身,反之也可以。$(p)当承载能量的物品在物品缓存区中时,路由器 GUI 会在缓存区和能量条之间显示一个可调按钮,用于设置能量传输方向。" + }, + { + "type": "text", + "title": "传输速率", + "text": "需要注意的是提示框中标注的传输速率以 FE 每$(italic)路由器刻/$为单位,和 FE/t 不同。路由器刻速率取决于其$(l:upgrades/speed)速度升级/$;没有速度升级时,每 20 服务器刻为一个路由器刻。因此,总体传输速率可能会低于你预期的数值。" + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_upgrade" + } + ] +} \ No newline at end of file diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/fluid.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/fluid.json new file mode 100644 index 000000000000..453c8b5971b5 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/fluid.json @@ -0,0 +1,15 @@ +{ + "name": "流体传输升级", + "category": "upgrades", + "icon": "modularrouters:fluid_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级只会影响$(l:modules/fluid)流体模块 1 型/$和$(l:modules/fluid_2)流体模块 2 型/$。$(p)它可以增加$(l:router/item_router)路由器/$(各个方向;输入和输出)的总体流体传输速率,由 50mB/刻的基准速率,增加 10mB/刻,最高可达 400mB/刻。因此路由器中最多可放 35 个流体传输升级。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/muffler.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/muffler.json new file mode 100644 index 000000000000..795d8c9fe363 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/muffler.json @@ -0,0 +1,19 @@ +{ + "name": "消声器升级", + "category": "upgrades", + "icon": "modularrouters:muffler_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级可以用于消除模块化路由器产生的声音和粒子效果,并且如果一个吵闹的模块经常在玩家附近运行,这可能会很有用。$(li)一个或更多消声器升级将会关闭所有路由器的声效$(li)两个或更多还会关闭所有的粒子效果(光束和飞行的物品)" + }, + { + "type": "text", + "text": "$(li)三个升级还会关闭路由器的启动动画;路由器方块正面的脉冲贴图$(p)请注意,所有声音和粒子效果也可以在模组配置中关闭;该升级只在声音/效果没有关闭的情况下有用。" + }, + { + "type": "crafting", + "recipe": "modularrouters:muffler_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/security.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/security.json new file mode 100644 index 000000000000..a35d7c4844bf --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/security.json @@ -0,0 +1,40 @@ +{ + "name": "安全升级", + "category": "upgrades", + "icon": "modularrouters:security_upgrade", + "pages": [ + { + "type": "text", + "text": "$(thing)安全升级/$有几个重要的功能,详见以下页面。" + }, + { + "type": "text", + "title": "保护", + "text": "安装有安全升级的路由器$(italic)只能/$被该升级白名单中的玩家打开。该升级不能阻止路由器被破坏;但因为破坏的路由器仍然会保留升级和模块,因此玩家不能窃取或重新配置其中的模块/升级。如果你想要防止路由器被破坏,你也许还要探索其他模组的方块保护功能。" + }, + { + "type": "text", + "title": "假玩家", + "text": "几个模块($(l:modules/placer)放置/$、$(l:modules/breaker)破坏/$、$(l:modules/activator)执行/$)以$(thing)假玩家/$的身份运行。默认状态下,这是一个用户名为$(thing)[Modular Routers]/$的玩家,但当安全升级安装后,这些模块以升级所有者的身份运行。在具有领地保护的多人服务器上,这比简单地允许$(thing)[Modular Routers]/$处理领地要安全得多。" + }, + { + "type": "text", + "title": "执行模块攻击模式", + "text": "当$(l:modules/activator)执行模块/$处于$(thing)攻击模式时/$,它会忽视所有在安全升级白名单中的玩家。这通常是一个避免受苦的好主意,如果你有一个高伤害武器在你的路由器中……" + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "$(li)有一个叫做$(thing)安全覆盖卡/$的无法合成物品——它可以通过创造模式或 JEI 作弊模式等方式获得。在主手或副手持有此卡的玩家不会受任何安全升级的影响,并且可以访问任何路由器。" + }, + { + "type": "text", + "text": "你可以用安全升级$(thing)右击/$玩家来向升级中添加额外的玩家。$(p)你可以用安全升级$(thing)潜行右击玩家/$将其移除。$(p)每个安全升级最多可以有 6 名额外玩家(因此加上创造者,总共有 7 位),但如果有必要,你可以安装更多的安全升级。" + }, + { + "type": "crafting", + "recipe": "modularrouters:security_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/speed.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/speed.json new file mode 100644 index 000000000000..3eda4af7f06b --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/speed.json @@ -0,0 +1,19 @@ +{ + "name": "速度升级", + "category": "upgrades", + "icon": "modularrouters:speed_upgrade", + "pages": [ + { + "type": "text", + "text": "默认状态下,$(l:router/item_router)路由器/$每 20 服务器刻运行一次,或者说每秒执行一次。每个路由器刻,所有安装的模块都会按顺序执行,从左到右。$(p)如果你需要一个运行更快的路由器,请添加$(thing)速度升级/$;每个速度升级都会减少 2 服务器刻的刻间隔,最低可达每 2 服务器刻运行一次(或者说每秒运行 10 次)。" + }, + { + "type": "text", + "text": "基准刻速率、每次升级增加的路由器刻以及硬下限刻速率都可以在模块配置中配置(config/modularrouters-common.toml)。$(p)出于性能原因,可能时应该优先考虑$(l:upgrades/stack)堆叠升级/$而不是速度升级;明智地使用速度升级,并且仅在绝对需要最大物品传输速率的情况下使用。$(p)请善待服务器(tm)。" + }, + { + "type": "crafting", + "recipe": "modularrouters:speed_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/stack.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/stack.json new file mode 100644 index 000000000000..37cb4d7d1258 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/stack.json @@ -0,0 +1,19 @@ +{ + "name": "堆叠升级", + "category": "upgrades", + "icon": "modularrouters:stack_upgrade", + "pages": [ + { + "type": "text", + "text": "路由器中的模块一次处理单个物品:比如$(l:modules/sender_1)发送模块/$每路由器刻将会从路由器缓存区中发送一个物品,无论缓存区中有多少个物品。" + }, + { + "type": "text", + "text": "通过像路由器中添加堆叠升级,可以增加单次处理的物品。每个堆叠升级都能使每个模块处理的物品翻倍,最多可达 64 个物品,或者物品的原生堆叠大小(比如$(item)末影珍珠/$为 16 个)。$(p)因此,一个路由器中有效的堆叠升级最多为 6 个。" + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_upgrade" + } + ] +} diff --git a/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/sync.json b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/sync.json new file mode 100644 index 000000000000..ffe9bea00e77 --- /dev/null +++ b/projects/1.16/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/sync.json @@ -0,0 +1,27 @@ +{ + "name": "同步升级", + "category": "upgrades", + "icon": "modularrouters:sync_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级用于保证两个或多个路由器同时运行。同步升级有一个 0 至 19 的调整值(既比 20 的基准路由器刻速率少 1)。该调整值可以通过$(thing)右击/$打开同步升级的 GUI 进行设置,或$(thing)潜行右击/$升级快速设置一个随机值。" + }, + { + "type": "text", + "text": "任何安装此升级的路由器,且调整值相同,$(l:upgrades/speed)速度升级/$的安装数量相同,永远会在统一游戏刻运行。实际的调整值不重要;只要在同步的路由器之间,该值是一致的就行。$(p)当你有一组安装有$(l:modules/extruder_1)挤出模块/$的路由器,并想要确保所有模块同时延展/收回时非常有用。" + }, + { + "type": "text", + "text": "高级注释 #1:同步升级的调整值实际上精确指定路由器相对于其刻速率运行的时间。比如默认时路由器每 20 服务器刻运行一次;一个调整值为 15 的同步升级确保路由器$(italic)总是/$在其的 15 刻后运行,并且对$(italic)所有/$安装有 15 调整值同步升级的路由器适用。而 16 调整值的同步升级永远比 15 调整值的慢 1 刻,至少在所有路由器都有着相同数量的$(l:upgrades/speed)速度升级/$的情况下……" + }, + { + "type": "text", + "text": "高级注释 #2:由于$(l:upgrades/speed)速度升级/$会使路由器运作的更频繁,它们会影响同步升级的运作。一个带有 9 个速度升级的路由器每 2 服务器刻(而不是每 20 刻)运作一次。对于该路由器内的同步升级,只需要关注调整值为奇数还是偶数;2(或 4/6/8……)刻的延迟和 0 刻延迟等效!一般情况:在考虑速度升级后,调整值是按路由器的实际刻速率计算的。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sync_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/lang/en_us.json b/projects/1.18/assets/modular-routers/modularrouters/lang/en_us.json index 5ec993d24525..991ddfb483b7 100644 --- a/projects/1.18/assets/modular-routers/modularrouters/lang/en_us.json +++ b/projects/1.18/assets/modular-routers/modularrouters/lang/en_us.json @@ -78,7 +78,6 @@ "modularrouters.chatText.targetValidation.NOT_LOADED": "§c✘ Not Loaded", "modularrouters.chatText.targetValidation.OK": "§a✔ Target OK", "modularrouters.chatText.targetValidation.OUT_OF_RANGE": "§c✘ Out of Range", - "modularrouters._comment": "JEI text", "modularrouters.gui.config.alwaysShowModuleSettings": "Show module settings tooltips without needing to hold down Shift", "modularrouters.gui.config.baseTickRate": "Base router tick rate (with no Speed Upgrades)", "modularrouters.gui.config.breakerParticles": "Show particle effects when a Breaker Module breaks a block", diff --git a/projects/1.18/assets/modular-routers/modularrouters/lang/zh_cn.json b/projects/1.18/assets/modular-routers/modularrouters/lang/zh_cn.json index 9e26dfeeb6e6..65d30addd5e1 100644 --- a/projects/1.18/assets/modular-routers/modularrouters/lang/zh_cn.json +++ b/projects/1.18/assets/modular-routers/modularrouters/lang/zh_cn.json @@ -1 +1,356 @@ -{} \ No newline at end of file +{ + "block.modularrouters.modular_router": "模块化路由器", + "block.modularrouters.template_frame": "模板框架方块", + "item.modularrouters.activator_module": "执行模块", + "item.modularrouters.augment_core": "拓展核心", + "item.modularrouters.blank_module": "空白模块", + "item.modularrouters.blank_upgrade": "空白升级", + "item.modularrouters.blast_upgrade": "爆炸升级", + "item.modularrouters.breaker_module": "破坏模块", + "item.modularrouters.bulk_item_filter": "批量物品过滤器", + "item.modularrouters.camouflage_upgrade": "伪装升级", + "item.modularrouters.creative_module" : "创造模块", + "item.modularrouters.detector_module": "检测模块", + "item.modularrouters.distributor_module": "分配模块", + "item.modularrouters.dropper_module": "投掷器模块", + "item.modularrouters.energy_distributor_module" : "能量分配模块", + "item.modularrouters.energy_output_module" : "能量输出模块", + "item.modularrouters.energy_upgrade" : "能量升级", + "item.modularrouters.extruder_module_1": "挤出模块1型", + "item.modularrouters.extruder_module_2": "挤出模块2型", + "item.modularrouters.fast_pickup_augment": "快速拾取拓展", + "item.modularrouters.filter_round_robin_augment" : "过滤器轮询拓展", + "item.modularrouters.flinger_module": "投掷模块", + "item.modularrouters.fluid_module_2": "流体模块2型", + "item.modularrouters.fluid_module": "流体模块1型", + "item.modularrouters.fluid_upgrade": "流体传输升级", + "item.modularrouters.GuideBook": "§l§n模块化路由器", + "item.modularrouters.inspection_filter": "检测过滤器", + "item.modularrouters.mimic_augment": "模仿拓展", + "item.modularrouters.mod_filter": "模组过滤器", + "item.modularrouters.muffler_upgrade": "消声器升级", + "item.modularrouters.override_card": "安全覆盖卡", + "item.modularrouters.pickup_delay_augment": "延迟拾取拓展", + "item.modularrouters.placer_module": "放置模块", + "item.modularrouters.player_module": "玩家模块", + "item.modularrouters.puller_module_1": "抽取模块1型", + "item.modularrouters.puller_module_2": "抽取模块2型", + "item.modularrouters.pushing_augment": "推动拓展", + "item.modularrouters.range_down_augment": "范围降级拓展", + "item.modularrouters.rangedown_upgrade": "范围降级", + "item.modularrouters.range_up_augment": "范围升级拓展", + "item.modularrouters.range_upgrade": "范围升级", + "item.modularrouters.redstone_augment": "红石拓展", + "item.modularrouters.regex_filter": "正则过滤器", + "item.modularrouters.regulator_augment": "调节拓展", + "item.modularrouters.security_upgrade": "安全升级", + "item.modularrouters.sender_module_1": "发送模块1型", + "item.modularrouters.sender_module_2": "发送模块2型", + "item.modularrouters.sender_module_3": "发送模块3型", + "item.modularrouters.speed_upgrade": "速度升级", + "item.modularrouters.stack_augment": "堆叠拓展", + "item.modularrouters.stack_upgrade": "堆叠升级", + "item.modularrouters.sync_upgrade": "同步升级", + "item.modularrouters.vacuum_module": "真空模块", + "item.modularrouters.void_module": "销毁模块", + "item.modularrouters.xp_vacuum_augment": "经验吸收拓展", + "key.modularrouters.category": "模块化路由器", + "key.modularrouters.configure": "配置已安装的模块(GUI)", + "key.modularrouters.moduleInfo": "额外的工具提示信息(GUI)", + "modularrouters.chatText.misc.inventoryMerged": "已将%d个物品合并到%s中", + "modularrouters.chatText.misc.targetAdded": "目标已添加(%d/%d):", + "modularrouters.chatText.misc.targetCleared": "目标已移除", + "modularrouters.chatText.misc.targetRemoved": "目标已移除(%d/%d):", + "modularrouters.chatText.misc.targetSet": "目标已设定:", + "modularrouters.chatText.misc.target": "目标:§b%s", + "modularrouters.chatText.misc.tooManyTargets": "目标过多(最大:%d)", + "modularrouters.chatText.security.accessDenied": "§c--[拒绝访问]--", + "modularrouters.chatText.security.ADDED": "添加玩家[%s]", + "modularrouters.chatText.security.ALREADY_ADDED": "玩家[%s]已在此升级中添加", + "modularrouters.chatText.security.ERROR": "无法添加玩家[%s](内部错误)", + "modularrouters.chatText.security.FULL": "安全升级物品已满!", + "modularrouters.chatText.security.NOT_PRESENT": "玩家[%s]已移除", + "modularrouters.chatText.security.REMOVED": "移除玩家[%s]", + "modularrouters.chatText.subtitle.error": "错误", + "modularrouters.chatText.subtitle.success": "成功", + "modularrouters.chatText.subtitle.thud": "*砰的一声*", + "modularrouters.chatText.targetValidation.NOT_INVENTORY": "§c✘ 无物品栏", + "modularrouters.chatText.targetValidation.NOT_LOADED": "§c✘ 未加载", + "modularrouters.chatText.targetValidation.OK": "§a✔ 目标合格", + "modularrouters.chatText.targetValidation.OUT_OF_RANGE": "§c✘ 超出范围", + "modularrouters.gui.config.alwaysShowModuleSettings": "显示模块设置工具提示,而无需按住Shift键", + "modularrouters.gui.config.baseTickRate": "基本路由器速率(无速度升级)", + "modularrouters.gui.config.breakerParticles": "当破坏模块破坏方块时显示粒子效果", + "modularrouters.gui.config.ctgy.misc": "杂项", + "modularrouters.gui.config.ctgy.misc.tooltip": "其他设置", + "modularrouters.gui.config.ctgy.module": "模块", + "modularrouters.gui.config.ctgy.module.tooltip": "模块化路由器模块的配置设置", + "modularrouters.gui.config.ctgy.router": "路由器", + "modularrouters.gui.config.ctgy.router.tooltip": "模块化路由器的配置设置", + "modularrouters.gui.config.ecoTimeout": "如果路由器开启了节能模式,并待机了许多服务器刻,它将进入低耗模式", + "modularrouters.gui.config.extruder2BaseRange": "挤出模块2型的基础范围(无范围升级)", + "modularrouters.gui.config.extruder2MaxRange": "挤出模块2型的最大范围(带范围升级)", + "modularrouters.gui.config.extruderBaseRange": "挤出模块的基础范围(无范围升级)", + "modularrouters.gui.config.extruderMaxRange": "挤出模块的最大范围(带范围升级)", + "modularrouters.gui.config.extruderPushEntities": "挤出模块1型/2型伸出时可以推动实体", + "modularrouters.gui.config.extruderSound": "当挤出模块伸出或缩回时播放声音", + "modularrouters.gui.config.flingerEffects": "当投掷模块投掷物品时播放声音和烟雾效果", + "modularrouters.gui.config.hardMinTicks": "最小(最快)的路由器运行速率", + "modularrouters.gui.config.lowPowerTickRate": "开启节能模式的路由器在低耗模式下,每经过若干服务器刻才会执行一次路由器刻", + "modularrouters.gui.config.mainTitle": "模块化路由器配置", + "modularrouters.gui.config.moduleGuiBackgroundTint": "把模块GUI的背景色染成模块物品的颜色", + "modularrouters.gui.config.placerParticles": "当放置模块放置方块时显示粒子效果", + "modularrouters.gui.config.puller2BaseRange": "抽取模块2型的基础范围(无范围升级)", + "modularrouters.gui.config.puller2MaxRange": "抽取模块2型的最大范围(带范围升级)", + "modularrouters.gui.config.pullerParticles": "当抽取模块抽取物品时显示粒子效果", + "modularrouters.gui.config.sender1BaseRange": "发送模块1型的基础范围(无范围升级)", + "modularrouters.gui.config.sender1MaxRange": "发送模块1型的最大范围(带范围升级)", + "modularrouters.gui.config.sender2BaseRange": "发送模块2型的基础范围(无范围升级)", + "modularrouters.gui.config.sender2MaxRange": "发送模块2型的最大范围(带范围升级)", + "modularrouters.gui.config.senderParticles": "当发送模块发送物品时显示粒子效果", + "modularrouters.gui.config.startWithGuide": "新玩家在游戏开始时获得指南书", + "modularrouters.gui.config.ticksPerUpgrade": "每次速度升级加速的值", + "modularrouters.gui.config.vacuumBaseRange": "真空模块的基础范围(无范围升级)", + "modularrouters.gui.config.vacuumMaxRange": "真空模块的最大范围(带范围升级)", + "modularrouters.gui.config.vacuumParticles": "真空模块吸收物品时显示颗粒效果", + "modularrouters.guiText.label.breakMatchType.BLOCK": "匹配方块", + "modularrouters.guiText.label.breakMatchType.ITEM": "匹配掉落物", + "modularrouters.guiText.label.buffer": "缓存区", + "modularrouters.guiText.label.direction": "§e方向设置", + "modularrouters.guiText.label.filters": "过滤器", + "modularrouters.guiText.label.fluidForceEmpty": "强制", + "modularrouters.guiText.label.inspectionOp.EQ": "=", + "modularrouters.guiText.label.inspectionOp.GE": ">=", + "modularrouters.guiText.label.inspectionOp.GT": ">", + "modularrouters.guiText.label.inspectionOp.LE": "<=", + "modularrouters.guiText.label.inspectionOp.LT": "<", + "modularrouters.guiText.label.inspectionOp.NE": "!=", + "modularrouters.guiText.label.inspectionOp.NONE": "", + "modularrouters.guiText.label.inspectionSubject.DURABILITY": "耐久度", + "modularrouters.guiText.label.inspectionSubject.ENCHANT": "魔咒", + "modularrouters.guiText.label.inspectionSubject.ENERGY": "能量储量", + "modularrouters.guiText.label.inspectionSubject.FLUID": "流体储量", + "modularrouters.guiText.label.inspectionSubject.FOOD": "食物营养价值", + "modularrouters.guiText.label.inspectionSubject.NONE": "", + "modularrouters.guiText.label.installed": "(已安装)", + "modularrouters.guiText.label.matchAll.false": "匹配任意", + "modularrouters.guiText.label.matchAll.true": "匹配全部", + "modularrouters.guiText.label.modules": "模块", + "modularrouters.guiText.label.playerOp.EXTRACT": "从玩家提取至路由器", + "modularrouters.guiText.label.playerOp.INSERT": "从路由器输入至玩家", + "modularrouters.guiText.label.playerSect.ARMOR": "盔甲栏", + "modularrouters.guiText.label.playerSect.ENDER": "末影物品栏", + "modularrouters.guiText.label.playerSect.MAIN": "主物品栏", + "modularrouters.guiText.label.playerSect.MAIN_NO_HOTBAR": "主物品栏(不含快捷栏)", + "modularrouters.guiText.label.playerSect.OFFHAND": "副手栏", + "modularrouters.guiText.label.regexError": "无效的正则表达式", + "modularrouters.guiText.label.upgrades": "升级", + "modularrouters.guiText.label.xpVacuum.eject": "输出", + "modularrouters.guiText.label.xpVacuum": "经验类型", + "modularrouters.guiText.popup.activator.action": "§a§n行为 ${br} ${br}§r执行模块可以模拟下列行为:${br}- 使用路由器缓存区的物品右击方块${br}(比如:使用锄,或开关拉杆);${br}- 右击附近的实体${br} ${br}(比如:使用在路由器缓存区中的桶为${br}牛挤奶)。", + "modularrouters.guiText.popup.activator.entity" : "§a§n实体模式 ${br} ${br}§r执行模块时指向周围(三格内)的一${br}个实体:${br}- 最近的实体;${br}- 随机选择一个实体;${br}- 在该范围的所有实体中轮询选择。", + "modularrouters.guiText.popup.activator.look": "§a§n瞄准方向 ${br} ${br}§r右击时,路由器可以:${br}- 瞄准一个水平方向最多四格远、且路${br}由器正对着的方块;${br}- 瞄准一个在路由器方向上加一格正上${br}方的方块;${br}- 瞄准一个在路由器方向上加一格正下${br}方的方块。", + "modularrouters.guiText.popup.activator.sneak": "§a§n潜行 ${br} ${br}§r设置路由器模拟右击时是否应该潜行。", + "modularrouters.guiText.popup.augments": "§a§n拓展 ${br} ${br}§r这四个栏位可以放置模块拓展。你可${br}以合成模块拓展并放入模块来更改或${br}增强模块的功能。 ${br} ${br}参阅模块拓展物品提示来了解每个${br}拓展的作用。 ${br} ${br}请注意,你只有手持单个模块才能${br}放置/取出拓展,这是为了避免拓展${br}被复制。", + "modularrouters.guiText.popup.breaker.matchType" : "§a§n匹配类型 ${br} ${br}§r- 匹配掉落物:当破坏方块时,过滤器${br}会匹配该方块掉落的物品(注意精准${br}采集会影响掉落)${br}- 匹配方块:过滤器匹配方块本身,${br}比如过滤器有石头,则会匹配石头${br}方块,不会受精准采集影响(即使${br}掉落物仍是圆石)", + "modularrouters.guiText.popup.detector.signalLevel": "§a§n红石信号等级 ${br} ${br}§r在这里你可以指定一个红石信号强度,${br}这是一个0到15之间(包含0和15)的整数。${br}当路由器缓存区中的物品与过滤器匹配${br}时路由器将会输出与之相同强度的信号。", + "modularrouters.guiText.popup.detector.weakStrong": "§a§n红石信号充能方式 ${br} ${br}§r-§o弱充能§r 的红石信号只会充能相邻${br}的方块;${br}-§o强充能§r 的红石信号除了充能相邻${br}的方块之外,还能使该方块进一步${br}充能其相邻的方块(类似原版的${br}红石中继器)。", + "modularrouters.guiText.popup.direction": "§a§n方向控制 ${br} ${br}§rGUI里的这个部分允许你指定模块工作${br}的方向。显示的方向基准相对于路由${br}器的正面。默认的方向是“无”,${br}在大多数情况下这意味着放置的模块${br}不会工作,因此你将需要指定一个方向。", + "modularrouters.guiText.popup.distributor.direction" : "§a§n传输方向 ${br} ${br}§r在这里你可以控制路由器向哪里发送${br}物品,或从哪里接收物品。", + "modularrouters.guiText.popup.distributor.strategy": "§a§n分配策略 ${br} ${br}§r这定义了分配模块分配物品的方式,${br}分别存在四种可以设定的策略:${br} ${br}§e轮询§r - 按顺序依次尝试将物品送入绑定的${br}全部容器。 ${br} ${br}§e随机§r - 每游戏刻将物品随机送入绑定的不同${br}的容器。${br} ${br}§e最近§r - 将物品优先送入离路由器最近的绑定${br}的容器 ${br} ${br}§e最远§r - 将物品优先送入离路由器最远的绑定${br}的容器", + "modularrouters.guiText.popup.extruder2.template": "§a§n模板 ${br} ${br}§r你可以在这里指定挤出的方块模板;需要注意的是挤出模块放置的并不是${br}真正的方块,而是一种特殊的不可合成、${br}不可采集的模板方块。 ${br} ${br}在模板栏中标记用来挤出的方块;${br}模块会以从左至右、从上至下的方式${br}依次放置设定的方块。你也可以让${br}挤出模块连续放置多个同种物品(单击${br}或右击模板中的物品来调节)。 ${br} ${br}注意:你可以放置非方块物品(比如木棍);${br}虽然这些方块不能被放置到世界中,${br}但是它们可以充当间隔,在挤出的${br}行列中加入空气方块。", + "modularrouters.guiText.popup.filter": "§a§n过滤器 ${br} ${br}§r在此处标记物品和方块,以精确的控制${br}模块的工作。如果过滤器和缓存区里的${br}物品不匹配,那么这个模块将不会工作,${br}另请参阅下方的过滤器控制按钮。", + "modularrouters.guiText.popup.filterControl": "§a§n过滤器控制 ${br} ${br}§r这些按钮控制着过滤器如何影响路由器${br}的缓存区。阅读每个按钮的提示以获取${br}更多信息。", + "modularrouters.guiText.popup.flinger.pitch": "§a§n抛射俯仰角 ${br} ${br}§r这是抛射角度在竖直方向上的偏移量,${br}以度为单位:${br} ${br}- 如果模块朝向是水平的,这表示相对${br}于水平轴(X轴或Z轴)上或下的夹角${br}- 如果模块朝向是竖直的,这表示相对${br}于Y轴的夹角。", + "modularrouters.guiText.popup.flinger.speed": "§a§n抛射速度 ${br} ${br}§r这是路由器将物品扔出去时物品飞出去${br}的速度。 ${br} ${br}用一个粗糙的例子来说明,以1.0速度${br}和30°角度扔出去的物品(模块朝向${br}水平方向)会落在2格远的地方。", + "modularrouters.guiText.popup.flinger.yaw": "§a§n抛射偏转角 ${br} ${br}§r这是抛射角度在水平方向上的偏移量,${br}以度为单位:${br} ${br}- 如果模块朝向是水平的,这表示相对${br}于水平轴(X轴或Z轴)左或右的夹角 ${br}- 如果模块朝向是竖直的,这表示相对${br}于Y轴的夹角。仅当设定的值非零时起效。", + "modularrouters.guiText.popup.fluid.direction": "§a§n传输方向 ${br} ${br}§r你可以控制路由器是将流体输出到世界${br}或储罐中去,还是从世界或储罐中提${br}取流体到路由器。", + "modularrouters.guiText.popup.fluid.forceEmpty": "§a§n强制清空 ${br} ${br}§r当你在Minecraft内将一桶任意${br}流体倒入与他相同的流体中时,${br}桶中的流体就会永远消失。这可不太好。${br} ${br}默认情况下,流体模块不会尝试将任何${br}流体倒入世界,除非目标方块完全是${br}空的,也就是空气。你可以通过切换${br}“强制”按钮来改变这个设定;启用${br}后,流体模块会毫不犹豫地将缓存区${br}内的流体倒入其他流体中 ${br} ${br}- 但请记住,这样做可能会导致流体${br}白白损耗……", + "modularrouters.guiText.popup.fluid.maxTransfer": "§a§n最大传输量 ${br} ${br}§r这是路由器单次传输时试图传输流体${br}量的上限。 ${br} ${br}注意实际的传输速率仍然会被路由器${br}中流体传输升级的数量和外部容器的${br}传输速率(如果有限)所限制,所以${br}这个值应当被视为对原本传输速率的${br}限制。", + "modularrouters.guiText.popup.noDirection": "§a§n方向控制 ${br} ${br}§rGUI里的这个部分允许你指定模块${br}工作的方向。显示的方向基准相对于${br}路由器的正面。 ${br} ${br}该模块没有方向的概念,因此该区域为空。", + "modularrouters.guiText.popup.player.control": "§a§n玩家模块 ${br} ${br}§r你可以设定:${br}- 路由器是将物品从路由器传输给玩家,还是从将物品从玩家传输到路由器;${br}- 应该与玩家物品存储数据列表的哪一个部分进行交互", + "modularrouters.guiText.popup.xpVacuum": "§a§n经验吸取类型 ${br} ${br}§r你可以在这里指定这个模块如何吸取${br}经验球。可用的选项受不同模组和不同${br}的经验流体影响,但是原版的附魔之瓶${br}总是可用的。 ${br} ${br}如果要以流体形式吸收经验,那么你${br}必须在路由器的缓存区中放置一个${br}可以以mB为单位储存流体的物品${br}(因此,原版桶不可用),或者在路由器${br}旁边放置一个流体容器,然后检查下面${br}的“输出”按钮。", + "modularrouters.guiText.popup.xpVacuum.eject": "§a§n经验流体输出 ${br} ${br}§r如果被选中,路由器会试图将经验流体${br}输出到相邻的合适容器(输出面的检查${br}顺序为:下、上、北、南、西、东)。${br}注意:路由器只能输出经验流体,${br}不能输出经验物品。 ${br} ${br}如果你安装的模组中没有可以在路由器${br}中填充的流体容器,这可能会非常有用。", + "modularrouters.guiText.tooltip.activator.action": "动作", + "modularrouters.guiText.tooltip.activator.entityMode": "实体", + "modularrouters.guiText.tooltip.activator.lookDirection": "朝向", + "modularrouters.guiText.tooltip.activator.sneak": "潜行", + "modularrouters.guiText.tooltip.allDirections": "任何方向", + "modularrouters.guiText.tooltip.BACK": "后方", + "modularrouters.guiText.tooltip.BLACKLIST.1": "白名单${br}模块只会在过滤器匹配时运行${br}空的白名单将不匹配任何物品和方块。", + "modularrouters.guiText.tooltip.BLACKLIST.2": "黑名单${br}模块不会在过滤器匹配时运行${br}空的黑名单将匹配所有物品和方块。", + "modularrouters.guiText.tooltip.clearFilter": "清除过滤数据", + "modularrouters.guiText.tooltip.detectorTooltip": "§b红石信号等级", + "modularrouters.guiText.tooltip.distributor.strategy": "分配策略", + "modularrouters.guiText.tooltip.DOWN": "下方", + "modularrouters.guiText.tooltip.eco.false": "节能模式 §e关 ${br}§7路由器将始终以全速运行。", + "modularrouters.guiText.tooltip.eco.true": "节能模式 §a开 ${br}§7如果路由器进入空闲的时间大于%f秒,它将进入低耗模式,每%f秒检测运行一次。在重新开始处理任何物品时,它将回到正常运行速度。", + "modularrouters.guiText.tooltip.energy.from_router" : "将路由器缓存区的能量传输至物品", + "modularrouters.guiText.tooltip.energy.none" : "无能量传输", + "modularrouters.guiText.tooltip.energy.rate" : "最大传输速率: %sFE/刻", + "modularrouters.guiText.tooltip.energy.to_router" : "将物品的能量传输至路由器缓存区", + "modularrouters.guiText.tooltip.extruder2.template": "§b模板${br}在此处放置方块来作为挤出模块的模板,挤出模块将直接放置与模板内方块材质相似的模拟方块。${br}• §e左击:§7 减少堆叠数量${br}• §e右击:§7 增加堆叠数量${br}• §eShift+左击:§7 清除对应模板栏", + "modularrouters.guiText.tooltip.flinger.pitch": "§b俯仰角(%f → %f)", + "modularrouters.guiText.tooltip.flinger.speed": "§b投掷速度(%f → %f)", + "modularrouters.guiText.tooltip.flinger.yaw": "§b偏转角(%f → %f)", + "modularrouters.guiText.tooltip.fluidForceEmpty.false": "§b强制清空已禁用${br}如果路由器旁的容器或方块已满,那路由器内的流体将不会被导出。", + "modularrouters.guiText.tooltip.fluidForceEmpty.true": "§b强制清空已启用${br}如果可能,流体将始终从路由器中导出,即使这会导致流体被销毁(例如将水倒入已存在的水方块中)", + "modularrouters.guiText.tooltip.fluidRegulatorTooltip": "§b流体调节已启用${br}从路由器输出时:仅在目标流体储罐的存量小于设定的值时输出。提取到路由器时:仅在当流体储罐存储的量超过设定的值时提取。", + "modularrouters.guiText.tooltip.fluidTransferTooltip": "§b最大流体转移${br}你希望的一次操作能转移的流体的最大值(单位:mB)。这仍然受限于路由器的总传输速率(流体和速度升级)", + "modularrouters.guiText.tooltip.FRONT": "前方", + "modularrouters.guiText.tooltip.IGNORE_DAMAGE.1": "匹配物品耐久${br}耐久度不同的同种物品将被视为不同的物品", + "modularrouters.guiText.tooltip.IGNORE_DAMAGE.2": "忽略物品耐久${br}耐久度不同的同种物品将被视为相同的物品", + "modularrouters.guiText.tooltip.IGNORE_NBT.1": "匹配NBT${br}例如匹配时考虑物品上的魔咒", + "modularrouters.guiText.tooltip.IGNORE_NBT.2": "忽略NBT${br}例如匹配时忽略物品上的魔咒", + "modularrouters.guiText.tooltip.IGNORE_TAGS.1": "标签匹配已启用${br}匹配与过滤器中的物品在同一标签组的物品,例如,橡木和白桦原木", + "modularrouters.guiText.tooltip.IGNORE_TAGS.2": "标签匹配已禁用", + "modularrouters.guiText.tooltip.LEFT": "左方", + "modularrouters.guiText.tooltip.loadFilter": "从${br}§e%s§r @ %s中加载过滤器${br}§o现有过滤器中的内容将被覆盖!", + "modularrouters.guiText.tooltip.matchAll.false": "任意匹配${br}过滤器中的任何项目都可匹配到过滤器。${br} 在大多数情况下使用此选项。", + "modularrouters.guiText.tooltip.matchAll.true": "全体匹配${br}过滤器中的所有项目都必须匹配,过滤器才能匹配。${br} 在特定情况下使用,例如你想检测附魔的皮革盔甲时。", + "modularrouters.guiText.tooltip.maxFluidPerOp": "§f传输速率:%dmB每%d刻(%dmB/刻)", + "modularrouters.guiText.tooltip.mergeFilter": "从${br}§e%s§r @ %s中合并过滤器", + "modularrouters.guiText.tooltip.mouseOverHelp.false": "点击以开启鼠标悬停时的提示", + "modularrouters.guiText.tooltip.mouseOverHelp.true": "已开启鼠标悬停时提示${br}§7点击以关闭", + "modularrouters.guiText.tooltip.NONE": "无", + "modularrouters.guiText.tooltip.numberFieldTooltip": "• §e§o鼠标指针向上/向下移动§7或鼠标滚轮:调整${br}• 按住§e§oShift§7:粗调${br}• 按住§e§oCtrl§7:微调${br}• §e§oPage Up/Down§7:设置为最大/最小值", + "modularrouters.guiText.tooltip.redstone.ALWAYS": "始终", + "modularrouters.guiText.tooltip.redstone.HIGH": "高信号", + "modularrouters.guiText.tooltip.redstone.label": "红石控制模式", + "modularrouters.guiText.tooltip.redstone.LOW": "低信号", + "modularrouters.guiText.tooltip.redstone.NEVER": "从不", + "modularrouters.guiText.tooltip.redstone.PULSE": "脉冲", + "modularrouters.guiText.tooltip.regulator.label": "%d个物品", + "modularrouters.guiText.tooltip.regulator.labelFluidmB": "%dmB", + "modularrouters.guiText.tooltip.regulator.labelFluidPct": "%d%%", + "modularrouters.guiText.tooltip.regulatorTooltip": "§b物品调节已启用${br}物品输入时:仅在容器物品少于设定的数量的情况下放入/使用物品。${br}物品提取时:仅在容器物品超过设定的数量时抽取/使用物品。", + "modularrouters.guiText.tooltip.removeFilterHint": "§7§o潜行+左击:从过滤器中删除物品信息", + "modularrouters.guiText.tooltip.RIGHT": "右方", + "modularrouters.guiText.tooltip.terminate.NONE" : "模块化路由器将继续执行后续模块,无论当前模块是否进行过任何操作。", + "modularrouters.guiText.tooltip.terminate.NONE.header" : "始终继续", + "modularrouters.guiText.tooltip.terminate.NOT_RAN" : "如果此模块没有进行任何操作,则模块化路由器将不会在此游戏刻上执行任何后续模块。", + "modularrouters.guiText.tooltip.terminate.NOT_RAN.header" : "找不到匹配时停止", + "modularrouters.guiText.tooltip.terminate.RAN" : "如果此模块进行过任何操作,则模块化路由器将不会在此游戏刻上执行任何后续模块。", + "modularrouters.guiText.tooltip.terminate.RAN.header" : "找到匹配时停止", + "modularrouters.guiText.tooltip.tunedValue": "§b调整值(%d → %d)", + "modularrouters.guiText.tooltip.UP": "上方", + "modularrouters.guiText.tooltip.xpVacuum.ejectFluid": "经验流体已输出", + "itemGroup.modularrouters": "模块化路由器", + "modularrouters.itemText.activator.action.ITEM_OR_BLOCK": "右击", + "modularrouters.itemText.activator.action.USE_ITEM_ON_ENTITY": "使用缓存区物品右击最近的实体", + "modularrouters.itemText.activator.action.ATTACK_ENTITY": "攻击附近实体", + "modularrouters.itemText.activator.direction.ABOVE": "朝向上方", + "modularrouters.itemText.activator.direction.BELOW": "朝向下方", + "modularrouters.itemText.activator.direction.LEVEL": "朝向水平", + "modularrouters.itemText.activator.entityMode.NEAREST": "范围内最近实体", + "modularrouters.itemText.activator.entityMode.RANDOM": "范围内随机实体", + "modularrouters.itemText.activator.entityMode.ROUND_ROBIN": "轮询范围内实体", + "modularrouters.itemText.augments": "§e拓展:", + "modularrouters.itemText.augments.pickupDelay": "%d刻(%f秒)", + "modularrouters.itemText.augments.stackInfo": "%d物品/路由器刻", + "modularrouters.itemText.camouflage.held": "伪装成:", + "modularrouters.itemText.distributor.strategy.FURTHEST_FIRST": "最远优先", + "modularrouters.itemText.distributor.strategy.NEAREST_FIRST": "最近优先", + "modularrouters.itemText.distributor.strategy.RANDOM": "随机", + "modularrouters.itemText.distributor.strategy.ROUND_ROBIN": "轮询", + "modularrouters.itemText.extruder2.template": "§e模板方块:", + "modularrouters.itemText.extruder.mode.ALWAYS": "§e延长:§b红石信号大于0时", + "modularrouters.itemText.extruder.mode.HIGH": "§e延长:§b红石信号等于15时", + "modularrouters.itemText.extruder.mode.LOW": "§e延长:§b红石信号等于0时", + "modularrouters.itemText.extruder.mode.NEVER": "§e延长:§b从不", + "modularrouters.itemText.extruder.mode.PULSE": "§e延长:§b从不", + "modularrouters.itemText.fluid.direction": "§e流体传输方向:§b%s", + "modularrouters.itemText.fluid.direction.IN": "传输至路由器", + "modularrouters.itemText.fluid.direction.OUT": "从路由器中传出", + "modularrouters.itemText.fluid.maxTransfer": "§e流体传输速率:§b最多%dmB/操作", + "modularrouters.itemText.misc.blacklist": "§e黑名单", + "modularrouters.itemText.misc.breakerPick": "§e镐:", + "modularrouters.itemText.misc.bulkItemFilter.count": "• 过滤器中有%d个物品", + "modularrouters.itemText.misc.configureHint": "§7§o▶ 按§e§o[%s]§7§o或§e§o[鼠标中键]§7§o进行配置", + "modularrouters.itemText.misc.ecoMode": "§2低耗模式", + "modularrouters.itemText.misc.energyUsage" : "§e能耗:§b%dFE/操作", + "modularrouters.itemText.misc.energyWarning" : "§6至少有一个已安装的模块需要FE来运行。${br}路由器需要更多FE!", + "modularrouters.itemText.misc.energyWarning.noBuffer" : "§6至少有一个已安装的模块需要FE来运行。${br}增加一个或更多能量升级!", + "modularrouters.itemText.misc.flags": "§e筛选类型", + "modularrouters.itemText.misc.flingerDetails": "§e投掷速度:§b%f§f | §e俯仰角:§b%f§f | §e偏转角:§b%f", + "modularrouters.itemText.misc.holdKey": "§7§o▶ 按§3§o[%s]§7§o查看更多信息", + "modularrouters.itemText.misc.holdShiftKey": "§7§o▶ 按§3§o[Shift]§7§o进行设置,§3§o[%s]§7§o查看更多信息", + "modularrouters.itemText.misc.IGNORE_DAMAGE": "耐久度", + "modularrouters.itemText.misc.IGNORE_NBT": "NBT", + "modularrouters.itemText.misc.IGNORE_TAGS": "标签", + "modularrouters.itemText.misc.itemList" : "§e物品列表", + "modularrouters.itemText.misc.matchAll": "所有", + "modularrouters.itemText.misc.matchAny": "任何", + "modularrouters.itemText.misc.match": "§e匹配", + "modularrouters.itemText.misc.modFilter.count": "• 过滤器中有%d个模组", + "modularrouters.itemText.misc.moduleCount": "模块:%d", + "modularrouters.itemText.misc.noItems": "空", + "modularrouters.itemText.misc.operation": "操作", + "modularrouters.itemText.misc.rangeInfo": "§e范围:%s%d §7[无升级%d,满升级%d]", + "modularrouters.itemText.misc.redstoneLevel": "§e信号等级:§b%d(%s)", + "modularrouters.itemText.misc.regexFilter.count": "• 过滤器中有%d个正则表达式", + "modularrouters.itemText.misc.routerConfigured": "此路由器已配置", + "modularrouters.itemText.misc.strongSignal.false": "弱充能", + "modularrouters.itemText.misc.strongSignal.true": "强充能", + "modularrouters.itemText.misc.TERMINATE": "终止", + "modularrouters.itemText.misc.upgradeCount": "▶ %d x %s", + "modularrouters.itemText.misc.upgrades" : "升级:", + "modularrouters.itemText.misc.whitelist": "§e白名单", + "modularrouters.itemText.security.count": "%d/%d其他玩家:", + "modularrouters.itemText.security.owner": "§e所有者:§b%s", + "modularrouters.itemText.sync.tuning": "§e调整值:§b%d", + "modularrouters.itemText.targetingHintMulti": "• 潜行右击容器以设置目标,${br}• 潜行右击已经被选择的容器以清除目标", + "modularrouters.itemText.targetingHint": "• 潜行右击容器以设置目标,${br}• 潜行右击其他非容器方块以清除目标", + "modularrouters.itemText.usage.item.activator_module": "模拟右击方块或实体以使用路由器缓存区中的物品。${br}表现得就像一个假玩家一样。", + "modularrouters.itemText.usage.item.blast_upgrade": "让路由器抵御来自爆炸或者boss级生物的破坏。", + "modularrouters.itemText.usage.item.breaker_module": "在模块配置的方向上破坏与路由器相邻的方块,将其作为物品放入路由器的缓存区。", + "modularrouters.itemText.usage.item.bulk_item_filter": "大容量,高性能的过滤器,用于大量物品。可以像任何物品一样录入到路由器过滤器中。${br}• 潜行+右击任何容器:将内容合并到过滤器。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.camouflage_upgrade": "使路由器看起来像另一个方块。${br}• 潜行+右击方块以便将其外观复制到升级。", + "modularrouters.itemText.usage.item.creative_module" : "凭空创造物品并将其放入路由器的缓存区。", + "modularrouters.itemText.usage.item.detector_module": "如果路由器缓存区中的物品与模块的过滤器中配置的物品一致,则在模块配置的方向上从路由器发出红石信号。", + "modularrouters.itemText.usage.item.distributor_module": "将路由器缓存区中的物品分配给多个容器,可选择列表轮询、随机、最近或最远的传输模式。", + "modularrouters.itemText.usage.item.dropper_module": "在模块配置的方向上,将路由器缓存区中物品投掷到主世界。", + "modularrouters.itemText.usage.item.energy_distributor_module" : "将路由器能量缓存区或物品缓存区的任何储能物品中的FE无线分配给周围的储能方块", + "modularrouters.itemText.usage.item.energy_output_module" : "输出路由器能量缓存区或物品缓存区的任何储能物品中的FE", + "modularrouters.itemText.usage.item.energy_upgrade" : "增加路由器的能量缓存区容量%dFE,增加传输速率%dFE/路由器刻", + "modularrouters.itemText.usage.item.energyUpgradeRouter" : "• 该路由器的能量容量:%dFE${br}• 该路由器的传输速率:%dFE/路由器刻", + "modularrouters.itemText.usage.item.extruder_module_1": "根据红石信号控制,在模块设定的方向上放置或收回一条直线的方块。${br}默认为信号开放置,信号关收回;添加红石拓展到模块可以进行自定义设置。", + "modularrouters.itemText.usage.item.extruder_module_2": "与挤出模块1型类似,但是会按照内部的模板栏设定的方块来放置模板方块而不是放置路由器缓存区中的真实方块。", + "modularrouters.itemText.usage.item.fast_pickup_augment": "允许真空模块无视一般情况下捡起掉落物的延迟时间。", + "modularrouters.itemText.usage.item.filter_round_robin_augment" : "不会执行默认的任何/全部匹配。路由器会根据过滤器在每个执行刻匹配单个物品。所有被选中的物品会进行递增轮询。${br}这对处理一系列含有特殊顺序的物品很有用。", + "modularrouters.itemText.usage.item.flinger_module": "从路由器的缓存区中将物品长距离投掷到世界。 可以在模块的GUI中调整投掷的速度与距离,仰角与偏角。", + "modularrouters.itemText.usage.item.fluid_module_2": "从任意周围方块中提取流体或向其中输入流体。${br}• 路由器的缓存区中必须装有流体容器。${br}• 可将流体输出至储罐或世界中或从中提取流体。", + "modularrouters.itemText.usage.item.fluid_module": "从正对路由器朝向的相邻方块中提取流体或向其中输入流体。${br}• 路由器的缓存区中必须装有流体容器。${br}• 可将流体输出至储罐或世界中或从中提取流体。", + "modularrouters.itemText.usage.item.fluid_upgrade": "增加路由器(在每个方向)上传输的流体量,以%dmB/刻为单位。", + "modularrouters.itemText.usage.item.fluidUpgradeRouter": "• 此路由器的传输速率:%dmB/刻", + "modularrouters.itemText.usage.item.inspection_filter": "通过检查物品的各种属性过滤物品。可以像任何物品一样录入到路由器过滤器中。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.mimic_augment": "使挤出模块2型产生的虚拟方块同时模拟原方块的亮度、红石充能、硬度和爆炸抗性。", + "modularrouters.itemText.usage.item.mod_filter": "按照一个物品来自的模组ID过滤物品,可以像任何物品一样录入到路由器过滤器中。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.muffler_upgrade": "抑制来自路由器/模块的声音和粒子效果:${br}• 1个升级会抑制声音效果${br}• 2个或更多个会抑制更多粒子效果${br}• 3个或更多个则会抑制路由器的运行动画。", + "modularrouters.itemText.usage.item.pickup_delay_augment": "每个拓展会增加10刻捡起掉落物品的延迟时间。", + "modularrouters.itemText.usage.item.placer_module": "如果可能,将路由器缓存区中的方块或物品放置到模块配置的方向。", + "modularrouters.itemText.usage.item.player_module": "在玩家的个人存储列表和路由器的缓存区之间远程传输物品。", + "modularrouters.itemText.usage.item.puller_module_1": "从模块已配置方向的相邻容器中将物品提取到路由器的缓存区中。", + "modularrouters.itemText.usage.item.puller_module_2": "从附近的任何容器中将物品提取到路由器缓存区中。", + "modularrouters.itemText.usage.item.pushing_augment": "增加挤出1型/2型伸出时推动实体的力量。可堆叠。", + "modularrouters.itemText.usage.item.range_down_augment": "每个拓展会将模块的作用范围减少1格。", + "modularrouters.itemText.usage.item.range_up_augment": "每个拓展会将模块的作用范围增加1格(直到达到模块提示信息中描述的最大值)", + "modularrouters.itemText.usage.item.redstone_augment": "允许模块指定自身的红石特性,这会无视路由器的红石特性。", + "modularrouters.itemText.usage.item.regex_filter": "通过将其显示名称与一个或多个正则表达式匹配来过滤物品。可以像任何物品一样录入到路由器过滤器中。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.regulator_augment": "允许预先设置在容器中保留多少物品。", + "modularrouters.itemText.usage.item.security_upgrade": "保护路由器;只有列出的玩家可以访问路由器。${br}• 右击玩家以记录到模块${br}• 潜行+右击玩家以删除他们的配置", + "modularrouters.itemText.usage.item.sender_module_1": "将路由器缓存区中的物品直接沿X/Y/Z轴发送到选定的容器里。${br}不能有方块阻隔;不透明的方块将阻止发送。", + "modularrouters.itemText.usage.item.sender_module_2": "将路由器缓存区中的物品发送到临近的容器里。${br}传输可以穿透方块。", + "modularrouters.itemText.usage.item.sender_module_3": "将路由器缓存区中的物品发送到任何维度的任何容器内。", + "modularrouters.itemText.usage.item.speed_upgrade": "提高路由器工作间隔的速度。${br}• 路由器每隔%.02f秒(%d刻)工作一次${br}• 升级最多可以放置:%d个", + "modularrouters.itemText.usage.item.stack_augment": "允许模块在每游戏刻中处理多个物品。${br}这会无视路由器中的堆叠升级。", + "modularrouters.itemText.usage.item.stack_upgrade": "增加路由器每游戏刻处理的物品数${br}• 每游戏刻可以处理的物品数目:%d个${br}• 升级最多可以放置:%d个", + "modularrouters.itemText.usage.item.sync_upgrade": "同步激活路由器${br}• 右击:打开调整GUI${br}• 潜行+右击:调整为随机值。${br}• 所有具有相同调整值的同步升级(和相同数量的速度升级)的路由器将以相同的频率运行。", + "modularrouters.itemText.usage.item.vacuum_module": "将世界中掉落的物品吸收到路由器的缓存区中。仅在配置的方向上收集掉落物,如果方向为无,则收集任何方向。", + "modularrouters.itemText.usage.item.void_module": "§c*** 警告 ***${br}永久销毁缓存区中的物品!", + "modularrouters.itemText.usage.item.xp_vacuum_augment": "允许真空模块收集经验球而不是物品。${br}经验球可以被转化为各种物品或流体。可用的选项受其他mod和经验流体影响,${br}但是原版的附魔之瓶总是可用的。如果要将经验转化为流体,${br}那么你必须在路由器的缓存区中放置一个可以以mB为单位储存流体的物品,${br}或者在路由器旁边放置一个流体容器(并在模块GUI中打开输出模式)。", + "modularrouters.jei.recipe.module_reset.description": "将模块完全重置到刚制作出来的状态。警告:所有数据,包括过滤器设置和附魔都会丢失,但是安装的拓展会返还", + "modularrouters.jei.recipe.module_reset": "重置模块", + "modularrouters.patchouli.book.landing": "这本手册是$(#228)模块化路由器/$的完整参考指南。", + "modularrouters.patchouli.book.name": "模块化路由器手册" +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/book.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/book.json new file mode 100644 index 000000000000..b11b5e08443b --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/book.json @@ -0,0 +1,12 @@ +{ + "name": "modularrouters.patchouli.book.name", + "landing_text": "modularrouters.patchouli.book.landing", + "creative_tab": "modularrouters", + "version": 1, + "model": "modularrouters:manual", + "book_texture": "patchouli:textures/gui/book_blue.png", + "macros": { + "$(modr)": "$(#228)Modular Routers$()", + "$(ttcolor)": "$(#880)" + } +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/augments.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/augments.json new file mode 100644 index 000000000000..11a88e9ae6b2 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/augments.json @@ -0,0 +1,6 @@ +{ + "name": "Augments", + "description": "Module Augments can be installed in Modules to enhance or extend their functionality", + "icon": "modularrouters:xp_vacuum_augment", + "sortnum": 4 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/filters.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/filters.json new file mode 100644 index 000000000000..db1fb9e437c1 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/filters.json @@ -0,0 +1,6 @@ +{ + "name": "Smart Filters", + "description": "Smart Filters are a group of filter items, which can be placed in any module's filter slots instead of a normal item, and provide more sophisticated item matching features.", + "icon": "modularrouters:bulk_item_filter", + "sortnum": 5 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/intro.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/intro.json new file mode 100644 index 000000000000..6c85fddbd6a0 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/intro.json @@ -0,0 +1,6 @@ +{ + "name": "Introduction", + "description": "Welcome to $(modr) !", + "icon": "minecraft:knowledge_book", + "sortnum": 0 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/modules.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/modules.json new file mode 100644 index 000000000000..ffb790558ecc --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/modules.json @@ -0,0 +1,6 @@ +{ + "name": "Modules", + "description": "Modules are placed into an Modular Router and define the router's functionality.", + "icon": "modularrouters:sender_module_1", + "sortnum": 2 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/router.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/router.json new file mode 100644 index 000000000000..3daaa6459a6f --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/router.json @@ -0,0 +1,6 @@ +{ + "name": "Modular Router", + "description": "The Modular Router is the only block in the $(modr) mod.", + "icon": "modularrouters:item_router", + "sortnum": 1 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/upgrades.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/upgrades.json new file mode 100644 index 000000000000..d213a68dac18 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/upgrades.json @@ -0,0 +1,6 @@ +{ + "name": "Upgrades", + "description": "Upgrades can be installed in an Modular Router to enhance or modify its functionality.", + "icon": "modularrouters:speed_upgrade", + "sortnum": 3 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/fast_pickup.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/fast_pickup.json new file mode 100644 index 000000000000..7daa711e1e34 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/fast_pickup.json @@ -0,0 +1,15 @@ +{ + "name": "Fast Pickup Augment", + "category": "augments", + "icon": "modularrouters:fast_pickup_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/vacuum)Vacuum Module/$. It allows the Vacuum Module to ignore the normal pickup delay on dropped items - 40 ticks for items dropped by players, and 10 ticks for items dropped by other means (e.g. sheep shearing) - and pick up items as soon as it sees them.$(p)A max of one Fast Pickup Augment can be added." + }, + { + "type": "crafting", + "recipe": "modularrouters:fast_pickup_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/mimic.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/mimic.json new file mode 100644 index 000000000000..9a2aec4a8b8b --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/mimic.json @@ -0,0 +1,15 @@ +{ + "name": "Mimic Augment", + "category": "augments", + "icon": "modularrouters:mimic_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/extruder_2)Extruder Module Mk2/$.$(p)When present, any fake blocks extruded by the module take on the properties of the faked block, e.g. $(item)Obsidian/$ is hard to break, $(item)Glowstone/$ emits light, and $(item)Redstone Blocks/$ emit a redstone signal." + }, + { + "type": "crafting", + "recipe": "modularrouters:mimic_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pickup_delay.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pickup_delay.json new file mode 100644 index 000000000000..89d9fcfb572e --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pickup_delay.json @@ -0,0 +1,15 @@ +{ + "name": "Pickup Delay Augment", + "category": "augments", + "icon": "modularrouters:pickup_delay_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/dropper)Dropper/$ and $(l:modules/flinger)Flinger/$ modules.$(p)It can be stacked; each augment added will increase the pickup delay on dropped/flung items by 10 ticks (0.5 sec). This can be useful if you don't want players accidentally picking up nearby dropped items, for example." + }, + { + "type": "crafting", + "recipe": "modularrouters:pickup_delay_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pushing.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pushing.json new file mode 100644 index 000000000000..191fdf7d3e2a --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pushing.json @@ -0,0 +1,15 @@ +{ + "name": "Pushing Augment", + "category": "augments", + "icon": "modularrouters:pushing_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/extruder_1)Extruder Mk1/$ and $(l:modules/extruder_2)Extruder Mk2/$ modules.$(p)It can be stacked; each augment increases the force that entities are shoved when the module extrudes a block." + }, + { + "type": "crafting", + "recipe": "modularrouters:pushing_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_down.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_down.json new file mode 100644 index 000000000000..9b08f2724f1f --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_down.json @@ -0,0 +1,16 @@ +{ + "name": "Range Down Augment", + "category": "augments", + "icon": "modularrouters:range_down_augment", + "pages": [ + { + "type": "text", + "text": "This augment can be added to any module which has a range (Sender $(l:modules/sender_1)Mk1/$ / $(l:modules/sender_2)Mk2/$, Puller $(l:modules/puller_1)Mk1/$ / $(l:modules/puller_2)Mk2/$, Extruder $(l:modules/extruder_1)Mk1/$ / $(l:modules/extruder_2)Mk2/$, $(l:modules/fluid_2)Fluid Mk2/$, $(l:modules/vacuum)Vacuum/$).$(p)It can be stacked; each augment will reduce the range of the module by one block.$(p)This is probably only useful in conjunction with the $(l:modules/vacuum)Vacuum Module/$, to control the range it scans for items." + }, + { + "type": "crafting", + "recipe": "modularrouters:range_down_augment", + "recipe2": "modularrouters:range_down_from_up" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_up.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_up.json new file mode 100644 index 000000000000..6dad8eff4898 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_up.json @@ -0,0 +1,16 @@ +{ + "name": "Range Up Augment", + "category": "augments", + "icon": "modularrouters:range_up_augment", + "pages": [ + { + "type": "text", + "text": "This augment can be added to any module which has a range (Sender $(l:modules/sender_1)Mk1/$ / $(l:modules/sender_2)Mk2/$, Puller $(l:modules/puller_1)Mk1/$ / $(l:modules/puller_2)Mk2/$, Extruder $(l:modules/extruder_1)Mk1/$ / $(l:modules/extruder_2)Mk2/$, $(l:modules/fluid_2)Fluid Mk2/$, $(l:modules/vacuum)Vacuum/$).$(p)It can be stacked; each augment will increase the range of the module by one block." + }, + { + "type": "crafting", + "recipe": "modularrouters:range_up_augment", + "recipe2": "modularrouters:range_up_from_down" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/redstone.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/redstone.json new file mode 100644 index 000000000000..ac69f350ba2d --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/redstone.json @@ -0,0 +1,15 @@ +{ + "name": "Redstone Augment", + "category": "augments", + "icon": "modularrouters:redstone_augment", + "pages": [ + { + "type": "text", + "text": "This augment can be added to any module.$(p)Normally, modules are run when the router runs, no questions asked. However, if this augment is added to a module, that module can define its own redstone behaviour; an extra button is added to the module's GUI to control this." + }, + { + "type": "crafting", + "recipe": "modularrouters:redstone_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/regulator.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/regulator.json new file mode 100644 index 000000000000..7048e3a250a8 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/regulator.json @@ -0,0 +1,27 @@ +{ + "name": "Regulator Augment", + "category": "augments", + "icon": "modularrouters:regulator_augment", + "pages": [ + { + "type": "text", + "text": "This augment allows for precise control over how many items may be sent to or pulled from an inventory, or the router's buffer.$(p)When a module has a Regulator Augment, you will see an extra numeric textfield in its GUI where you can configure a limit. This limit is interpreted differently depending on the particular module:" + }, + { + "type": "text", + "text": "$(li)For the Sender $(l:modules/sender_1)Mk1/$ / $(l:modules/sender_2)Mk2/$ / $(l:modules/sender_3)Mk3/$ Modules and $(l:modules/player)Player Module/$ (in insert mode), the modules will only send an item to the inventory if there are fewer than the configured number of that item already in the inventory.$(li)For the Puller $(l:modules/puller_1)Mk1/$ / $(l:modules/puller_2)Mk2/$ and $(l:modules/player)Player Module/$ (in extract mode), the modules will only pull an item from the inventory if there are more than the configured number of that item in the inventory." + }, + { + "type": "text", + "text": "$(li)For the $(l:modules/dropper)Dropper/$, $(l:modules/flinger)Flinger/$, $(l:modules/placer)Placer/$ & $(l:modules/void)Void/$ Modules, the modules will only run if there are more than the configured number of that item in the router's buffer.$(li)For the $(l:modules/breaker)Breaker/$ & $(l:modules/vacuum)Vacuum/$ Modules, the modules will only run if there are fewer than the configured number of that item in the router's buffer." + }, + { + "type": "text", + "text": "$(li)For the Fluid $(l:modules/fluid)Mk1/$ / $(l:modules/fluid_2)Mk2/$ modules, the limit can be a percentage of the target tank's capacity or an absolute amount in mB (selectable in the GUI) rather than a number of items. When pulling fluid, the module will only run if there is $(italic)more/$ fluid in the target than the configured amount; when pushing fluid, it will only run if there is $(italic)less/$ fluid than the configured amount." + }, + { + "type": "crafting", + "recipe": "modularrouters:regulator_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/stack.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/stack.json new file mode 100644 index 000000000000..e9e41d1c4aa8 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/stack.json @@ -0,0 +1,19 @@ +{ + "name": "Stack Augment", + "category": "augments", + "icon": "modularrouters:stack_augment", + "pages": [ + { + "type": "text", + "text": "This module can be added to any module which handles $(italic)items/$ (as opposed to $(italic)blocks/$, $(italic)fluids/$ or $(italic)energy/$).$(p)Adding Stack Augments to a module increases the number of items it can process per tick; each Stack Augment doubles the number of items, up to a maximum of the item's natural stack size (64 for most items)." + }, + { + "type": "text", + "text": "If the $(l:router/item_router)router/$ also has $(l:upgrades/stack)Stack Upgrades/$ installed, the module's Stack Augments will override that; e.g. if a router has 6 Stack Upgrades, and a module has 2 Stack Augments, the module will process 4 items per tick, not 64." + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/xp_vacuum.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/xp_vacuum.json new file mode 100644 index 000000000000..bda342724f86 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/xp_vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "XP Vacuum Augment", + "category": "augments", + "icon": "modularrouters:xp_vacuum_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to a $(l:modules/vacuum)Vacuum Module/$.$(p)When this augment is added, the Vacuum Module will absorb experience orbs instead of items. The orbs will be converted into $(item)Bottles o' Enchanting/$ at the rate of 7XP per bottle (which is the average amount of XP gained by breaking a Bottle o' Enchanting)." + }, + { + "type": "text", + "text": "Depending on what other mods are installed, it might also be possible to convert orbs into XP fluids. This requires that either a fluid-containing tank is in the router's buffer, or adjacent to the router. In the latter case, ensure that the $(bold)Eject/$ button is enabled in the Vacuum Module's GUI." + }, + { + "type": "crafting", + "recipe": "modularrouters:xp_vacuum_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/bulk_item.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/bulk_item.json new file mode 100644 index 000000000000..018d0b29fa71 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/bulk_item.json @@ -0,0 +1,27 @@ +{ + "name": "Bulk Item Filter", + "category": "filters", + "icon": "modularrouters:bulk_item_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for high-performance matching of up to 54 different items, including optional NBT matching. The Bulk Item Filter can be configured in a few different ways:$(p)$(li)$(thing)Sneak+Right-click/$ the filter against any inventory to merge a copy of that inventory's contents into the filter." + }, + { + "type": "text", + "text": "$(li)$(thing)Right-click/$ the filter to open a GUI showing the items currently in the filter. You can add (ghost copies of) items to the filter here, click items to remove them, or press the red $(bold)$(4)X/$ button to clear the filter completely." + }, + { + "type": "text", + "text": "$(li)When the filter is in a module that is in a router, you can open the filter's GUI by middle-clicking it, or pressing $(bold)$(4)[$(k:modularrouters.configure)]/$ over it.$(p)$(bold)If/$ the module has a valid inventory targeted, two extra buttons appear on the GUI: a green $(bold)$(2)+/$ button to $(italic)merge/$ the target inventory's items, and a blue $(bold)$(1)=/$ button to $(italic)load/$ the target inventory's items (overwriting the filter's current contents)." + }, + { + "type": "text", + "text": "This last configuration method is particularly useful combined with a $(l:modules/sender_2)Sender Module/$ to implement a sorting system, since the Bulk Item Filter will remember what should be in an inventory, even if the actual inventory later gets emptied." + }, + { + "type": "crafting", + "recipe": "modularrouters:bulk_item_filter" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/inspection.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/inspection.json new file mode 100644 index 000000000000..220c6b65184e --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/inspection.json @@ -0,0 +1,23 @@ +{ + "name": "Inspection Filter", + "category": "filters", + "icon": "modularrouters:inspection_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for matching of items by various miscellaneous integer properties of the item. The current inspections supported are:$(li)For fluid container items (buckets, tanks...), the fluid level as a percentage.$(li)For energy container items (batteries, powered tools...), the energy level as a percentage." + }, + { + "type": "text", + "text": "$(li)The highest enchantment level of enchantments on the item (can be used to filter out enchanted items, e.g. from a mob farm)$(li)The durability of items (tools, weapons) as a percentage of the max durability.$(li)For edible items, the food value as the number of half-shanks restored (e.g. steak has a value of 8)." + }, + { + "type": "text", + "text": "For items which don't have the inspected property at all, the returned value will always be -1, e.g. a piece of $(item)Cobblestone/$ has a durability value of -1. This is distinct from a 0 return, since a tool with <1% durability remaining would return a value of 0.$(p)This filter can be useful to automatically pull out damaged or discharged items for repair/recharging, etc." + }, + { + "type": "crafting", + "recipe": "modularrouters:inspection_filter" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/mod.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/mod.json new file mode 100644 index 000000000000..95a1171c60c8 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/mod.json @@ -0,0 +1,19 @@ +{ + "name": "Mod Filter", + "category": "filters", + "icon": "modularrouters:mod_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for matching of items by the mod they belong to. Up to 6 mods can be added per installed filter.$(li)$(thing)Right-click/$ the filter to open its GUI (or $(thing)middle-click/$ / press $(bold)$(4)[$(k:modularrouters.configure)]/$ on a filter which is installed in a module)." + }, + { + "type": "text", + "text": "$(li)Drop any item into the item slot in the top-left corner of the GUI. The item's mod name will be displayed to the right. Click the $(bold)$(2)+/$ button to add it to the mod list below.$(li)Click the red $(bold)$(4)X/$ button beside an entry to remove that mod from the list.$(p)Vanilla items can be added too, and their \"mod\" will be shown as $(italic)Minecraft/$." + }, + { + "type": "crafting", + "recipe": "modularrouters:mod_filter" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/regex.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/regex.json new file mode 100644 index 000000000000..0a936f1db112 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/regex.json @@ -0,0 +1,34 @@ +{ + "name": "Regex Filter", + "category": "filters", + "icon": "modularrouters:regex_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for matching of blocks and items with a regular expression, against the item's $(strong)registry name/$. Regular expressions are very powerful, but take some learning to unlock their full potential. However, basic regex usage isn't too difficult. There are many websites with tutorial information on regular expressions, e.g. $(l:https://regexone.com/)RegexOne/$." + }, + { + "type": "text", + "title": "Registry Names", + "text": "Because item filtering is done purely on the server, it can't know for sure what an item's displayed text is. Therefore, all filtering matches are made against the item's internal $(thing)registry name/$. You can find this registry name by toggling on advanced tooltip display with $(thing)F3+H/$.$(p)Note that matching is done against only the part of the registry name $(italic)after/$ the colon." + }, + { + "type": "text", + "text": "$(thing)To open the module GUI, $(thing)right-click/$ the filter, or $(thing)middle-click/$ / press $(bold)$(4)[$(k:modularrouters.configure)]/$ on a filter which is installed in a module.$(li)Type your regex into the textfield at the top, and hit $(thing)Return/$ or click the green $(bold)$(2)+/$ button. Your regex will be added to the list, assuming its syntax is valid. You can have up to 6 entries in one filter.$(li)Click the red $(bold)$(4)X/$ next to any regex to remove it from the list.$(li)Matches are case-insensitive." + }, + { + "type": "text", + "title": "Example 1", + "text": "A regex of 'ore' will match any items with 'ore' in their registry name (\"iron_ore\", \"gold_ore\", \"redstone_ore\"). Unfortunately, it will also match \"drill_core\", but you can avoid this by using a regex of $(1)_ore/$. To be even more specific, you could use $(1)_ore$/$, which also ensures that the string \"_ore\" is at the end of the item's registry name." + }, + { + "type": "text", + "title": "Example 2", + "text": "Configure a $(l:modules/player)Player Module/$ to extract from the player's main inventory, and put a regex filter containing $(1)_ore/$ in the module. This can be used to extract any ores from your inventory, regardless of where you are, into your ore processing system; very handy if you're mining far from your base and you want ores that you've mined to be sent home immediately." + }, + { + "type": "crafting", + "recipe": "modularrouters:regex_filter" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/augments.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/augments.json new file mode 100644 index 000000000000..f8a809958aad --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/augments.json @@ -0,0 +1,19 @@ +{ + "name": "Augments", + "icon": "modularrouters:augment_core", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Augments/$ are like $(l:intro/upgrades)upgrades/$ but are inserted into a $(l:intro/modules)module/$ rather than a $(l:intro/item_router)Modular Router/$. Each module has slots for 4 augments (some augments can be stacked). Augments enhance or extend a module's functionality in various ways." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/augments.png" + ], + "text": "$(italic)A Vacuum Module with 6 Range Up augments and an XP Vacuum augment/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/filters.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/filters.json new file mode 100644 index 000000000000..c6eb2ef3e0a9 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/filters.json @@ -0,0 +1,19 @@ +{ + "name": "Smart Filters", + "icon": "modularrouters:bulk_item_filter", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Smart Filters/$ can be inserted into a $(l:intro/modules)module's/$ filter slots in place of regular items. Instead of just trying to match against the item directly, filters have special matching functionality.$(p)For example, the $(l:filters/bulk_item)Bulk Item Filter/$ can efficiently match against up to 54 different items, and its items can be configured from an existing inventory." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/bulk_filter.png" + ], + "text": "$(italic)Bulk Item Filter installed in a Puller Mk2 Module/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/item_router.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/item_router.json new file mode 100644 index 000000000000..1f137a33ff81 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/item_router.json @@ -0,0 +1,15 @@ +{ + "name": "Modular Router Overview", + "icon": "modularrouters:item_router", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "The $(item)Modular Router/$ is the central block of the routing system. By itself, it does nothing other than serve as a one-slot inventory (which can be piped into and out of by hoppers and other mod piping systems).$(p)To do anything useful with a router, however, you need to install one or more (up to nine) $(l:intro/modules)Modules/$." + }, + { + "type": "text", + "text": "Every time a router ticks - once per second by default - it will execute every installed module, in order. Each of these modules will operate on the item(s) in the buffer or on the world around the router in a specific way - see the $(bold)Modules/$ section for info on each individual module type.$(p)The router's operation can also be modified with $(bold)Upgrades/$ - speed it up, let it handle more items per tick, increase the range of certain modules..." + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/misc.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/misc.json new file mode 100644 index 000000000000..baca9369764f --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/misc.json @@ -0,0 +1,26 @@ +{ + "name": "Miscellaneous Stuff", + "icon": "minecraft:book", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "This chapter covers some miscellaneous items and crafting components." + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "See $(l:upgrades/security#override)Security Upgrade/$." + }, + { + "type": "crafting", + "recipe": "modularrouters:blank_module", + "recipe2": "modularrouters:blank_upgrade" + }, + { + "type": "crafting", + "recipe": "modularrouters:augment_core" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/modules.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/modules.json new file mode 100644 index 000000000000..2ae4d2cc38ad --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/modules.json @@ -0,0 +1,50 @@ +{ + "name": "Modules", + "icon": "modularrouters:breaker_module", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Modules/$ are inserted into an $(l:intro/item_router)Modular Router/$ and tell the router what to do. There are 20 different module types, each of which has a specific function. All modules have some characteristics in common, however:$(li)All modules have 9 $(thing)filter slots/$ to control which item(s) a module will process.$(li)Many modules have a defined $(thing)direction/$, relative to the router's facing." + }, + { + "type": "text", + "text": "$(li)Some modules have extra settings for configuring module-specific functionality.$(p)All this can be configured in the module's GUI, which you can access by $(thing)Right-Clicking/$ the module in hand.$(p)You can also configure an installed module in a router GUI by pressing $(4)$(bold)[$(k:modularrouters.configure)]/$ while hovering over it, or $(thing)Middle-Clicking/$ the module in the GUI, without needing to remove it from the router." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/module_gui.png" + ], + "text": "$(italic)Module GUI: see following pages for a description of each part of the GUI/$", + "border": true + }, + { + "type": "text", + "title": "1. Filter Slots", + "anchor": "filter", + "text": "There are nine filter slots, where you can insert ghost copies of any item or block. The module will only operate if the item in the router's $(thing)buffer/$ matches an item in the module's filter (if whitelisting; the opposite if blacklisting)." + }, + { + "type": "text", + "anchor": "direction", + "title": "2. Direction Selector", + "text": "Most modules operate in a defined direction, relative to the router's facing. Here you can define the direction.$(p)Some modules (e.g. the $(l:modules/sender2)Sender Mk2/$) target a distant block directly, so do not have a definable direction. In this case, the direction selector will be blank." + }, + { + "type": "text", + "title": "3. Filter Control", + "text": "Here there are several buttons which control:$(li)Whitelisting vs. blacklisting$(li)Whether to match item damage (for items with durability)$(li)Whether to match item NBT, e.g. enchantments$(li)Whether to match by $(l:https://minecraft.gamepedia.com/Tag)item tags/$$(p)There is also a button here to control $(l:router/termination)Termination Behaviour/$, which is explained in a separate page." + }, + { + "type": "text", + "title": "4. Augments", + "text": "Every module has four $(thing)Augment/$ slots where augments (module-specific upgrades) can be inserted.$(p)The Augments which may be inserted here depend on the module type; not every module type accepts every augment type." + }, + { + "type": "text", + "title": "5. Extra Settings", + "text": "Some modules have some extra configuration options. For example, the $(l:modules/detector)Detector Module/$ shown earlier has options to set the redstone output level, and whether the output signal should be a weak or strong redstone signal.$(p)Where modules have such options, they're shown on the right-hand side of the GUI." + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/overview.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/overview.json new file mode 100644 index 000000000000..1771dad4891b --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/overview.json @@ -0,0 +1,20 @@ +{ + "name": "Overview", + "icon": "minecraft:cake", + "category": "intro", + "priority": "true", + "pages": [ + { + "type": "text", + "text": "Welcome to Modular Routers!$(p)This is a highly flexible mod for moving items around the world in various ways. With a single block - the $(thing)Modular Router/$ - and one or more plug-in $(thing)modules/$, you can pull items from any inventory, send them to other inventories near & far, place items as blocks, break blocks, drop items into the world, sort items, and much more." + }, + { + "type": "image", + "text": "$(italic)Think of it like a super-configurable Hopper on steroids.../$", + "images": [ + "modularrouters:textures/patchouli/item_router.png" + ], + "border": "true" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/upgrades.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/upgrades.json new file mode 100644 index 000000000000..3e1e606dd081 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/upgrades.json @@ -0,0 +1,11 @@ +{ + "name": "Upgrades", + "icon": "modularrouters:speed_upgrade", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Upgrades/$ improve a $(l:intro/item_router)Modular Router's/$ functionality in various ways. There are 8 different upgrade types, and 5 upgrade slots in an Modular Router.$(p)You can put multiple upgrades in an upgrade slot, although there is a limit on how many upgrades of a particular type can be inserted; see the individual upgrade pages or upgrade item tooltips for more information on this." + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/activator.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/activator.json new file mode 100644 index 000000000000..deacd2949e80 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/activator.json @@ -0,0 +1,34 @@ +{ + "name": "Activator Module", + "category": "modules", + "icon": "modularrouters:activator_module", + "pages": [ + { + "type": "text", + "text": "This powerful module acts like a $(italic)fake player/$ which can use an item in the router's buffer, against nearby blocks or entities. There are three modes, which can be selected via the controls on the right of the GUI. Each mode is detailed in the following pages." + }, + { + "type": "text", + "title": "Right-click", + "text": "This mode performs a right-click with the item in the router's buffer, just as if a player had done so. The logic used is the same as for player clicks, e.g. right-clicking a $(item)Flint and Steel/$ on a door will open the door, not start a fire.$(p)The targeted block (if any) depends on the router's facing, module direction, and also the Look Above/Below/Level module setting." + }, + { + "type": "text", + "title": "Right-click Entity", + "text": "This mode performs a right-click with the item in the router's buffer on a nearby $(thing)entity/$. You could use this to milk a cow for example, or shear a sheep.$(p)This can result in items being dropped on the ground, e.g. if a cow is clicked with a stack of more than one bucket in the router's buffer." + }, + { + "type": "text", + "title": "Attack Entity", + "text": "This mode performs a left-click with the item in the router's buffer on a nearby $(thing)entity/$, attacking it. This mode costs $(l:upgrades/energy)Forge Energy/$ by default, unlike other modules.$(p)Note: while $(l:upgrades/speed)Speed Upgrades/$ can be useful here, weapon cooldowns do apply, so excessive Speed Upgrades will just end up wasting energy and weapon durability." + }, + { + "type": "text", + "text": "The Activator has a range of about 4 blocks, similar to what an actual player has. The module can also be configured to look $(thing)Above/$ or $(thing)Below/$ (default is $(thing)Level/$).$(p)$(thing)Above/$ is particularly handy for planting things on top of a solid block beside or above the router, while $(thing)Below/$ is useful when you want to target the ground directly adjacent to the router, rather than a more distant block." + }, + { + "type": "crafting", + "recipe": "modularrouters:activator_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/breaker.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/breaker.json new file mode 100644 index 000000000000..226434ce6828 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/breaker.json @@ -0,0 +1,23 @@ +{ + "name": "Breaker Module", + "category": "modules", + "icon": "modularrouters:breaker_module", + "pages": [ + { + "type": "text", + "text": "This module tries to break a block, adjacent to the $(l:router/item_router)Router/$ in the module's $(l:intro/modules#direction)configured direction/$.$(p)Most blocks are breakable, although anything with an unbreakable hardness (e.g. vanilla $(item)Bedrock/$ or $(item)End Portal/$) can not be broken, nor can any fluid blocks. If the block is broken, its primary drop(s) will be automatically inserted into the item router's buffer, if possible." + }, + { + "type": "text", + "text": "The Breaker Module can be crafted with any type of pickaxe (including modded pickaxes), but the pickaxe used to craft the module determines its harvest level. E.g. if you create a Breaker Module with an $(item)Iron Pickaxe/$, it will not be able to break $(item)Obsidian/$.$(p)Additionally, any $(thing)enchantments/$ on the pickaxe used will be noted in the module ($(thing)Silk Touch/$ and $(thing)Fortune/$ are of particular use)." + }, + { + "type": "text", + "text": "By default the Breaker Module filter works on $(thing)items that would be dropped/$, rather than on the block itself. E.g. filtering on $(item)Stone/$ would not work to break Stone, unless the module has $(thing)Silk Touch/$ enabled. In this case, you should filter on $(item)Cobblestone/$.$(p)You can set the module to match by the $(thing)block/$ via the module GUI; this can be useful to distinguish between blocks that both drop nothing, e.g. $(item)Ice/$ and $(item)Packed Ice/$." + }, + { + "type": "crafting", + "recipe": "modularrouters:breaker_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/creative.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/creative.json new file mode 100644 index 000000000000..14989294e8b4 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/creative.json @@ -0,0 +1,11 @@ +{ + "name": "Creative Module", + "category": "modules", + "icon": "modularrouters:creative_module", + "pages": [ + { + "type": "text", + "text": "The Creative Module is a special uncraftable module which simply inserts items, from out of nowhere, into the router's buffer.$(p)It uses the module's filter as an item list, and on each tick moves to the next item in the filter in round-robin fashion. It doesn't care about any other filter settings (whitelist/blacklist, match NBT...)." + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/detector.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/detector.json new file mode 100644 index 000000000000..e1f6150ddb41 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/detector.json @@ -0,0 +1,15 @@ +{ + "name": "Detector Module", + "category": "modules", + "icon": "modularrouters:detector_module", + "pages": [ + { + "type": "text", + "text": "This module doesn't actually manipulate items, but instead detects specific items in the router's buffer. If the buffer contents are matched by the module's filter, it will make the router emit a redstone signal in the $(l:intro/modules#direction)configured direction/$.$(p)The signal level (default: 15) and signal type (default: weak) can be adjusted via the module GUI." + }, + { + "type": "crafting", + "recipe": "modularrouters:detector_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/distributor.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/distributor.json new file mode 100644 index 000000000000..945bd701d977 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/distributor.json @@ -0,0 +1,19 @@ +{ + "name": "Distributor Module", + "category": "modules", + "icon": "modularrouters:distributor_module", + "pages": [ + { + "type": "text", + "text": "This is an extended version of the $(l:modules/sender_2)Sender Module Mk2/$, which can send items to multiple targets. $(thing)Sneak-right-click/$ an inventory to add it to the Distributor Module, and $(thing)Sneak-right-click/$ the inventory again to remove it.$(p)The Distributor Module can distribute to up to 8 targets." + }, + { + "type": "text", + "text": "A little extra control over distribution strategy is available via the GUI control on the right:$(li)$(bold)Round Robin/$ - distribute to each inventory in turn, as evenly as possible$(li)$(bold)Random/$ - pick one of the targets at random$(li)$(bold)Nearest/$ - always fill the closest target with space for the item$(li)$(bold)Furthest/$ - always fill the furthest target with space for the item" + }, + { + "type": "crafting", + "recipe": "modularrouters:distributor_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/dropper.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/dropper.json new file mode 100644 index 000000000000..346780735ec7 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/dropper.json @@ -0,0 +1,15 @@ +{ + "name": "Dropper Module", + "category": "modules", + "icon": "modularrouters:dropper_module", + "pages": [ + { + "type": "text", + "text": "This module tries to drop an item from the router's buffer as an item entity in the world. The drop will be adjacent to the router in the module's $(l:intro/modules#direction)configured direction/$. The item entity will be placed with a zero velocity, unlike the vanilla $(item)Dropper/$ which adds an irritating random velocity to the item." + }, + { + "type": "crafting", + "recipe": "modularrouters:dropper_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_distributor.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_distributor.json new file mode 100644 index 000000000000..77ab73442ac0 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_distributor.json @@ -0,0 +1,19 @@ +{ + "name": "Energy Distributor Module", + "category": "modules", + "icon": "modularrouters:energy_distributor_module", + "pages": [ + { + "type": "text", + "text": "This module is like a combination of an $(l:modules/energy_output)Energy Output/$ and a $(l:modules/distributor)Distributor/$ Module, in that it can wirelessly distribute FE (Forge Energy) to up to 8 nearby energy-accepting blocks.$(p)$(thing)Sneak-right-click/$ a block to add it to the Energy Distributor Module, and $(thing)Sneak-right-click/$ the block again to remove it." + }, + { + "type": "text", + "text": "Like the $(l:modules/energy_output)Energy Output Module/$, this module can extract energy from either the router's internal energy buffer (if any $(l:upgrades/energy)Energy Upgrades/$ are installed) or from an energy-containing item in the router's item buffer. The internal energy buffer is used by preference." + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_distributor_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_output.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_output.json new file mode 100644 index 000000000000..b3cc3f588c5e --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_output.json @@ -0,0 +1,15 @@ +{ + "name": "Energy Output Module", + "category": "modules", + "icon": "modularrouters:energy_output_module", + "pages": [ + { + "type": "text", + "text": "This module attempts to output FE (Forge Energy) from the Router to an adjacent energy-receiving block, in its configured direction. The module can extract energy from either the router's internal energy buffer (if any $(l:upgrades/energy)Energy Upgrades/$ are installed) or from an energy-containing item in the router's item buffer. The internal energy buffer is used by preference." + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_output_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_1.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_1.json new file mode 100644 index 000000000000..51dcff14d7b7 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_1.json @@ -0,0 +1,31 @@ +{ + "name": "Extruder Module Mk1", + "category": "modules", + "icon": "modularrouters:extruder_module_1", + "pages": [ + { + "type": "text", + "text": "This module extends and withdraws a row of blocks (from the router's buffer) in the module's configured direction.$(p)By default, the module extends blocks when the router has a redstone signal, and withdraws them when the router has no signal, but a Redstone Enhancement can be added to the module to customise this behaviour." + }, + { + "type": "text", + "text": "Using this module, it's possible to build large extending bridges and doorways. (If you ever used the Tinker's Drawbridge from the Tinker's Mechworks mod in 1.7.10, the functionality will be familiar).$(li)See also the $(l:upgrades/camouflage)Camouflage Upgrade/$, which may be useful to hide the router.$(li)The default range (i.e. number of blocks which can be placed) is 12, but this can be increased up to 24 with $(l:augments/range_up)Range Up Augments/$." + }, + { + "type": "text", + "text": "$(li)If you change the module's direction while it has blocks extended, you may get the router a little confused. In this case, breaking and replacing the router will help.$(li)If you break the router while blocks are extended, it won't remember that, and you'll need to manually remove those blocks." + }, + { + "type": "text", + "text": "$(li)If you have multiple routers together with Extruder Modules installed (e.g. for a wide door or bridge), you may find the $(l:upgrades/sync)Sync Upgrade/$ useful to ensure they all run on the same tick.$(li)The Extruder (like the $(l:modules/placer)Placer/$) can also plant crop seeds on farmland, and cocoa beans on an adjacent jungle log." + }, + { + "type": "text", + "text": "It is important to note that the $(l:modules/breaker)Breaker Module/$ used to craft this module will transfer its harvest level (and enchantments) to this module. So if you want your Extruder Module to be able to break $(item)Obsidian/$, for example, make sure you use a Breaker Module crafted with a $(item)Diamond Pickaxe/$!" + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_1" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_2.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_2.json new file mode 100644 index 000000000000..887feafe7b73 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_2.json @@ -0,0 +1,19 @@ +{ + "name": "Extruder Module Mk2", + "category": "modules", + "icon": "modularrouters:extruder_module_2", + "pages": [ + { + "type": "text", + "text": "This module behaves somewhat like the $(l:modules/extruder_1)Extruder Module Mk1/$, but with a few important differences:$(li)The Mk2 module doesn't place items from the router's buffer, but rather from a template defined within the module itself.$(li)This template appears on the right-hand side of the module's GUI, has 9 slots, and can have multiple items per slot. Items placed in the template are \"ghost\" items." + }, + { + "type": "text", + "text": "$(li)Blocks extruded are \"virtual\" - effectively created out of nowhere, but drop nothing when broken and can't be crafted normally.$(li)Therefore, this module isn't suitable for farming like the Extruder Mk1, but can be used to place doors/bridges etc. with more complex patterns than the Mk1 could.$(li)The default range for the Extruder Mk2 is 24 blocks, which can be increased to 48 with Range Upgrades." + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_2" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/flinger.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/flinger.json new file mode 100644 index 000000000000..52addcd0dd6c --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/flinger.json @@ -0,0 +1,19 @@ +{ + "name": "Flinger Module", + "category": "modules", + "icon": "modularrouters:flinger_module", + "pages": [ + { + "type": "text", + "text": "This module behaves like the $(l:modules/dropper)Dropper Module/$, except that it also imparts a configurable velocity to the dropped item, potentially throwing the item a considerable distance. You can adjust the item's speed, pitch and yaw via the module's GUI.$(li)Pitch and Yaw are in degrees, relative to a base pitch or yaw." + }, + { + "type": "text", + "text": "$(li)If the module ejects Up or Down, the base pitch is +90° or -90°, respectively. Otherwise, the base pitch is 0°.$(li)If the module ejects Up or Down, the base yaw is the router's facing direction. Otherwise the base yaw is taken from the module's direction.$(li)Example: a speed of 1.0, pitch/yaw of 0°, and a horizontal module direction, will throw an item along the ground for a distance of about 7 blocks." + }, + { + "type": "crafting", + "recipe": "modularrouters:flinger_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid.json new file mode 100644 index 000000000000..db3cf4545707 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid.json @@ -0,0 +1,31 @@ +{ + "name": "Fluid Module Mk1", + "category": "modules", + "icon": "modularrouters:fluid_module", + "pages": [ + { + "type": "text", + "text": "While Routers can't handle fluids directly (they don't have an internal tank), they can manipulate fluids if there is a (single) fluid container item in the buffer. This includes buckets and any fluid containers added by other mods." + }, + { + "type": "text", + "text": "The Fluid Module's GUI allows the transfer direction to be set:$(li)$(bold)Transfer To Router/$ means the router will try to pull fluids from an adjacent block (either a fluid in the world or a fluid-holding block) into a fluid-holding item in the buffer.$(li)$(bold)Transfer From Router/$ means the router will try to push fluids from a fluid-holding item in the buffer to the world; either pouring fluid out, or putting fluid into an adjacent tank." + }, + { + "type": "text", + "text": "The GUI also allows the maximum transfer rate to be set. Note this is the maximum that will be $(italic)attempted/$, and is still limited by the Router's overall transfer rate, which is 1 bucket per second, and the transfer rate of the external fluid or fluid container.$(p)The Fluid Module's filter slots will only accept fluid-containing items, and will filter by the contained fluid, not by the container item." + }, + { + "type": "text", + "text": "Adding $(l:upgrades/speed)Speed Upgrades/$ will not transfer fluids any faster, only more often. A Router with 9 speed upgrades will still only transfer 1 bucket per second, just more often and in smaller quantities. To increase the overall transfer rate, add $(l:upgrades/fluid)Fluid Transfer Upgrades/$.$(p)Be very careful tinkering with Fluid Module settings if the router holds any dangerous fluids, such as a lava bucket. The router will not hesitate to pour lava over you if you get it wrong..." + }, + { + "type": "text", + "text": "Note that you can also connect fluid pipes from other mods to a router, $(bold)if/$ the buffer has a fluid container in it, and pump fluids in and out of the router; fluids will be directed to/from the container item.$(p)You $(italic)don't/$ need a Fluid Module installed to do this; Fluid Modules are only required if you want to actively push or pull fluids." + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid_2.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid_2.json new file mode 100644 index 000000000000..1272c9afc580 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid_2.json @@ -0,0 +1,19 @@ +{ + "name": "Fluid Module Mk2", + "category": "modules", + "icon": "modularrouters:fluid_module_2", + "pages": [ + { + "type": "text", + "text": "Like the $(l:modules/fluid_1)Fluid Module Mk1/$, this module can transfer fluids into or out of the router, if it has a fluid-containing item in the buffer. However, this module can also target more distant locations, up to 12 blocks away (up to 24 with $(l:augments/range_up)Range Up Augments/$)." + }, + { + "type": "text", + "text": "$(thing)Sneak-right-click/$ any block with the module to set its target.$(p)Note that the target block does not necessarily need to be a fluid tank; if you break the block after setting the module target, the module will be able to empty a bucket of fluid into the world at that location." + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module_2" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/placer.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/placer.json new file mode 100644 index 000000000000..7703f71dd9ba --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/placer.json @@ -0,0 +1,19 @@ +{ + "name": "Placer Module", + "category": "modules", + "icon": "modularrouters:placer_module", + "pages": [ + { + "type": "text", + "text": "This module tries to place an item from the router's buffer as a block, adjacent to the router in the module's $(l:intro/modules#direction)configured direction/$.$(li)If the item isn't a block or the destination block space is obstructed, nothing will be done.$(li)Normal Minecraft placement rules are followed; e.g. sugar cane can only be placed next to water on sand/dirt." + }, + { + "type": "text", + "text": "$(li)Fluid blocks will be replaced, as will replaceable blocks such as tall grass.$(li)The Placer module can plant seeds on farmland, and cocoa beans on an adjacent jungle log." + }, + { + "type": "crafting", + "recipe": "modularrouters:placer_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/player.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/player.json new file mode 100644 index 000000000000..61819901d480 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/player.json @@ -0,0 +1,31 @@ +{ + "name": "Player Module", + "category": "modules", + "icon": "modularrouters:player_module", + "pages": [ + { + "type": "text", + "text": "This module tries to transfer items between the router and a player's own inventory. The player can be anywhere in any dimension, making this a rather powerful module.$(p)The module can transfer items either from or to the player; you can set this in the module's GUI." + }, + { + "type": "text", + "text": "$(p)The module can operate on either the player's main 36-slot inventory, their 4-slot armor inventory, their offhand slot, or their Ender inventory (as shown by vanilla $(item)Ender Chests/$). This can also be set in the module's GUI.$(p)Extracted/inserted items can, of course, be filtered by the module." + }, + { + "type": "text", + "text": "A good use-case for this module would be to extract ores/cobblestone/dirt etc. from the player's inventory, and send it on to the player's main storage system in their base. With a little design, it should be possible to build a system to auto-swap your armor sets (maybe even in the field, with some wireless redstone from another mod...)" + }, + { + "type": "text", + "text": "The Player Module is keyed to a specific player; the item tooltip shows the owner. This is set to the player who initially crafted the module, but can be overridden by holding the module and sneak-right-clicking it. You might also need to do this if you obtained the module by other means (creative, JEI cheat mode...)." + }, + { + "type": "text", + "text": "Using a Security Upgrade in conjunction with this module is probably wise on servers where you don't trust the players; you don't want a hostile player stealing this module..." + }, + { + "type": "crafting", + "recipe": "modularrouters:player_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_1.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_1.json new file mode 100644 index 000000000000..34d24a750ba2 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_1.json @@ -0,0 +1,15 @@ +{ + "name": "Puller Module Mk1", + "category": "modules", + "icon": "modularrouters:puller_module_1", + "pages": [ + { + "type": "text", + "text": "This module tries to pull the first eligible item from the adjacent inventory in its $(l:intro/modules#direction)configured direction/$ into the router's buffer. If the buffer is full or contains something that stacks with nothing in the inventory, nothing will be pulled." + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_1" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_2.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_2.json new file mode 100644 index 000000000000..737a1f4646e6 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_2.json @@ -0,0 +1,20 @@ +{ + "name": "Puller Module Mk2", + "category": "modules", + "icon": "modularrouters:puller_module_2", + "pages": [ + { + "type": "text", + "text": "This behaves like the $(l:modules/puller_1)Puller Mk1/$, but can pull items from non-adjacent inventories.$(p)The inventory can be up to 12 blocks away (up to 24 with $(l:augments/range_up)Range Augments/$); clear line of sight is $(italic)not/$ required." + }, + { + "type": "text", + "text": "$(li)To select the target inventory, $(thing)Sneak-Right-click/$ the block with the Puller Mk2 module in hand. You will get a confirmation message.$(li)While holding a Puller Mk2 with a target set, the targeted block will be highlighted." + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_2", + "recipe2": "modularrouters:puller_module_2_x4" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_1.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_1.json new file mode 100644 index 000000000000..3a5781e7d1f7 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_1.json @@ -0,0 +1,16 @@ +{ + "name": "Sender Module Mk1", + "category": "modules", + "icon": "modularrouters:sender_module_1", + "pages": [ + { + "type": "text", + "text": "This module tries to send an item from the router's buffer to an inventory in the module's $(l:intro/modules#direction)configured direction/$:$(li)The target inventory can be up to 8 blocks away (up to 16 with $(l:augments/range_up)Range Up Augments/$)$(li)The target inventory $(italic)must/$ be directly along the X, Y, or Z axis.$(li)The router $(italic)must/$ have clear line of sight to the target; no opaque blocks, but blocks such as glass, fences, iron bars etc. are OK." + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_1", + "recipe2": "modularrouters:sender_module_1_alt" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_2.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_2.json new file mode 100644 index 000000000000..c9af6b119792 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_2.json @@ -0,0 +1,20 @@ +{ + "name": "Sender Module Mk2", + "category": "modules", + "icon": "modularrouters:sender_module_2", + "pages": [ + { + "type": "text", + "text": "This module behaves like a $(l:modules/sender_1)Sender Module Mk1/$, but has more powerful inventory targeting capabilities:$(li)The target inventory can be up to 24 blocks away (up to 48 with $(l:augments/range_up)Range Augments/$).$(li)Clear line of sight is $(italic)not/$ required." + }, + { + "type": "text", + "text": "$(li)To select the target inventory, $(thing)Sneak-Right-click/$ the target with the Sender Mk2 module in hand. You will get a confirmation message.$(li)While holding a Sender Mk2 with a target set, the targeted block will be highlighted." + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_2", + "recipe2": "modularrouters:sender_module_2_x4" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_3.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_3.json new file mode 100644 index 000000000000..c7e7d9e16a5c --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_3.json @@ -0,0 +1,15 @@ +{ + "name": "Sender Module Mk3", + "category": "modules", + "icon": "modularrouters:sender_module_3", + "pages": [ + { + "type": "text", + "text": " This top-end sender module operates very much like the $(l:modules/sender_3)Sender Mk2/$, but can send to any inventory (in any dimension) with no restrictions!$(p)Note: the target inventory must be chunk-loaded; $(modr) will not do this for you." + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_3" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/vacuum.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/vacuum.json new file mode 100644 index 000000000000..11899ca7afdf --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "Vacuum Module", + "category": "modules", + "icon": "modularrouters:vacuum_module", + "pages": [ + { + "type": "text", + "text": "This module scans for dropped items in a 13x13x13 cubic area around the router (i.e. up to 6 blocks in each direction), and absorbs them into the router's buffer, if possible.$(p)The range can be increased up to 25x25x25 (12 blocks in each direction) with $(l:augments/range_up)Range Up Augments/$, or shrunk to just 3x3x3 with $(l:augments/range_down)Range Down Augments/$." + }, + { + "type": "text", + "text": "The scanned area is centered on the router if the module's $(l:intro/modules#direction)configured direction/$ is $(bold)All/$ (the default).$(p)If the module has an actual direction configured, the area is offset in that direction by 6 blocks, plus one for each Range Up Augment installed, minus one for each Range Down Augment installed.$(p)E.g. with a direction of $(bold)UP/$, the module will only scan an area directly above the router." + }, + { + "type": "crafting", + "recipe": "modularrouters:vacuum_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/void.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/void.json new file mode 100644 index 000000000000..a4bb71e4f46a --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/void.json @@ -0,0 +1,15 @@ +{ + "name": "Void Module", + "category": "modules", + "icon": "modularrouters:void_module", + "pages": [ + { + "type": "text", + "text": "This dangerous module permanently destroys items in the router's buffer! It is strongly recommended to configure this module with a $(l:intro/modules#filter)whitelist filter/$ to prevent accidental deletion of valuable items..." + }, + { + "type": "crafting", + "recipe": "modularrouters:void_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/item_router.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/item_router.json new file mode 100644 index 000000000000..c99ce361e814 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/item_router.json @@ -0,0 +1,53 @@ +{ + "name": "Modular Router", + "icon": "modularrouters:item_router", + "category": "router", + "pages": [ + { + "type": "text", + "text": "The $(thing)Modular Router/$ is core of the system. It is responsible for executing all the modules plugged into it, moving items, blocks and fluids around in various ways." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/router_gui.png" + ], + "text": "$(italic)An Modular Router GUI with several modules and upgrades installed", + "border": true + }, + { + "type": "text", + "title": "1. The Buffer", + "text": "The $(thing)Modular Router/$ has a one-slot buffer, able to hold up to stack of items. This buffer is exposed as a normal inventory, so it can be interacted with via $(item)Hoppers/$ and other mod piping systems.$(p)In addition, a $(item)Comparator/$ placed against the router will measure the slot's fullness as expected." + }, + { + "type": "text", + "title": "2. Module Slots", + "text": "The $(thing)Modular Router/$ has nine slots for $(l:intro/modules)modules/$. Each time the router runs (between 1 and 10 times per second depending on Speed Upgrades), it will $(thing)execute/$ each module in turn, from left to right.$(p)You can configure installed modules without removing them from the router by pressing $(4)$(bold)[$(k:modularrouters.configure)]/$ while hovering over it, or $(thing)Middle-Clicking/$ the module in the GUI." + }, + { + "type": "text", + "title": "3. Upgrade Slots", + "text": "The $(thing)Modular Router/$ has five slots for $(l:intro/upgrades)upgrades/$. Upgrades enhance the router's functionality in various ways; for example, each inserted $(l:upgrades/speed)Speed Upgrade/$ makes the router tick a little faster, while each $(l:upgrades/stack)Stack Upgrade/$ allows it to handle more items in each operation." + }, + { + "type": "text", + "title": "4. Redstone Control", + "text": "The $(thing)Modular Router/$ has some flexibility over how it responds to redstone input, controlled by the top-right button:$(li)Default: always run, regardless of redstone signal$(li)Only run when there is $(italic)no/$ redstone signal$(li)Only run when there $(italic)is/$ a redstone signal$(li)Never run$(li)Run $(italic)once/$ when a redstone pulse is received (any signal higher than previously)." + }, + { + "type": "text", + "title": "5. Eco Mode", + "text": "In the spirit of being environmentally-friendly, the router has an option to automatically slow down if it's been idle for a while.$(p)When Eco Mode is enabled, if the router has done no work in the last $(ttcolor)$(t:Adjustable in mod config - 'ecoTimeout')5 seconds/$ then it will slow down and only tick once every $(ttcolor)$(t:Adjustable in mod config - 'lowPowerTickRate')5 seconds/$ (regardless of $(l:upgrades/speed)Speed Upgrades/$). However, as soon as it does any work, it will return to normal tick speed." + }, + { + "type": "text", + "title": "Eco Mode (cont)", + "text": "This is primarily intended for busy servers, to save on CPU cycles, but it's potentially nice-to-have for any router that only runs rarely and where rapid item transfer isn't that important (e.g. a sheep farm where you might have a $(l:modules/vacuum)Vacuum Module/$ gathering sheared wool periodically)." + }, + { + "type": "crafting", + "recipe": "modularrouters:item_router" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/termination.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/termination.json new file mode 100644 index 000000000000..0931b3ae1004 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/termination.json @@ -0,0 +1,23 @@ +{ + "name": "Termination", + "icon": "minecraft:barrier", + "category": "router", + "pages": [ + { + "type": "text", + "text": "This a slightly esoteric topic which in most cases you won't need to worry about. However, when you do need it, it'll be very useful!" + }, + { + "type": "text", + "text": "Termination is configured on a per-module basis, by the 'T' button beneath the filter slots. By default, it's inactive; if you switch if on for a module, then $(italic)if/$ the module does any work this router tick, the router will stop there. No further modules (i.e. to the right of this module) will be executed this time round." + }, + { + "type": "text", + "text": "Why would this be useful? Imagine a scenario where your router is being supplied with many items, e.g. from a quarry. You want to void $(item)Cobblestone/$, and send everything else to another inventory; so you would add a $(l:modules/void)Void Module/$ with a whitelist of Cobblestone, followed by a $(l:modules/sender_1)Sender Module/$ to send anything else onwards." + }, + { + "type": "text", + "text": "When the router runs, say there's already a stack of Cobblestone in the buffer. The Void Module will void a Cobblestone, and then the Sender module will send the remaining 63 Cobblestone on to your storage. This is probably not you want.$(p)However, if you switch on Termination on the Void Module, then when it runs, the router will stop for that tick; the Sender module won't run until the Void Module has nothing else to do." + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/blast.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/blast.json new file mode 100644 index 000000000000..1a76431b042c --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/blast.json @@ -0,0 +1,15 @@ +{ + "name": "Blast Upgrade", + "category": "upgrades", + "icon": "modularrouters:blast_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade makes the router fully immune to explosion damage, and also to being destroyed by boss mobs." + }, + { + "type": "crafting", + "recipe": "modularrouters:blast_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/camouflage.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/camouflage.json new file mode 100644 index 000000000000..a6f05bafe312 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/camouflage.json @@ -0,0 +1,15 @@ +{ + "name": "Camouflage Upgrade", + "category": "upgrades", + "icon": "modularrouters:camouflage_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade allows you to disguise the router as another block. $(thing)Sneak+Right-click/$ the module against a block to record that block on the camouflage upgrade. When inserted into a router, that router will take on the appearance of the recorded block.$(p)Note: holding a $(thing)Modular Router/$ will highlight any nearby camouflaged Routers." + }, + { + "type": "crafting", + "recipe": "modularrouters:camouflage_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/energy.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/energy.json new file mode 100644 index 000000000000..2cca6787853a --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/energy.json @@ -0,0 +1,35 @@ +{ + "name": "Energy Upgrade", + "category": "upgrades", + "icon": "modularrouters:energy_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade gives the Router an internal energy buffer. Each upgrade increases the buffer size by 50,000 FE and the transfer rate by 1,000 FE per $(italic)router tick/$ (these figures are adjustable in mod config).$(p)There are several scenarios where an Energy Upgrade is useful, detailed in the following pages." + }, + { + "type": "text", + "title": "1. Routing Energy", + "text": "The $(l:modules/energy_output)Energy Output/$ and $(l:modules/energy_distributor)Energy Distributor/$ modules are both capable of actively pushing energy from the router's buffer to adjacent or nearby blocks.$(p)With these modules, you can effectively build an energy cell with limited wireless energy transfer capabilities." + }, + { + "type": "text", + "title": "2. Powering Modules", + "text": "By default, router modules do not cost any energy to run, with the exception of the $(l:modules/activator)Activator Module/$ in attack mode. $(p)However, energy usage is configurable and it's possible that energy costs may apply to other modules in the pack you're playing; all modules list energy usage numbers in their tooltip where it applies." + }, + { + "type": "text", + "title": "3. Charging Items", + "text": "Any energy-holding item in the router's buffer can optionally have energy transferred from the router's internal buffer to the item, or vice versa.$(p)When an energy-holding item is in the item buffer, the router GUI will show a switchable button between the buffer and the energy bar to set the energy transfer direction." + }, + { + "type": "text", + "title": "Transfer Rates", + "text": "It is important to note that stated transfer rates on tooltips are in FE per $(italic)router tick/$, which is not the same as FE/t. A Router's tick rate depends on its $(l:upgrades/speed)Speed Upgrades/$; with no Speed Upgrades, a router tick is every 20 server ticks. Therefore, the overall transfer rate may be lower than you might expect." + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_upgrade" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/fluid.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/fluid.json new file mode 100644 index 000000000000..53597dc2981c --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/fluid.json @@ -0,0 +1,15 @@ +{ + "name": "Fluid Transfer Upgrade", + "category": "upgrades", + "icon": "modularrouters:fluid_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade only affects the $(l:modules/fluid)Fluid Module Mk1/$ and $(l:modules/fluid_2)Fluid Module Mk2/$.$(p)It increases the overall fluid transfer rate of the $(l:router/item_router)Router/$ (in each direction; in & out of the router) from the base rate of 50mB/tick by 10mB/tick, up to a maximum of 400mB/tick. Therefore the maximum number of Fluid Transfer Upgrades in a router is 35." + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/muffler.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/muffler.json new file mode 100644 index 000000000000..573065c7dd86 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/muffler.json @@ -0,0 +1,19 @@ +{ + "name": "Muffler Upgrade", + "category": "upgrades", + "icon": "modularrouters:muffler_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade can be used to suppress sounds and particle effects made by item routers, and can be useful if a noisy module is regularly running in a place where a player often is.$(li)One or more Muffler Upgrades in a router will disable all audible effects$(li)Two or more will also disable all particle effects (beams and flying items)" + }, + { + "type": "text", + "text": "$(li)Three upgrades will also disable the router's active animation; the pulsing texture on the front face of the router block$(p)Note that all sounds and particle effects can also be disabled in the mod config; this upgrade is only useful if sounds/effects have not been disabled." + }, + { + "type": "crafting", + "recipe": "modularrouters:muffler_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/security.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/security.json new file mode 100644 index 000000000000..1c33086aa426 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/security.json @@ -0,0 +1,40 @@ +{ + "name": "Security Upgrade", + "category": "upgrades", + "icon": "modularrouters:security_upgrade", + "pages": [ + { + "type": "text", + "text": "The $(thing)Security Upgrade/$ has several important functions, detailed in the following pages." + }, + { + "type": "text", + "title": "Protection", + "text": "A Router with a Security Upgrade installed can $(italic)only/$ be opened by players whitelisted by that upgrade. The upgrade doesn't prevent a router being broken; but since upgrades and modules remain in a broken router, players can't break a router to steal modules/upgrades or reconfigure the router. If you want to prevent a router being broken, you may wish to explore other mods' block protection capabilities." + }, + { + "type": "text", + "title": "Fake Players", + "text": "Several modules ($(l:modules/placer)Placer/$, $(l:modules/breaker)Breaker/$, $(l:modules/activator)Activator/$) do their work as a $(thing)fake player/$. By default this is a player with the username $(thing)[Modular Routers]/$, but when a security upgrade is installed, those modules operate as the upgrade's owner. This is much safer on multiplayer servers with claim protection than simply allowing $(thing)[Modular Routers]/$ to do anything with your claims." + }, + { + "type": "text", + "title": "Activator Attack Mode", + "text": "When the $(l:modules/activator)Activator Module/$ is in $(thing)Attack Mode/$, it will ignore any players whitelisted by a Security Upgrade installed in the Router. This is generally a good idea to avoid pain & suffering if you have a high-damage weapon in your Router..." + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "$(li)There is a non-craftable item called the $(thing)Security Override Card/$ - this can be obtained in creative mode or by cheating the item in via JEI etc. A player who holds one of these in either hand is not affected by any Security Upgrade, and can access any router." + }, + { + "type": "text", + "text": "You can add extra players to a Security Upgrade by $(thing)right-clicking/$ the player with the upgrade in your main hand.$(p)You can remove players from a Security Upgrade by $(thing)sneak-right-clicking/$ the player.$(p)There is a maximum of 6 additional players per Security Upgrade (so 7 in total, including the creator), but you can install more than one Security Upgrade in a router if necessary." + }, + { + "type": "crafting", + "recipe": "modularrouters:security_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/speed.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/speed.json new file mode 100644 index 000000000000..1717971249b6 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/speed.json @@ -0,0 +1,19 @@ +{ + "name": "Speed Upgrade", + "category": "upgrades", + "icon": "modularrouters:speed_upgrade", + "pages": [ + { + "type": "text", + "text": "By default, a $(l:router/item_router)router/$ ticks every 20 server ticks, or once per second. On each tick, every installed module is executed in order, left to right.$(p)If you need a router to run faster than this, add $(thing)Speed Upgrades/$; each Speed Upgrade reduces the tick interval by 2 server ticks, down to a minimum of every 2 server ticks (or 10 times per second)." + }, + { + "type": "text", + "text": "The base tick rate, tick increase per upgrade, and hard minimum tick rate are all configurable in the module's config (config/modularrouters-common.toml).$(p)For performance reasons, $(l:upgrades/stack)Stack Upgrades/$ should be preferred over Speed Upgrades where possible; use Speed Upgrades judiciously and only where absolutely required for maximum item transfer rate.$(p)Be Kind To Your Server (tm)." + }, + { + "type": "crafting", + "recipe": "modularrouters:speed_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/stack.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/stack.json new file mode 100644 index 000000000000..3c9631d01814 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/stack.json @@ -0,0 +1,19 @@ +{ + "name": "Stack Upgrade", + "category": "upgrades", + "icon": "modularrouters:stack_upgrade", + "pages": [ + { + "type": "text", + "text": "Modules in a router operate on a single item at a time: e.g. a $(l:modules/sender_1)Sender Module/$ will send a single item from the router's buffer each router tick, regardless of how many items are in the buffer." + }, + { + "type": "text", + "text": "By adding Stack Upgrades to a router, this can be increased. Each Stack Upgrade doubles the number of items that can be processed by each module, up to a maximum of 64, or the item's native stack size (e.g. 16 for $(item)Ender Pearls/$).$(p)It therefore follows that 6 is the maximum number of useful Stack Upgrades which can be installed in one router." + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/sync.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/sync.json new file mode 100644 index 000000000000..ea3d80efea08 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/sync.json @@ -0,0 +1,27 @@ +{ + "name": "Sync Upgrade", + "category": "upgrades", + "icon": "modularrouters:sync_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade is used to guarantee that two or more routers run at the same time. The Sync Upgrade has a tuning value of 0 .. 19 (i.e. 1 less than the base router tick rate of 20). This tuning value can be set by $(thing)right-clicking/$ the Sync Upgrade to open its GUI, or quickly set to a random value by $(thing)sneak-right-clicking/$ the upgrade." + }, + { + "type": "text", + "text": "Any routers with this upgrade installed, with same the tuning value, and with the same number of $(l:upgrades/speed)Speed Upgrades/$ installed, will always run on the same tick. The actual tuning value doesn't matter; only that the value is consistent across the routers you want to synchronise.$(p)This is particularly useful if you have a group of routers with $(l:modules/extruder_1)Extruder Modules/$ installed, and want to ensure all modules extend/retract at exactly the same time." + }, + { + "type": "text", + "text": "Advanced notes #1: the Sync Upgrade's tuning value actually specifies precisely when the router will run relative to its tick rate. E.g. routers tick every 20 server ticks by default; a Sync Upgrade with a tuning upgrade of 15 ensures the router $(italic)always/$ runs 15 ticks after that, and that applies to $(italic)all/$ routers with a 15-tuned Sync Upgrade. And a 16-tuned Sync Upgrade always runs 1 tick after a 15-tuned Sync Upgrade, at least for routers with the same number of $(l:upgrades/speed)Speed Upgrades/$ installed..." + }, + { + "type": "text", + "text": "Advanced notes #2: Because $(l:upgrades/speed)Speed Upgrades/$ make routers tick more frequently, they affect how Sync Upgrades work. A router with 9 Speed Upgrades ticks every 2 server ticks (instead of every 20). For Sync Upgrades in such a router, it only matters whether the tuning value is even or odd; 2 (or 4/6/8...) ticks later is effectively the same as 0 ticks later! General case: the tuning value is calculated modulo the router's actual tick rate after Speed Upgrades are accounted for." + }, + { + "type": "crafting", + "recipe": "modularrouters:sync_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/augments.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/augments.json new file mode 100644 index 000000000000..cefecd312926 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/augments.json @@ -0,0 +1,6 @@ +{ + "name": "拓展", + "description": "模块拓展可以安装在模块中以增强或拓展它们的功能。", + "icon": "modularrouters:xp_vacuum_augment", + "sortnum": 4 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/filters.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/filters.json new file mode 100644 index 000000000000..1f69169d28aa --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/filters.json @@ -0,0 +1,6 @@ +{ + "name": "智能过滤器", + "description": "智能过滤器是一组过滤器物品,可以放在任何模块的过滤栏位中来取代普通物品,并提供更加复杂的物品匹配功能。", + "icon": "modularrouters:bulk_item_filter", + "sortnum": 5 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/intro.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/intro.json new file mode 100644 index 000000000000..ae707f69165f --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/intro.json @@ -0,0 +1,6 @@ +{ + "name": "介绍", + "description": "欢迎来到$(#228)模块化路由器$()!", + "icon": "minecraft:knowledge_book", + "sortnum": 0 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/modules.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/modules.json new file mode 100644 index 000000000000..fe5ad56aeadd --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/modules.json @@ -0,0 +1,6 @@ +{ + "name": "模块", + "description": "模块可以放进模块化路由器并决定路由器的功能。", + "icon": "modularrouters:sender_module_1", + "sortnum": 2 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/router.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/router.json new file mode 100644 index 000000000000..c7680a6c150a --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/router.json @@ -0,0 +1,6 @@ +{ + "name": "模块化路由器", + "description": "模块化路由器是$(#228)模块化路由器$()中唯一的方块。", + "icon": "modularrouters:item_router", + "sortnum": 1 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/upgrades.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/upgrades.json new file mode 100644 index 000000000000..ca2888620aa2 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/upgrades.json @@ -0,0 +1,6 @@ +{ + "name": "升级", + "description": "升级可以安装在模块化路由器中以增强或修改其功能。", + "icon": "modularrouters:speed_upgrade", + "sortnum": 3 +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/fast_pickup.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/fast_pickup.json new file mode 100644 index 000000000000..d553e6ff456f --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/fast_pickup.json @@ -0,0 +1,15 @@ +{ + "name": "快速拾取拓展", + "category": "augments", + "icon": "modularrouters:fast_pickup_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/vacuum)真空模块/$中。它可以使真空模块无视掉落物品的正常拾取延迟——玩家投掷的物品有 40 刻的延迟,其它手段投掷的物品有 10 刻的延迟(例如绵羊剪毛)——立刻拾取任何检测到的物品。$(p)最多可以添加一个快速拾取拓展。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fast_pickup_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/mimic.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/mimic.json new file mode 100644 index 000000000000..f505708ceb59 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/mimic.json @@ -0,0 +1,15 @@ +{ + "name": "模仿拓展", + "category": "augments", + "icon": "modularrouters:mimic_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/extruder_2)挤出模块 2 型/$中。$(p)添加后,任何由模块挤出的假方块都会有对应方块的特性,例如$(item)黑曜石/$难以被破坏、$(item)荧石/$会发光,以及$(item)红石块/$会发出红石信号。" + }, + { + "type": "crafting", + "recipe": "modularrouters:mimic_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pickup_delay.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pickup_delay.json new file mode 100644 index 000000000000..2b5bc9537efe --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pickup_delay.json @@ -0,0 +1,15 @@ +{ + "name": "延迟拾取拓展", + "category": "augments", + "icon": "modularrouters:pickup_delay_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/dropper)投掷器/$和$(l:modules/flinger)投掷/$模块中。$(p)它可以堆叠;每添加一个拓展,投掷的物品就会增加 10 刻(0.5 秒)的拾取延迟。例如,这对防止玩家意外捡起附近的掉落物品来说非常有用。" + }, + { + "type": "crafting", + "recipe": "modularrouters:pickup_delay_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pushing.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pushing.json new file mode 100644 index 000000000000..38cfaa25aba0 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pushing.json @@ -0,0 +1,15 @@ +{ + "name": "推动拓展", + "category": "augments", + "icon": "modularrouters:pushing_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/extruder_1)挤出 1 型/$和$(l:modules/extruder_2)挤出 2 型/$模块中。$(p)它可以堆叠;每个拓展都会增加模块挤出方块时推动实体的推力。" + }, + { + "type": "crafting", + "recipe": "modularrouters:pushing_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_down.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_down.json new file mode 100644 index 000000000000..780d7057bbce --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_down.json @@ -0,0 +1,16 @@ +{ + "name": "范围缩小拓展", + "category": "augments", + "icon": "modularrouters:range_down_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至有范围的模块中(发送$(l:modules/sender_1)1 型/$ / $(l:modules/sender_2)2 型/$、抽取$(l:modules/puller_1)1 型/$ / $(l:modules/puller_2)2 型/$、挤出$(l:modules/extruder_1)1 型/$ / $(l:modules/extruder_2)2 型/$、$(l:modules/fluid_2)流体 2 型/$、$(l:modules/vacuum)真空/$)。$(p)它可以堆叠;每个拓展都会降低一格模块的范围。$(p)此拓展可能只适合与$(l:modules/vacuum)真空模块/$一起使用,以便控制模块检测物品的范围。" + }, + { + "type": "crafting", + "recipe": "modularrouters:range_down_augment", + "recipe2": "modularrouters:range_down_from_up" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_up.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_up.json new file mode 100644 index 000000000000..402729c73495 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_up.json @@ -0,0 +1,16 @@ +{ + "name": "范围扩大拓展", + "category": "augments", + "icon": "modularrouters:range_up_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至有范围的模块中(发送$(l:modules/sender_1)1 型/$ / $(l:modules/sender_2)2 型/$、抽取$(l:modules/puller_1)1 型/$ / $(l:modules/puller_2)2 型/$、挤出$(l:modules/extruder_1)1 型/$ / $(l:modules/extruder_2)2 型/$、$(l:modules/fluid_2)流体 2 型/$、$(l:modules/vacuum)真空/$)。$(p)它可以堆叠;每个拓展都会增加一格模块的范围。" + }, + { + "type": "crafting", + "recipe": "modularrouters:range_up_augment", + "recipe2": "modularrouters:range_up_from_down" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/redstone.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/redstone.json new file mode 100644 index 000000000000..3915e6b948f2 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/redstone.json @@ -0,0 +1,15 @@ +{ + "name": "红石拓展", + "category": "augments", + "icon": "modularrouters:redstone_augment", + "pages": [ + { + "type": "text", + "text": "该拓展可以被添加至任意模块。$(p)通常情况下,模块会在路由器运行时运行,不需要其他条件。然而,如果将此拓展添加到模块中,就可使模块定义自己的红石行为;模块的 GUI 中会添加一个额外的按钮用于控制红石行为。" + }, + { + "type": "crafting", + "recipe": "modularrouters:redstone_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/regulator.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/regulator.json new file mode 100644 index 000000000000..61e625bb2c57 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/regulator.json @@ -0,0 +1,27 @@ +{ + "name": "调节拓展", + "category": "augments", + "icon": "modularrouters:regulator_augment", + "pages": [ + { + "type": "text", + "text": "该拓展可以精确控制从容器或路由器缓存区中输入或输出的物品量。$(p)当模块安装调节拓展时,你会看到其 GUI 中有额外的数字文本框供你配置限度。此限度在特定的模块上有着不同的解释:" + }, + { + "type": "text", + "text": "$(li)对于发送$(l:modules/sender_1)1 型/$ / $(l:modules/sender_2)2 型/$ / $(l:modules/sender_3)3 型/$模块和$(l:modules/player)玩家模块/$(输入模式)来说,只有当容器中该物品的数量小于配置的数字时,模块才会向容器发送物品。$(li)对于抽取$(l:modules/puller_1)1 型/$ / $(l:modules/puller_2)2 型/$和$(l:modules/player)玩家模块/$(提取模式)来说,只有当容器中的该物品的数量大于配置的数字时,模块才会从容器中抽取物品。" + }, + { + "type": "text", + "text": "$(li)对于$(l:modules/dropper)投掷器/$、$(l:modules/flinger)投掷/$、$(l:modules/placer)放置/$和$(l:modules/void)销毁/$模块来说,只有当路由器缓存区的物品数量大于配置的数字时模块才会运作。$(li)对于$(l:modules/breaker)破坏/$和$(l:modules/vacuum)真空/$模块来说,只有当路由器缓存区的物品数量小于配置的数字时模块才会运作。" + }, + { + "type": "text", + "text": "$(li)对于流体$(l:modules/fluid)1 型/$ / $(l:modules/fluid_2)2 型/$模块来说,限度可以是目标储罐容量的百分比,或以 mB 为单位的绝对含量(在 GUI 中可选),而不是物品数量。当抽取流体时,只有当目标中流体$(italic)多于/$配置的量时模块才会运作;当输出流体时,只有当目标中流体$(italic)少于/$配置的量时模块才会运作。" + }, + { + "type": "crafting", + "recipe": "modularrouters:regulator_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/stack.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/stack.json new file mode 100644 index 000000000000..0fe9b9dcc46a --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/stack.json @@ -0,0 +1,19 @@ +{ + "name": "堆叠拓展", + "category": "augments", + "icon": "modularrouters:stack_augment", + "pages": [ + { + "type": "text", + "text": "该模块可以被添加至任何可以处理$(italic)物品/$(与$(italic)方块/$、$(italic)流体/$或$(italic)能量/$相对)的模块中。$(p)向模块中添加堆叠拓展可以增加模块每游戏能够处理的物品数量;每个堆叠拓展可使物品数量翻倍,最大上限为物品的自然堆叠大小(大多数物品为 64)。" + }, + { + "type": "text", + "text": "如果$(l:router/item_router)路由器/$同时安装了$(l:upgrades/stack)堆叠升级/$,模块中的堆叠拓展会覆盖它;比如说,如果路由器有 6 个堆叠升级,而模块有 2 个堆叠拓展,模块每游戏刻只会处理 4 个物品,而不是 64 个。" + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/xp_vacuum.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/xp_vacuum.json new file mode 100644 index 000000000000..bcc58f31ef09 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/xp_vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "经验真空拓展", + "category": "augments", + "icon": "modularrouters:xp_vacuum_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/vacuum)真空模块中/$。$(p)添加该拓展后,真空模块将会吸收经验球,而不是物品。经验球将会以每瓶 7 经验的倍率(摔碎附魔之瓶得到的平均经验值)转化为$(item)附魔之瓶/$。" + }, + { + "type": "text", + "text": "取决于安装的其他模组,该拓展也有可能将经验球转化为经验流体。这需要路由器的缓存区或相邻处有一个流体储罐。在后一种情况下,请确保真空模块 GUI 中的$(bold)输出/$按钮为开启状态。" + }, + { + "type": "crafting", + "recipe": "modularrouters:xp_vacuum_augment" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/bulk_item.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/bulk_item.json new file mode 100644 index 000000000000..b050155a015a --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/bulk_item.json @@ -0,0 +1,27 @@ +{ + "name": "批量物品过滤器", + "category": "filters", + "icon": "modularrouters:bulk_item_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以进行高达 54 种不同物品的高性能匹配,包括可选的 NBT 匹配。批量物品过滤器可以一些别样的方式进行配置:$(p)$(li)用过滤器$(thing)潜行+右击/$任意容器将容器内物品的副本合并至过滤器中。" + }, + { + "type": "text", + "text": "$(li)$(thing)右击/$过滤器以打开显示目前过滤物品的 GUI。你可以添加物品(的副本)至过滤器,点击物品来移除它们,或按红色的$(bold)$(4)“X”/$按钮来彻底清除过滤器。" + }, + { + "type": "text", + "text": "$(li)当过滤器在路由器里的模块中时,你可以将鼠标悬停在其上方并按鼠标中键或$(bold)$(4)[$(k:modularrouters.configure)]/$打开过滤器的 GUI。$(p)$(bold)如果/$模块找到了有效的容器,GUI 中将会出现两个额外的按钮:一个用于$(italic)合并/$目标容器物品的绿色$(bold)$(2)“+”/$按钮,以及一个用于$(italic)加载/$(覆盖过滤器的当前内容)目标容器物品的蓝色$(bold)$(1)“=”/$按钮。" + }, + { + "type": "text", + "text": "最后一种配置手段非常适合用于和$(l:modules/sender_2)发送模块/$结合以实现分类系统,因为批量物品过滤器可以记住容器中应有的物品,即使后续容器被取空。" + }, + { + "type": "crafting", + "recipe": "modularrouters:bulk_item_filter" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/inspection.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/inspection.json new file mode 100644 index 000000000000..e8da1a595fea --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/inspection.json @@ -0,0 +1,23 @@ +{ + "name": "检测过滤器", + "category": "filters", + "icon": "modularrouters:inspection_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以按物品的各种杂项整型属性匹配物品。目前支持的检测有:$(li)流体容器物品(桶、储罐……)的流体储量百分比。$(li)能量容器物品(电池、电力工具……)的能量储量百分比。" + }, + { + "type": "text", + "text": "$(li)物品上魔咒的最高魔咒等级(可以用于过滤附魔物品,比如从刷怪塔中来的物品)。$(li)物品(工具、武器)的耐久度与最大耐久度百分比。$(li)可食用物品的食物营养价值,恢复多少半个鸡腿的数量(例如牛排的值为 8)。" + }, + { + "type": "text", + "text": "没有检测属性的物品,返回值将会永远为 -1,比如一块$(item)圆石/$的耐久度值为 -1。这与 0 返回值不同,因为有着小于 1% 耐久度的工具会返回 0 这个值。$(p)该过滤器非常适合自动抽取损坏或没电的物品,进行修复/充电,等等。" + }, + { + "type": "crafting", + "recipe": "modularrouters:inspection_filter" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/mod.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/mod.json new file mode 100644 index 000000000000..106db30a7317 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/mod.json @@ -0,0 +1,19 @@ +{ + "name": "模组过滤器", + "category": "filters", + "icon": "modularrouters:mod_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以按物品属于的模组匹配物品。每个过滤器最多可以添加 6 个模组。$(li)$(thing)右击/$过滤器以打开其GUI(也可以对安装在模块中的过滤器按$(thing)鼠标中键/$ / $(bold)$(4)[$(k:modularrouters.configure)]/$ )。" + }, + { + "type": "text", + "text": "$(li)将任意物品放入GUI左上角的物品栏位中。物品的模组名称将会显示在右方。点击$(bold)$(2)“+”/$按钮将其添加至下方的模组列表中。$(li)点击条目旁的红色$(bold)$(4)“X”/$按钮将模组从列表中移除。$(p)原版物品也可以被添加,它们的“模组”名称将会显示为$(italic)Minecraft/$。" + }, + { + "type": "crafting", + "recipe": "modularrouters:mod_filter" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/regex.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/regex.json new file mode 100644 index 000000000000..4af0b42bf395 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/regex.json @@ -0,0 +1,34 @@ +{ + "name": "正则过滤器", + "category": "filters", + "icon": "modularrouters:regex_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以用正则表达式匹配物品和方块,和物品的$(strong)注册名/$进行比对。正则表达式非常强大,但需要花一些时间进行学习才能解锁其全部潜力。不过,基础的正则表达式运用并不是很困难。有许多网站都有关于正则表达式的教程信息,例如$(l:https://regexone.com/)RegexOne/$。" + }, + { + "type": "text", + "title": "注册名", + "text": "因为物品过滤是完全在服务器中进行的,因此无法确保物品的显示文本是什么。因此,所有过滤都会按照物品的内部$(thing)注册名/$进行比对。你可以通过按$(thing)F3+H/$开启高级提示框来查看其注册名。$(p)请注意,匹配只会比对冒号$(italic)后/$的部分。" + }, + { + "type": "text", + "text": "$(thing)$(thing)右击/$过滤器,或对安装在模块中的过滤器按$(thing)鼠标中键/$ / $(bold)$(4)[$(k:modularrouters.configure)]/$来打开模块GUI。$(li)在顶部的文本框中输入正则表达式,然后按$(thing)回车键/$或点击绿色的$(bold)$(2)“+”/$按钮。假设语法正确,你的正则表达式将会添加到列表中。一个过滤器中最多有 6 个条目。$(li)点击任意正则表达式旁的红色$(bold)$(4)“X”/$将其从列表中移除。$(li)匹配不区分大小写。" + }, + { + "type": "text", + "title": "示例 1", + "text": "正则表达式'ore'会匹配所有注册名中含有'ore'的物品(\"iron_ore\"、\"gold_ore\"、\"redstone_ore\")。不幸的是,它也会匹配\"drill_core\",你可以通过使用正则表达式$(1)_ore/$来避免这种情况。想要更精确,你可以使用$(1)_ore$/$,这可以确保字符串\"_ore\"在物品注册名的结尾。" + }, + { + "type": "text", + "title": "示例 2", + "text": "配置一个$(l:modules/player)玩家模块/$让它从玩家的主物品栏中提取物品,并在模块中放一个含有$(1)_ore/$的正则过滤器。这可以用于提取任何来自你物品栏中的矿石,无论你身在何地,并将它们放到矿石处理系统中;如果你在离你基底很远的地方采矿,并且你想要让采掘的矿物立即送回家,这会很方便。" + }, + { + "type": "crafting", + "recipe": "modularrouters:regex_filter" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/augments.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/augments.json new file mode 100644 index 000000000000..07f90db98b4b --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/augments.json @@ -0,0 +1,19 @@ +{ + "name": "拓展", + "icon": "modularrouters:augment_core", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)拓展/$和$(l:intro/upgrades)升级/$相似,但用于$(l:intro/modules)模块/$而不是$(l:intro/item_router)模块化路由器/$。每个模块都有可以安装 4 个拓展的栏位(一些拓展可以堆叠)。拓展可以各种方式增强或拓展模块的功能。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/augments.png" + ], + "text": "$(italic)一个带有 6 个范围扩大拓展和经验真空拓展的真空模块/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/filters.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/filters.json new file mode 100644 index 000000000000..5cad000821ef --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/filters.json @@ -0,0 +1,19 @@ +{ + "name": "智能过滤器", + "icon": "modularrouters:bulk_item_filter", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)智能过滤器/$可以代替常规物品放入$(l:intro/modules)模块/$的过滤器栏位中。和直接匹配物品不同,过滤器有特殊的匹配功能。$(p)比方说,$(l:filters/bulk_item)批量物品过滤器/$可以高效的匹配 54 种不同的物品,且其物品可以直接从现有容器中配置。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/bulk_filter.png" + ], + "text": "$(italic)安装在抽取模块 2 型中的批量物品过滤器/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/item_router.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/item_router.json new file mode 100644 index 000000000000..28c88d143695 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/item_router.json @@ -0,0 +1,15 @@ +{ + "name": "模块化路由器总览", + "icon": "modularrouters:item_router", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(item)模块化路由器/$是路由系统的核心方块。仅凭路由器自己,它最多只能提供一个栏位的物品栏(可以通过漏斗和其他模组的管道系统进行输入或输出)。$(p)然而,想要通过路由器做任何有用的事,你需要安装一个或多个(最多九个)$(l:intro/modules)模块/$。" + }, + { + "type": "text", + "text": "每当路由器走过一个路由器刻——默认每秒一次——它就会按照顺序执行所有安装的模块。每个模块都会对缓存区的物品或路由器周围的世界进行特定的操作——查看$(bold)模块/$部分以了解每种单独的模块类型。$(p)路由器的操作也可以通过$(bold)升级/$修改——将其加速、每路由器刻处理更多物品、增加特定模块的范围……" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/misc.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/misc.json new file mode 100644 index 000000000000..450daec97b03 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/misc.json @@ -0,0 +1,26 @@ +{ + "name": "杂项", + "icon": "minecraft:book", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "此章节介绍了一些杂项物品和合成部件。" + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "见$(l:upgrades/security#override)安全升级/$。" + }, + { + "type": "crafting", + "recipe": "modularrouters:blank_module", + "recipe2": "modularrouters:blank_upgrade" + }, + { + "type": "crafting", + "recipe": "modularrouters:augment_core" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/modules.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/modules.json new file mode 100644 index 000000000000..92c11aba7de6 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/modules.json @@ -0,0 +1,50 @@ +{ + "name": "模块", + "icon": "modularrouters:breaker_module", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)模块/$可以放进$(l:intro/item_router)模块化路由器中/$并告诉路由器干什么。有 20 种模块类型,每种都有特定的功能。不过,所有模块都具有共性:$(li)所有模块都有 9 个$(thing)过滤器栏位/$来控制模块处理的物品。$(li)许多模块有明确的$(thing)方向/$,和路由器的朝向有关。" + }, + { + "type": "text", + "text": "$(li)一些模块有用于配置相关功能的额外设置。$(p)这些都可以在模块的 GUI 中配置,你可以手持模块时$(thing)右击/$来访问 GUI。$(p)你还可以通过鼠标悬浮在模块中按$(4)$(bold)[$(k:modularrouters.configure)]/$或$(thing)鼠标中键/$在路由器GUI中配置安装好的模块,无需将其从路由器中移出。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/module_gui.png" + ], + "text": "$(italic)模块 GUI:有关 GUI 每个部分的描述,请查阅以下页面/$", + "border": true + }, + { + "type": "text", + "title": "1. 过滤器栏位", + "anchor": "filter", + "text": "总共有九个过滤器栏位,你可以将任何物品或方块的拷贝放入其中。只有当路由器$(thing)缓存区/$中的物品与过滤器中的某个物品匹配(白名单时;黑名单则相反)模块才会运作。" + }, + { + "type": "text", + "anchor": "direction", + "title": "2. 方向选择器", + "text": "大多数模块以明确的方向运作,和路由器的朝向有关。你可以在这里定义方向。/$(p)一些模块(例如$(l:modules/sender2)发送 2 型/$)直接指向一个远处的方块,因此没有可定义的方向。这种情况下,方向选择器将为空白。" + }, + { + "type": "text", + "title": "3. 过滤器控制", + "text": "这里有一些按钮,它们控制着:$(li)白名单 / 黑名单$(li)是否匹配物品的损害值(用于有耐久度的物品)$(li)是否匹配物品 NBT,例如魔咒$(li)是否按$(l:https://zh.minecraft.wiki/w/%E6%A0%87%E7%AD%BE)物品标签/$匹配$(p)还有一个用于控制$(l:router/termination)终止行为/$的按钮,在单独一页中有解释。" + }, + { + "type": "text", + "title": "4. 拓展", + "text": "每个模块都有四个$(thing)拓展/$栏位,可以放入拓展(用于模块的升级)。$(p)可以放入的拓展种类取决于模块类型;不是每个模块类型都接受所有拓展类型。" + }, + { + "type": "text", + "title": "5. 额外设置", + "text": "一些模块有额外配置选项。比方说,之前展示的$(l:modules/detector)检测模块/$有设置红石输出等级的选项,以及输出信号为强或弱充能的选项。$(p)当模块有类似的选项时,它们会在 GUI 的右侧显示出来。" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/overview.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/overview.json new file mode 100644 index 000000000000..a92ec125237e --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/overview.json @@ -0,0 +1,20 @@ +{ + "name": "总览", + "icon": "minecraft:cake", + "category": "intro", + "priority": "true", + "pages": [ + { + "type": "text", + "text": "欢迎来到$(#228)模块化路由器$()!$(p)这是一个高度灵活的模组,能够以多种方式在世界中搬运物品。你只需要用一个方块——$(thing)模块化路由器/$——以及一个或多个可插入的$(thing)模块/$,就可以从任何容器中抽取物品、将它们发送到或近或远的其他容器中、放置方块、破坏方块、投掷物品到世界中、分类物品,还有更多可以做的事。" + }, + { + "type": "image", + "text": "$(italic)把它想象成一个更强大的可调节性极高的漏斗……/$", + "images": [ + "modularrouters:textures/patchouli/item_router.png" + ], + "border": "true" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/upgrades.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/upgrades.json new file mode 100644 index 000000000000..85233f648cb2 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/upgrades.json @@ -0,0 +1,11 @@ +{ + "name": "升级", + "icon": "modularrouters:speed_upgrade", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)升级/$可在多种方面提升$(l:intro/item_router)模块化路由器/$的功能。共有 8 种不同的升级,每个模块化路由器有 5 个升级栏位。$(p)你可以在升级栏位中放置多个升级,尽管每种可以放入路由器的升级数量有限;见单独介绍升级的页面或升级物品的提示以了解更多信息。" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/activator.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/activator.json new file mode 100644 index 000000000000..4dbd5808d786 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/activator.json @@ -0,0 +1,34 @@ +{ + "name": "执行模块", + "category": "modules", + "icon": "modularrouters:activator_module", + "pages": [ + { + "type": "text", + "text": "这个强大的模块表现得像一个$(italic)假玩家/$,可以对周围的方块或实体使用路由器缓存区中的物品。有三种模式可在 GUI 右边的控制进行选择。以下页面详细描述了每种模式。" + }, + { + "type": "text", + "title": "右击", + "text": "此模式会用路由器缓存区中的物品执行右击操作,和玩家执行是一样的。其中的逻辑与玩家点击是相同的,比如用$(item)打火石/$右击门会打开门,而不是点火。$(p)目标方块(如果有的话)取决于路由器的朝向、模块方向和朝向上方/下方/水平模块设置。" + }, + { + "type": "text", + "title": "右击实体", + "text": "此模式会用路由器缓存区中的物品对附近的一个$(thing)实体/$执行右击操作。例如,你可以使用此模式为牛挤奶,或为绵羊剪毛。$(p)这会导致物品掉落在地面上,比如用路由器缓存区中多于一个的桶点击牛时。" + }, + { + "type": "text", + "title": "攻击实体", + "text": "此模式会用路由器缓存区中的物品对附近的一个一个$(thing)实体/$执行左击操作,对其进行攻击。与其他模式不同,此模式默认会消耗$(l:upgrades/energy)Forge 能量/$。$(p)注:虽然$(l:upgrades/speed)速度升级/$在这里会很有用,但是依然会有武器冷却,因此过量的速度升级只会浪费能量和武器耐久度。" + }, + { + "type": "text", + "text": "执行模块大约有 4 格的距离,和真正的玩家相似。该模块也可以配置成朝向$(thing)上方/$或$(thing)下方/$(默认为$(thing)水平/$)。$(p)$(thing)朝向上方/$对于在路由器旁或上方的完整方块上种植东西是非常方便,而$(thing)朝向下方/$在你想要直接指向路由器周围而非远处的地面时很有用。" + }, + { + "type": "crafting", + "recipe": "modularrouters:activator_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/breaker.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/breaker.json new file mode 100644 index 000000000000..8ca3755b09e2 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/breaker.json @@ -0,0 +1,23 @@ +{ + "name": "破坏模块", + "category": "modules", + "icon": "modularrouters:breaker_module", + "pages": [ + { + "type": "text", + "text": "该模块会尝试破坏与$(l:router/item_router)路由器/$模块$(l:intro/modules#direction)配置方向/$相邻的方块。$(p)它可以破坏大多数方块,但任何硬度为不可破坏(比如原版的$(item)基岩/$或$(item)末地传送门/$)的方块不可以被破坏,流体方块也无法被破坏。方块破坏后,如果可行,其主要掉落物会被自动放进路由器的物品缓存区。" + }, + { + "type": "text", + "text": "破坏模块可以由任意类型的镐(包括模组中的镐)合成而得,但用于合成模块的镐决定了模块的采集等级。比如你用一把$(item)铁镐/$合成了破坏模块,它就无法破坏$(item)黑曜石/$。$(p)此外,镐上的任何$(thing)魔咒/$都会在模块中生效($(thing)精准采集/$和$(thing)时运/$有特殊用途)。" + }, + { + "type": "text", + "text": "默认状态下破坏模块过滤器会对$(thing)预期掉落的物品生效/$,而不是方块本身。比如过滤$(item)石头/$不会在破坏石头时起效,除非模块开启了$(thing)精准采集/$。在此情况下,你应该过滤$(item)圆石/$。$(p)你可以在模块 GUI 中设置按$(thing)方块/$匹配;这对区分不掉落任何东西的方块很有用,比如$(item)冰/$和$(item)浮冰/$。" + }, + { + "type": "crafting", + "recipe": "modularrouters:breaker_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/creative.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/creative.json new file mode 100644 index 000000000000..fc683a97c343 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/creative.json @@ -0,0 +1,11 @@ +{ + "name": "创造模块", + "category": "modules", + "icon": "modularrouters:creative_module", + "pages": [ + { + "type": "text", + "text": "创造模块是一种无法合成的特殊模块,会无中生有,产生物品进入路由器的缓存区。$(p)它将模块的过滤器作为物品列表,每路由器刻都会以轮询的方式遍历过滤器中的物品。它不会受任何其它过滤器设置的影响(白名单/黑名单,NBT 匹配……)。" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/detector.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/detector.json new file mode 100644 index 000000000000..d05fda6713a3 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/detector.json @@ -0,0 +1,15 @@ +{ + "name": "检测模块", + "category": "modules", + "icon": "modularrouters:detector_module", + "pages": [ + { + "type": "text", + "text": "该模块不会操纵物品,而是检测路由器缓存区中的特定物品。如果缓存区中的物品与模块的过滤器相匹配,它就会使路由器在$(l:intro/modules#direction)配置方向/$发出红石信号。$(p)信号等级(默认:15)和信号充能方式(默认:弱)可以通过模块 GUI 调整。" + }, + { + "type": "crafting", + "recipe": "modularrouters:detector_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/distributor.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/distributor.json new file mode 100644 index 000000000000..d80e5a085297 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/distributor.json @@ -0,0 +1,19 @@ +{ + "name": "分配模块", + "category": "modules", + "icon": "modularrouters:distributor_module", + "pages": [ + { + "type": "text", + "text": "这是$(l:modules/sender_2)发送模块 2 型/$的拓展版本,可以向多个目标发送物品。$(thing)潜行右击/$容器将其加入分配模块,再次$(thing)潜行右击/$容器将其移除。$(p)分配模块最多可以向8个目标分配物品。" + }, + { + "type": "text", + "text": "通过 GUI 右侧的控制可以控制分配策略:$(li)$(bold)轮询/$——轮回为每个容器分配,尽可能地平均$(li)$(bold)随机/$——随机选取其中一个目标$(li)$(bold)最近/$——总是填充最近且有空位的目标$(li)$(bold)最远/$——总是填充总是填充最远且有空位的目标。" + }, + { + "type": "crafting", + "recipe": "modularrouters:distributor_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/dropper.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/dropper.json new file mode 100644 index 000000000000..8603a4e6eaa9 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/dropper.json @@ -0,0 +1,15 @@ +{ + "name": "投掷器模块", + "category": "modules", + "icon": "modularrouters:dropper_module", + "pages": [ + { + "type": "text", + "text": "该模块会试着从路由器缓存区投掷物品,将其变为世界中的物品实体。此掉落物会在以模块的$(l:intro/modules#direction)配置方向/$与路由器相邻的位置。物品实体放置时速度为零,和为物品增加烦人的随机速度的原版$(item)投掷器/$不同。" + }, + { + "type": "crafting", + "recipe": "modularrouters:dropper_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_distributor.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_distributor.json new file mode 100644 index 000000000000..bc5279a19433 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_distributor.json @@ -0,0 +1,19 @@ +{ + "name": "能量分配模块", + "category": "modules", + "icon": "modularrouters:energy_distributor_module", + "pages": [ + { + "type": "text", + "text": "该模块很像$(l:modules/energy_output)能量输出/$和$(l:modules/distributor)分配/$模块的结合,因为它可为至多 8 个附近的能量接收方块无线分配 FE(Forge 能量)。$(p)$(thing)潜行右击/$一个方块将其添加至能量分配模块,再次$(thing)潜行右击/$方块将其移除。" + }, + { + "type": "text", + "text": "和$(l:modules/energy_output)能量输出模块/$相似,该模块会从路由器的内部能量缓存区(如果安装了任何$(l:upgrades/energy)能量升级/$)或路由器物品缓存区中的承载能量的物品中提取能量。优先使用内部能量缓存区。" + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_distributor_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_output.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_output.json new file mode 100644 index 000000000000..a859405a5f38 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_output.json @@ -0,0 +1,15 @@ +{ + "name": "能量输出模块", + "category": "modules", + "icon": "modularrouters:energy_output_module", + "pages": [ + { + "type": "text", + "text": "该模块会试图从路由器中向其配置方向相邻的能量接收方块输出 FE(Forge 能量)。该模块会从路由器的内部能量缓存区(如果安装了任何$(l:upgrades/energy)能量升级/$)或路由器物品缓存区中的承载能量的物品中提取能量。优先使用内部能量缓存区。" + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_output_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_1.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_1.json new file mode 100644 index 000000000000..bd14cc1c3ed4 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_1.json @@ -0,0 +1,31 @@ +{ + "name": "挤出模块 1 型", + "category": "modules", + "icon": "modularrouters:extruder_module_1", + "pages": [ + { + "type": "text", + "text": "该模块会向模块配置方向延伸和收回一行方块(来自路由器缓存区)。$(p)默认状态下,该模块会在路由器收到红石信号后延伸方块,并在路由器没有信号时收回它们,但是可以向模块添加红石增强来自定义其行为。" + }, + { + "type": "text", + "text": "使用该模块,可以建造大型的延伸桥和门(如果你曾使用过来自 1.7.10 Tinker's Mechworks 模组的造桥器,你会对这个功能很熟悉)。$(li)也看看$(l:upgrades/camouflage)伪装升级/$,它对隐藏路由器很有用。$(li)默认范围(既可以放置的方块数量)为 12 个,最高可以被$(l:augments/range_up)范围扩大拓展/$增加至 24 个。" + }, + { + "type": "text", + "text": "$(li)如果你在其方块延伸时改变了模块的方向,路由器可能会有一点困惑。在这种情况下,破坏并重放路由器会有帮助。$(li)如果你在方块延伸时破坏了路由器,它不会记住这事,因此你需要手动移除这些方块。" + }, + { + "type": "text", + "text": "$(li)如果你有多个安装挤出模块的路由器(例如用于较宽的门或桥),你也许会发现$(l:upgrades/sync)同步升级/$在保证它们在同一游戏刻运行很有用。$(li)挤出模块(和$(l:modules/placer)放置模块/$一样)也可以在耕地上种植作物种子,在相邻的丛林原木上种植可可豆。" + }, + { + "type": "text", + "text": "需要注意的是用于此模块的$(l:modules/breaker)破坏模块/$会将其采集等级(和魔咒)转移到该模块上。因此,比如你想让你的挤出模块破坏$(item)黑曜石/$,请确保使用$(item)钻石镐/$合成的破坏模块!" + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_1" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_2.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_2.json new file mode 100644 index 000000000000..a0f7e51f2678 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_2.json @@ -0,0 +1,19 @@ +{ + "name": "挤出模块 2 型", + "category": "modules", + "icon": "modularrouters:extruder_module_2", + "pages": [ + { + "type": "text", + "text": "该模块表现和$(l:modules/extruder_1)挤出模块 1 型/$相似,但有几个重要的差别:$(li)2 型模块不会从路由器缓存器中放置物品,而是来自模块内定义的模板。$(li)此模板会在模块 GUI 右侧出现,有 9 个栏位,并且每个栏位可以放多个物品。放置在模板中的物品为“幽灵”物品。" + }, + { + "type": "text", + "text": "$(li)挤出的方块是“虚拟”的——一种高效的无中生有,但破坏时不会掉落任何东西,也不能被正常合成。$(li)因此,该模块不适合像挤出 1 型一样收获方块,但可以用于放置比 1 型更复杂样式的门/桥等。。$(li)挤出 2 型的默认范围为 24 格,可以被范围升级增加至 48 格。" + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_2" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/flinger.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/flinger.json new file mode 100644 index 000000000000..8b2ca87faf86 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/flinger.json @@ -0,0 +1,19 @@ +{ + "name": "投掷模块", + "category": "modules", + "icon": "modularrouters:flinger_module", + "pages": [ + { + "type": "text", + "text": "该模块和$(l:modules/dropper)投掷器模块/$行为相似,只不过它会为投掷的物品提供可配置的速度,能够将物品扔出可观的距离。你可以通过模块 GUI 调整物品速度、俯仰和偏转角。$(li)俯仰和偏转角按角度计量,相对于基本俯仰和偏转角。" + }, + { + "type": "text", + "text": "$(li)如果模块向上或向下弹出,基准俯仰角分别为 +90° 或 -90°。否则,基准俯仰角为 0°。$(li)如果模块向上或向下弹出,基准偏转角为路由器面向的方向。否则基准偏转角将从模块朝向中获取。$(li)示例:投掷速度 1.0、俯仰/偏转角 0°、水平模块朝向,将会将沿地面将一个物品投掷约7格远。" + }, + { + "type": "crafting", + "recipe": "modularrouters:flinger_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid.json new file mode 100644 index 000000000000..0d4bb73040f4 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid.json @@ -0,0 +1,31 @@ +{ + "name": "流体模块 1 型", + "category": "modules", + "icon": "modularrouters:fluid_module", + "pages": [ + { + "type": "text", + "text": "虽然路由器不能直接处理流体(它们没有内部储罐),但当缓存区有存储流体物品时可以操控流体。这包括桶和任何其他模组添加的流体容器。" + }, + { + "type": "text", + "text": "流体模块的 GUI 可以设置传输方向:$(li)$(bold)传输至路由器/$意味着路由器将会尝试从相邻方块(世界中的流体或承载流体的方块)中提取流体至缓存区的承载流体的物品中。$(li)$(bold)从路由器传出/$意味着路由器将会尝试从缓存区承载流体的物品中将流体输出至世界;要么将流体倒出,要么将其放入相邻的储罐中。" + }, + { + "type": "text", + "text": "其 GUI 也可以设置最大传输速率。请注意它将会$(italic)尝试/$这个最大值,其仍然会被路由器整体的传输速率限制,也就是每秒 1 桶,以及外部流体或流体容器的传输速率。$(p)流体模块过滤栏位只能接受容纳流体的物品,并且会按照容纳的流体过滤,而不是容器物品。" + }, + { + "type": "text", + "text": "添加$(l:upgrades/speed)速度升级/$不会使传输流体更快,只会让其更加频繁。带有 9 个速度升级的路由器依然只能每秒传输 1 桶,只不过会以小数量更频繁地传输。想要增加其总体的传输速率,需添加$(l:upgrades/fluid)流体传输升级/$。$(p)如果路由器盛装了任何危险的流体,比如熔岩桶,请非常小心的修改流体模块设置。如果你搞错了,路由器可不会犹豫将熔岩倒在你身上……" + }, + { + "type": "text", + "text": "请注意,$(bold)如果/$缓存区内有一个流体容器,你也可以将路由器与其他模组的流体管道连接,并将流体输入或输出路由器;流体将会被直接导入/导出容器物品。$(p)你$(italic)不/$需要安装流体模块来干这个;只有你想要主动输出或输入流体时需要流体模块。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid_2.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid_2.json new file mode 100644 index 000000000000..f71c3421a90c --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid_2.json @@ -0,0 +1,19 @@ +{ + "name": "流体模块 2 型", + "category": "modules", + "icon": "modularrouters:fluid_module_2", + "pages": [ + { + "type": "text", + "text": "和$(l:modules/fluid_1)流体模块 1 型/$相似,该模块可以将流体传输至或传输出路由器,如果缓存区有一个承载流体的物品。然而,该模块也可以将远处的方块作为目标,最多 12 格远(有$(l:augments/range_up)范围扩大拓展/$时最多可达 24 格)。" + }, + { + "type": "text", + "text": "用该模块$(thing)潜行右击/$任意方块将其设置为目标。$(p)请注意目标方块并不一定需要是流体储罐;如果你在设置模块目标后破坏该方块,模块可以将一桶流体倒入世界中的那个位置。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module_2" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/placer.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/placer.json new file mode 100644 index 000000000000..5e4ec178a1f8 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/placer.json @@ -0,0 +1,19 @@ +{ + "name": "放置模块", + "category": "modules", + "icon": "modularrouters:placer_module", + "pages": [ + { + "type": "text", + "text": "该模块会尝试从路由器缓存区取出物品以放置方块,放在路由器模块的$(l:intro/modules#direction)配置方向/$相邻的位置。$(li)如果物品不是一个方块或目标空间被阻挡,就不会发生任何事。$(li)遵循普通 Minecraft 的放置规则;比如甘蔗只能放置在临水的沙子/泥土上。" + }, + { + "type": "text", + "text": "$(li)流体方块,以及如高草丛一类的可替换方块,将会被替换。$(li)放置模块可以在耕地上种植种子,在相邻丛林原木上放置可可豆。" + }, + { + "type": "crafting", + "recipe": "modularrouters:placer_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/player.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/player.json new file mode 100644 index 000000000000..acf604716fee --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/player.json @@ -0,0 +1,31 @@ +{ + "name": "玩家模块", + "category": "modules", + "icon": "modularrouters:player_module", + "pages": [ + { + "type": "text", + "text": "该模块会尝试将物品在路由器和玩家物品栏之间传输。该玩家可以在任何维度的任何地方,因此这是一个非常强大的模块。$(p)该模块可以对玩家输入或输出物品;你可以在模块的 GUI 中进行设置。" + }, + { + "type": "text", + "text": "$(p)模块可以对玩家的 36 栏位主物品栏、4 栏位盔甲物品栏、副手栏或者末影物品栏(由原版$(item)末影箱/$显示)进行操作。你也可以在模块 GUI 中进行设置。当然,$(p)提取/输入的物品可以通过模块被过滤。" + }, + { + "type": "text", + "text": "一个优秀的模块使用案例为从玩家物品栏中提取矿石/圆石/泥土等物品,并将其发送至玩家基地中的主存储系统。加上一点小设计,就可以建立一个用于自动替换盔甲套装的系统(加上来自另一个模组的无线红石,也许还可以在野外实现……)。" + }, + { + "type": "text", + "text": "玩家模块与一位特定的玩家对应;物品提示会显示所有者。它设置为最初合成该模块的玩家,但可以手持模块潜行右击来覆盖。如果你通过其它手段(创造、JEI 作弊模式……)获得了该模块,你也许也需要这么做。" + }, + { + "type": "text", + "text": "将安全升级和该模块合并使用也许是在有不信任玩家服务器中的明智之举;你不会希望一个恶意玩家窃取这个模块……" + }, + { + "type": "crafting", + "recipe": "modularrouters:player_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_1.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_1.json new file mode 100644 index 000000000000..bc4a32a00210 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_1.json @@ -0,0 +1,15 @@ +{ + "name": "抽取模块 1 型", + "category": "modules", + "icon": "modularrouters:puller_module_1", + "pages": [ + { + "type": "text", + "text": "该模块会尝试抽取来自其$(l:intro/modules#direction)配置方向/$相邻的容器中的第一个可抽取物品,放进路由器的缓存区。如果缓存区已满或不存在可以与物品栏中物品堆叠的物品,就不会抽取任何东西。" + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_1" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_2.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_2.json new file mode 100644 index 000000000000..e73fc197b5c8 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_2.json @@ -0,0 +1,20 @@ +{ + "name": "抽取模块 2 型", + "category": "modules", + "icon": "modularrouters:puller_module_2", + "pages": [ + { + "type": "text", + "text": "此模块与$(l:modules/puller_1)抽取 1 型/$行为相似,但可以从非相邻的容器中抽取物品。$(p)容器最远可以达到 12 格(有$(l:augments/range_up)范围扩大拓展/$时最多可以达 24);$(italic)不/$需要清除连线处的障碍物。" + }, + { + "type": "text", + "text": "$(li)用抽取模块 2 型$(thing)潜行右击/$方块以选择目标容器。你将会收到一条确认信息。$(li)当手持设定目标的抽取 2 型时,目标方块将会被高亮显示。" + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_2", + "recipe2": "modularrouters:puller_module_2_x4" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_1.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_1.json new file mode 100644 index 000000000000..b7a7fca24563 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_1.json @@ -0,0 +1,16 @@ +{ + "name": "发送模块 1 型", + "category": "modules", + "icon": "modularrouters:sender_module_1", + "pages": [ + { + "type": "text", + "text": "该模块会尝试从路由器缓存区发送物品至与模块$(l:intro/modules#direction)配置方向/$相邻的容器中:$(li)目标容器最多可以离 8 格远(有$(l:augments/range_up)范围扩大拓展/$时最多可以有 16 格远)$(li)目标容器$(italic)必须/$沿 X、Y 或 Z 轴与路由器成直线。$(li)路由器$(italic)必须/$清除与目标连线间的障碍物;不能是不透明方块,但玻璃、栅栏、铁栏杆等方块可以。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_1", + "recipe2": "modularrouters:sender_module_1_alt" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_2.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_2.json new file mode 100644 index 000000000000..6f594ce3907d --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_2.json @@ -0,0 +1,20 @@ +{ + "name": "发送模块 2 型", + "category": "modules", + "icon": "modularrouters:sender_module_2", + "pages": [ + { + "type": "text", + "text": "该模块和$(l:modules/sender_1)发送模块 1 型/$行为相似,但是有更为强大的容器连接能力:$(li)目标容器可以达 24 格远(有$(l:augments/range_up)范围扩大拓展/$时可达 48 格)。$(li)$(italic)不/$需要清除连线上的障碍物。" + }, + { + "type": "text", + "text": "$(li)用发送模块 2 型$(thing)潜行右击/$目标容器,将其选中。你会收到一条确认信息。$(li)当手持设定目标的发送 2 型时,目标方块将会被高亮显示。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_2", + "recipe2": "modularrouters:sender_module_2_x4" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_3.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_3.json new file mode 100644 index 000000000000..ce5badc1e427 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_3.json @@ -0,0 +1,15 @@ +{ + "name": "发送模块 3 型", + "category": "modules", + "icon": "modularrouters:sender_module_3", + "pages": [ + { + "type": "text", + "text": "这个最高阶的发送模块运作方式和$(l:modules/sender_3)发送 2 型/$非常相似,但是可以不受限制地向(任何维度的)任何容器发送物品!$(p)注:目标容器必须被区块加载;$(#228)模块化路由器$()不会为你做这件事。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_3" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/vacuum.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/vacuum.json new file mode 100644 index 000000000000..eb41d904da76 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "真空模块", + "category": "modules", + "icon": "modularrouters:vacuum_module", + "pages": [ + { + "type": "text", + "text": "该模块会在路由器周围 13x13x13 的立方区域内扫描掉落的物品(即每个方向 6 格远),如果可行,就将它们吸入路由器的缓存区中。$(p)通过$(l:augments/range_up)范围扩大拓展/$可以将最大范围增加到 25x25x25(每个方向 12 格),或通过$(l:augments/range_down)范围缩小拓展/$将范围减少到只有 3x3x3。" + }, + { + "type": "text", + "text": "如果模块的$(l:intro/modules#direction)配置方向/$为$(bold)所有方向/$(默认状态下),扫描的区域将以路由器为中心。$(p)如果模块有配置过的方向,区域将会以该方向偏离 6 格,同时每安装一个范围扩大拓展就会再多一格,每安装一个范围缩小拓展就会再少一格。$(p)比如,方向为$(bold)上方/$时,模块将只会扫描其正上方的一块区域。" + }, + { + "type": "crafting", + "recipe": "modularrouters:vacuum_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/void.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/void.json new file mode 100644 index 000000000000..6ad2f24f3998 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/void.json @@ -0,0 +1,15 @@ +{ + "name": "销毁模块", + "category": "modules", + "icon": "modularrouters:void_module", + "pages": [ + { + "type": "text", + "text": "这个危险的模块会永久地销毁路由器缓存区的物品!强烈建议用$(l:intro/modules#filter)白名单过滤器/$来配置这个模块以防止宝贵物品被意外删除……" + }, + { + "type": "crafting", + "recipe": "modularrouters:void_module" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/item_router.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/item_router.json new file mode 100644 index 000000000000..83f8d2eaf406 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/item_router.json @@ -0,0 +1,53 @@ +{ + "name": "模块化路由器", + "icon": "modularrouters:item_router", + "category": "router", + "pages": [ + { + "type": "text", + "text": "$(thing)模块化路由器/$是本系统的核心。它负责执行所有插入其中的模块,以各种方式移动物品、方块和流体。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/router_gui.png" + ], + "text": "$(italic)装有数个模块和升级的模块化路由器 GUI", + "border": true + }, + { + "type": "text", + "title": "1. 缓存区", + "text": "$(thing)模块化路由器/$有一格栏位的缓存区,可以存放一组物品。该缓存区和正常物品栏一样开放,因此可以通过$(item)漏斗/$和其他模组的运输系统与其进行互动。$(p)此外,对着路由器放置的$(item)比较器/$将会测量栏位的空满程度。" + }, + { + "type": "text", + "title": "2. 模块栏位", + "text": "$(thing)模块化路由器/$有九个栏位用于安装$(l:intro/modules)模块/$。每当路由器运行一次(每秒 1 至 10 次,取决于速度升级),它就会从左到右轮流$(thing)执行/$每个模块。$(p)你可以在GUI中将鼠标悬浮在模块上方按$(4)$(bold)[$(k:modularrouters.configure)]/$或$(thing)鼠标中键/$就能配置安装的模块,无需将它们移除。" + }, + { + "type": "text", + "title": "3. 升级栏位", + "text": "$(thing)模块化路由器/$有五个栏位用于安装$(l:intro/upgrades)升级/$。升级会以多种方式增强路由器的功能;比如说,每个放入的$(l:upgrades/speed)速度升级/$都会时路由器刻来的更快,而每个$(l:upgrades/stack)堆叠升级/$都可使其每次操作处理更多物品。" + }, + { + "type": "text", + "title": "4. 红石控制", + "text": "$(thing)模块化路由器/$在如何响应红石输入方面具有一定的灵活性,这是通过右上角的按钮控制的:$(li)默认:总是运行,忽视红石信号$(li)只在$(italic)无/$红石信号时运行$(li)只在$(italic)有/$红石信号时运行$(li)从不运行$(li)当接收红石脉冲(任何强度高于先前的信号)时运行$(italic)一次/$。" + }, + { + "type": "text", + "title": "5. 低耗模式", + "text": "本着环境友好的精神,路由器有一个选项,可以让路由器待机一段时间后自动放慢速度。$(p)当低耗模式开启时,如果路由器在上$(ttcolor)$(t:在模组配置中可调——'ecoTimeout')5 秒钟/$都没有可做的事,它就会放慢速度,每$(ttcolor)$(t:在模组配置中可调——'lowPowerTickRate')5 秒/$只运行一次(无视$(l:upgrades/speed)速度升级/$)。然而,当它有可做的事时,就会回到正常的工作速度。" + }, + { + "type": "text", + "title": "低耗模式(续)", + "text": "这主要是为了繁忙的服务器设计,用于节省 CPU 周期,但是,对于任何很少运行并且快速传输物品没有那么重要的路由器来说,这可能是一种很好的选择(比如一个有着$(l:modules/vacuum)真空模块/$定期收集羊毛的绵羊牧场)。" + }, + { + "type": "crafting", + "recipe": "modularrouters:item_router" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/termination.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/termination.json new file mode 100644 index 000000000000..d89fb281d4f3 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/termination.json @@ -0,0 +1,23 @@ +{ + "name": "终止", + "icon": "minecraft:barrier", + "category": "router", + "pages": [ + { + "type": "text", + "text": "这是一个稍微深奥的话题,在大多数情况下你不需要关心这个问题。然而,当你确实需要它时,它将非常有用!" + }, + { + "type": "text", + "text": "终止可以通过滤器栏位下方的'T'按钮进行配置,且每个模块可以单独配置。默认状态下,它不会激活;如果你开启了一个模块的终止选项,那么$(italic)如果/$该模块在路由器刻工作了,路由器就会停止于此。此轮的后续模块(既在该模块右方的模块)将不会被执行。" + }, + { + "type": "text", + "text": "为什么这会很有用?想象一个路由器被提供了很多物品的场景,比如说来自采石场的物品。你希望销毁$(item)圆石/$,并将其他东西送至另一个容器;因此你会添加一个带有圆石白名单的$(l:modules/void)销毁模块/$,以及向别处发送剩余物品的$(l:modules/sender_1)发送模块/$。" + }, + { + "type": "text", + "text": "当路由器运行时,假设缓存区已经有一组圆石了。虚空模块将会销毁一个圆石,然后发送模块将会把剩余的 63 个圆石送至你的存储系统。这也许不是你想要的。$(p)然而,如果你将销毁模块的终止打开,然后当其运行时,路由器将会在那一游戏刻停止;在销毁模块没有事可以做前,发送模块将不会运行。" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/blast.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/blast.json new file mode 100644 index 000000000000..59d1961e5b19 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/blast.json @@ -0,0 +1,15 @@ +{ + "name": "爆炸升级", + "category": "upgrades", + "icon": "modularrouters:blast_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级可使路由器完全免疫爆炸伤害,也不会被boss级生物摧毁。" + }, + { + "type": "crafting", + "recipe": "modularrouters:blast_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/camouflage.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/camouflage.json new file mode 100644 index 000000000000..ea54dfd12e55 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/camouflage.json @@ -0,0 +1,15 @@ +{ + "name": "伪装升级", + "category": "upgrades", + "icon": "modularrouters:camouflage_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级可以让路由器伪装成其它方块。用模块$(thing)潜行+右击/$一个方块,将该方块记录在伪装升级中。将升级放入路由器后,路由器将会变成记录方块的样子。$(p)注:手持$(thing)模块化路由器/$将会高亮显示周围任何的伪装路由器。" + }, + { + "type": "crafting", + "recipe": "modularrouters:camouflage_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/energy.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/energy.json new file mode 100644 index 000000000000..8d7111b9e101 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/energy.json @@ -0,0 +1,35 @@ +{ + "name": "能量升级", + "category": "upgrades", + "icon": "modularrouters:energy_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级给予了路由器一个内置的能量缓存区。每个升级都会增加缓存区大小 50,000 FE ,传输速率 1,000 FE 每$(italic)路由器刻/$(数值在模组配置中可调)。$(p)有几个场景能量升级会很有用,后续页面将会详细说明。" + }, + { + "type": "text", + "title": "1. 能量路由", + "text": "$(l:modules/energy_output)能量输出/$和$(l:modules/energy_distributor)能量分配/$模块都可以主动从路由器的缓存区输出能量至相邻或周围的方块。$(p)有了这些模块,你可以建造一个有着有限的无线能量传输能力的能量单元。" + }, + { + "type": "text", + "title": "2. 模块供电", + "text": "默认情况下,路由器模块不需要任何能量来运行,攻击模式下的$(l:modules/activator)执行模块/$除外。$(p)然而,能耗是可调的,并且你游玩的模组包中其它模块也有可能消耗能量;所有消耗能量的模块都在其物品提示下方列出了能耗数字。" + }, + { + "type": "text", + "title": "3. 物品充能", + "text": "任何路由器缓存区中承载能量的物品都可以将路由器内置缓存区的能量传输至自身,反之也可以。$(p)当承载能量的物品在物品缓存区中时,路由器 GUI 会在缓存区和能量条之间显示一个可调按钮,用于设置能量传输方向。" + }, + { + "type": "text", + "title": "传输速率", + "text": "需要注意的是提示框中标注的传输速率以 FE 每$(italic)路由器刻/$为单位,和 FE/t 不同。路由器刻速率取决于其$(l:upgrades/speed)速度升级/$;没有速度升级时,每 20 服务器刻为一个路由器刻。因此,总体传输速率可能会低于你预期的数值。" + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_upgrade" + } + ] +} \ No newline at end of file diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/fluid.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/fluid.json new file mode 100644 index 000000000000..453c8b5971b5 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/fluid.json @@ -0,0 +1,15 @@ +{ + "name": "流体传输升级", + "category": "upgrades", + "icon": "modularrouters:fluid_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级只会影响$(l:modules/fluid)流体模块 1 型/$和$(l:modules/fluid_2)流体模块 2 型/$。$(p)它可以增加$(l:router/item_router)路由器/$(各个方向;输入和输出)的总体流体传输速率,由 50mB/刻的基准速率,增加 10mB/刻,最高可达 400mB/刻。因此路由器中最多可放 35 个流体传输升级。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/muffler.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/muffler.json new file mode 100644 index 000000000000..795d8c9fe363 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/muffler.json @@ -0,0 +1,19 @@ +{ + "name": "消声器升级", + "category": "upgrades", + "icon": "modularrouters:muffler_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级可以用于消除模块化路由器产生的声音和粒子效果,并且如果一个吵闹的模块经常在玩家附近运行,这可能会很有用。$(li)一个或更多消声器升级将会关闭所有路由器的声效$(li)两个或更多还会关闭所有的粒子效果(光束和飞行的物品)" + }, + { + "type": "text", + "text": "$(li)三个升级还会关闭路由器的启动动画;路由器方块正面的脉冲贴图$(p)请注意,所有声音和粒子效果也可以在模组配置中关闭;该升级只在声音/效果没有关闭的情况下有用。" + }, + { + "type": "crafting", + "recipe": "modularrouters:muffler_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/security.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/security.json new file mode 100644 index 000000000000..a35d7c4844bf --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/security.json @@ -0,0 +1,40 @@ +{ + "name": "安全升级", + "category": "upgrades", + "icon": "modularrouters:security_upgrade", + "pages": [ + { + "type": "text", + "text": "$(thing)安全升级/$有几个重要的功能,详见以下页面。" + }, + { + "type": "text", + "title": "保护", + "text": "安装有安全升级的路由器$(italic)只能/$被该升级白名单中的玩家打开。该升级不能阻止路由器被破坏;但因为破坏的路由器仍然会保留升级和模块,因此玩家不能窃取或重新配置其中的模块/升级。如果你想要防止路由器被破坏,你也许还要探索其他模组的方块保护功能。" + }, + { + "type": "text", + "title": "假玩家", + "text": "几个模块($(l:modules/placer)放置/$、$(l:modules/breaker)破坏/$、$(l:modules/activator)执行/$)以$(thing)假玩家/$的身份运行。默认状态下,这是一个用户名为$(thing)[Modular Routers]/$的玩家,但当安全升级安装后,这些模块以升级所有者的身份运行。在具有领地保护的多人服务器上,这比简单地允许$(thing)[Modular Routers]/$处理领地要安全得多。" + }, + { + "type": "text", + "title": "执行模块攻击模式", + "text": "当$(l:modules/activator)执行模块/$处于$(thing)攻击模式时/$,它会忽视所有在安全升级白名单中的玩家。这通常是一个避免受苦的好主意,如果你有一个高伤害武器在你的路由器中……" + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "$(li)有一个叫做$(thing)安全覆盖卡/$的无法合成物品——它可以通过创造模式或 JEI 作弊模式等方式获得。在主手或副手持有此卡的玩家不会受任何安全升级的影响,并且可以访问任何路由器。" + }, + { + "type": "text", + "text": "你可以用安全升级$(thing)右击/$玩家来向升级中添加额外的玩家。$(p)你可以用安全升级$(thing)潜行右击玩家/$将其移除。$(p)每个安全升级最多可以有 6 名额外玩家(因此加上创造者,总共有 7 位),但如果有必要,你可以安装更多的安全升级。" + }, + { + "type": "crafting", + "recipe": "modularrouters:security_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/speed.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/speed.json new file mode 100644 index 000000000000..3eda4af7f06b --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/speed.json @@ -0,0 +1,19 @@ +{ + "name": "速度升级", + "category": "upgrades", + "icon": "modularrouters:speed_upgrade", + "pages": [ + { + "type": "text", + "text": "默认状态下,$(l:router/item_router)路由器/$每 20 服务器刻运行一次,或者说每秒执行一次。每个路由器刻,所有安装的模块都会按顺序执行,从左到右。$(p)如果你需要一个运行更快的路由器,请添加$(thing)速度升级/$;每个速度升级都会减少 2 服务器刻的刻间隔,最低可达每 2 服务器刻运行一次(或者说每秒运行 10 次)。" + }, + { + "type": "text", + "text": "基准刻速率、每次升级增加的路由器刻以及硬下限刻速率都可以在模块配置中配置(config/modularrouters-common.toml)。$(p)出于性能原因,可能时应该优先考虑$(l:upgrades/stack)堆叠升级/$而不是速度升级;明智地使用速度升级,并且仅在绝对需要最大物品传输速率的情况下使用。$(p)请善待服务器(tm)。" + }, + { + "type": "crafting", + "recipe": "modularrouters:speed_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/stack.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/stack.json new file mode 100644 index 000000000000..37cb4d7d1258 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/stack.json @@ -0,0 +1,19 @@ +{ + "name": "堆叠升级", + "category": "upgrades", + "icon": "modularrouters:stack_upgrade", + "pages": [ + { + "type": "text", + "text": "路由器中的模块一次处理单个物品:比如$(l:modules/sender_1)发送模块/$每路由器刻将会从路由器缓存区中发送一个物品,无论缓存区中有多少个物品。" + }, + { + "type": "text", + "text": "通过像路由器中添加堆叠升级,可以增加单次处理的物品。每个堆叠升级都能使每个模块处理的物品翻倍,最多可达 64 个物品,或者物品的原生堆叠大小(比如$(item)末影珍珠/$为 16 个)。$(p)因此,一个路由器中有效的堆叠升级最多为 6 个。" + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_upgrade" + } + ] +} diff --git a/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/sync.json b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/sync.json new file mode 100644 index 000000000000..ffe9bea00e77 --- /dev/null +++ b/projects/1.18/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/sync.json @@ -0,0 +1,27 @@ +{ + "name": "同步升级", + "category": "upgrades", + "icon": "modularrouters:sync_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级用于保证两个或多个路由器同时运行。同步升级有一个 0 至 19 的调整值(既比 20 的基准路由器刻速率少 1)。该调整值可以通过$(thing)右击/$打开同步升级的 GUI 进行设置,或$(thing)潜行右击/$升级快速设置一个随机值。" + }, + { + "type": "text", + "text": "任何安装此升级的路由器,且调整值相同,$(l:upgrades/speed)速度升级/$的安装数量相同,永远会在统一游戏刻运行。实际的调整值不重要;只要在同步的路由器之间,该值是一致的就行。$(p)当你有一组安装有$(l:modules/extruder_1)挤出模块/$的路由器,并想要确保所有模块同时延展/收回时非常有用。" + }, + { + "type": "text", + "text": "高级注释 #1:同步升级的调整值实际上精确指定路由器相对于其刻速率运行的时间。比如默认时路由器每 20 服务器刻运行一次;一个调整值为 15 的同步升级确保路由器$(italic)总是/$在其的 15 刻后运行,并且对$(italic)所有/$安装有 15 调整值同步升级的路由器适用。而 16 调整值的同步升级永远比 15 调整值的慢 1 刻,至少在所有路由器都有着相同数量的$(l:upgrades/speed)速度升级/$的情况下……" + }, + { + "type": "text", + "text": "高级注释 #2:由于$(l:upgrades/speed)速度升级/$会使路由器运作的更频繁,它们会影响同步升级的运作。一个带有 9 个速度升级的路由器每 2 服务器刻(而不是每 20 刻)运作一次。对于该路由器内的同步升级,只需要关注调整值为奇数还是偶数;2(或 4/6/8……)刻的延迟和 0 刻延迟等效!一般情况:在考虑速度升级后,调整值是按路由器的实际刻速率计算的。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sync_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/lang/en_us.json b/projects/1.19/assets/modular-routers/modularrouters/lang/en_us.json new file mode 100644 index 000000000000..de29476b38b2 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/lang/en_us.json @@ -0,0 +1,359 @@ +{ + "block.modularrouters.modular_router": "Modular Router", + "block.modularrouters.template_frame": "Template Frame", + "config.jade.plugin_modularrouters.router": "Modular Router", + "item.modularrouters.activator_module": "Activator Module", + "item.modularrouters.augment_core": "Augment Core", + "item.modularrouters.blank_module": "Blank Module", + "item.modularrouters.blank_upgrade": "Blank Upgrade", + "item.modularrouters.blast_upgrade": "Blast Upgrade", + "item.modularrouters.breaker_module": "Breaker Module", + "item.modularrouters.bulk_item_filter": "Bulk Item Filter", + "item.modularrouters.camouflage_upgrade": "Camouflage Upgrade", + "item.modularrouters.creative_module": "Creative Module", + "item.modularrouters.detector_module": "Detector Module", + "item.modularrouters.distributor_module": "Distributor Module", + "item.modularrouters.dropper_module": "Dropper Module", + "item.modularrouters.energy_distributor_module": "Energy Distributor Module", + "item.modularrouters.energy_output_module": "Energy Output Module", + "item.modularrouters.energy_upgrade": "Energy Upgrade", + "item.modularrouters.extruder_module_1": "Extruder Module Mk1", + "item.modularrouters.extruder_module_2": "Extruder Module Mk2", + "item.modularrouters.fast_pickup_augment": "Fast Pickup Augment", + "item.modularrouters.filter_round_robin_augment": "Filter Round Robin Augment", + "item.modularrouters.flinger_module": "Flinger Module", + "item.modularrouters.fluid_module_2": "Fluid Module Mk2", + "item.modularrouters.fluid_module": "Fluid Module Mk1", + "item.modularrouters.fluid_upgrade": "Fluid Transfer Upgrade", + "item.modularrouters.GuideBook": "§l§nModular Routers", + "item.modularrouters.inspection_filter": "Inspection Filter", + "item.modularrouters.mimic_augment": "Mimic Augment", + "item.modularrouters.mod_filter": "Mod Filter", + "item.modularrouters.muffler_upgrade": "Muffler Upgrade", + "item.modularrouters.override_card": "Security Override Card", + "item.modularrouters.pickup_delay_augment": "Pickup Delay Augment", + "item.modularrouters.placer_module": "Placer Module", + "item.modularrouters.player_module": "Player Module", + "item.modularrouters.puller_module_1": "Puller Module Mk1", + "item.modularrouters.puller_module_2": "Puller Module Mk2", + "item.modularrouters.pushing_augment": "Pushing Augment", + "item.modularrouters.range_down_augment": "Range Down Augment", + "item.modularrouters.rangedown_upgrade": "Range Downgrade", + "item.modularrouters.range_up_augment": "Range Up Augment", + "item.modularrouters.range_upgrade": "Range Upgrade", + "item.modularrouters.redstone_augment": "Redstone Augment", + "item.modularrouters.regex_filter": "Regex Filter", + "item.modularrouters.regulator_augment": "Regulator Augment", + "item.modularrouters.security_upgrade": "Security Upgrade", + "item.modularrouters.sender_module_1": "Sender Module Mk1", + "item.modularrouters.sender_module_2": "Sender Module Mk2", + "item.modularrouters.sender_module_3": "Sender Module Mk3", + "item.modularrouters.speed_upgrade": "Speed Upgrade", + "item.modularrouters.stack_augment": "Stack Augment", + "item.modularrouters.stack_upgrade": "Stack Upgrade", + "item.modularrouters.sync_upgrade": "Sync Upgrade", + "item.modularrouters.vacuum_module": "Vacuum Module", + "item.modularrouters.void_module": "Void Module", + "item.modularrouters.xp_vacuum_augment": "XP Vacuum Augment", + "key.modularrouters.category": "Modular Routers", + "key.modularrouters.configure": "Configure Installed Module (GUI)", + "key.modularrouters.moduleInfo": "Extra Tooltip Info (GUI)", + "modularrouters.chatText.misc.inventoryMerged": "Merged %d item(s) into the %s", + "modularrouters.chatText.misc.targetAdded": "Target added (%d/%d): ", + "modularrouters.chatText.misc.targetCleared": "Target cleared", + "modularrouters.chatText.misc.targetRemoved": "Target removed (%d/%d): ", + "modularrouters.chatText.misc.targetSet": "Target set: ", + "modularrouters.chatText.misc.target": "Target: §b%s", + "modularrouters.chatText.misc.tooManyTargets": "Too many targets! (max: %d)", + "modularrouters.chatText.security.accessDenied": "§c--[Access Denied]--", + "modularrouters.chatText.security.ADDED": "Added player [%s]", + "modularrouters.chatText.security.ALREADY_ADDED": "Player [%s] is already on this upgrade", + "modularrouters.chatText.security.ERROR": "Couldn't add player [%s] (internal error)", + "modularrouters.chatText.security.FULL": "Security upgrade items full!", + "modularrouters.chatText.security.NOT_PRESENT": "Player [%s] is not on this uprade", + "modularrouters.chatText.security.REMOVED": "Removed player [%s]", + "modularrouters.chatText.subtitle.error": "Error", + "modularrouters.chatText.subtitle.success": "Success", + "modularrouters.chatText.subtitle.thud": "*THUD*", + "modularrouters.chatText.targetValidation.NOT_INVENTORY": "§c✘ No Inventory", + "modularrouters.chatText.targetValidation.NOT_LOADED": "§c✘ Not Loaded", + "modularrouters.chatText.targetValidation.OK": "§a✔ Target OK", + "modularrouters.chatText.targetValidation.OUT_OF_RANGE": "§c✘ Out of Range", + "modularrouters.chatText.targetValidation.BAD_DIMENSION": "§c✘ Dimension Blacklisted", + "modularrouters._comment": "JEI text", + "modularrouters.gui.config.alwaysShowModuleSettings": "Show module settings tooltips without needing to hold down Shift", + "modularrouters.gui.config.baseTickRate": "Base router tick rate (with no Speed Upgrades)", + "modularrouters.gui.config.breakerParticles": "Show particle effects when a Breaker Module breaks a block", + "modularrouters.gui.config.ctgy.misc": "Misc", + "modularrouters.gui.config.ctgy.misc.tooltip": "Miscellaneous settings", + "modularrouters.gui.config.ctgy.module": "Modules", + "modularrouters.gui.config.ctgy.module.tooltip": "Config settings for Router Modules", + "modularrouters.gui.config.ctgy.router": "Routers", + "modularrouters.gui.config.ctgy.router.tooltip": "Config settings for Modular Routers", + "modularrouters.gui.config.ecoTimeout": "If a router in eco-mode is idle for this many server ticks, it will go into low-power mode", + "modularrouters.gui.config.extruder2BaseRange": "Base Range for Extruder Module Mk2 (no Range Upgrades)", + "modularrouters.gui.config.extruder2MaxRange": "Hard Maximum Range for Extruder Module Mk2 (with Range Upgrades)", + "modularrouters.gui.config.extruderBaseRange": "Base Range for Extruder Module Mk1 (no Range Upgrades)", + "modularrouters.gui.config.extruderMaxRange": "Hard Maximum Range for Extruder Module Mk1 (with Range Upgrades)", + "modularrouters.gui.config.extruderPushEntities": "The Extruder Mk1/2 modules can push entities along when extending", + "modularrouters.gui.config.extruderSound": "Play sounds when an Extruder Module extends or withdraws", + "modularrouters.gui.config.flingerEffects": "Play sound and smoke effect when a Flinger Module flings an item", + "modularrouters.gui.config.hardMinTicks": "Hard minimum (fastest) router tick rate", + "modularrouters.gui.config.lowPowerTickRate": "An eco-mode router in low-power mode will only tick every this many server ticks", + "modularrouters.gui.config.mainTitle": "Modular Routers Configuration", + "modularrouters.gui.config.moduleGuiBackgroundTint": "Tint module GUI backgrounds with the same color as the module item", + "modularrouters.gui.config.placerParticles": "Show particle effects when a Placer Module places a block", + "modularrouters.gui.config.puller2BaseRange": "Base Range for Puller Module Mk2 (no Range Upgrades)", + "modularrouters.gui.config.puller2MaxRange": "Hard Maximum Range for Puller Module Mk2 (with Range Upgrades)", + "modularrouters.gui.config.pullerParticles": "Show particle effects when a Puller Module pulls an item", + "modularrouters.gui.config.sender1BaseRange": "Base Range for Sender Module Mk1 (no Range Upgrades)", + "modularrouters.gui.config.sender1MaxRange": "Hard Maximum Range for Sender Module Mk1 (with Range Upgrades)", + "modularrouters.gui.config.sender2BaseRange": "Base Range for Sender Module Mk2 (no Range Upgrades)", + "modularrouters.gui.config.sender2MaxRange": "Hard Maximum Range for Sender Module Mk2 (with Range Upgrades)", + "modularrouters.gui.config.senderParticles": "Show particle effects when a Sender Module sends an item", + "modularrouters.gui.config.startWithGuide": "New players start with a copy of the guide book", + "modularrouters.gui.config.ticksPerUpgrade": "Tick rate reduction (speedup) per Speed Upgrade", + "modularrouters.gui.config.vacuumBaseRange": "Base Range for Vacuum Module (no Range Upgrades)", + "modularrouters.gui.config.vacuumMaxRange": "Hard Maximum Range for Vacuum Module (with Range Upgrades)", + "modularrouters.gui.config.vacuumParticles": "Show particle effects when a Vacuum Module absorbs an item", + "modularrouters.guiText.label.breakMatchType.BLOCK": "Match by Block", + "modularrouters.guiText.label.breakMatchType.ITEM": "Match by Dropped Item(s)", + "modularrouters.guiText.label.buffer": "Buffer", + "modularrouters.guiText.label.direction": "§eDirection", + "modularrouters.guiText.label.filters": "Filters", + "modularrouters.guiText.label.fluidForceEmpty": "Force", + "modularrouters.guiText.label.inspectionOp.EQ": "=", + "modularrouters.guiText.label.inspectionOp.GE": ">=", + "modularrouters.guiText.label.inspectionOp.GT": ">", + "modularrouters.guiText.label.inspectionOp.LE": "<=", + "modularrouters.guiText.label.inspectionOp.LT": "<", + "modularrouters.guiText.label.inspectionOp.NE": "!=", + "modularrouters.guiText.label.inspectionOp.NONE": "", + "modularrouters.guiText.label.inspectionSubject.DURABILITY": "Durability", + "modularrouters.guiText.label.inspectionSubject.ENCHANT": "Enchantment", + "modularrouters.guiText.label.inspectionSubject.ENERGY": "Energy Level", + "modularrouters.guiText.label.inspectionSubject.FLUID": "Fluid Level", + "modularrouters.guiText.label.inspectionSubject.FOOD": "Food Value", + "modularrouters.guiText.label.inspectionSubject.NONE": "", + "modularrouters.guiText.label.installed": "(installed)", + "modularrouters.guiText.label.matchAll.false": "Match Any", + "modularrouters.guiText.label.matchAll.true": "Match All", + "modularrouters.guiText.label.modules": "Modules", + "modularrouters.guiText.label.playerOp.EXTRACT": "From Player to Router", + "modularrouters.guiText.label.playerOp.INSERT": "From Router to Player", + "modularrouters.guiText.label.playerSect.ARMOR": "Armor Slots", + "modularrouters.guiText.label.playerSect.ENDER": "Ender Inventory", + "modularrouters.guiText.label.playerSect.MAIN": "Main Inventory", + "modularrouters.guiText.label.playerSect.MAIN_NO_HOTBAR": "Main Inventory (no Hotbar)", + "modularrouters.guiText.label.playerSect.OFFHAND": "Offhand Slot", + "modularrouters.guiText.label.regexError": "Invalid regular expression", + "modularrouters.guiText.label.upgrades": "Upgrades", + "modularrouters.guiText.label.xpVacuum.eject": "Eject", + "modularrouters.guiText.label.xpVacuum": "XP Type", + "modularrouters.guiText.popup.activator.action": "§a§nAction ${br} ${br}§rThe activator module can simulate: ${br}- Right-clicking a block with the item in the router's buffer (e.g. using a hoe, flipping a lever); ${br}- Right-clicking a nearby entity (e.g. milking a cow with a bucket in the router's buffer).", + "modularrouters.guiText.popup.activator.entity": "§a§nEntity Mode ${br} ${br}§rDefine which nearby (within 3 blocks) entity to target each time the module runs: ${br}- The closest entity; ${br}- An entity picked at random; ${br}- Round-robin through all in-range entities.", + "modularrouters.guiText.popup.activator.look": "§a§nLook Direction ${br} ${br}§rWhen right-clicking, the router can: ${br}- Face level, targeting a block directly in the module's direction, up to 4 blocks away; ${br}- Look upward, targeting the block directly above the block in the module's direction; ${br}- Look downward, targeting the block directly below the block in the module's direction.", + "modularrouters.guiText.popup.activator.sneak": "§a§nSneak ${br} ${br}§rToggle whether the router should simulate sneaking while doing its right-click operation.", + "modularrouters.guiText.popup.augments": "§a§nAugments ${br} ${br}§rThese four slots can take Module Augments, craftable items which can be inserted into a module to modify or enhance its functionality in some way. ${br} ${br}See the item tooltips on augment items for more information on what each augment does. ${br} ${br}Note that augments can only be inserted/removed when you are holding a single module item, to avoid augments being duplicated.", + "modularrouters.guiText.popup.breaker.matchType": "§a§nMatch Type ${br} ${br}§r- Match by Dropped Item(s): when breaking a block, the filter matches on the item(s) that would be dropped (note that Silk Touch will affect drops)${br}- Match by Block: the filter matches on the block itself, e.g. Stone in the filter would match Stone blocks, even without Silk Touch (although the drop is still Cobblestone)", + "modularrouters.guiText.popup.detector.signalLevel": "§a§nRedstone Signal Level ${br} ${br}§rHere can you define the redstone signal level, an integer quantity between 0 and 15 inclusive. A signal of this strength will be emitted in the module's direction when the filter matches the buffer item.", + "modularrouters.guiText.popup.detector.weakStrong": "§a§nRedstone Signal Strength ${br} ${br}§r- A §oweak§r redstone signal will power the adjacent block only; ${br}- A §ostrong§r redstone signal will power the adjacent block and blocks adjacent to that block (like a vanilla Repeater).", + "modularrouters.guiText.popup.direction": "§a§nDirection Control ${br} ${br}§rThis area of the GUI allows you to define the direction the module operates in. This direction is relative to the front of the router. The default direction is NONE, which for most modules means the module will not run; you will need to define a direction.", + "modularrouters.guiText.popup.distributor.direction": "§a§nTransfer Direction ${br} ${br}§rHere you can control whether the router sends items out, or pulls items in to itself.", + "modularrouters.guiText.popup.distributor.strategy": "§a§nDistribution Strategy ${br} ${br}§rThis defines the order in which inventories will be attempted. Four possible strategies exist: ${br} ${br}§eRound Robin§r - Each targeted inventory will be attempted in turn. ${br} ${br}§eRandom§r - A random inventory is attempted on each tick. ${br} ${br}§eNearest First§r - The closest inventory with space to insert will be used. ${br} ${br}§eFurthest First§r - The most distant inventory with space to insert will be used.", + "modularrouters.guiText.popup.extruder2.template": "§a§nTemplate ${br} ${br}§rHere you can define a template of blocks to extrude; note that real blocks are not placed, but rather special uncraftable & unlootable template blocks. ${br} ${br}Put ghost copies of blocks in the template to define what is extruded; blocks will be extruded from left to right and top to bottom in order. You can extrude more than one of each block if you want (left- or right-click blocks in the template to adjust). ${br} ${br}Note you can also place non-block items (e.g. a stick) in the template; while they obviously can't be placed, they are used as spacers to \"place\" one or more air blocks in the pattern.", + "modularrouters.guiText.popup.filter": "§a§nFilter ${br} ${br}§rPlace ghost copies of items here to filter what this module works on. If the item in the router's buffer doesn't match the filter item(s) here, then the module will not run. See also the filter control buttons below.", + "modularrouters.guiText.popup.filterControl": "§a§nFilter Control ${br} ${br}§rThese buttons control how the filter is applied to the item in the router's buffer. See individual tooltips on each button for more information.", + "modularrouters.guiText.popup.flinger.pitch": "§a§nFlinger Pitch ${br} ${br}§rThis is the vertical offset in degrees: ${br} ${br}- When the module faces horizontally, it's the offset up or down from that horizontal (X or Z) axis ${br}- When the module faces up or down, it's the offset from the vertical (Y) axis.", + "modularrouters.guiText.popup.flinger.speed": "§a§nFlinger Speed ${br} ${br}§rThis is the speed which is imparted to the item when thrown from the router. ${br} ${br}As a rough guide, a speed of 1.0 and a pitch of 30 (and a horizontal module facing) will fling an item about 20 blocks in that direction.", + "modularrouters.guiText.popup.flinger.yaw": "§a§nFlinger Yaw ${br} ${br}§rThis is the horizontal offset in degrees: ${br} ${br}- When the module faces horizontally, it's the offset left or right from that horizontal (X or Z) axis ${br}- When the module faces up or down, it's the offset from the vertical (Y) axis. This is only useful if you also have a non-zero pitch.", + "modularrouters.guiText.popup.fluid.direction": "§a§nTransfer Direction ${br} ${br}§rHere you can control whether the router pushes fluid out to the world or tank, or pulls fluid from the world or tank.", + "modularrouters.guiText.popup.fluid.forceEmpty": "§a§nXP Force Empty ${br} ${br}§rWhen you empty a bucket of any fluid into a pool of that fluid in Minecraft, the fluid in the bucket is lost & gone forever. This is not necessarily desirable. ${br} ${br}The Fluid Module, by default, will not attempt to pour out any fluid into the world, unless the target block is completely empty, i.e. air. You can override this behaviour by toggling the \"Force\" button; when enabled, the Fluid Module will not hesitate to pour fluid into an existing pool - just be aware that you may lose fluids by doing this...", + "modularrouters.guiText.popup.fluid.maxTransfer": "§a§nMax Transfer ${br} ${br}§rThis is the maximum amount of fluid that the router will attempt to transfer in one operation. ${br} ${br}Note that the transfer rate is still limited by the number of Fluid Transfer Upgrades in the router, as well as the transfer rate of the external tank (if there is one). So this number should be considered a limit rather than a target.", + "modularrouters.guiText.popup.noDirection": "§a§nDirection Control ${br} ${br}§rThis area of the GUI allows you to define the direction the module operates in. This direction is relative to the router's facing. ${br} ${br}This module does not have the concept of a direction, so this area is empty.", + "modularrouters.guiText.popup.player.control": "§a§nPlayer Module ${br} ${br}§rHere you can define: ${br}- Whether the router transfers items from the player to the router, or from the router to the player; ${br}- Which section of the player inventory should be interacted with.", + "modularrouters.guiText.popup.xpVacuum": "§a§nXP Collection Type ${br} ${br}§rHere you can define how XP orbs are collected. The options available depend on what other mods are installed and what experience fluids are available; however vanilla Bottles o' Enchanting are always available. ${br} ${br}If collecting experience in fluid form, you must either insert a tank into the router's buffer capable of storing fluid by the mB (i.e. not a vanilla bucket), or place a tank adjacent to the router and check the Eject button below.", + "modularrouters.guiText.popup.xpVacuum.eject": "§a§nXP Fluid Ejection ${br} ${br}§rIf checked, the router will attempt to eject any XP fluid into a suitable adjacent tank (sides checked in order: D, U, N, S, W, E). Note that only XP fluids are considered for ejection, not solid XP items. ${br} ${br}This may be useful if you don't have a mod that provides a tank which can be filled as an item in the router's buffer.", + "modularrouters.guiText.tooltip.activator.action": "Action", + "modularrouters.guiText.tooltip.activator.entityMode": "Entity", + "modularrouters.guiText.tooltip.activator.lookDirection": "Look", + "modularrouters.guiText.tooltip.activator.sneak": "Sneak", + "modularrouters.guiText.tooltip.allDirections": "All", + "modularrouters.guiText.tooltip.BACK": "Back", + "modularrouters.guiText.tooltip.BLACKLIST.1": "Whitelist${br}The module will run only if the filter matches.${br}An empty whitelist will never allow the module to run.", + "modularrouters.guiText.tooltip.BLACKLIST.2": "Blacklist${br}The module will not run if the filter matches.${br}An empty blacklist will always allow the module to run.", + "modularrouters.guiText.tooltip.clearFilter": "Clear Filter", + "modularrouters.guiText.tooltip.detectorTooltip": "§bRedstone Signal Level", + "modularrouters.guiText.tooltip.distributor.strategy": "§eDistribution Strategy", + "modularrouters.guiText.tooltip.DOWN": "Down", + "modularrouters.guiText.tooltip.eco.false": "Eco Mode §edisabled ${br}§7Router will always run at normal speed.", + "modularrouters.guiText.tooltip.eco.true": "Eco Mode §aenabled ${br}§7If router is idle for >%f seconds, it will enter low-power mode and only run every %f seconds. It will leave low-power mode upon processing any item and return to running at normal speed.", + "modularrouters.guiText.tooltip.energy.from_router": "Transfer energy from router's buffer to item", + "modularrouters.guiText.tooltip.energy.none": "No energy transfer", + "modularrouters.guiText.tooltip.energy.rate": "Max Transfer Rate: %s FE/t", + "modularrouters.guiText.tooltip.energy.to_router": "Transfer energy from item to router's buffer", + "modularrouters.guiText.tooltip.extruder2.template": "§bTemplate${br}Place copies of block items here to be used as the extruder template. You can also use non-block items to represent an Air block${br}• §eLeft-Click:§7 reduce stack size${br}• §eRight-Click:§7 increase stack size${br}• §eShift + Left-Click:§7 clear stack", + "modularrouters.guiText.tooltip.flinger.pitch": "§bPitch (%f → %f)", + "modularrouters.guiText.tooltip.flinger.speed": "§bSpeed (%f → %f)", + "modularrouters.guiText.tooltip.flinger.yaw": "§bYaw (%f → %f)", + "modularrouters.guiText.tooltip.fluidForceEmpty.false": "§bForce Emptying Disabled ${br}When pouring into the world: if the target block is not completely empty, no fluid will be poured out.", + "modularrouters.guiText.tooltip.fluidForceEmpty.true": "§bForce Emptying Enabled ${br}When pouring into the world: fluid will always be poured out of the router if possible. Warning: this can cause fluid to be lost, e.g. emptying lava into an existing lava block. Use with care.", + "modularrouters.guiText.tooltip.fluidRegulatorTooltip": "§bFluid Regulation Enabled${br}When transferring from router: only insert when destination tank(s) are less than this full.${br}When transferring to router: only extract if source tank(s) are more than this full.", + "modularrouters.guiText.tooltip.fluidTransferTooltip": "§bMax Fluid Transfer${br}Maximum (in mB) that will be attempted in one operation.${br}This is still limited by the router's overall transfer rate (Fluid and Speed Upgrades)", + "modularrouters.guiText.tooltip.FRONT": "Front", + "modularrouters.guiText.tooltip.IGNORE_DAMAGE.1": "Match Item Damage${br}Distinguish between damageable items of the same type with different damage levels", + "modularrouters.guiText.tooltip.IGNORE_DAMAGE.2": "Ignore Item Damage${br}Treat damageable items of the same type but different damage levels as the same", + "modularrouters.guiText.tooltip.IGNORE_NBT.1": "Match NBT${br}e.g. take the enchantments on an item into account when matching", + "modularrouters.guiText.tooltip.IGNORE_NBT.2": "Ignore NBT${br}e.g. ignore the enchantments on an item when matching", + "modularrouters.guiText.tooltip.IGNORE_TAGS.1": "Tag Matching Enabled${br}Items in the same tag group as any item in the filter will match, e.g. oak and birch logs", + "modularrouters.guiText.tooltip.IGNORE_TAGS.2": "Tag Matching Disabled", + "modularrouters.guiText.tooltip.LEFT": "Left", + "modularrouters.guiText.tooltip.loadFilter": "Load Filter${br} from §e%s§r @ %s${br}§oExisting filter contents will be overwritten!", + "modularrouters.guiText.tooltip.matchAll.false": "Match Any${br}Any item in the filter may match for the filter to match.${br}Use this under most circumstances.", + "modularrouters.guiText.tooltip.matchAll.true": "Match All${br}ALL items in the filter must match for the filter to match.${br}Used in specific circumstances, e.g. if you want to test for enchanted leather armor.", + "modularrouters.guiText.tooltip.maxFluidPerOp": "§fTransfer Rate: %d mB every %d ticks (%d mB / tick)", + "modularrouters.guiText.tooltip.mergeFilter": "Merge Filter${br} from §e%s§r @ %s", + "modularrouters.guiText.tooltip.mouseOverHelp.false": "Click to activate mouse-over help", + "modularrouters.guiText.tooltip.mouseOverHelp.true": "Mouse-over help active ${br}§7Click to deactivate", + "modularrouters.guiText.tooltip.NONE": "None", + "modularrouters.guiText.tooltip.numberFieldTooltip": "• §e§oCursor Up/Down§7 or mouse wheel: adjust${br}• Hold §e§oShift§7: coarse adjust${br}• Hold §e§oCtrl§7: fine adjust${br}• §e§oPage Up/Down§7: set to max/min", + "modularrouters.guiText.tooltip.redstone.ALWAYS": "Always", + "modularrouters.guiText.tooltip.redstone.HIGH": "High", + "modularrouters.guiText.tooltip.redstone.label": "Redstone Mode", + "modularrouters.guiText.tooltip.redstone.LOW": "Low", + "modularrouters.guiText.tooltip.redstone.NEVER": "Never", + "modularrouters.guiText.tooltip.redstone.PULSE": "Pulsed", + "modularrouters.guiText.tooltip.regulator.label": "%d Item(s)", + "modularrouters.guiText.tooltip.regulator.labelFluidmB": "%d mB", + "modularrouters.guiText.tooltip.regulator.labelFluidPct": "%d%%", + "modularrouters.guiText.tooltip.regulatorTooltip": "§bItem Regulation Enabled${br}When inserting: only insert when inventory has fewer than this many of the item.${br}When extracting: only extract if inventory has more than this many of the item.", + "modularrouters.guiText.tooltip.removeFilterHint": "§7§oSneak + Left-Click: remove item from filter", + "modularrouters.guiText.tooltip.RIGHT": "Right", + "modularrouters.guiText.tooltip.terminate.NONE": "Always continue executing subsequent modules on this tick, regardless of whether this module did anything.", + "modularrouters.guiText.tooltip.terminate.NONE.header": "Always Continue", + "modularrouters.guiText.tooltip.terminate.NOT_RAN": "Don't execute any subsequent modules on this tick if this module did NOT do anything.", + "modularrouters.guiText.tooltip.terminate.NOT_RAN.header": "Terminate on no Match", + "modularrouters.guiText.tooltip.terminate.RAN": "Don't execute any subsequent modules on this tick if this module did something.", + "modularrouters.guiText.tooltip.terminate.RAN.header": "Terminate on Match", + "modularrouters.guiText.tooltip.tunedValue": "§bTuned Value (%d → %d)", + "modularrouters.guiText.tooltip.UP": "Up", + "modularrouters.guiText.tooltip.xpVacuum.ejectFluid": "XP Fluids Ejected", + "itemGroup.modularrouters": "Modular Routers", + "modularrouters.itemText.activator.action.ITEM_OR_BLOCK": "Right-click", + "modularrouters.itemText.activator.action.USE_ITEM_ON_ENTITY": "Right-click entity", + "modularrouters.itemText.activator.action.ATTACK_ENTITY": "Attack nearby entity", + "modularrouters.itemText.activator.direction.ABOVE": "Look Above", + "modularrouters.itemText.activator.direction.BELOW": "Look Below", + "modularrouters.itemText.activator.direction.LEVEL": "Look Level", + "modularrouters.itemText.activator.entityMode.NEAREST": "Nearest in-range entity", + "modularrouters.itemText.activator.entityMode.RANDOM": "Random in-range entity", + "modularrouters.itemText.activator.entityMode.ROUND_ROBIN": "Round Robin in-range entities", + "modularrouters.itemText.augments": "§eAugments:", + "modularrouters.itemText.augments.pickupDelay": "%d ticks (%f sec)", + "modularrouters.itemText.augments.stackInfo": "%d items/router tick", + "modularrouters.itemText.camouflage.held": "Camouflage as: ", + "modularrouters.itemText.distributor.strategy.FURTHEST_FIRST": "Furthest First", + "modularrouters.itemText.distributor.strategy.NEAREST_FIRST": "Nearest First", + "modularrouters.itemText.distributor.strategy.RANDOM": "Random", + "modularrouters.itemText.distributor.strategy.ROUND_ROBIN": "Round Robin", + "modularrouters.itemText.extruder2.template": "§eTemplate Blocks:", + "modularrouters.itemText.extruder.mode.ALWAYS": "§eExtend: §bWith redstone signal > 0", + "modularrouters.itemText.extruder.mode.HIGH": "§eExtend: §bWith redstone signal = 15", + "modularrouters.itemText.extruder.mode.LOW": "§eExtend: §bWith redstone signal = 0", + "modularrouters.itemText.extruder.mode.NEVER": "§eExtend: §bNever", + "modularrouters.itemText.extruder.mode.PULSE": "§eExtend: §bNever", + "modularrouters.itemText.fluid.direction": "§eFluid Direction: §b%s", + "modularrouters.itemText.fluid.direction.IN": "Transfer into Router", + "modularrouters.itemText.fluid.direction.OUT": "Transfer out of Router", + "modularrouters.itemText.fluid.maxTransfer": "§eFluid Rate:§b Up to %d mB / operation", + "modularrouters.itemText.misc.blacklist": "§eBlacklist", + "modularrouters.itemText.misc.breakerPick": "§ePickaxe: ", + "modularrouters.itemText.misc.bulkItemFilter.count": "• %d item(s) in filter", + "modularrouters.itemText.misc.configureHint": "§7§o▶ Press §3§o[%s]§7§o or §3§o[Middle-Click]§7§o to configure", + "modularrouters.itemText.misc.ecoMode": "§2Eco Mode", + "modularrouters.itemText.misc.energyUsage": "§eEnergy Usage: §b%d FE / operation", + "modularrouters.itemText.misc.energyWarning": "§6At least one installed module requires FE energy to run.${br}Router needs more FE energy!", + "modularrouters.itemText.misc.energyWarning.noBuffer": "§6At least one installed module requires FE energy to run.${br}Add one or more Energy Upgrades!", + "modularrouters.itemText.misc.flags": "§eFlags", + "modularrouters.itemText.misc.flingerDetails": "§eSpeed: §b%f§f | §ePitch: §b%f§f | §eYaw: §b%f", + "modularrouters.itemText.misc.holdKey": "§7§o▶ Hold §3§o[%s]§7§o for more info", + "modularrouters.itemText.misc.holdShiftKey": "§7§o▶ Hold §3§o[Shift]§7§o for settings, §3§o[%s]§7§o for more info", + "modularrouters.itemText.misc.IGNORE_DAMAGE": "Damage", + "modularrouters.itemText.misc.IGNORE_NBT": "NBT", + "modularrouters.itemText.misc.IGNORE_TAGS": "Tags", + "modularrouters.itemText.misc.itemList": "§eItem List", + "modularrouters.itemText.misc.matchAll": "All", + "modularrouters.itemText.misc.matchAny": "Any", + "modularrouters.itemText.misc.match": "§eMatch", + "modularrouters.itemText.misc.modFilter.count": "• %d mod(s) in filter", + "modularrouters.itemText.misc.moduleCount": "Modules: %d", + "modularrouters.itemText.misc.noItems": "Empty", + "modularrouters.itemText.misc.operation": "Operation", + "modularrouters.itemText.misc.rangeInfo": "§eRange: %s%d §3[base %d, max %d]", + "modularrouters.itemText.misc.redstoneLevel": "§eSignal Level: §b%d (%s)", + "modularrouters.itemText.misc.regexFilter.count": "• %d regex(es) in filter", + "modularrouters.itemText.misc.routerConfigured": "This router has been configured", + "modularrouters.itemText.misc.strongSignal.false": "Weak", + "modularrouters.itemText.misc.strongSignal.true": "Strong", + "modularrouters.itemText.misc.TERMINATE": "Termination", + "modularrouters.itemText.misc.upgradeCount": "▶ %d x %s", + "modularrouters.itemText.misc.upgrades": "Upgrades:", + "modularrouters.itemText.misc.whitelist": "§eWhitelist", + "modularrouters.itemText.security.count": "%d / %d other player(s):", + "modularrouters.itemText.security.owner": "§eOwner: §b%s", + "modularrouters.itemText.sync.tuning": "§eTuned Value: §b%d", + "modularrouters.itemText.targetingHintMulti": "• Sneak + Right-Click an unselected inventory to select it,${br}• Sneak + Right-Click a selected inventory to unselect it", + "modularrouters.itemText.targetingHint": "• Sneak + Right-Click an inventory to set target,${br}• Sneak + Right-Click any non-inventory block to clear target", + "modularrouters.itemText.usage.item.activator_module": "Simulates right-clicking blocks and entities using the item(s) in the router's buffer.${br}Acts as if the router is a fake player.", + "modularrouters.itemText.usage.item.blast_upgrade": "Makes the router immune to explosion damage and boss destruction.", + "modularrouters.itemText.usage.item.breaker_module": "Breaks a block adjacent to the router in the module's configured direction, pulling it as an item into the router's buffer.", + "modularrouters.itemText.usage.item.bulk_item_filter": "High-capacity, high-performance filter for large numbers of items. Place in a router module's filter like any other item.${br}• Sneak + Right-click any inventory: merge contents into filter.${br}• Right-click: view/configure.", + "modularrouters.itemText.usage.item.camouflage_upgrade": "Makes the router look like another block.${br}• Sneak + Right-click a solid block to copy its appearance onto the upgrade.", + "modularrouters.itemText.usage.item.creative_module": "Creates items out of thin air and inserts them into the router's buffer.", + "modularrouters.itemText.usage.item.detector_module": "Emits a redstone signal from the router in the module's configured direction IF the item in the router's buffer passes the module's filter.", + "modularrouters.itemText.usage.item.distributor_module": "Distributes items from the router's buffer to multiple inventories, with a choice of round-robin, random, nearest-first or furthest-first.", + "modularrouters.itemText.usage.item.dropper_module": "Drops items from the router's buffer in the module's configured direction.", + "modularrouters.itemText.usage.item.energy_distributor_module": "Wirelessly distributes FE energy from the router's energy buffer or any energy-containing item in the item buffer to nearby energy-containing blocks", + "modularrouters.itemText.usage.item.energy_output_module": "Pushes FE energy from the router's energy buffer or any energy-containing item in the item buffer", + "modularrouters.itemText.usage.item.energy_upgrade": "Increases a router's energy buffer capacity by %d FE and transfer rate by %d FE/router tick", + "modularrouters.itemText.usage.item.energyUpgradeRouter": "• This router's energy capacity: %d FE${br}• This router's transfer rate: %d FE/router tick", + "modularrouters.itemText.usage.item.extruder_module_1": "Places or removes blocks in a line along the module's direction, depending on the router's redstone signal level.${br}Default is to place with a signal and remove with no signal; add Redstone Augment to the module for custom behaviour.", + "modularrouters.itemText.usage.item.extruder_module_2": "Operates like the Extruder Mk1, but places template blocks from an internal pattern buffer instead of real blocks from the router's buffer.", + "modularrouters.itemText.usage.item.fast_pickup_augment": "Allow the Vacuum Module to ignore the normal pickup delays on dropped items.", + "modularrouters.itemText.usage.item.filter_round_robin_augment": "Instead of the default any/all behaviour, the module will match against a single item from its filter on each execution tick. The item to be matched is picked in ascending round robin order.${br}Useful to work on a series of items in a specific order.", + "modularrouters.itemText.usage.item.flinger_module": "Throws items from the router's buffer over potentially long distances. Adjust speed, pitch & yaw from the module's GUI.", + "modularrouters.itemText.usage.item.fluid_module_2": "Transfers fluids into or out of the router to/from any nearby block.${br}• Router's buffer must have a fluid container item in it.${br}• Can transfer to/from tanks or the world.", + "modularrouters.itemText.usage.item.fluid_module": "Transfers fluids into or out of the router to/from an adjacent block in the module's direction.${br}• Router's buffer must have a fluid container item in it.${br}• Can transfer to/from tanks or the world.", + "modularrouters.itemText.usage.item.fluid_upgrade": "Increases the amount of fluid a router can transfer (in each direction) by %d mB/tick.", + "modularrouters.itemText.usage.item.fluidUpgradeRouter": "• This router's transfer rate: %d mB/tick", + "modularrouters.itemText.usage.item.inspection_filter": "Filter items by inspecting various properties of the item. Place in a router module's filter like any other item.${br}• Right-click: view/configure.", + "modularrouters.itemText.usage.item.mimic_augment": "Allows the fake blocks placed by the Extruder Mk2 to also mimic lighting, redstone emission, hardness and blast resistance of the blocks whose appearance is being mimicked.", + "modularrouters.itemText.usage.item.mod_filter": "Filter items by the mods they come from. Place in a router module's filter like any other item.${br}• Right-click: view/configure.", + "modularrouters.itemText.usage.item.muffler_upgrade": "Suppresses sound & particle effects from routers/modules:${br}• 1 upgrade will suppress sound effects${br}• 2 or more will also suppress particle effects${br}• 3 or more will also suppress the router-active animation.", + "modularrouters.itemText.usage.item.pickup_delay_augment": "Increases the pickup delay time for dropped or flung items by 10 ticks per augment.", + "modularrouters.itemText.usage.item.placer_module": "Places an item from the router's buffer as a block in the module's configured direction, if possible.", + "modularrouters.itemText.usage.item.player_module": "Remotely transfers items between a player's main or armor inventory and the router's buffer.", + "modularrouters.itemText.usage.item.puller_module_1": "Extracts items from an adjacent inventory in the module's configured direction into the router's buffer.", + "modularrouters.itemText.usage.item.puller_module_2": "Extracts items from any nearby inventory into the router's buffer.", + "modularrouters.itemText.usage.item.pushing_augment": "Increases the force by which Extruder Mk1/2 can push entities away when extruding blocks. Can be stacked.", + "modularrouters.itemText.usage.item.range_down_augment": "Reduces range of modules by 1 block per augment.", + "modularrouters.itemText.usage.item.range_up_augment": "Increases range of modules by 1 block per augment (up to hard maximum - see module tooltip)", + "modularrouters.itemText.usage.item.redstone_augment": "Allows a module to define its own specific redstone behaviour, overriding the router's redstone behaviour.", + "modularrouters.itemText.usage.item.regex_filter": "Filter items by matching their registry names (viewable with F3+H) against one or more regular expressions. Place in a router module's filter like any other item.${br}• Right-click: view/configure.", + "modularrouters.itemText.usage.item.regulator_augment": "Allow precise control over how many items are kept in an inventory.", + "modularrouters.itemText.usage.item.security_upgrade": "Protects router; only listed players can access the router. Also protects owner from attack by Activator Module, and makes several modules work as the owning player; very useful when chunks are claim-protected.${br}• Right-click a player to add them to this upgrade${br}• Sneak + Right-click player to remove them", + "modularrouters.itemText.usage.item.sender_module_1": "Sends items from the router's buffer to any inventory directly along an X/Y/Z axis.${br}Clear line of sight required; opaque blocks will prevent sending.", + "modularrouters.itemText.usage.item.sender_module_2": "Sends items from the router's buffer to any nearby inventory.${br}Clear line of sight NOT required.", + "modularrouters.itemText.usage.item.sender_module_3": "Sends items from the router's buffer to any inventory in any dimension.", + "modularrouters.itemText.usage.item.speed_upgrade": "Increases the router tick rate.${br}• This router ticks every %.02f sec (%d ticks)${br}• Max. useful upgrades: %d", + "modularrouters.itemText.usage.item.stack_augment": "Allows the module to process multiple items per tick.${br}This overrides Stack Upgrades inserted in the router.", + "modularrouters.itemText.usage.item.stack_upgrade": "Increases the number of items processed per router tick.${br}• Max. items processed per operation: %d${br}• Max. useful upgrades: %d", + "modularrouters.itemText.usage.item.sync_upgrade": "Makes routers activate together.${br}• Right-click: open tuning GUI${br}• Sneak + Right-click: tune to a random value.${br}• All routers with the same-tuned Sync Upgrade (and same number of Speed Upgrades) will run at the same time.", + "modularrouters.itemText.usage.item.vacuum_module": "Absorbs nearby items in the world into the router's buffer. Operates in all directions by default, but can be configured to operate in one direction only.", + "modularrouters.itemText.usage.item.void_module": "§c*** CAUTION ***${br}Permanently destroys items in the buffer!", + "modularrouters.itemText.usage.item.xp_vacuum_augment": "Allows the Vacuum Module to collect XP orbs instead of items.${br}XP can be converted into a variety of solid & liquid forms, depending on what other mods are installed, but vanilla Bottles o' Enchanting are always available. Liquid XP conversion requires a tank capable of storing liquids by the mB either in the router's buffer as an item, or placed adjacent to the router as a block (with Eject mode enabled in the module GUI).", + "modularrouters.jei.recipe.module_reset.description": "Completely resets the module to its newly-crafted state. Beware: ALL data, including filter settings and enchantments, will be lost (but any installed augments will be returned)", + "modularrouters.jei.recipe.module_reset": "Module Reset", + "modularrouters.patchouli.book.landing": "This manual is a complete reference guide to $(#228)Modular Routers/$.", + "modularrouters.patchouli.book.name": "Modular Routers Manual" +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/lang/zh_cn.json b/projects/1.19/assets/modular-routers/modularrouters/lang/zh_cn.json new file mode 100644 index 000000000000..b88b4d281924 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/lang/zh_cn.json @@ -0,0 +1,359 @@ +{ + "block.modularrouters.modular_router": "模块化路由器", + "block.modularrouters.template_frame": "模板框架方块", + "config.jade.plugin_modularrouters.router": "模块化路由器", + "item.modularrouters.activator_module": "执行模块", + "item.modularrouters.augment_core": "拓展核心", + "item.modularrouters.blank_module": "空白模块", + "item.modularrouters.blank_upgrade": "空白升级", + "item.modularrouters.blast_upgrade": "爆炸升级", + "item.modularrouters.breaker_module": "破坏模块", + "item.modularrouters.bulk_item_filter": "批量物品过滤器", + "item.modularrouters.camouflage_upgrade": "伪装升级", + "item.modularrouters.creative_module": "创造模块", + "item.modularrouters.detector_module": "检测模块", + "item.modularrouters.distributor_module": "分配模块", + "item.modularrouters.dropper_module": "投掷器模块", + "item.modularrouters.energy_distributor_module": "能量分配模块", + "item.modularrouters.energy_output_module": "能量输出模块", + "item.modularrouters.energy_upgrade": "能量升级", + "item.modularrouters.extruder_module_1": "挤出模块1型", + "item.modularrouters.extruder_module_2": "挤出模块2型", + "item.modularrouters.fast_pickup_augment": "快速拾取拓展", + "item.modularrouters.filter_round_robin_augment": "过滤器轮询拓展", + "item.modularrouters.flinger_module": "投掷模块", + "item.modularrouters.fluid_module_2": "流体模块2型", + "item.modularrouters.fluid_module": "流体模块1型", + "item.modularrouters.fluid_upgrade": "流体传输升级", + "item.modularrouters.GuideBook": "§l§n模块化路由器", + "item.modularrouters.inspection_filter": "检测过滤器", + "item.modularrouters.mimic_augment": "模仿拓展", + "item.modularrouters.mod_filter": "模组过滤器", + "item.modularrouters.muffler_upgrade": "消声器升级", + "item.modularrouters.override_card": "安全覆盖卡", + "item.modularrouters.pickup_delay_augment": "延迟拾取拓展", + "item.modularrouters.placer_module": "放置模块", + "item.modularrouters.player_module": "玩家模块", + "item.modularrouters.puller_module_1": "抽取模块1型", + "item.modularrouters.puller_module_2": "抽取模块2型", + "item.modularrouters.pushing_augment": "推动拓展", + "item.modularrouters.range_down_augment": "范围降级拓展", + "item.modularrouters.rangedown_upgrade": "范围降级", + "item.modularrouters.range_up_augment": "范围升级拓展", + "item.modularrouters.range_upgrade": "范围升级", + "item.modularrouters.redstone_augment": "红石拓展", + "item.modularrouters.regex_filter": "正则过滤器", + "item.modularrouters.regulator_augment": "调节拓展", + "item.modularrouters.security_upgrade": "安全升级", + "item.modularrouters.sender_module_1": "发送模块1型", + "item.modularrouters.sender_module_2": "发送模块2型", + "item.modularrouters.sender_module_3": "发送模块3型", + "item.modularrouters.speed_upgrade": "速度升级", + "item.modularrouters.stack_augment": "堆叠拓展", + "item.modularrouters.stack_upgrade": "堆叠升级", + "item.modularrouters.sync_upgrade": "同步升级", + "item.modularrouters.vacuum_module": "真空模块", + "item.modularrouters.void_module": "销毁模块", + "item.modularrouters.xp_vacuum_augment": "经验吸收拓展", + "key.modularrouters.category": "模块化路由器", + "key.modularrouters.configure": "配置已安装的模块(GUI)", + "key.modularrouters.moduleInfo": "额外的工具提示信息(GUI)", + "modularrouters.chatText.misc.inventoryMerged": "已将%d个物品合并到%s中", + "modularrouters.chatText.misc.targetAdded": "目标已添加(%d/%d):", + "modularrouters.chatText.misc.targetCleared": "目标已移除", + "modularrouters.chatText.misc.targetRemoved": "目标已移除(%d/%d):", + "modularrouters.chatText.misc.targetSet": "目标已设定:", + "modularrouters.chatText.misc.target": "目标:§b%s", + "modularrouters.chatText.misc.tooManyTargets": "目标过多(最大:%d)", + "modularrouters.chatText.security.accessDenied": "§c--[拒绝访问]--", + "modularrouters.chatText.security.ADDED": "添加玩家[%s]", + "modularrouters.chatText.security.ALREADY_ADDED": "玩家[%s]已在此升级中添加", + "modularrouters.chatText.security.ERROR": "无法添加玩家[%s](内部错误)", + "modularrouters.chatText.security.FULL": "安全升级物品已满!", + "modularrouters.chatText.security.NOT_PRESENT": "玩家[%s]已移除", + "modularrouters.chatText.security.REMOVED": "移除玩家[%s]", + "modularrouters.chatText.subtitle.error": "错误", + "modularrouters.chatText.subtitle.success": "成功", + "modularrouters.chatText.subtitle.thud": "*砰的一声*", + "modularrouters.chatText.targetValidation.NOT_INVENTORY": "§c✘ 无物品栏", + "modularrouters.chatText.targetValidation.NOT_LOADED": "§c✘ 未加载", + "modularrouters.chatText.targetValidation.OK": "§a✔ 目标合格", + "modularrouters.chatText.targetValidation.OUT_OF_RANGE": "§c✘ 超出范围", + "modularrouters.chatText.targetValidation.BAD_DIMENSION": "§c✘ 该维度在黑名单中", + "modularrouters._comment": "JEI text", + "modularrouters.gui.config.alwaysShowModuleSettings": "显示模块设置工具提示,而无需按住Shift键", + "modularrouters.gui.config.baseTickRate": "基本路由器速率(无速度升级)", + "modularrouters.gui.config.breakerParticles": "当破坏模块破坏方块时显示粒子效果", + "modularrouters.gui.config.ctgy.misc": "杂项", + "modularrouters.gui.config.ctgy.misc.tooltip": "其他设置", + "modularrouters.gui.config.ctgy.module": "模块", + "modularrouters.gui.config.ctgy.module.tooltip": "模块化路由器模块的配置设置", + "modularrouters.gui.config.ctgy.router": "路由器", + "modularrouters.gui.config.ctgy.router.tooltip": "模块化路由器的配置设置", + "modularrouters.gui.config.ecoTimeout": "如果路由器开启了节能模式,并待机了许多服务器刻,它将进入低耗模式", + "modularrouters.gui.config.extruder2BaseRange": "挤出模块2型的基础范围(无范围升级)", + "modularrouters.gui.config.extruder2MaxRange": "挤出模块2型的最大范围(带范围升级)", + "modularrouters.gui.config.extruderBaseRange": "挤出模块的基础范围(无范围升级)", + "modularrouters.gui.config.extruderMaxRange": "挤出模块的最大范围(带范围升级)", + "modularrouters.gui.config.extruderPushEntities": "挤出模块1型/2型伸出时可以推动实体", + "modularrouters.gui.config.extruderSound": "当挤出模块伸出或缩回时播放声音", + "modularrouters.gui.config.flingerEffects": "当投掷模块投掷物品时播放声音和烟雾效果", + "modularrouters.gui.config.hardMinTicks": "最小(最快)的路由器运行速率", + "modularrouters.gui.config.lowPowerTickRate": "开启节能模式的路由器在低耗模式下,每经过若干服务器刻才会执行一次路由器刻", + "modularrouters.gui.config.mainTitle": "模块化路由器配置", + "modularrouters.gui.config.moduleGuiBackgroundTint": "把模块GUI的背景色染成模块物品的颜色", + "modularrouters.gui.config.placerParticles": "当放置模块放置方块时显示粒子效果", + "modularrouters.gui.config.puller2BaseRange": "抽取模块2型的基础范围(无范围升级)", + "modularrouters.gui.config.puller2MaxRange": "抽取模块2型的最大范围(带范围升级)", + "modularrouters.gui.config.pullerParticles": "当抽取模块抽取物品时显示粒子效果", + "modularrouters.gui.config.sender1BaseRange": "发送模块1型的基础范围(无范围升级)", + "modularrouters.gui.config.sender1MaxRange": "发送模块1型的最大范围(带范围升级)", + "modularrouters.gui.config.sender2BaseRange": "发送模块2型的基础范围(无范围升级)", + "modularrouters.gui.config.sender2MaxRange": "发送模块2型的最大范围(带范围升级)", + "modularrouters.gui.config.senderParticles": "当发送模块发送物品时显示粒子效果", + "modularrouters.gui.config.startWithGuide": "新玩家在游戏开始时获得指南书", + "modularrouters.gui.config.ticksPerUpgrade": "每次速度升级加速的值", + "modularrouters.gui.config.vacuumBaseRange": "真空模块的基础范围(无范围升级)", + "modularrouters.gui.config.vacuumMaxRange": "真空模块的最大范围(带范围升级)", + "modularrouters.gui.config.vacuumParticles": "真空模块吸收物品时显示颗粒效果", + "modularrouters.guiText.label.breakMatchType.BLOCK": "匹配方块", + "modularrouters.guiText.label.breakMatchType.ITEM": "匹配掉落物", + "modularrouters.guiText.label.buffer": "缓存区", + "modularrouters.guiText.label.direction": "§e方向设置", + "modularrouters.guiText.label.filters": "过滤器", + "modularrouters.guiText.label.fluidForceEmpty": "强制", + "modularrouters.guiText.label.inspectionOp.EQ": "=", + "modularrouters.guiText.label.inspectionOp.GE": ">=", + "modularrouters.guiText.label.inspectionOp.GT": ">", + "modularrouters.guiText.label.inspectionOp.LE": "<=", + "modularrouters.guiText.label.inspectionOp.LT": "<", + "modularrouters.guiText.label.inspectionOp.NE": "!=", + "modularrouters.guiText.label.inspectionOp.NONE": "", + "modularrouters.guiText.label.inspectionSubject.DURABILITY": "耐久度", + "modularrouters.guiText.label.inspectionSubject.ENCHANT": "魔咒", + "modularrouters.guiText.label.inspectionSubject.ENERGY": "能量储量", + "modularrouters.guiText.label.inspectionSubject.FLUID": "流体储量", + "modularrouters.guiText.label.inspectionSubject.FOOD": "食物营养价值", + "modularrouters.guiText.label.inspectionSubject.NONE": "", + "modularrouters.guiText.label.installed": "(已安装)", + "modularrouters.guiText.label.matchAll.false": "匹配任意", + "modularrouters.guiText.label.matchAll.true": "匹配全部", + "modularrouters.guiText.label.modules": "模块", + "modularrouters.guiText.label.playerOp.EXTRACT": "从玩家提取至路由器", + "modularrouters.guiText.label.playerOp.INSERT": "从路由器输入至玩家", + "modularrouters.guiText.label.playerSect.ARMOR": "盔甲栏", + "modularrouters.guiText.label.playerSect.ENDER": "末影物品栏", + "modularrouters.guiText.label.playerSect.MAIN": "主物品栏", + "modularrouters.guiText.label.playerSect.MAIN_NO_HOTBAR": "主物品栏(不含快捷栏)", + "modularrouters.guiText.label.playerSect.OFFHAND": "副手栏", + "modularrouters.guiText.label.regexError": "无效的正则表达式", + "modularrouters.guiText.label.upgrades": "升级", + "modularrouters.guiText.label.xpVacuum.eject": "输出", + "modularrouters.guiText.label.xpVacuum": "经验类型", + "modularrouters.guiText.popup.activator.action": "§a§n行为 ${br} ${br}§r执行模块可以模拟下列行为:${br}- 使用路由器缓存区的物品右击方块${br}(比如:使用锄,或开关拉杆);${br}- 右击附近的实体${br} ${br}(比如:使用在路由器缓存区中的桶为${br}牛挤奶)。", + "modularrouters.guiText.popup.activator.entity": "§a§n实体模式 ${br} ${br}§r执行模块时指向周围(三格内)的一${br}个实体:${br}- 最近的实体;${br}- 随机选择一个实体;${br}- 在该范围的所有实体中轮询选择。", + "modularrouters.guiText.popup.activator.look": "§a§n瞄准方向 ${br} ${br}§r右击时,路由器可以:${br}- 瞄准一个水平方向最多四格远、且路${br}由器正对着的方块;${br}- 瞄准一个在路由器方向上加一格正上${br}方的方块;${br}- 瞄准一个在路由器方向上加一格正下${br}方的方块。", + "modularrouters.guiText.popup.activator.sneak": "§a§n潜行 ${br} ${br}§r设置路由器模拟右击时是否应该潜行。", + "modularrouters.guiText.popup.augments": "§a§n拓展 ${br} ${br}§r这四个栏位可以放置模块拓展。你可${br}以合成模块拓展并放入模块来更改或${br}增强模块的功能。 ${br} ${br}参阅模块拓展物品提示来了解每个${br}拓展的作用。 ${br} ${br}请注意,你只有手持单个模块才能${br}放置/取出拓展,这是为了避免拓展${br}被复制。", + "modularrouters.guiText.popup.breaker.matchType": "§a§n匹配类型 ${br} ${br}§r- 匹配掉落物:当破坏方块时,过滤器${br}会匹配该方块掉落的物品(注意精准${br}采集会影响掉落)${br}- 匹配方块:过滤器匹配方块本身,${br}比如过滤器有石头,则会匹配石头${br}方块,不会受精准采集影响(即使${br}掉落物仍是圆石)", + "modularrouters.guiText.popup.detector.signalLevel": "§a§n红石信号等级 ${br} ${br}§r在这里你可以指定一个红石信号强度,${br}这是一个0到15之间(包含0和15)的整数。${br}当路由器缓存区中的物品与过滤器匹配${br}时路由器将会输出与之相同强度的信号。", + "modularrouters.guiText.popup.detector.weakStrong": "§a§n红石信号充能方式 ${br} ${br}§r-§o弱充能§r 的红石信号只会充能相邻${br}的方块;${br}-§o强充能§r 的红石信号除了充能相邻${br}的方块之外,还能使该方块进一步${br}充能其相邻的方块(类似原版的${br}红石中继器)。", + "modularrouters.guiText.popup.direction": "§a§n方向控制 ${br} ${br}§rGUI里的这个部分允许你指定模块工作${br}的方向。显示的方向基准相对于路由${br}器的正面。默认的方向是“无”,${br}在大多数情况下这意味着放置的模块${br}不会工作,因此你将需要指定一个方向。", + "modularrouters.guiText.popup.distributor.direction": "§a§n传输方向 ${br} ${br}§r在这里你可以控制路由器向哪里发送${br}物品,或从哪里接收物品。", + "modularrouters.guiText.popup.distributor.strategy": "§a§n分配策略 ${br} ${br}§r这定义了分配模块分配物品的方式,${br}分别存在四种可以设定的策略:${br} ${br}§e轮询§r - 按顺序依次尝试将物品送入绑定的${br}全部容器。 ${br} ${br}§e随机§r - 每游戏刻将物品随机送入绑定的不同${br}的容器。${br} ${br}§e最近§r - 将物品优先送入离路由器最近的绑定${br}的容器 ${br} ${br}§e最远§r - 将物品优先送入离路由器最远的绑定${br}的容器", + "modularrouters.guiText.popup.extruder2.template": "§a§n模板 ${br} ${br}§r你可以在这里指定挤出的方块模板;需要注意的是挤出模块放置的并不是${br}真正的方块,而是一种特殊的不可合成、${br}不可采集的模板方块。 ${br} ${br}在模板栏中标记用来挤出的方块;${br}模块会以从左至右、从上至下的方式${br}依次放置设定的方块。你也可以让${br}挤出模块连续放置多个同种物品(单击${br}或右击模板中的物品来调节)。 ${br} ${br}注意:你可以放置非方块物品(比如木棍);${br}虽然这些方块不能被放置到世界中,${br}但是它们可以充当间隔,在挤出的${br}行列中加入空气方块。", + "modularrouters.guiText.popup.filter": "§a§n过滤器 ${br} ${br}§r在此处标记物品和方块,以精确的控制${br}模块的工作。如果过滤器和缓存区里的${br}物品不匹配,那么这个模块将不会工作,${br}另请参阅下方的过滤器控制按钮。", + "modularrouters.guiText.popup.filterControl": "§a§n过滤器控制 ${br} ${br}§r这些按钮控制着过滤器如何影响路由器${br}的缓存区。阅读每个按钮的提示以获取${br}更多信息。", + "modularrouters.guiText.popup.flinger.pitch": "§a§n抛射俯仰角 ${br} ${br}§r这是抛射角度在竖直方向上的偏移量,${br}以度为单位:${br} ${br}- 如果模块朝向是水平的,这表示相对${br}于水平轴(X轴或Z轴)上或下的夹角${br}- 如果模块朝向是竖直的,这表示相对${br}于Y轴的夹角。", + "modularrouters.guiText.popup.flinger.speed": "§a§n抛射速度 ${br} ${br}§r这是路由器将物品扔出去时物品飞出去${br}的速度。 ${br} ${br}用一个粗糙的例子来说明,以1.0速度${br}和30°角度扔出去的物品(模块朝向${br}水平方向)会落在2格远的地方。", + "modularrouters.guiText.popup.flinger.yaw": "§a§n抛射偏转角 ${br} ${br}§r这是抛射角度在水平方向上的偏移量,${br}以度为单位:${br} ${br}- 如果模块朝向是水平的,这表示相对${br}于水平轴(X轴或Z轴)左或右的夹角 ${br}- 如果模块朝向是竖直的,这表示相对${br}于Y轴的夹角。仅当设定的值非零时起效。", + "modularrouters.guiText.popup.fluid.direction": "§a§n传输方向 ${br} ${br}§r你可以控制路由器是将流体输出到世界${br}或储罐中去,还是从世界或储罐中提${br}取流体到路由器。", + "modularrouters.guiText.popup.fluid.forceEmpty": "§a§n强制清空 ${br} ${br}§r当你在Minecraft内将一桶任意${br}流体倒入与他相同的流体中时,${br}桶中的流体就会永远消失。这可不太好。${br} ${br}默认情况下,流体模块不会尝试将任何${br}流体倒入世界,除非目标方块完全是${br}空的,也就是空气。你可以通过切换${br}“强制”按钮来改变这个设定;启用${br}后,流体模块会毫不犹豫地将缓存区${br}内的流体倒入其他流体中 ${br} ${br}- 但请记住,这样做可能会导致流体${br}白白损耗……", + "modularrouters.guiText.popup.fluid.maxTransfer": "§a§n最大传输量 ${br} ${br}§r这是路由器单次传输时试图传输流体${br}量的上限。 ${br} ${br}注意实际的传输速率仍然会被路由器${br}中流体传输升级的数量和外部容器的${br}传输速率(如果有限)所限制,所以${br}这个值应当被视为对原本传输速率的${br}限制。", + "modularrouters.guiText.popup.noDirection": "§a§n方向控制 ${br} ${br}§rGUI里的这个部分允许你指定模块${br}工作的方向。显示的方向基准相对于${br}路由器的正面。 ${br} ${br}该模块没有方向的概念,因此该区域为空。", + "modularrouters.guiText.popup.player.control": "§a§n玩家模块 ${br} ${br}§r你可以设定:${br}- 路由器是将物品从路由器传输给玩家,还是从将物品从玩家传输到路由器;${br}- 应该与玩家物品存储数据列表的哪一个部分进行交互", + "modularrouters.guiText.popup.xpVacuum": "§a§n经验吸取类型 ${br} ${br}§r你可以在这里指定这个模块如何吸取${br}经验球。可用的选项受不同模组和不同${br}的经验流体影响,但是原版的附魔之瓶${br}总是可用的。 ${br} ${br}如果要以流体形式吸收经验,那么你${br}必须在路由器的缓存区中放置一个${br}可以以mB为单位储存流体的物品${br}(因此,原版桶不可用),或者在路由器${br}旁边放置一个流体容器,然后检查下面${br}的“输出”按钮。", + "modularrouters.guiText.popup.xpVacuum.eject": "§a§n经验流体输出 ${br} ${br}§r如果被选中,路由器会试图将经验流体${br}输出到相邻的合适容器(输出面的检查${br}顺序为:下、上、北、南、西、东)。${br}注意:路由器只能输出经验流体,${br}不能输出经验物品。 ${br} ${br}如果你安装的模组中没有可以在路由器${br}中填充的流体容器,这可能会非常有用。", + "modularrouters.guiText.tooltip.activator.action": "动作", + "modularrouters.guiText.tooltip.activator.entityMode": "实体", + "modularrouters.guiText.tooltip.activator.lookDirection": "朝向", + "modularrouters.guiText.tooltip.activator.sneak": "潜行", + "modularrouters.guiText.tooltip.allDirections": "任何方向", + "modularrouters.guiText.tooltip.BACK": "后方", + "modularrouters.guiText.tooltip.BLACKLIST.1": "白名单${br}模块只会在过滤器匹配时运行${br}空的白名单将不匹配任何物品和方块。", + "modularrouters.guiText.tooltip.BLACKLIST.2": "黑名单${br}模块不会在过滤器匹配时运行${br}空的黑名单将匹配所有物品和方块。", + "modularrouters.guiText.tooltip.clearFilter": "清除过滤数据", + "modularrouters.guiText.tooltip.detectorTooltip": "§b红石信号等级", + "modularrouters.guiText.tooltip.distributor.strategy": "分配策略", + "modularrouters.guiText.tooltip.DOWN": "下方", + "modularrouters.guiText.tooltip.eco.false": "节能模式 §e关 ${br}§7路由器将始终以全速运行。", + "modularrouters.guiText.tooltip.eco.true": "节能模式 §a开 ${br}§7如果路由器进入空闲的时间大于%f秒,它将进入低耗模式,每%f秒检测运行一次。在重新开始处理任何物品时,它将回到正常运行速度。", + "modularrouters.guiText.tooltip.energy.from_router": "将路由器缓存区的能量传输至物品", + "modularrouters.guiText.tooltip.energy.none": "无能量传输", + "modularrouters.guiText.tooltip.energy.rate": "最大传输速率: %sFE/刻", + "modularrouters.guiText.tooltip.energy.to_router": "将物品的能量传输至路由器缓存区", + "modularrouters.guiText.tooltip.extruder2.template": "§b模板${br}在此处放置方块来作为挤出模块的模板,挤出模块将直接放置与模板内方块材质相似的模拟方块。${br}• §e左击:§7 减少堆叠数量${br}• §e右击:§7 增加堆叠数量${br}• §eShift+左击:§7 清除对应模板栏", + "modularrouters.guiText.tooltip.flinger.pitch": "§b俯仰角(%f → %f)", + "modularrouters.guiText.tooltip.flinger.speed": "§b投掷速度(%f → %f)", + "modularrouters.guiText.tooltip.flinger.yaw": "§b偏转角(%f → %f)", + "modularrouters.guiText.tooltip.fluidForceEmpty.false": "§b强制清空已禁用${br}如果路由器旁的容器或方块已满,那路由器内的流体将不会被导出。", + "modularrouters.guiText.tooltip.fluidForceEmpty.true": "§b强制清空已启用${br}如果可能,流体将始终从路由器中导出,即使这会导致流体被销毁(例如将水倒入已存在的水方块中)", + "modularrouters.guiText.tooltip.fluidRegulatorTooltip": "§b流体调节已启用${br}从路由器输出时:仅在目标流体储罐的存量小于设定的值时输出。提取到路由器时:仅在当流体储罐存储的量超过设定的值时提取。", + "modularrouters.guiText.tooltip.fluidTransferTooltip": "§b最大流体转移${br}你希望的一次操作能转移的流体的最大值(单位:mB)。这仍然受限于路由器的总传输速率(流体和速度升级)", + "modularrouters.guiText.tooltip.FRONT": "前方", + "modularrouters.guiText.tooltip.IGNORE_DAMAGE.1": "匹配物品耐久${br}耐久度不同的同种物品将被视为不同的物品", + "modularrouters.guiText.tooltip.IGNORE_DAMAGE.2": "忽略物品耐久${br}耐久度不同的同种物品将被视为相同的物品", + "modularrouters.guiText.tooltip.IGNORE_NBT.1": "匹配NBT${br}例如匹配时考虑物品上的魔咒", + "modularrouters.guiText.tooltip.IGNORE_NBT.2": "忽略NBT${br}例如匹配时忽略物品上的魔咒", + "modularrouters.guiText.tooltip.IGNORE_TAGS.1": "标签匹配已启用${br}匹配与过滤器中的物品在同一标签组的物品,例如,橡木和白桦原木", + "modularrouters.guiText.tooltip.IGNORE_TAGS.2": "标签匹配已禁用", + "modularrouters.guiText.tooltip.LEFT": "左方", + "modularrouters.guiText.tooltip.loadFilter": "从${br}§e%s§r @ %s中加载过滤器${br}§o现有过滤器中的内容将被覆盖!", + "modularrouters.guiText.tooltip.matchAll.false": "任意匹配${br}过滤器中的任何项目都可匹配到过滤器。${br} 在大多数情况下使用此选项。", + "modularrouters.guiText.tooltip.matchAll.true": "全体匹配${br}过滤器中的所有项目都必须匹配,过滤器才能匹配。${br} 在特定情况下使用,例如你想检测附魔的皮革盔甲时。", + "modularrouters.guiText.tooltip.maxFluidPerOp": "§f传输速率:%dmB每%d刻(%dmB/刻)", + "modularrouters.guiText.tooltip.mergeFilter": "从${br}§e%s§r @ %s中合并过滤器", + "modularrouters.guiText.tooltip.mouseOverHelp.false": "点击以开启鼠标悬停时的提示", + "modularrouters.guiText.tooltip.mouseOverHelp.true": "已开启鼠标悬停时提示${br}§7点击以关闭", + "modularrouters.guiText.tooltip.NONE": "无", + "modularrouters.guiText.tooltip.numberFieldTooltip": "• §e§o鼠标指针向上/向下移动§7或鼠标滚轮:调整${br}• 按住§e§oShift§7:粗调${br}• 按住§e§oCtrl§7:微调${br}• §e§oPage Up/Down§7:设置为最大/最小值", + "modularrouters.guiText.tooltip.redstone.ALWAYS": "始终", + "modularrouters.guiText.tooltip.redstone.HIGH": "高信号", + "modularrouters.guiText.tooltip.redstone.label": "红石控制模式", + "modularrouters.guiText.tooltip.redstone.LOW": "低信号", + "modularrouters.guiText.tooltip.redstone.NEVER": "从不", + "modularrouters.guiText.tooltip.redstone.PULSE": "脉冲", + "modularrouters.guiText.tooltip.regulator.label": "%d个物品", + "modularrouters.guiText.tooltip.regulator.labelFluidmB": "%dmB", + "modularrouters.guiText.tooltip.regulator.labelFluidPct": "%d%%", + "modularrouters.guiText.tooltip.regulatorTooltip": "§b物品调节已启用${br}物品输入时:仅在容器物品少于设定的数量的情况下放入/使用物品。${br}物品提取时:仅在容器物品超过设定的数量时抽取/使用物品。", + "modularrouters.guiText.tooltip.removeFilterHint": "§7§o潜行+左击:从过滤器中删除物品信息", + "modularrouters.guiText.tooltip.RIGHT": "右方", + "modularrouters.guiText.tooltip.terminate.NONE" : "模块化路由器将继续执行后续模块,无论当前模块是否进行过任何操作。", + "modularrouters.guiText.tooltip.terminate.NONE.header" : "始终继续", + "modularrouters.guiText.tooltip.terminate.NOT_RAN" : "如果此模块没有进行任何操作,则模块化路由器将不会在此游戏刻上执行任何后续模块。", + "modularrouters.guiText.tooltip.terminate.NOT_RAN.header" : "找不到匹配时停止", + "modularrouters.guiText.tooltip.terminate.RAN" : "如果此模块进行过任何操作,则模块化路由器将不会在此游戏刻上执行任何后续模块。", + "modularrouters.guiText.tooltip.terminate.RAN.header": "找到匹配时停止", + "modularrouters.guiText.tooltip.tunedValue": "§b调整值(%d → %d)", + "modularrouters.guiText.tooltip.UP": "上方", + "modularrouters.guiText.tooltip.xpVacuum.ejectFluid": "经验流体已输出", + "itemGroup.modularrouters": "模块化路由器", + "modularrouters.itemText.activator.action.ITEM_OR_BLOCK": "右击", + "modularrouters.itemText.activator.action.USE_ITEM_ON_ENTITY": "使用缓存区物品右击最近的实体", + "modularrouters.itemText.activator.action.ATTACK_ENTITY": "攻击附近实体", + "modularrouters.itemText.activator.direction.ABOVE": "朝向上方", + "modularrouters.itemText.activator.direction.BELOW": "朝向下方", + "modularrouters.itemText.activator.direction.LEVEL": "朝向水平", + "modularrouters.itemText.activator.entityMode.NEAREST": "范围内最近实体", + "modularrouters.itemText.activator.entityMode.RANDOM": "范围内随机实体", + "modularrouters.itemText.activator.entityMode.ROUND_ROBIN": "轮询范围内实体", + "modularrouters.itemText.augments": "§e拓展:", + "modularrouters.itemText.augments.pickupDelay": "%d刻(%f秒)", + "modularrouters.itemText.augments.stackInfo": "%d物品/路由器刻", + "modularrouters.itemText.camouflage.held": "伪装成:", + "modularrouters.itemText.distributor.strategy.FURTHEST_FIRST": "最远优先", + "modularrouters.itemText.distributor.strategy.NEAREST_FIRST": "最近优先", + "modularrouters.itemText.distributor.strategy.RANDOM": "随机", + "modularrouters.itemText.distributor.strategy.ROUND_ROBIN": "轮询", + "modularrouters.itemText.extruder2.template": "§e模板方块:", + "modularrouters.itemText.extruder.mode.ALWAYS": "§e延长:§b红石信号大于0时", + "modularrouters.itemText.extruder.mode.HIGH": "§e延长:§b红石信号等于15时", + "modularrouters.itemText.extruder.mode.LOW": "§e延长:§b红石信号等于0时", + "modularrouters.itemText.extruder.mode.NEVER": "§e延长:§b从不", + "modularrouters.itemText.extruder.mode.PULSE": "§e延长:§b从不", + "modularrouters.itemText.fluid.direction": "§e流体传输方向:§b%s", + "modularrouters.itemText.fluid.direction.IN": "传输至路由器", + "modularrouters.itemText.fluid.direction.OUT": "从路由器中传出", + "modularrouters.itemText.fluid.maxTransfer": "§e流体传输速率:§b最多%dmB/操作", + "modularrouters.itemText.misc.blacklist": "§e黑名单", + "modularrouters.itemText.misc.breakerPick": "§e镐:", + "modularrouters.itemText.misc.bulkItemFilter.count": "• 过滤器中有%d个物品", + "modularrouters.itemText.misc.configureHint": "§7§o▶ 按§e§o[%s]§7§o或§e§o[鼠标中键]§7§o进行配置", + "modularrouters.itemText.misc.ecoMode": "§2低耗模式", + "modularrouters.itemText.misc.energyUsage" : "§e能耗:§b%dFE/操作", + "modularrouters.itemText.misc.energyWarning" : "§6至少有一个已安装的模块需要FE来运行。${br}路由器需要更多FE!", + "modularrouters.itemText.misc.energyWarning.noBuffer" : "§6至少有一个已安装的模块需要FE来运行。${br}增加一个或更多能量升级!", + "modularrouters.itemText.misc.flags": "§e筛选类型", + "modularrouters.itemText.misc.flingerDetails": "§e投掷速度:§b%f§f | §e俯仰角:§b%f§f | §e偏转角:§b%f", + "modularrouters.itemText.misc.holdKey": "§7§o▶ 按§3§o[%s]§7§o查看更多信息", + "modularrouters.itemText.misc.holdShiftKey": "§7§o▶ 按§3§o[Shift]§7§o进行设置,§3§o[%s]§7§o查看更多信息", + "modularrouters.itemText.misc.IGNORE_DAMAGE": "耐久度", + "modularrouters.itemText.misc.IGNORE_NBT": "NBT", + "modularrouters.itemText.misc.IGNORE_TAGS": "标签", + "modularrouters.itemText.misc.itemList" : "§e物品列表", + "modularrouters.itemText.misc.matchAll": "所有", + "modularrouters.itemText.misc.matchAny": "任何", + "modularrouters.itemText.misc.match": "§e匹配", + "modularrouters.itemText.misc.modFilter.count": "• 过滤器中有%d个模组", + "modularrouters.itemText.misc.moduleCount": "模块:%d", + "modularrouters.itemText.misc.noItems": "空", + "modularrouters.itemText.misc.operation": "操作", + "modularrouters.itemText.misc.rangeInfo": "§e范围:%s%d §7[无升级%d,满升级%d]", + "modularrouters.itemText.misc.redstoneLevel": "§e信号等级:§b%d(%s)", + "modularrouters.itemText.misc.regexFilter.count": "• 过滤器中有%d个正则表达式", + "modularrouters.itemText.misc.routerConfigured": "此路由器已配置", + "modularrouters.itemText.misc.strongSignal.false": "弱充能", + "modularrouters.itemText.misc.strongSignal.true": "强充能", + "modularrouters.itemText.misc.TERMINATE": "终止", + "modularrouters.itemText.misc.upgradeCount": "▶ %d x %s", + "modularrouters.itemText.misc.upgrades" : "升级:", + "modularrouters.itemText.misc.whitelist": "§e白名单", + "modularrouters.itemText.security.count": "%d/%d其他玩家:", + "modularrouters.itemText.security.owner": "§e所有者:§b%s", + "modularrouters.itemText.sync.tuning": "§e调整值:§b%d", + "modularrouters.itemText.targetingHintMulti": "• 潜行右击容器以设置目标,${br}• 潜行右击已经被选择的容器以清除目标", + "modularrouters.itemText.targetingHint": "• 潜行右击容器以设置目标,${br}• 潜行右击其他非容器方块以清除目标", + "modularrouters.itemText.usage.item.activator_module": "模拟右击方块或实体以使用路由器缓存区中的物品。${br}表现得就像一个假玩家一样。", + "modularrouters.itemText.usage.item.blast_upgrade": "让路由器抵御来自爆炸或者boss级生物的破坏。", + "modularrouters.itemText.usage.item.breaker_module": "在模块配置的方向上破坏与路由器相邻的方块,将其作为物品放入路由器的缓存区。", + "modularrouters.itemText.usage.item.bulk_item_filter": "大容量,高性能的过滤器,用于大量物品。可以像任何物品一样录入到路由器过滤器中。${br}• 潜行+右击任何容器:将内容合并到过滤器。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.camouflage_upgrade": "使路由器看起来像另一个方块。${br}• 潜行+右击方块以便将其外观复制到升级。", + "modularrouters.itemText.usage.item.creative_module": "凭空创造物品并将其放入路由器的缓存区。", + "modularrouters.itemText.usage.item.detector_module": "如果路由器缓存区中的物品与模块的过滤器中配置的物品一致,则在模块配置的方向上从路由器发出红石信号。", + "modularrouters.itemText.usage.item.distributor_module": "将路由器缓存区中的物品分配给多个容器,可选择列表轮询、随机、最近或最远的传输模式。", + "modularrouters.itemText.usage.item.dropper_module": "在模块配置的方向上,将路由器缓存区中物品投掷到主世界。", + "modularrouters.itemText.usage.item.energy_distributor_module": "将路由器能量缓存区或物品缓存区的任何储能物品中的FE无线分配给周围的储能方块", + "modularrouters.itemText.usage.item.energy_output_module": "输出路由器能量缓存区或物品缓存区的任何储能物品中的FE", + "modularrouters.itemText.usage.item.energy_upgrade": "增加路由器的能量缓存区容量%dFE,增加传输速率%dFE/路由器刻", + "modularrouters.itemText.usage.item.energyUpgradeRouter": "• 该路由器的能量容量:%dFE${br}• 该路由器的传输速率:%dFE/路由器刻", + "modularrouters.itemText.usage.item.extruder_module_1": "根据红石信号控制,在模块设定的方向上放置或收回一条直线的方块。${br}默认为信号开放置,信号关收回;添加红石拓展到模块可以进行自定义设置。", + "modularrouters.itemText.usage.item.extruder_module_2": "与挤出模块1型类似,但是会按照内部的模板栏设定的方块来放置模板方块而不是放置路由器缓存区中的真实方块。", + "modularrouters.itemText.usage.item.fast_pickup_augment": "允许真空模块无视一般情况下捡起掉落物的延迟时间。", + "modularrouters.itemText.usage.item.filter_round_robin_augment": "不会执行默认的任何/全部匹配。路由器会根据过滤器在每个执行刻匹配单个物品。所有被选中的物品会进行递增轮询。${br}这对处理一系列含有特殊顺序的物品很有用。", + "modularrouters.itemText.usage.item.flinger_module": "从路由器的缓存区中将物品长距离投掷到世界。 可以在模块的GUI中调整投掷的速度与距离,仰角与偏角。", + "modularrouters.itemText.usage.item.fluid_module_2": "从任意周围方块中提取流体或向其中输入流体。${br}• 路由器的缓存区中必须装有流体容器。${br}• 可将流体输出至储罐或世界中或从中提取流体。", + "modularrouters.itemText.usage.item.fluid_module": "从正对路由器朝向的相邻方块中提取流体或向其中输入流体。${br}• 路由器的缓存区中必须装有流体容器。${br}• 可将流体输出至储罐或世界中或从中提取流体。", + "modularrouters.itemText.usage.item.fluid_upgrade": "增加路由器(在每个方向)上传输的流体量,以%dmB/刻为单位。", + "modularrouters.itemText.usage.item.fluidUpgradeRouter": "• 此路由器的传输速率:%dmB/刻", + "modularrouters.itemText.usage.item.inspection_filter": "通过检查物品的各种属性过滤物品。可以像任何物品一样录入到路由器过滤器中。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.mimic_augment": "使挤出模块2型产生的虚拟方块同时模拟原方块的亮度、红石充能、硬度和爆炸抗性。", + "modularrouters.itemText.usage.item.mod_filter": "按照一个物品来自的模组ID过滤物品,可以像任何物品一样录入到路由器过滤器中。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.muffler_upgrade": "抑制来自路由器/模块的声音和粒子效果:${br}• 1个升级会抑制声音效果${br}• 2个或更多个会抑制更多粒子效果${br}• 3个或更多个则会抑制路由器的运行动画。", + "modularrouters.itemText.usage.item.pickup_delay_augment": "每个拓展会增加10刻捡起掉落物品的延迟时间。", + "modularrouters.itemText.usage.item.placer_module": "如果可能,将路由器缓存区中的方块或物品放置到模块配置的方向。", + "modularrouters.itemText.usage.item.player_module": "在玩家的个人存储列表和路由器的缓存区之间远程传输物品。", + "modularrouters.itemText.usage.item.puller_module_1": "从模块已配置方向的相邻容器中将物品提取到路由器的缓存区中。", + "modularrouters.itemText.usage.item.puller_module_2": "从附近的任何容器中将物品提取到路由器缓存区中。", + "modularrouters.itemText.usage.item.pushing_augment": "增加挤出1型/2型伸出时推动实体的力量。可堆叠。", + "modularrouters.itemText.usage.item.range_down_augment": "每个拓展会将模块的作用范围减少1格。", + "modularrouters.itemText.usage.item.range_up_augment": "每个拓展会将模块的作用范围增加1格(直到达到模块提示信息中描述的最大值)", + "modularrouters.itemText.usage.item.redstone_augment": "允许模块指定自身的红石特性,这会无视路由器的红石特性。", + "modularrouters.itemText.usage.item.regex_filter": "通过将其显示名称与一个或多个正则表达式匹配来过滤物品。可以像任何物品一样录入到路由器过滤器中。${br}• 右击:查看/配置。", + "modularrouters.itemText.usage.item.regulator_augment": "允许预先设置在容器中保留多少物品。", + "modularrouters.itemText.usage.item.security_upgrade": "保护路由器;只有列出的玩家可以访问路由器。${br}• 右击玩家以记录到模块${br}• 潜行+右击玩家以删除他们的配置", + "modularrouters.itemText.usage.item.sender_module_1": "将路由器缓存区中的物品直接沿X/Y/Z轴发送到选定的容器里。${br}不能有方块阻隔;不透明的方块将阻止发送。", + "modularrouters.itemText.usage.item.sender_module_2": "将路由器缓存区中的物品发送到临近的容器里。${br}传输可以穿透方块。", + "modularrouters.itemText.usage.item.sender_module_3": "将路由器缓存区中的物品发送到任何维度的任何容器内。", + "modularrouters.itemText.usage.item.speed_upgrade": "提高路由器工作间隔的速度。${br}• 路由器每隔%.02f秒(%d刻)工作一次${br}• 升级最多可以放置:%d个", + "modularrouters.itemText.usage.item.stack_augment": "允许模块在每游戏刻中处理多个物品。${br}这会无视路由器中的堆叠升级。", + "modularrouters.itemText.usage.item.stack_upgrade": "增加路由器每游戏刻处理的物品数${br}• 每游戏刻可以处理的物品数目:%d个${br}• 升级最多可以放置:%d个", + "modularrouters.itemText.usage.item.sync_upgrade": "同步激活路由器${br}• 右击:打开调整GUI${br}• 潜行+右击:调整为随机值。${br}• 所有具有相同调整值的同步升级(和相同数量的速度升级)的路由器将以相同的频率运行。", + "modularrouters.itemText.usage.item.vacuum_module": "将世界中掉落的物品吸收到路由器的缓存区中。仅在配置的方向上收集掉落物,如果方向为无,则收集任何方向。", + "modularrouters.itemText.usage.item.void_module": "§c*** 警告 ***${br}永久销毁缓存区中的物品!", + "modularrouters.itemText.usage.item.xp_vacuum_augment": "允许真空模块收集经验球而不是物品。${br}经验球可以被转化为各种物品或流体。可用的选项受其他mod和经验流体影响,${br}但是原版的附魔之瓶总是可用的。如果要将经验转化为流体,${br}那么你必须在路由器的缓存区中放置一个可以以mB为单位储存流体的物品,${br}或者在路由器旁边放置一个流体容器(并在模块GUI中打开输出模式)。", + "modularrouters.jei.recipe.module_reset.description": "将模块完全重置到刚制作出来的状态。警告:所有数据,包括过滤器设置和附魔都会丢失,但是安装的拓展会返还", + "modularrouters.jei.recipe.module_reset": "重置模块", + "modularrouters.patchouli.book.landing": "这本手册是$(#228)模块化路由器/$的完整参考指南。", + "modularrouters.patchouli.book.name": "模块化路由器手册" +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/book.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/book.json new file mode 100644 index 000000000000..b11b5e08443b --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/book.json @@ -0,0 +1,12 @@ +{ + "name": "modularrouters.patchouli.book.name", + "landing_text": "modularrouters.patchouli.book.landing", + "creative_tab": "modularrouters", + "version": 1, + "model": "modularrouters:manual", + "book_texture": "patchouli:textures/gui/book_blue.png", + "macros": { + "$(modr)": "$(#228)Modular Routers$()", + "$(ttcolor)": "$(#880)" + } +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/augments.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/augments.json new file mode 100644 index 000000000000..11a88e9ae6b2 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/augments.json @@ -0,0 +1,6 @@ +{ + "name": "Augments", + "description": "Module Augments can be installed in Modules to enhance or extend their functionality", + "icon": "modularrouters:xp_vacuum_augment", + "sortnum": 4 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/filters.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/filters.json new file mode 100644 index 000000000000..db1fb9e437c1 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/filters.json @@ -0,0 +1,6 @@ +{ + "name": "Smart Filters", + "description": "Smart Filters are a group of filter items, which can be placed in any module's filter slots instead of a normal item, and provide more sophisticated item matching features.", + "icon": "modularrouters:bulk_item_filter", + "sortnum": 5 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/intro.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/intro.json new file mode 100644 index 000000000000..6c85fddbd6a0 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/intro.json @@ -0,0 +1,6 @@ +{ + "name": "Introduction", + "description": "Welcome to $(modr) !", + "icon": "minecraft:knowledge_book", + "sortnum": 0 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/modules.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/modules.json new file mode 100644 index 000000000000..ffb790558ecc --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/modules.json @@ -0,0 +1,6 @@ +{ + "name": "Modules", + "description": "Modules are placed into an Modular Router and define the router's functionality.", + "icon": "modularrouters:sender_module_1", + "sortnum": 2 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/router.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/router.json new file mode 100644 index 000000000000..3daaa6459a6f --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/router.json @@ -0,0 +1,6 @@ +{ + "name": "Modular Router", + "description": "The Modular Router is the only block in the $(modr) mod.", + "icon": "modularrouters:item_router", + "sortnum": 1 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/upgrades.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/upgrades.json new file mode 100644 index 000000000000..d213a68dac18 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/categories/upgrades.json @@ -0,0 +1,6 @@ +{ + "name": "Upgrades", + "description": "Upgrades can be installed in an Modular Router to enhance or modify its functionality.", + "icon": "modularrouters:speed_upgrade", + "sortnum": 3 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/fast_pickup.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/fast_pickup.json new file mode 100644 index 000000000000..7daa711e1e34 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/fast_pickup.json @@ -0,0 +1,15 @@ +{ + "name": "Fast Pickup Augment", + "category": "augments", + "icon": "modularrouters:fast_pickup_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/vacuum)Vacuum Module/$. It allows the Vacuum Module to ignore the normal pickup delay on dropped items - 40 ticks for items dropped by players, and 10 ticks for items dropped by other means (e.g. sheep shearing) - and pick up items as soon as it sees them.$(p)A max of one Fast Pickup Augment can be added." + }, + { + "type": "crafting", + "recipe": "modularrouters:fast_pickup_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/mimic.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/mimic.json new file mode 100644 index 000000000000..9a2aec4a8b8b --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/mimic.json @@ -0,0 +1,15 @@ +{ + "name": "Mimic Augment", + "category": "augments", + "icon": "modularrouters:mimic_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/extruder_2)Extruder Module Mk2/$.$(p)When present, any fake blocks extruded by the module take on the properties of the faked block, e.g. $(item)Obsidian/$ is hard to break, $(item)Glowstone/$ emits light, and $(item)Redstone Blocks/$ emit a redstone signal." + }, + { + "type": "crafting", + "recipe": "modularrouters:mimic_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pickup_delay.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pickup_delay.json new file mode 100644 index 000000000000..89d9fcfb572e --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pickup_delay.json @@ -0,0 +1,15 @@ +{ + "name": "Pickup Delay Augment", + "category": "augments", + "icon": "modularrouters:pickup_delay_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/dropper)Dropper/$ and $(l:modules/flinger)Flinger/$ modules.$(p)It can be stacked; each augment added will increase the pickup delay on dropped/flung items by 10 ticks (0.5 sec). This can be useful if you don't want players accidentally picking up nearby dropped items, for example." + }, + { + "type": "crafting", + "recipe": "modularrouters:pickup_delay_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pushing.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pushing.json new file mode 100644 index 000000000000..191fdf7d3e2a --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/pushing.json @@ -0,0 +1,15 @@ +{ + "name": "Pushing Augment", + "category": "augments", + "icon": "modularrouters:pushing_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to the $(l:modules/extruder_1)Extruder Mk1/$ and $(l:modules/extruder_2)Extruder Mk2/$ modules.$(p)It can be stacked; each augment increases the force that entities are shoved when the module extrudes a block." + }, + { + "type": "crafting", + "recipe": "modularrouters:pushing_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_down.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_down.json new file mode 100644 index 000000000000..9b08f2724f1f --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_down.json @@ -0,0 +1,16 @@ +{ + "name": "Range Down Augment", + "category": "augments", + "icon": "modularrouters:range_down_augment", + "pages": [ + { + "type": "text", + "text": "This augment can be added to any module which has a range (Sender $(l:modules/sender_1)Mk1/$ / $(l:modules/sender_2)Mk2/$, Puller $(l:modules/puller_1)Mk1/$ / $(l:modules/puller_2)Mk2/$, Extruder $(l:modules/extruder_1)Mk1/$ / $(l:modules/extruder_2)Mk2/$, $(l:modules/fluid_2)Fluid Mk2/$, $(l:modules/vacuum)Vacuum/$).$(p)It can be stacked; each augment will reduce the range of the module by one block.$(p)This is probably only useful in conjunction with the $(l:modules/vacuum)Vacuum Module/$, to control the range it scans for items." + }, + { + "type": "crafting", + "recipe": "modularrouters:range_down_augment", + "recipe2": "modularrouters:range_down_from_up" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_up.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_up.json new file mode 100644 index 000000000000..6dad8eff4898 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/range_up.json @@ -0,0 +1,16 @@ +{ + "name": "Range Up Augment", + "category": "augments", + "icon": "modularrouters:range_up_augment", + "pages": [ + { + "type": "text", + "text": "This augment can be added to any module which has a range (Sender $(l:modules/sender_1)Mk1/$ / $(l:modules/sender_2)Mk2/$, Puller $(l:modules/puller_1)Mk1/$ / $(l:modules/puller_2)Mk2/$, Extruder $(l:modules/extruder_1)Mk1/$ / $(l:modules/extruder_2)Mk2/$, $(l:modules/fluid_2)Fluid Mk2/$, $(l:modules/vacuum)Vacuum/$).$(p)It can be stacked; each augment will increase the range of the module by one block." + }, + { + "type": "crafting", + "recipe": "modularrouters:range_up_augment", + "recipe2": "modularrouters:range_up_from_down" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/redstone.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/redstone.json new file mode 100644 index 000000000000..ac69f350ba2d --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/redstone.json @@ -0,0 +1,15 @@ +{ + "name": "Redstone Augment", + "category": "augments", + "icon": "modularrouters:redstone_augment", + "pages": [ + { + "type": "text", + "text": "This augment can be added to any module.$(p)Normally, modules are run when the router runs, no questions asked. However, if this augment is added to a module, that module can define its own redstone behaviour; an extra button is added to the module's GUI to control this." + }, + { + "type": "crafting", + "recipe": "modularrouters:redstone_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/regulator.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/regulator.json new file mode 100644 index 000000000000..7048e3a250a8 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/regulator.json @@ -0,0 +1,27 @@ +{ + "name": "Regulator Augment", + "category": "augments", + "icon": "modularrouters:regulator_augment", + "pages": [ + { + "type": "text", + "text": "This augment allows for precise control over how many items may be sent to or pulled from an inventory, or the router's buffer.$(p)When a module has a Regulator Augment, you will see an extra numeric textfield in its GUI where you can configure a limit. This limit is interpreted differently depending on the particular module:" + }, + { + "type": "text", + "text": "$(li)For the Sender $(l:modules/sender_1)Mk1/$ / $(l:modules/sender_2)Mk2/$ / $(l:modules/sender_3)Mk3/$ Modules and $(l:modules/player)Player Module/$ (in insert mode), the modules will only send an item to the inventory if there are fewer than the configured number of that item already in the inventory.$(li)For the Puller $(l:modules/puller_1)Mk1/$ / $(l:modules/puller_2)Mk2/$ and $(l:modules/player)Player Module/$ (in extract mode), the modules will only pull an item from the inventory if there are more than the configured number of that item in the inventory." + }, + { + "type": "text", + "text": "$(li)For the $(l:modules/dropper)Dropper/$, $(l:modules/flinger)Flinger/$, $(l:modules/placer)Placer/$ & $(l:modules/void)Void/$ Modules, the modules will only run if there are more than the configured number of that item in the router's buffer.$(li)For the $(l:modules/breaker)Breaker/$ & $(l:modules/vacuum)Vacuum/$ Modules, the modules will only run if there are fewer than the configured number of that item in the router's buffer." + }, + { + "type": "text", + "text": "$(li)For the Fluid $(l:modules/fluid)Mk1/$ / $(l:modules/fluid_2)Mk2/$ modules, the limit can be a percentage of the target tank's capacity or an absolute amount in mB (selectable in the GUI) rather than a number of items. When pulling fluid, the module will only run if there is $(italic)more/$ fluid in the target than the configured amount; when pushing fluid, it will only run if there is $(italic)less/$ fluid than the configured amount." + }, + { + "type": "crafting", + "recipe": "modularrouters:regulator_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/stack.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/stack.json new file mode 100644 index 000000000000..e9e41d1c4aa8 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/stack.json @@ -0,0 +1,19 @@ +{ + "name": "Stack Augment", + "category": "augments", + "icon": "modularrouters:stack_augment", + "pages": [ + { + "type": "text", + "text": "This module can be added to any module which handles $(italic)items/$ (as opposed to $(italic)blocks/$, $(italic)fluids/$ or $(italic)energy/$).$(p)Adding Stack Augments to a module increases the number of items it can process per tick; each Stack Augment doubles the number of items, up to a maximum of the item's natural stack size (64 for most items)." + }, + { + "type": "text", + "text": "If the $(l:router/item_router)router/$ also has $(l:upgrades/stack)Stack Upgrades/$ installed, the module's Stack Augments will override that; e.g. if a router has 6 Stack Upgrades, and a module has 2 Stack Augments, the module will process 4 items per tick, not 64." + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/xp_vacuum.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/xp_vacuum.json new file mode 100644 index 000000000000..bda342724f86 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/augments/xp_vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "XP Vacuum Augment", + "category": "augments", + "icon": "modularrouters:xp_vacuum_augment", + "pages": [ + { + "type": "text", + "text": "This augment can only be added to a $(l:modules/vacuum)Vacuum Module/$.$(p)When this augment is added, the Vacuum Module will absorb experience orbs instead of items. The orbs will be converted into $(item)Bottles o' Enchanting/$ at the rate of 7XP per bottle (which is the average amount of XP gained by breaking a Bottle o' Enchanting)." + }, + { + "type": "text", + "text": "Depending on what other mods are installed, it might also be possible to convert orbs into XP fluids. This requires that either a fluid-containing tank is in the router's buffer, or adjacent to the router. In the latter case, ensure that the $(bold)Eject/$ button is enabled in the Vacuum Module's GUI." + }, + { + "type": "crafting", + "recipe": "modularrouters:xp_vacuum_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/bulk_item.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/bulk_item.json new file mode 100644 index 000000000000..018d0b29fa71 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/bulk_item.json @@ -0,0 +1,27 @@ +{ + "name": "Bulk Item Filter", + "category": "filters", + "icon": "modularrouters:bulk_item_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for high-performance matching of up to 54 different items, including optional NBT matching. The Bulk Item Filter can be configured in a few different ways:$(p)$(li)$(thing)Sneak+Right-click/$ the filter against any inventory to merge a copy of that inventory's contents into the filter." + }, + { + "type": "text", + "text": "$(li)$(thing)Right-click/$ the filter to open a GUI showing the items currently in the filter. You can add (ghost copies of) items to the filter here, click items to remove them, or press the red $(bold)$(4)X/$ button to clear the filter completely." + }, + { + "type": "text", + "text": "$(li)When the filter is in a module that is in a router, you can open the filter's GUI by middle-clicking it, or pressing $(bold)$(4)[$(k:modularrouters.configure)]/$ over it.$(p)$(bold)If/$ the module has a valid inventory targeted, two extra buttons appear on the GUI: a green $(bold)$(2)+/$ button to $(italic)merge/$ the target inventory's items, and a blue $(bold)$(1)=/$ button to $(italic)load/$ the target inventory's items (overwriting the filter's current contents)." + }, + { + "type": "text", + "text": "This last configuration method is particularly useful combined with a $(l:modules/sender_2)Sender Module/$ to implement a sorting system, since the Bulk Item Filter will remember what should be in an inventory, even if the actual inventory later gets emptied." + }, + { + "type": "crafting", + "recipe": "modularrouters:bulk_item_filter" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/inspection.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/inspection.json new file mode 100644 index 000000000000..220c6b65184e --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/inspection.json @@ -0,0 +1,23 @@ +{ + "name": "Inspection Filter", + "category": "filters", + "icon": "modularrouters:inspection_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for matching of items by various miscellaneous integer properties of the item. The current inspections supported are:$(li)For fluid container items (buckets, tanks...), the fluid level as a percentage.$(li)For energy container items (batteries, powered tools...), the energy level as a percentage." + }, + { + "type": "text", + "text": "$(li)The highest enchantment level of enchantments on the item (can be used to filter out enchanted items, e.g. from a mob farm)$(li)The durability of items (tools, weapons) as a percentage of the max durability.$(li)For edible items, the food value as the number of half-shanks restored (e.g. steak has a value of 8)." + }, + { + "type": "text", + "text": "For items which don't have the inspected property at all, the returned value will always be -1, e.g. a piece of $(item)Cobblestone/$ has a durability value of -1. This is distinct from a 0 return, since a tool with <1% durability remaining would return a value of 0.$(p)This filter can be useful to automatically pull out damaged or discharged items for repair/recharging, etc." + }, + { + "type": "crafting", + "recipe": "modularrouters:inspection_filter" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/mod.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/mod.json new file mode 100644 index 000000000000..95a1171c60c8 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/mod.json @@ -0,0 +1,19 @@ +{ + "name": "Mod Filter", + "category": "filters", + "icon": "modularrouters:mod_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for matching of items by the mod they belong to. Up to 6 mods can be added per installed filter.$(li)$(thing)Right-click/$ the filter to open its GUI (or $(thing)middle-click/$ / press $(bold)$(4)[$(k:modularrouters.configure)]/$ on a filter which is installed in a module)." + }, + { + "type": "text", + "text": "$(li)Drop any item into the item slot in the top-left corner of the GUI. The item's mod name will be displayed to the right. Click the $(bold)$(2)+/$ button to add it to the mod list below.$(li)Click the red $(bold)$(4)X/$ button beside an entry to remove that mod from the list.$(p)Vanilla items can be added too, and their \"mod\" will be shown as $(italic)Minecraft/$." + }, + { + "type": "crafting", + "recipe": "modularrouters:mod_filter" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/regex.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/regex.json new file mode 100644 index 000000000000..0a936f1db112 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/filters/regex.json @@ -0,0 +1,34 @@ +{ + "name": "Regex Filter", + "category": "filters", + "icon": "modularrouters:regex_filter", + "pages": [ + { + "type": "text", + "text": "This filter allows for matching of blocks and items with a regular expression, against the item's $(strong)registry name/$. Regular expressions are very powerful, but take some learning to unlock their full potential. However, basic regex usage isn't too difficult. There are many websites with tutorial information on regular expressions, e.g. $(l:https://regexone.com/)RegexOne/$." + }, + { + "type": "text", + "title": "Registry Names", + "text": "Because item filtering is done purely on the server, it can't know for sure what an item's displayed text is. Therefore, all filtering matches are made against the item's internal $(thing)registry name/$. You can find this registry name by toggling on advanced tooltip display with $(thing)F3+H/$.$(p)Note that matching is done against only the part of the registry name $(italic)after/$ the colon." + }, + { + "type": "text", + "text": "$(thing)To open the module GUI, $(thing)right-click/$ the filter, or $(thing)middle-click/$ / press $(bold)$(4)[$(k:modularrouters.configure)]/$ on a filter which is installed in a module.$(li)Type your regex into the textfield at the top, and hit $(thing)Return/$ or click the green $(bold)$(2)+/$ button. Your regex will be added to the list, assuming its syntax is valid. You can have up to 6 entries in one filter.$(li)Click the red $(bold)$(4)X/$ next to any regex to remove it from the list.$(li)Matches are case-insensitive." + }, + { + "type": "text", + "title": "Example 1", + "text": "A regex of 'ore' will match any items with 'ore' in their registry name (\"iron_ore\", \"gold_ore\", \"redstone_ore\"). Unfortunately, it will also match \"drill_core\", but you can avoid this by using a regex of $(1)_ore/$. To be even more specific, you could use $(1)_ore$/$, which also ensures that the string \"_ore\" is at the end of the item's registry name." + }, + { + "type": "text", + "title": "Example 2", + "text": "Configure a $(l:modules/player)Player Module/$ to extract from the player's main inventory, and put a regex filter containing $(1)_ore/$ in the module. This can be used to extract any ores from your inventory, regardless of where you are, into your ore processing system; very handy if you're mining far from your base and you want ores that you've mined to be sent home immediately." + }, + { + "type": "crafting", + "recipe": "modularrouters:regex_filter" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/augments.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/augments.json new file mode 100644 index 000000000000..f8a809958aad --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/augments.json @@ -0,0 +1,19 @@ +{ + "name": "Augments", + "icon": "modularrouters:augment_core", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Augments/$ are like $(l:intro/upgrades)upgrades/$ but are inserted into a $(l:intro/modules)module/$ rather than a $(l:intro/item_router)Modular Router/$. Each module has slots for 4 augments (some augments can be stacked). Augments enhance or extend a module's functionality in various ways." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/augments.png" + ], + "text": "$(italic)A Vacuum Module with 6 Range Up augments and an XP Vacuum augment/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/filters.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/filters.json new file mode 100644 index 000000000000..c6eb2ef3e0a9 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/filters.json @@ -0,0 +1,19 @@ +{ + "name": "Smart Filters", + "icon": "modularrouters:bulk_item_filter", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Smart Filters/$ can be inserted into a $(l:intro/modules)module's/$ filter slots in place of regular items. Instead of just trying to match against the item directly, filters have special matching functionality.$(p)For example, the $(l:filters/bulk_item)Bulk Item Filter/$ can efficiently match against up to 54 different items, and its items can be configured from an existing inventory." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/bulk_filter.png" + ], + "text": "$(italic)Bulk Item Filter installed in a Puller Mk2 Module/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/item_router.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/item_router.json new file mode 100644 index 000000000000..1f137a33ff81 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/item_router.json @@ -0,0 +1,15 @@ +{ + "name": "Modular Router Overview", + "icon": "modularrouters:item_router", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "The $(item)Modular Router/$ is the central block of the routing system. By itself, it does nothing other than serve as a one-slot inventory (which can be piped into and out of by hoppers and other mod piping systems).$(p)To do anything useful with a router, however, you need to install one or more (up to nine) $(l:intro/modules)Modules/$." + }, + { + "type": "text", + "text": "Every time a router ticks - once per second by default - it will execute every installed module, in order. Each of these modules will operate on the item(s) in the buffer or on the world around the router in a specific way - see the $(bold)Modules/$ section for info on each individual module type.$(p)The router's operation can also be modified with $(bold)Upgrades/$ - speed it up, let it handle more items per tick, increase the range of certain modules..." + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/misc.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/misc.json new file mode 100644 index 000000000000..baca9369764f --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/misc.json @@ -0,0 +1,26 @@ +{ + "name": "Miscellaneous Stuff", + "icon": "minecraft:book", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "This chapter covers some miscellaneous items and crafting components." + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "See $(l:upgrades/security#override)Security Upgrade/$." + }, + { + "type": "crafting", + "recipe": "modularrouters:blank_module", + "recipe2": "modularrouters:blank_upgrade" + }, + { + "type": "crafting", + "recipe": "modularrouters:augment_core" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/modules.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/modules.json new file mode 100644 index 000000000000..2ae4d2cc38ad --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/modules.json @@ -0,0 +1,50 @@ +{ + "name": "Modules", + "icon": "modularrouters:breaker_module", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Modules/$ are inserted into an $(l:intro/item_router)Modular Router/$ and tell the router what to do. There are 20 different module types, each of which has a specific function. All modules have some characteristics in common, however:$(li)All modules have 9 $(thing)filter slots/$ to control which item(s) a module will process.$(li)Many modules have a defined $(thing)direction/$, relative to the router's facing." + }, + { + "type": "text", + "text": "$(li)Some modules have extra settings for configuring module-specific functionality.$(p)All this can be configured in the module's GUI, which you can access by $(thing)Right-Clicking/$ the module in hand.$(p)You can also configure an installed module in a router GUI by pressing $(4)$(bold)[$(k:modularrouters.configure)]/$ while hovering over it, or $(thing)Middle-Clicking/$ the module in the GUI, without needing to remove it from the router." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/module_gui.png" + ], + "text": "$(italic)Module GUI: see following pages for a description of each part of the GUI/$", + "border": true + }, + { + "type": "text", + "title": "1. Filter Slots", + "anchor": "filter", + "text": "There are nine filter slots, where you can insert ghost copies of any item or block. The module will only operate if the item in the router's $(thing)buffer/$ matches an item in the module's filter (if whitelisting; the opposite if blacklisting)." + }, + { + "type": "text", + "anchor": "direction", + "title": "2. Direction Selector", + "text": "Most modules operate in a defined direction, relative to the router's facing. Here you can define the direction.$(p)Some modules (e.g. the $(l:modules/sender2)Sender Mk2/$) target a distant block directly, so do not have a definable direction. In this case, the direction selector will be blank." + }, + { + "type": "text", + "title": "3. Filter Control", + "text": "Here there are several buttons which control:$(li)Whitelisting vs. blacklisting$(li)Whether to match item damage (for items with durability)$(li)Whether to match item NBT, e.g. enchantments$(li)Whether to match by $(l:https://minecraft.gamepedia.com/Tag)item tags/$$(p)There is also a button here to control $(l:router/termination)Termination Behaviour/$, which is explained in a separate page." + }, + { + "type": "text", + "title": "4. Augments", + "text": "Every module has four $(thing)Augment/$ slots where augments (module-specific upgrades) can be inserted.$(p)The Augments which may be inserted here depend on the module type; not every module type accepts every augment type." + }, + { + "type": "text", + "title": "5. Extra Settings", + "text": "Some modules have some extra configuration options. For example, the $(l:modules/detector)Detector Module/$ shown earlier has options to set the redstone output level, and whether the output signal should be a weak or strong redstone signal.$(p)Where modules have such options, they're shown on the right-hand side of the GUI." + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/overview.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/overview.json new file mode 100644 index 000000000000..1771dad4891b --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/overview.json @@ -0,0 +1,20 @@ +{ + "name": "Overview", + "icon": "minecraft:cake", + "category": "intro", + "priority": "true", + "pages": [ + { + "type": "text", + "text": "Welcome to Modular Routers!$(p)This is a highly flexible mod for moving items around the world in various ways. With a single block - the $(thing)Modular Router/$ - and one or more plug-in $(thing)modules/$, you can pull items from any inventory, send them to other inventories near & far, place items as blocks, break blocks, drop items into the world, sort items, and much more." + }, + { + "type": "image", + "text": "$(italic)Think of it like a super-configurable Hopper on steroids.../$", + "images": [ + "modularrouters:textures/patchouli/item_router.png" + ], + "border": "true" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/upgrades.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/upgrades.json new file mode 100644 index 000000000000..3e1e606dd081 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/intro/upgrades.json @@ -0,0 +1,11 @@ +{ + "name": "Upgrades", + "icon": "modularrouters:speed_upgrade", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)Upgrades/$ improve a $(l:intro/item_router)Modular Router's/$ functionality in various ways. There are 8 different upgrade types, and 5 upgrade slots in an Modular Router.$(p)You can put multiple upgrades in an upgrade slot, although there is a limit on how many upgrades of a particular type can be inserted; see the individual upgrade pages or upgrade item tooltips for more information on this." + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/activator.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/activator.json new file mode 100644 index 000000000000..deacd2949e80 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/activator.json @@ -0,0 +1,34 @@ +{ + "name": "Activator Module", + "category": "modules", + "icon": "modularrouters:activator_module", + "pages": [ + { + "type": "text", + "text": "This powerful module acts like a $(italic)fake player/$ which can use an item in the router's buffer, against nearby blocks or entities. There are three modes, which can be selected via the controls on the right of the GUI. Each mode is detailed in the following pages." + }, + { + "type": "text", + "title": "Right-click", + "text": "This mode performs a right-click with the item in the router's buffer, just as if a player had done so. The logic used is the same as for player clicks, e.g. right-clicking a $(item)Flint and Steel/$ on a door will open the door, not start a fire.$(p)The targeted block (if any) depends on the router's facing, module direction, and also the Look Above/Below/Level module setting." + }, + { + "type": "text", + "title": "Right-click Entity", + "text": "This mode performs a right-click with the item in the router's buffer on a nearby $(thing)entity/$. You could use this to milk a cow for example, or shear a sheep.$(p)This can result in items being dropped on the ground, e.g. if a cow is clicked with a stack of more than one bucket in the router's buffer." + }, + { + "type": "text", + "title": "Attack Entity", + "text": "This mode performs a left-click with the item in the router's buffer on a nearby $(thing)entity/$, attacking it. This mode costs $(l:upgrades/energy)Forge Energy/$ by default, unlike other modules.$(p)Note: while $(l:upgrades/speed)Speed Upgrades/$ can be useful here, weapon cooldowns do apply, so excessive Speed Upgrades will just end up wasting energy and weapon durability." + }, + { + "type": "text", + "text": "The Activator has a range of about 4 blocks, similar to what an actual player has. The module can also be configured to look $(thing)Above/$ or $(thing)Below/$ (default is $(thing)Level/$).$(p)$(thing)Above/$ is particularly handy for planting things on top of a solid block beside or above the router, while $(thing)Below/$ is useful when you want to target the ground directly adjacent to the router, rather than a more distant block." + }, + { + "type": "crafting", + "recipe": "modularrouters:activator_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/breaker.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/breaker.json new file mode 100644 index 000000000000..226434ce6828 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/breaker.json @@ -0,0 +1,23 @@ +{ + "name": "Breaker Module", + "category": "modules", + "icon": "modularrouters:breaker_module", + "pages": [ + { + "type": "text", + "text": "This module tries to break a block, adjacent to the $(l:router/item_router)Router/$ in the module's $(l:intro/modules#direction)configured direction/$.$(p)Most blocks are breakable, although anything with an unbreakable hardness (e.g. vanilla $(item)Bedrock/$ or $(item)End Portal/$) can not be broken, nor can any fluid blocks. If the block is broken, its primary drop(s) will be automatically inserted into the item router's buffer, if possible." + }, + { + "type": "text", + "text": "The Breaker Module can be crafted with any type of pickaxe (including modded pickaxes), but the pickaxe used to craft the module determines its harvest level. E.g. if you create a Breaker Module with an $(item)Iron Pickaxe/$, it will not be able to break $(item)Obsidian/$.$(p)Additionally, any $(thing)enchantments/$ on the pickaxe used will be noted in the module ($(thing)Silk Touch/$ and $(thing)Fortune/$ are of particular use)." + }, + { + "type": "text", + "text": "By default the Breaker Module filter works on $(thing)items that would be dropped/$, rather than on the block itself. E.g. filtering on $(item)Stone/$ would not work to break Stone, unless the module has $(thing)Silk Touch/$ enabled. In this case, you should filter on $(item)Cobblestone/$.$(p)You can set the module to match by the $(thing)block/$ via the module GUI; this can be useful to distinguish between blocks that both drop nothing, e.g. $(item)Ice/$ and $(item)Packed Ice/$." + }, + { + "type": "crafting", + "recipe": "modularrouters:breaker_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/creative.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/creative.json new file mode 100644 index 000000000000..14989294e8b4 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/creative.json @@ -0,0 +1,11 @@ +{ + "name": "Creative Module", + "category": "modules", + "icon": "modularrouters:creative_module", + "pages": [ + { + "type": "text", + "text": "The Creative Module is a special uncraftable module which simply inserts items, from out of nowhere, into the router's buffer.$(p)It uses the module's filter as an item list, and on each tick moves to the next item in the filter in round-robin fashion. It doesn't care about any other filter settings (whitelist/blacklist, match NBT...)." + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/detector.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/detector.json new file mode 100644 index 000000000000..e1f6150ddb41 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/detector.json @@ -0,0 +1,15 @@ +{ + "name": "Detector Module", + "category": "modules", + "icon": "modularrouters:detector_module", + "pages": [ + { + "type": "text", + "text": "This module doesn't actually manipulate items, but instead detects specific items in the router's buffer. If the buffer contents are matched by the module's filter, it will make the router emit a redstone signal in the $(l:intro/modules#direction)configured direction/$.$(p)The signal level (default: 15) and signal type (default: weak) can be adjusted via the module GUI." + }, + { + "type": "crafting", + "recipe": "modularrouters:detector_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/distributor.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/distributor.json new file mode 100644 index 000000000000..945bd701d977 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/distributor.json @@ -0,0 +1,19 @@ +{ + "name": "Distributor Module", + "category": "modules", + "icon": "modularrouters:distributor_module", + "pages": [ + { + "type": "text", + "text": "This is an extended version of the $(l:modules/sender_2)Sender Module Mk2/$, which can send items to multiple targets. $(thing)Sneak-right-click/$ an inventory to add it to the Distributor Module, and $(thing)Sneak-right-click/$ the inventory again to remove it.$(p)The Distributor Module can distribute to up to 8 targets." + }, + { + "type": "text", + "text": "A little extra control over distribution strategy is available via the GUI control on the right:$(li)$(bold)Round Robin/$ - distribute to each inventory in turn, as evenly as possible$(li)$(bold)Random/$ - pick one of the targets at random$(li)$(bold)Nearest/$ - always fill the closest target with space for the item$(li)$(bold)Furthest/$ - always fill the furthest target with space for the item" + }, + { + "type": "crafting", + "recipe": "modularrouters:distributor_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/dropper.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/dropper.json new file mode 100644 index 000000000000..346780735ec7 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/dropper.json @@ -0,0 +1,15 @@ +{ + "name": "Dropper Module", + "category": "modules", + "icon": "modularrouters:dropper_module", + "pages": [ + { + "type": "text", + "text": "This module tries to drop an item from the router's buffer as an item entity in the world. The drop will be adjacent to the router in the module's $(l:intro/modules#direction)configured direction/$. The item entity will be placed with a zero velocity, unlike the vanilla $(item)Dropper/$ which adds an irritating random velocity to the item." + }, + { + "type": "crafting", + "recipe": "modularrouters:dropper_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_distributor.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_distributor.json new file mode 100644 index 000000000000..77ab73442ac0 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_distributor.json @@ -0,0 +1,19 @@ +{ + "name": "Energy Distributor Module", + "category": "modules", + "icon": "modularrouters:energy_distributor_module", + "pages": [ + { + "type": "text", + "text": "This module is like a combination of an $(l:modules/energy_output)Energy Output/$ and a $(l:modules/distributor)Distributor/$ Module, in that it can wirelessly distribute FE (Forge Energy) to up to 8 nearby energy-accepting blocks.$(p)$(thing)Sneak-right-click/$ a block to add it to the Energy Distributor Module, and $(thing)Sneak-right-click/$ the block again to remove it." + }, + { + "type": "text", + "text": "Like the $(l:modules/energy_output)Energy Output Module/$, this module can extract energy from either the router's internal energy buffer (if any $(l:upgrades/energy)Energy Upgrades/$ are installed) or from an energy-containing item in the router's item buffer. The internal energy buffer is used by preference." + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_distributor_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_output.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_output.json new file mode 100644 index 000000000000..b3cc3f588c5e --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/energy_output.json @@ -0,0 +1,15 @@ +{ + "name": "Energy Output Module", + "category": "modules", + "icon": "modularrouters:energy_output_module", + "pages": [ + { + "type": "text", + "text": "This module attempts to output FE (Forge Energy) from the Router to an adjacent energy-receiving block, in its configured direction. The module can extract energy from either the router's internal energy buffer (if any $(l:upgrades/energy)Energy Upgrades/$ are installed) or from an energy-containing item in the router's item buffer. The internal energy buffer is used by preference." + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_output_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_1.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_1.json new file mode 100644 index 000000000000..51dcff14d7b7 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_1.json @@ -0,0 +1,31 @@ +{ + "name": "Extruder Module Mk1", + "category": "modules", + "icon": "modularrouters:extruder_module_1", + "pages": [ + { + "type": "text", + "text": "This module extends and withdraws a row of blocks (from the router's buffer) in the module's configured direction.$(p)By default, the module extends blocks when the router has a redstone signal, and withdraws them when the router has no signal, but a Redstone Enhancement can be added to the module to customise this behaviour." + }, + { + "type": "text", + "text": "Using this module, it's possible to build large extending bridges and doorways. (If you ever used the Tinker's Drawbridge from the Tinker's Mechworks mod in 1.7.10, the functionality will be familiar).$(li)See also the $(l:upgrades/camouflage)Camouflage Upgrade/$, which may be useful to hide the router.$(li)The default range (i.e. number of blocks which can be placed) is 12, but this can be increased up to 24 with $(l:augments/range_up)Range Up Augments/$." + }, + { + "type": "text", + "text": "$(li)If you change the module's direction while it has blocks extended, you may get the router a little confused. In this case, breaking and replacing the router will help.$(li)If you break the router while blocks are extended, it won't remember that, and you'll need to manually remove those blocks." + }, + { + "type": "text", + "text": "$(li)If you have multiple routers together with Extruder Modules installed (e.g. for a wide door or bridge), you may find the $(l:upgrades/sync)Sync Upgrade/$ useful to ensure they all run on the same tick.$(li)The Extruder (like the $(l:modules/placer)Placer/$) can also plant crop seeds on farmland, and cocoa beans on an adjacent jungle log." + }, + { + "type": "text", + "text": "It is important to note that the $(l:modules/breaker)Breaker Module/$ used to craft this module will transfer its harvest level (and enchantments) to this module. So if you want your Extruder Module to be able to break $(item)Obsidian/$, for example, make sure you use a Breaker Module crafted with a $(item)Diamond Pickaxe/$!" + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_1" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_2.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_2.json new file mode 100644 index 000000000000..887feafe7b73 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/extruder_2.json @@ -0,0 +1,19 @@ +{ + "name": "Extruder Module Mk2", + "category": "modules", + "icon": "modularrouters:extruder_module_2", + "pages": [ + { + "type": "text", + "text": "This module behaves somewhat like the $(l:modules/extruder_1)Extruder Module Mk1/$, but with a few important differences:$(li)The Mk2 module doesn't place items from the router's buffer, but rather from a template defined within the module itself.$(li)This template appears on the right-hand side of the module's GUI, has 9 slots, and can have multiple items per slot. Items placed in the template are \"ghost\" items." + }, + { + "type": "text", + "text": "$(li)Blocks extruded are \"virtual\" - effectively created out of nowhere, but drop nothing when broken and can't be crafted normally.$(li)Therefore, this module isn't suitable for farming like the Extruder Mk1, but can be used to place doors/bridges etc. with more complex patterns than the Mk1 could.$(li)The default range for the Extruder Mk2 is 24 blocks, which can be increased to 48 with Range Upgrades." + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_2" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/flinger.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/flinger.json new file mode 100644 index 000000000000..52addcd0dd6c --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/flinger.json @@ -0,0 +1,19 @@ +{ + "name": "Flinger Module", + "category": "modules", + "icon": "modularrouters:flinger_module", + "pages": [ + { + "type": "text", + "text": "This module behaves like the $(l:modules/dropper)Dropper Module/$, except that it also imparts a configurable velocity to the dropped item, potentially throwing the item a considerable distance. You can adjust the item's speed, pitch and yaw via the module's GUI.$(li)Pitch and Yaw are in degrees, relative to a base pitch or yaw." + }, + { + "type": "text", + "text": "$(li)If the module ejects Up or Down, the base pitch is +90° or -90°, respectively. Otherwise, the base pitch is 0°.$(li)If the module ejects Up or Down, the base yaw is the router's facing direction. Otherwise the base yaw is taken from the module's direction.$(li)Example: a speed of 1.0, pitch/yaw of 0°, and a horizontal module direction, will throw an item along the ground for a distance of about 7 blocks." + }, + { + "type": "crafting", + "recipe": "modularrouters:flinger_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid.json new file mode 100644 index 000000000000..db3cf4545707 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid.json @@ -0,0 +1,31 @@ +{ + "name": "Fluid Module Mk1", + "category": "modules", + "icon": "modularrouters:fluid_module", + "pages": [ + { + "type": "text", + "text": "While Routers can't handle fluids directly (they don't have an internal tank), they can manipulate fluids if there is a (single) fluid container item in the buffer. This includes buckets and any fluid containers added by other mods." + }, + { + "type": "text", + "text": "The Fluid Module's GUI allows the transfer direction to be set:$(li)$(bold)Transfer To Router/$ means the router will try to pull fluids from an adjacent block (either a fluid in the world or a fluid-holding block) into a fluid-holding item in the buffer.$(li)$(bold)Transfer From Router/$ means the router will try to push fluids from a fluid-holding item in the buffer to the world; either pouring fluid out, or putting fluid into an adjacent tank." + }, + { + "type": "text", + "text": "The GUI also allows the maximum transfer rate to be set. Note this is the maximum that will be $(italic)attempted/$, and is still limited by the Router's overall transfer rate, which is 1 bucket per second, and the transfer rate of the external fluid or fluid container.$(p)The Fluid Module's filter slots will only accept fluid-containing items, and will filter by the contained fluid, not by the container item." + }, + { + "type": "text", + "text": "Adding $(l:upgrades/speed)Speed Upgrades/$ will not transfer fluids any faster, only more often. A Router with 9 speed upgrades will still only transfer 1 bucket per second, just more often and in smaller quantities. To increase the overall transfer rate, add $(l:upgrades/fluid)Fluid Transfer Upgrades/$.$(p)Be very careful tinkering with Fluid Module settings if the router holds any dangerous fluids, such as a lava bucket. The router will not hesitate to pour lava over you if you get it wrong..." + }, + { + "type": "text", + "text": "Note that you can also connect fluid pipes from other mods to a router, $(bold)if/$ the buffer has a fluid container in it, and pump fluids in and out of the router; fluids will be directed to/from the container item.$(p)You $(italic)don't/$ need a Fluid Module installed to do this; Fluid Modules are only required if you want to actively push or pull fluids." + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid_2.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid_2.json new file mode 100644 index 000000000000..1272c9afc580 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/fluid_2.json @@ -0,0 +1,19 @@ +{ + "name": "Fluid Module Mk2", + "category": "modules", + "icon": "modularrouters:fluid_module_2", + "pages": [ + { + "type": "text", + "text": "Like the $(l:modules/fluid_1)Fluid Module Mk1/$, this module can transfer fluids into or out of the router, if it has a fluid-containing item in the buffer. However, this module can also target more distant locations, up to 12 blocks away (up to 24 with $(l:augments/range_up)Range Up Augments/$)." + }, + { + "type": "text", + "text": "$(thing)Sneak-right-click/$ any block with the module to set its target.$(p)Note that the target block does not necessarily need to be a fluid tank; if you break the block after setting the module target, the module will be able to empty a bucket of fluid into the world at that location." + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module_2" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/placer.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/placer.json new file mode 100644 index 000000000000..7703f71dd9ba --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/placer.json @@ -0,0 +1,19 @@ +{ + "name": "Placer Module", + "category": "modules", + "icon": "modularrouters:placer_module", + "pages": [ + { + "type": "text", + "text": "This module tries to place an item from the router's buffer as a block, adjacent to the router in the module's $(l:intro/modules#direction)configured direction/$.$(li)If the item isn't a block or the destination block space is obstructed, nothing will be done.$(li)Normal Minecraft placement rules are followed; e.g. sugar cane can only be placed next to water on sand/dirt." + }, + { + "type": "text", + "text": "$(li)Fluid blocks will be replaced, as will replaceable blocks such as tall grass.$(li)The Placer module can plant seeds on farmland, and cocoa beans on an adjacent jungle log." + }, + { + "type": "crafting", + "recipe": "modularrouters:placer_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/player.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/player.json new file mode 100644 index 000000000000..61819901d480 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/player.json @@ -0,0 +1,31 @@ +{ + "name": "Player Module", + "category": "modules", + "icon": "modularrouters:player_module", + "pages": [ + { + "type": "text", + "text": "This module tries to transfer items between the router and a player's own inventory. The player can be anywhere in any dimension, making this a rather powerful module.$(p)The module can transfer items either from or to the player; you can set this in the module's GUI." + }, + { + "type": "text", + "text": "$(p)The module can operate on either the player's main 36-slot inventory, their 4-slot armor inventory, their offhand slot, or their Ender inventory (as shown by vanilla $(item)Ender Chests/$). This can also be set in the module's GUI.$(p)Extracted/inserted items can, of course, be filtered by the module." + }, + { + "type": "text", + "text": "A good use-case for this module would be to extract ores/cobblestone/dirt etc. from the player's inventory, and send it on to the player's main storage system in their base. With a little design, it should be possible to build a system to auto-swap your armor sets (maybe even in the field, with some wireless redstone from another mod...)" + }, + { + "type": "text", + "text": "The Player Module is keyed to a specific player; the item tooltip shows the owner. This is set to the player who initially crafted the module, but can be overridden by holding the module and sneak-right-clicking it. You might also need to do this if you obtained the module by other means (creative, JEI cheat mode...)." + }, + { + "type": "text", + "text": "Using a Security Upgrade in conjunction with this module is probably wise on servers where you don't trust the players; you don't want a hostile player stealing this module..." + }, + { + "type": "crafting", + "recipe": "modularrouters:player_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_1.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_1.json new file mode 100644 index 000000000000..34d24a750ba2 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_1.json @@ -0,0 +1,15 @@ +{ + "name": "Puller Module Mk1", + "category": "modules", + "icon": "modularrouters:puller_module_1", + "pages": [ + { + "type": "text", + "text": "This module tries to pull the first eligible item from the adjacent inventory in its $(l:intro/modules#direction)configured direction/$ into the router's buffer. If the buffer is full or contains something that stacks with nothing in the inventory, nothing will be pulled." + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_1" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_2.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_2.json new file mode 100644 index 000000000000..737a1f4646e6 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/puller_2.json @@ -0,0 +1,20 @@ +{ + "name": "Puller Module Mk2", + "category": "modules", + "icon": "modularrouters:puller_module_2", + "pages": [ + { + "type": "text", + "text": "This behaves like the $(l:modules/puller_1)Puller Mk1/$, but can pull items from non-adjacent inventories.$(p)The inventory can be up to 12 blocks away (up to 24 with $(l:augments/range_up)Range Augments/$); clear line of sight is $(italic)not/$ required." + }, + { + "type": "text", + "text": "$(li)To select the target inventory, $(thing)Sneak-Right-click/$ the block with the Puller Mk2 module in hand. You will get a confirmation message.$(li)While holding a Puller Mk2 with a target set, the targeted block will be highlighted." + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_2", + "recipe2": "modularrouters:puller_module_2_x4" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_1.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_1.json new file mode 100644 index 000000000000..3a5781e7d1f7 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_1.json @@ -0,0 +1,16 @@ +{ + "name": "Sender Module Mk1", + "category": "modules", + "icon": "modularrouters:sender_module_1", + "pages": [ + { + "type": "text", + "text": "This module tries to send an item from the router's buffer to an inventory in the module's $(l:intro/modules#direction)configured direction/$:$(li)The target inventory can be up to 8 blocks away (up to 16 with $(l:augments/range_up)Range Up Augments/$)$(li)The target inventory $(italic)must/$ be directly along the X, Y, or Z axis.$(li)The router $(italic)must/$ have clear line of sight to the target; no opaque blocks, but blocks such as glass, fences, iron bars etc. are OK." + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_1", + "recipe2": "modularrouters:sender_module_1_alt" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_2.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_2.json new file mode 100644 index 000000000000..c9af6b119792 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_2.json @@ -0,0 +1,20 @@ +{ + "name": "Sender Module Mk2", + "category": "modules", + "icon": "modularrouters:sender_module_2", + "pages": [ + { + "type": "text", + "text": "This module behaves like a $(l:modules/sender_1)Sender Module Mk1/$, but has more powerful inventory targeting capabilities:$(li)The target inventory can be up to 24 blocks away (up to 48 with $(l:augments/range_up)Range Augments/$).$(li)Clear line of sight is $(italic)not/$ required." + }, + { + "type": "text", + "text": "$(li)To select the target inventory, $(thing)Sneak-Right-click/$ the target with the Sender Mk2 module in hand. You will get a confirmation message.$(li)While holding a Sender Mk2 with a target set, the targeted block will be highlighted." + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_2", + "recipe2": "modularrouters:sender_module_2_x4" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_3.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_3.json new file mode 100644 index 000000000000..c7e7d9e16a5c --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/sender_3.json @@ -0,0 +1,15 @@ +{ + "name": "Sender Module Mk3", + "category": "modules", + "icon": "modularrouters:sender_module_3", + "pages": [ + { + "type": "text", + "text": " This top-end sender module operates very much like the $(l:modules/sender_3)Sender Mk2/$, but can send to any inventory (in any dimension) with no restrictions!$(p)Note: the target inventory must be chunk-loaded; $(modr) will not do this for you." + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_3" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/vacuum.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/vacuum.json new file mode 100644 index 000000000000..11899ca7afdf --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "Vacuum Module", + "category": "modules", + "icon": "modularrouters:vacuum_module", + "pages": [ + { + "type": "text", + "text": "This module scans for dropped items in a 13x13x13 cubic area around the router (i.e. up to 6 blocks in each direction), and absorbs them into the router's buffer, if possible.$(p)The range can be increased up to 25x25x25 (12 blocks in each direction) with $(l:augments/range_up)Range Up Augments/$, or shrunk to just 3x3x3 with $(l:augments/range_down)Range Down Augments/$." + }, + { + "type": "text", + "text": "The scanned area is centered on the router if the module's $(l:intro/modules#direction)configured direction/$ is $(bold)All/$ (the default).$(p)If the module has an actual direction configured, the area is offset in that direction by 6 blocks, plus one for each Range Up Augment installed, minus one for each Range Down Augment installed.$(p)E.g. with a direction of $(bold)UP/$, the module will only scan an area directly above the router." + }, + { + "type": "crafting", + "recipe": "modularrouters:vacuum_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/void.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/void.json new file mode 100644 index 000000000000..a4bb71e4f46a --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/modules/void.json @@ -0,0 +1,15 @@ +{ + "name": "Void Module", + "category": "modules", + "icon": "modularrouters:void_module", + "pages": [ + { + "type": "text", + "text": "This dangerous module permanently destroys items in the router's buffer! It is strongly recommended to configure this module with a $(l:intro/modules#filter)whitelist filter/$ to prevent accidental deletion of valuable items..." + }, + { + "type": "crafting", + "recipe": "modularrouters:void_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/item_router.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/item_router.json new file mode 100644 index 000000000000..c99ce361e814 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/item_router.json @@ -0,0 +1,53 @@ +{ + "name": "Modular Router", + "icon": "modularrouters:item_router", + "category": "router", + "pages": [ + { + "type": "text", + "text": "The $(thing)Modular Router/$ is core of the system. It is responsible for executing all the modules plugged into it, moving items, blocks and fluids around in various ways." + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/router_gui.png" + ], + "text": "$(italic)An Modular Router GUI with several modules and upgrades installed", + "border": true + }, + { + "type": "text", + "title": "1. The Buffer", + "text": "The $(thing)Modular Router/$ has a one-slot buffer, able to hold up to stack of items. This buffer is exposed as a normal inventory, so it can be interacted with via $(item)Hoppers/$ and other mod piping systems.$(p)In addition, a $(item)Comparator/$ placed against the router will measure the slot's fullness as expected." + }, + { + "type": "text", + "title": "2. Module Slots", + "text": "The $(thing)Modular Router/$ has nine slots for $(l:intro/modules)modules/$. Each time the router runs (between 1 and 10 times per second depending on Speed Upgrades), it will $(thing)execute/$ each module in turn, from left to right.$(p)You can configure installed modules without removing them from the router by pressing $(4)$(bold)[$(k:modularrouters.configure)]/$ while hovering over it, or $(thing)Middle-Clicking/$ the module in the GUI." + }, + { + "type": "text", + "title": "3. Upgrade Slots", + "text": "The $(thing)Modular Router/$ has five slots for $(l:intro/upgrades)upgrades/$. Upgrades enhance the router's functionality in various ways; for example, each inserted $(l:upgrades/speed)Speed Upgrade/$ makes the router tick a little faster, while each $(l:upgrades/stack)Stack Upgrade/$ allows it to handle more items in each operation." + }, + { + "type": "text", + "title": "4. Redstone Control", + "text": "The $(thing)Modular Router/$ has some flexibility over how it responds to redstone input, controlled by the top-right button:$(li)Default: always run, regardless of redstone signal$(li)Only run when there is $(italic)no/$ redstone signal$(li)Only run when there $(italic)is/$ a redstone signal$(li)Never run$(li)Run $(italic)once/$ when a redstone pulse is received (any signal higher than previously)." + }, + { + "type": "text", + "title": "5. Eco Mode", + "text": "In the spirit of being environmentally-friendly, the router has an option to automatically slow down if it's been idle for a while.$(p)When Eco Mode is enabled, if the router has done no work in the last $(ttcolor)$(t:Adjustable in mod config - 'ecoTimeout')5 seconds/$ then it will slow down and only tick once every $(ttcolor)$(t:Adjustable in mod config - 'lowPowerTickRate')5 seconds/$ (regardless of $(l:upgrades/speed)Speed Upgrades/$). However, as soon as it does any work, it will return to normal tick speed." + }, + { + "type": "text", + "title": "Eco Mode (cont)", + "text": "This is primarily intended for busy servers, to save on CPU cycles, but it's potentially nice-to-have for any router that only runs rarely and where rapid item transfer isn't that important (e.g. a sheep farm where you might have a $(l:modules/vacuum)Vacuum Module/$ gathering sheared wool periodically)." + }, + { + "type": "crafting", + "recipe": "modularrouters:item_router" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/termination.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/termination.json new file mode 100644 index 000000000000..0931b3ae1004 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/router/termination.json @@ -0,0 +1,23 @@ +{ + "name": "Termination", + "icon": "minecraft:barrier", + "category": "router", + "pages": [ + { + "type": "text", + "text": "This a slightly esoteric topic which in most cases you won't need to worry about. However, when you do need it, it'll be very useful!" + }, + { + "type": "text", + "text": "Termination is configured on a per-module basis, by the 'T' button beneath the filter slots. By default, it's inactive; if you switch if on for a module, then $(italic)if/$ the module does any work this router tick, the router will stop there. No further modules (i.e. to the right of this module) will be executed this time round." + }, + { + "type": "text", + "text": "Why would this be useful? Imagine a scenario where your router is being supplied with many items, e.g. from a quarry. You want to void $(item)Cobblestone/$, and send everything else to another inventory; so you would add a $(l:modules/void)Void Module/$ with a whitelist of Cobblestone, followed by a $(l:modules/sender_1)Sender Module/$ to send anything else onwards." + }, + { + "type": "text", + "text": "When the router runs, say there's already a stack of Cobblestone in the buffer. The Void Module will void a Cobblestone, and then the Sender module will send the remaining 63 Cobblestone on to your storage. This is probably not you want.$(p)However, if you switch on Termination on the Void Module, then when it runs, the router will stop for that tick; the Sender module won't run until the Void Module has nothing else to do." + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/blast.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/blast.json new file mode 100644 index 000000000000..1a76431b042c --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/blast.json @@ -0,0 +1,15 @@ +{ + "name": "Blast Upgrade", + "category": "upgrades", + "icon": "modularrouters:blast_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade makes the router fully immune to explosion damage, and also to being destroyed by boss mobs." + }, + { + "type": "crafting", + "recipe": "modularrouters:blast_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/camouflage.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/camouflage.json new file mode 100644 index 000000000000..a6f05bafe312 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/camouflage.json @@ -0,0 +1,15 @@ +{ + "name": "Camouflage Upgrade", + "category": "upgrades", + "icon": "modularrouters:camouflage_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade allows you to disguise the router as another block. $(thing)Sneak+Right-click/$ the module against a block to record that block on the camouflage upgrade. When inserted into a router, that router will take on the appearance of the recorded block.$(p)Note: holding a $(thing)Modular Router/$ will highlight any nearby camouflaged Routers." + }, + { + "type": "crafting", + "recipe": "modularrouters:camouflage_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/energy.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/energy.json new file mode 100644 index 000000000000..2cca6787853a --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/energy.json @@ -0,0 +1,35 @@ +{ + "name": "Energy Upgrade", + "category": "upgrades", + "icon": "modularrouters:energy_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade gives the Router an internal energy buffer. Each upgrade increases the buffer size by 50,000 FE and the transfer rate by 1,000 FE per $(italic)router tick/$ (these figures are adjustable in mod config).$(p)There are several scenarios where an Energy Upgrade is useful, detailed in the following pages." + }, + { + "type": "text", + "title": "1. Routing Energy", + "text": "The $(l:modules/energy_output)Energy Output/$ and $(l:modules/energy_distributor)Energy Distributor/$ modules are both capable of actively pushing energy from the router's buffer to adjacent or nearby blocks.$(p)With these modules, you can effectively build an energy cell with limited wireless energy transfer capabilities." + }, + { + "type": "text", + "title": "2. Powering Modules", + "text": "By default, router modules do not cost any energy to run, with the exception of the $(l:modules/activator)Activator Module/$ in attack mode. $(p)However, energy usage is configurable and it's possible that energy costs may apply to other modules in the pack you're playing; all modules list energy usage numbers in their tooltip where it applies." + }, + { + "type": "text", + "title": "3. Charging Items", + "text": "Any energy-holding item in the router's buffer can optionally have energy transferred from the router's internal buffer to the item, or vice versa.$(p)When an energy-holding item is in the item buffer, the router GUI will show a switchable button between the buffer and the energy bar to set the energy transfer direction." + }, + { + "type": "text", + "title": "Transfer Rates", + "text": "It is important to note that stated transfer rates on tooltips are in FE per $(italic)router tick/$, which is not the same as FE/t. A Router's tick rate depends on its $(l:upgrades/speed)Speed Upgrades/$; with no Speed Upgrades, a router tick is every 20 server ticks. Therefore, the overall transfer rate may be lower than you might expect." + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_upgrade" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/fluid.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/fluid.json new file mode 100644 index 000000000000..53597dc2981c --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/fluid.json @@ -0,0 +1,15 @@ +{ + "name": "Fluid Transfer Upgrade", + "category": "upgrades", + "icon": "modularrouters:fluid_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade only affects the $(l:modules/fluid)Fluid Module Mk1/$ and $(l:modules/fluid_2)Fluid Module Mk2/$.$(p)It increases the overall fluid transfer rate of the $(l:router/item_router)Router/$ (in each direction; in & out of the router) from the base rate of 50mB/tick by 10mB/tick, up to a maximum of 400mB/tick. Therefore the maximum number of Fluid Transfer Upgrades in a router is 35." + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/muffler.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/muffler.json new file mode 100644 index 000000000000..573065c7dd86 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/muffler.json @@ -0,0 +1,19 @@ +{ + "name": "Muffler Upgrade", + "category": "upgrades", + "icon": "modularrouters:muffler_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade can be used to suppress sounds and particle effects made by item routers, and can be useful if a noisy module is regularly running in a place where a player often is.$(li)One or more Muffler Upgrades in a router will disable all audible effects$(li)Two or more will also disable all particle effects (beams and flying items)" + }, + { + "type": "text", + "text": "$(li)Three upgrades will also disable the router's active animation; the pulsing texture on the front face of the router block$(p)Note that all sounds and particle effects can also be disabled in the mod config; this upgrade is only useful if sounds/effects have not been disabled." + }, + { + "type": "crafting", + "recipe": "modularrouters:muffler_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/security.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/security.json new file mode 100644 index 000000000000..1c33086aa426 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/security.json @@ -0,0 +1,40 @@ +{ + "name": "Security Upgrade", + "category": "upgrades", + "icon": "modularrouters:security_upgrade", + "pages": [ + { + "type": "text", + "text": "The $(thing)Security Upgrade/$ has several important functions, detailed in the following pages." + }, + { + "type": "text", + "title": "Protection", + "text": "A Router with a Security Upgrade installed can $(italic)only/$ be opened by players whitelisted by that upgrade. The upgrade doesn't prevent a router being broken; but since upgrades and modules remain in a broken router, players can't break a router to steal modules/upgrades or reconfigure the router. If you want to prevent a router being broken, you may wish to explore other mods' block protection capabilities." + }, + { + "type": "text", + "title": "Fake Players", + "text": "Several modules ($(l:modules/placer)Placer/$, $(l:modules/breaker)Breaker/$, $(l:modules/activator)Activator/$) do their work as a $(thing)fake player/$. By default this is a player with the username $(thing)[Modular Routers]/$, but when a security upgrade is installed, those modules operate as the upgrade's owner. This is much safer on multiplayer servers with claim protection than simply allowing $(thing)[Modular Routers]/$ to do anything with your claims." + }, + { + "type": "text", + "title": "Activator Attack Mode", + "text": "When the $(l:modules/activator)Activator Module/$ is in $(thing)Attack Mode/$, it will ignore any players whitelisted by a Security Upgrade installed in the Router. This is generally a good idea to avoid pain & suffering if you have a high-damage weapon in your Router..." + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "$(li)There is a non-craftable item called the $(thing)Security Override Card/$ - this can be obtained in creative mode or by cheating the item in via JEI etc. A player who holds one of these in either hand is not affected by any Security Upgrade, and can access any router." + }, + { + "type": "text", + "text": "You can add extra players to a Security Upgrade by $(thing)right-clicking/$ the player with the upgrade in your main hand.$(p)You can remove players from a Security Upgrade by $(thing)sneak-right-clicking/$ the player.$(p)There is a maximum of 6 additional players per Security Upgrade (so 7 in total, including the creator), but you can install more than one Security Upgrade in a router if necessary." + }, + { + "type": "crafting", + "recipe": "modularrouters:security_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/speed.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/speed.json new file mode 100644 index 000000000000..1717971249b6 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/speed.json @@ -0,0 +1,19 @@ +{ + "name": "Speed Upgrade", + "category": "upgrades", + "icon": "modularrouters:speed_upgrade", + "pages": [ + { + "type": "text", + "text": "By default, a $(l:router/item_router)router/$ ticks every 20 server ticks, or once per second. On each tick, every installed module is executed in order, left to right.$(p)If you need a router to run faster than this, add $(thing)Speed Upgrades/$; each Speed Upgrade reduces the tick interval by 2 server ticks, down to a minimum of every 2 server ticks (or 10 times per second)." + }, + { + "type": "text", + "text": "The base tick rate, tick increase per upgrade, and hard minimum tick rate are all configurable in the module's config (config/modularrouters-common.toml).$(p)For performance reasons, $(l:upgrades/stack)Stack Upgrades/$ should be preferred over Speed Upgrades where possible; use Speed Upgrades judiciously and only where absolutely required for maximum item transfer rate.$(p)Be Kind To Your Server (tm)." + }, + { + "type": "crafting", + "recipe": "modularrouters:speed_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/stack.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/stack.json new file mode 100644 index 000000000000..3c9631d01814 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/stack.json @@ -0,0 +1,19 @@ +{ + "name": "Stack Upgrade", + "category": "upgrades", + "icon": "modularrouters:stack_upgrade", + "pages": [ + { + "type": "text", + "text": "Modules in a router operate on a single item at a time: e.g. a $(l:modules/sender_1)Sender Module/$ will send a single item from the router's buffer each router tick, regardless of how many items are in the buffer." + }, + { + "type": "text", + "text": "By adding Stack Upgrades to a router, this can be increased. Each Stack Upgrade doubles the number of items that can be processed by each module, up to a maximum of 64, or the item's native stack size (e.g. 16 for $(item)Ender Pearls/$).$(p)It therefore follows that 6 is the maximum number of useful Stack Upgrades which can be installed in one router." + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/sync.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/sync.json new file mode 100644 index 000000000000..ea3d80efea08 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/en_us/entries/upgrades/sync.json @@ -0,0 +1,27 @@ +{ + "name": "Sync Upgrade", + "category": "upgrades", + "icon": "modularrouters:sync_upgrade", + "pages": [ + { + "type": "text", + "text": "This upgrade is used to guarantee that two or more routers run at the same time. The Sync Upgrade has a tuning value of 0 .. 19 (i.e. 1 less than the base router tick rate of 20). This tuning value can be set by $(thing)right-clicking/$ the Sync Upgrade to open its GUI, or quickly set to a random value by $(thing)sneak-right-clicking/$ the upgrade." + }, + { + "type": "text", + "text": "Any routers with this upgrade installed, with same the tuning value, and with the same number of $(l:upgrades/speed)Speed Upgrades/$ installed, will always run on the same tick. The actual tuning value doesn't matter; only that the value is consistent across the routers you want to synchronise.$(p)This is particularly useful if you have a group of routers with $(l:modules/extruder_1)Extruder Modules/$ installed, and want to ensure all modules extend/retract at exactly the same time." + }, + { + "type": "text", + "text": "Advanced notes #1: the Sync Upgrade's tuning value actually specifies precisely when the router will run relative to its tick rate. E.g. routers tick every 20 server ticks by default; a Sync Upgrade with a tuning upgrade of 15 ensures the router $(italic)always/$ runs 15 ticks after that, and that applies to $(italic)all/$ routers with a 15-tuned Sync Upgrade. And a 16-tuned Sync Upgrade always runs 1 tick after a 15-tuned Sync Upgrade, at least for routers with the same number of $(l:upgrades/speed)Speed Upgrades/$ installed..." + }, + { + "type": "text", + "text": "Advanced notes #2: Because $(l:upgrades/speed)Speed Upgrades/$ make routers tick more frequently, they affect how Sync Upgrades work. A router with 9 Speed Upgrades ticks every 2 server ticks (instead of every 20). For Sync Upgrades in such a router, it only matters whether the tuning value is even or odd; 2 (or 4/6/8...) ticks later is effectively the same as 0 ticks later! General case: the tuning value is calculated modulo the router's actual tick rate after Speed Upgrades are accounted for." + }, + { + "type": "crafting", + "recipe": "modularrouters:sync_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/augments.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/augments.json new file mode 100644 index 000000000000..cefecd312926 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/augments.json @@ -0,0 +1,6 @@ +{ + "name": "拓展", + "description": "模块拓展可以安装在模块中以增强或拓展它们的功能。", + "icon": "modularrouters:xp_vacuum_augment", + "sortnum": 4 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/filters.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/filters.json new file mode 100644 index 000000000000..1f69169d28aa --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/filters.json @@ -0,0 +1,6 @@ +{ + "name": "智能过滤器", + "description": "智能过滤器是一组过滤器物品,可以放在任何模块的过滤栏位中来取代普通物品,并提供更加复杂的物品匹配功能。", + "icon": "modularrouters:bulk_item_filter", + "sortnum": 5 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/intro.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/intro.json new file mode 100644 index 000000000000..ae707f69165f --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/intro.json @@ -0,0 +1,6 @@ +{ + "name": "介绍", + "description": "欢迎来到$(#228)模块化路由器$()!", + "icon": "minecraft:knowledge_book", + "sortnum": 0 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/modules.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/modules.json new file mode 100644 index 000000000000..fe5ad56aeadd --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/modules.json @@ -0,0 +1,6 @@ +{ + "name": "模块", + "description": "模块可以放进模块化路由器并决定路由器的功能。", + "icon": "modularrouters:sender_module_1", + "sortnum": 2 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/router.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/router.json new file mode 100644 index 000000000000..c7680a6c150a --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/router.json @@ -0,0 +1,6 @@ +{ + "name": "模块化路由器", + "description": "模块化路由器是$(#228)模块化路由器$()中唯一的方块。", + "icon": "modularrouters:item_router", + "sortnum": 1 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/upgrades.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/upgrades.json new file mode 100644 index 000000000000..ca2888620aa2 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/categories/upgrades.json @@ -0,0 +1,6 @@ +{ + "name": "升级", + "description": "升级可以安装在模块化路由器中以增强或修改其功能。", + "icon": "modularrouters:speed_upgrade", + "sortnum": 3 +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/fast_pickup.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/fast_pickup.json new file mode 100644 index 000000000000..d553e6ff456f --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/fast_pickup.json @@ -0,0 +1,15 @@ +{ + "name": "快速拾取拓展", + "category": "augments", + "icon": "modularrouters:fast_pickup_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/vacuum)真空模块/$中。它可以使真空模块无视掉落物品的正常拾取延迟——玩家投掷的物品有 40 刻的延迟,其它手段投掷的物品有 10 刻的延迟(例如绵羊剪毛)——立刻拾取任何检测到的物品。$(p)最多可以添加一个快速拾取拓展。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fast_pickup_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/mimic.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/mimic.json new file mode 100644 index 000000000000..f505708ceb59 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/mimic.json @@ -0,0 +1,15 @@ +{ + "name": "模仿拓展", + "category": "augments", + "icon": "modularrouters:mimic_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/extruder_2)挤出模块 2 型/$中。$(p)添加后,任何由模块挤出的假方块都会有对应方块的特性,例如$(item)黑曜石/$难以被破坏、$(item)荧石/$会发光,以及$(item)红石块/$会发出红石信号。" + }, + { + "type": "crafting", + "recipe": "modularrouters:mimic_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pickup_delay.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pickup_delay.json new file mode 100644 index 000000000000..2b5bc9537efe --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pickup_delay.json @@ -0,0 +1,15 @@ +{ + "name": "延迟拾取拓展", + "category": "augments", + "icon": "modularrouters:pickup_delay_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/dropper)投掷器/$和$(l:modules/flinger)投掷/$模块中。$(p)它可以堆叠;每添加一个拓展,投掷的物品就会增加 10 刻(0.5 秒)的拾取延迟。例如,这对防止玩家意外捡起附近的掉落物品来说非常有用。" + }, + { + "type": "crafting", + "recipe": "modularrouters:pickup_delay_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pushing.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pushing.json new file mode 100644 index 000000000000..38cfaa25aba0 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/pushing.json @@ -0,0 +1,15 @@ +{ + "name": "推动拓展", + "category": "augments", + "icon": "modularrouters:pushing_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/extruder_1)挤出 1 型/$和$(l:modules/extruder_2)挤出 2 型/$模块中。$(p)它可以堆叠;每个拓展都会增加模块挤出方块时推动实体的推力。" + }, + { + "type": "crafting", + "recipe": "modularrouters:pushing_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_down.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_down.json new file mode 100644 index 000000000000..780d7057bbce --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_down.json @@ -0,0 +1,16 @@ +{ + "name": "范围缩小拓展", + "category": "augments", + "icon": "modularrouters:range_down_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至有范围的模块中(发送$(l:modules/sender_1)1 型/$ / $(l:modules/sender_2)2 型/$、抽取$(l:modules/puller_1)1 型/$ / $(l:modules/puller_2)2 型/$、挤出$(l:modules/extruder_1)1 型/$ / $(l:modules/extruder_2)2 型/$、$(l:modules/fluid_2)流体 2 型/$、$(l:modules/vacuum)真空/$)。$(p)它可以堆叠;每个拓展都会降低一格模块的范围。$(p)此拓展可能只适合与$(l:modules/vacuum)真空模块/$一起使用,以便控制模块检测物品的范围。" + }, + { + "type": "crafting", + "recipe": "modularrouters:range_down_augment", + "recipe2": "modularrouters:range_down_from_up" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_up.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_up.json new file mode 100644 index 000000000000..402729c73495 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/range_up.json @@ -0,0 +1,16 @@ +{ + "name": "范围扩大拓展", + "category": "augments", + "icon": "modularrouters:range_up_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至有范围的模块中(发送$(l:modules/sender_1)1 型/$ / $(l:modules/sender_2)2 型/$、抽取$(l:modules/puller_1)1 型/$ / $(l:modules/puller_2)2 型/$、挤出$(l:modules/extruder_1)1 型/$ / $(l:modules/extruder_2)2 型/$、$(l:modules/fluid_2)流体 2 型/$、$(l:modules/vacuum)真空/$)。$(p)它可以堆叠;每个拓展都会增加一格模块的范围。" + }, + { + "type": "crafting", + "recipe": "modularrouters:range_up_augment", + "recipe2": "modularrouters:range_up_from_down" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/redstone.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/redstone.json new file mode 100644 index 000000000000..3915e6b948f2 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/redstone.json @@ -0,0 +1,15 @@ +{ + "name": "红石拓展", + "category": "augments", + "icon": "modularrouters:redstone_augment", + "pages": [ + { + "type": "text", + "text": "该拓展可以被添加至任意模块。$(p)通常情况下,模块会在路由器运行时运行,不需要其他条件。然而,如果将此拓展添加到模块中,就可使模块定义自己的红石行为;模块的 GUI 中会添加一个额外的按钮用于控制红石行为。" + }, + { + "type": "crafting", + "recipe": "modularrouters:redstone_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/regulator.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/regulator.json new file mode 100644 index 000000000000..61e625bb2c57 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/regulator.json @@ -0,0 +1,27 @@ +{ + "name": "调节拓展", + "category": "augments", + "icon": "modularrouters:regulator_augment", + "pages": [ + { + "type": "text", + "text": "该拓展可以精确控制从容器或路由器缓存区中输入或输出的物品量。$(p)当模块安装调节拓展时,你会看到其 GUI 中有额外的数字文本框供你配置限度。此限度在特定的模块上有着不同的解释:" + }, + { + "type": "text", + "text": "$(li)对于发送$(l:modules/sender_1)1 型/$ / $(l:modules/sender_2)2 型/$ / $(l:modules/sender_3)3 型/$模块和$(l:modules/player)玩家模块/$(输入模式)来说,只有当容器中该物品的数量小于配置的数字时,模块才会向容器发送物品。$(li)对于抽取$(l:modules/puller_1)1 型/$ / $(l:modules/puller_2)2 型/$和$(l:modules/player)玩家模块/$(提取模式)来说,只有当容器中的该物品的数量大于配置的数字时,模块才会从容器中抽取物品。" + }, + { + "type": "text", + "text": "$(li)对于$(l:modules/dropper)投掷器/$、$(l:modules/flinger)投掷/$、$(l:modules/placer)放置/$和$(l:modules/void)销毁/$模块来说,只有当路由器缓存区的物品数量大于配置的数字时模块才会运作。$(li)对于$(l:modules/breaker)破坏/$和$(l:modules/vacuum)真空/$模块来说,只有当路由器缓存区的物品数量小于配置的数字时模块才会运作。" + }, + { + "type": "text", + "text": "$(li)对于流体$(l:modules/fluid)1 型/$ / $(l:modules/fluid_2)2 型/$模块来说,限度可以是目标储罐容量的百分比,或以 mB 为单位的绝对含量(在 GUI 中可选),而不是物品数量。当抽取流体时,只有当目标中流体$(italic)多于/$配置的量时模块才会运作;当输出流体时,只有当目标中流体$(italic)少于/$配置的量时模块才会运作。" + }, + { + "type": "crafting", + "recipe": "modularrouters:regulator_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/stack.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/stack.json new file mode 100644 index 000000000000..0fe9b9dcc46a --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/stack.json @@ -0,0 +1,19 @@ +{ + "name": "堆叠拓展", + "category": "augments", + "icon": "modularrouters:stack_augment", + "pages": [ + { + "type": "text", + "text": "该模块可以被添加至任何可以处理$(italic)物品/$(与$(italic)方块/$、$(italic)流体/$或$(italic)能量/$相对)的模块中。$(p)向模块中添加堆叠拓展可以增加模块每游戏能够处理的物品数量;每个堆叠拓展可使物品数量翻倍,最大上限为物品的自然堆叠大小(大多数物品为 64)。" + }, + { + "type": "text", + "text": "如果$(l:router/item_router)路由器/$同时安装了$(l:upgrades/stack)堆叠升级/$,模块中的堆叠拓展会覆盖它;比如说,如果路由器有 6 个堆叠升级,而模块有 2 个堆叠拓展,模块每游戏刻只会处理 4 个物品,而不是 64 个。" + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/xp_vacuum.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/xp_vacuum.json new file mode 100644 index 000000000000..bcc58f31ef09 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/augments/xp_vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "经验真空拓展", + "category": "augments", + "icon": "modularrouters:xp_vacuum_augment", + "pages": [ + { + "type": "text", + "text": "该拓展只能被添加至$(l:modules/vacuum)真空模块中/$。$(p)添加该拓展后,真空模块将会吸收经验球,而不是物品。经验球将会以每瓶 7 经验的倍率(摔碎附魔之瓶得到的平均经验值)转化为$(item)附魔之瓶/$。" + }, + { + "type": "text", + "text": "取决于安装的其他模组,该拓展也有可能将经验球转化为经验流体。这需要路由器的缓存区或相邻处有一个流体储罐。在后一种情况下,请确保真空模块 GUI 中的$(bold)输出/$按钮为开启状态。" + }, + { + "type": "crafting", + "recipe": "modularrouters:xp_vacuum_augment" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/bulk_item.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/bulk_item.json new file mode 100644 index 000000000000..b050155a015a --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/bulk_item.json @@ -0,0 +1,27 @@ +{ + "name": "批量物品过滤器", + "category": "filters", + "icon": "modularrouters:bulk_item_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以进行高达 54 种不同物品的高性能匹配,包括可选的 NBT 匹配。批量物品过滤器可以一些别样的方式进行配置:$(p)$(li)用过滤器$(thing)潜行+右击/$任意容器将容器内物品的副本合并至过滤器中。" + }, + { + "type": "text", + "text": "$(li)$(thing)右击/$过滤器以打开显示目前过滤物品的 GUI。你可以添加物品(的副本)至过滤器,点击物品来移除它们,或按红色的$(bold)$(4)“X”/$按钮来彻底清除过滤器。" + }, + { + "type": "text", + "text": "$(li)当过滤器在路由器里的模块中时,你可以将鼠标悬停在其上方并按鼠标中键或$(bold)$(4)[$(k:modularrouters.configure)]/$打开过滤器的 GUI。$(p)$(bold)如果/$模块找到了有效的容器,GUI 中将会出现两个额外的按钮:一个用于$(italic)合并/$目标容器物品的绿色$(bold)$(2)“+”/$按钮,以及一个用于$(italic)加载/$(覆盖过滤器的当前内容)目标容器物品的蓝色$(bold)$(1)“=”/$按钮。" + }, + { + "type": "text", + "text": "最后一种配置手段非常适合用于和$(l:modules/sender_2)发送模块/$结合以实现分类系统,因为批量物品过滤器可以记住容器中应有的物品,即使后续容器被取空。" + }, + { + "type": "crafting", + "recipe": "modularrouters:bulk_item_filter" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/inspection.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/inspection.json new file mode 100644 index 000000000000..e8da1a595fea --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/inspection.json @@ -0,0 +1,23 @@ +{ + "name": "检测过滤器", + "category": "filters", + "icon": "modularrouters:inspection_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以按物品的各种杂项整型属性匹配物品。目前支持的检测有:$(li)流体容器物品(桶、储罐……)的流体储量百分比。$(li)能量容器物品(电池、电力工具……)的能量储量百分比。" + }, + { + "type": "text", + "text": "$(li)物品上魔咒的最高魔咒等级(可以用于过滤附魔物品,比如从刷怪塔中来的物品)。$(li)物品(工具、武器)的耐久度与最大耐久度百分比。$(li)可食用物品的食物营养价值,恢复多少半个鸡腿的数量(例如牛排的值为 8)。" + }, + { + "type": "text", + "text": "没有检测属性的物品,返回值将会永远为 -1,比如一块$(item)圆石/$的耐久度值为 -1。这与 0 返回值不同,因为有着小于 1% 耐久度的工具会返回 0 这个值。$(p)该过滤器非常适合自动抽取损坏或没电的物品,进行修复/充电,等等。" + }, + { + "type": "crafting", + "recipe": "modularrouters:inspection_filter" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/mod.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/mod.json new file mode 100644 index 000000000000..106db30a7317 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/mod.json @@ -0,0 +1,19 @@ +{ + "name": "模组过滤器", + "category": "filters", + "icon": "modularrouters:mod_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以按物品属于的模组匹配物品。每个过滤器最多可以添加 6 个模组。$(li)$(thing)右击/$过滤器以打开其GUI(也可以对安装在模块中的过滤器按$(thing)鼠标中键/$ / $(bold)$(4)[$(k:modularrouters.configure)]/$ )。" + }, + { + "type": "text", + "text": "$(li)将任意物品放入GUI左上角的物品栏位中。物品的模组名称将会显示在右方。点击$(bold)$(2)“+”/$按钮将其添加至下方的模组列表中。$(li)点击条目旁的红色$(bold)$(4)“X”/$按钮将模组从列表中移除。$(p)原版物品也可以被添加,它们的“模组”名称将会显示为$(italic)Minecraft/$。" + }, + { + "type": "crafting", + "recipe": "modularrouters:mod_filter" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/regex.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/regex.json new file mode 100644 index 000000000000..4af0b42bf395 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/filters/regex.json @@ -0,0 +1,34 @@ +{ + "name": "正则过滤器", + "category": "filters", + "icon": "modularrouters:regex_filter", + "pages": [ + { + "type": "text", + "text": "该过滤器可以用正则表达式匹配物品和方块,和物品的$(strong)注册名/$进行比对。正则表达式非常强大,但需要花一些时间进行学习才能解锁其全部潜力。不过,基础的正则表达式运用并不是很困难。有许多网站都有关于正则表达式的教程信息,例如$(l:https://regexone.com/)RegexOne/$。" + }, + { + "type": "text", + "title": "注册名", + "text": "因为物品过滤是完全在服务器中进行的,因此无法确保物品的显示文本是什么。因此,所有过滤都会按照物品的内部$(thing)注册名/$进行比对。你可以通过按$(thing)F3+H/$开启高级提示框来查看其注册名。$(p)请注意,匹配只会比对冒号$(italic)后/$的部分。" + }, + { + "type": "text", + "text": "$(thing)$(thing)右击/$过滤器,或对安装在模块中的过滤器按$(thing)鼠标中键/$ / $(bold)$(4)[$(k:modularrouters.configure)]/$来打开模块GUI。$(li)在顶部的文本框中输入正则表达式,然后按$(thing)回车键/$或点击绿色的$(bold)$(2)“+”/$按钮。假设语法正确,你的正则表达式将会添加到列表中。一个过滤器中最多有 6 个条目。$(li)点击任意正则表达式旁的红色$(bold)$(4)“X”/$将其从列表中移除。$(li)匹配不区分大小写。" + }, + { + "type": "text", + "title": "示例 1", + "text": "正则表达式'ore'会匹配所有注册名中含有'ore'的物品(\"iron_ore\"、\"gold_ore\"、\"redstone_ore\")。不幸的是,它也会匹配\"drill_core\",你可以通过使用正则表达式$(1)_ore/$来避免这种情况。想要更精确,你可以使用$(1)_ore$/$,这可以确保字符串\"_ore\"在物品注册名的结尾。" + }, + { + "type": "text", + "title": "示例 2", + "text": "配置一个$(l:modules/player)玩家模块/$让它从玩家的主物品栏中提取物品,并在模块中放一个含有$(1)_ore/$的正则过滤器。这可以用于提取任何来自你物品栏中的矿石,无论你身在何地,并将它们放到矿石处理系统中;如果你在离你基底很远的地方采矿,并且你想要让采掘的矿物立即送回家,这会很方便。" + }, + { + "type": "crafting", + "recipe": "modularrouters:regex_filter" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/augments.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/augments.json new file mode 100644 index 000000000000..07f90db98b4b --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/augments.json @@ -0,0 +1,19 @@ +{ + "name": "拓展", + "icon": "modularrouters:augment_core", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)拓展/$和$(l:intro/upgrades)升级/$相似,但用于$(l:intro/modules)模块/$而不是$(l:intro/item_router)模块化路由器/$。每个模块都有可以安装 4 个拓展的栏位(一些拓展可以堆叠)。拓展可以各种方式增强或拓展模块的功能。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/augments.png" + ], + "text": "$(italic)一个带有 6 个范围扩大拓展和经验真空拓展的真空模块/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/filters.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/filters.json new file mode 100644 index 000000000000..5cad000821ef --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/filters.json @@ -0,0 +1,19 @@ +{ + "name": "智能过滤器", + "icon": "modularrouters:bulk_item_filter", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)智能过滤器/$可以代替常规物品放入$(l:intro/modules)模块/$的过滤器栏位中。和直接匹配物品不同,过滤器有特殊的匹配功能。$(p)比方说,$(l:filters/bulk_item)批量物品过滤器/$可以高效的匹配 54 种不同的物品,且其物品可以直接从现有容器中配置。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/bulk_filter.png" + ], + "text": "$(italic)安装在抽取模块 2 型中的批量物品过滤器/$", + "border": true + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/item_router.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/item_router.json new file mode 100644 index 000000000000..28c88d143695 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/item_router.json @@ -0,0 +1,15 @@ +{ + "name": "模块化路由器总览", + "icon": "modularrouters:item_router", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(item)模块化路由器/$是路由系统的核心方块。仅凭路由器自己,它最多只能提供一个栏位的物品栏(可以通过漏斗和其他模组的管道系统进行输入或输出)。$(p)然而,想要通过路由器做任何有用的事,你需要安装一个或多个(最多九个)$(l:intro/modules)模块/$。" + }, + { + "type": "text", + "text": "每当路由器走过一个路由器刻——默认每秒一次——它就会按照顺序执行所有安装的模块。每个模块都会对缓存区的物品或路由器周围的世界进行特定的操作——查看$(bold)模块/$部分以了解每种单独的模块类型。$(p)路由器的操作也可以通过$(bold)升级/$修改——将其加速、每路由器刻处理更多物品、增加特定模块的范围……" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/misc.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/misc.json new file mode 100644 index 000000000000..450daec97b03 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/misc.json @@ -0,0 +1,26 @@ +{ + "name": "杂项", + "icon": "minecraft:book", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "此章节介绍了一些杂项物品和合成部件。" + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "见$(l:upgrades/security#override)安全升级/$。" + }, + { + "type": "crafting", + "recipe": "modularrouters:blank_module", + "recipe2": "modularrouters:blank_upgrade" + }, + { + "type": "crafting", + "recipe": "modularrouters:augment_core" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/modules.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/modules.json new file mode 100644 index 000000000000..92c11aba7de6 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/modules.json @@ -0,0 +1,50 @@ +{ + "name": "模块", + "icon": "modularrouters:breaker_module", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)模块/$可以放进$(l:intro/item_router)模块化路由器中/$并告诉路由器干什么。有 20 种模块类型,每种都有特定的功能。不过,所有模块都具有共性:$(li)所有模块都有 9 个$(thing)过滤器栏位/$来控制模块处理的物品。$(li)许多模块有明确的$(thing)方向/$,和路由器的朝向有关。" + }, + { + "type": "text", + "text": "$(li)一些模块有用于配置相关功能的额外设置。$(p)这些都可以在模块的 GUI 中配置,你可以手持模块时$(thing)右击/$来访问 GUI。$(p)你还可以通过鼠标悬浮在模块中按$(4)$(bold)[$(k:modularrouters.configure)]/$或$(thing)鼠标中键/$在路由器GUI中配置安装好的模块,无需将其从路由器中移出。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/module_gui.png" + ], + "text": "$(italic)模块 GUI:有关 GUI 每个部分的描述,请查阅以下页面/$", + "border": true + }, + { + "type": "text", + "title": "1. 过滤器栏位", + "anchor": "filter", + "text": "总共有九个过滤器栏位,你可以将任何物品或方块的拷贝放入其中。只有当路由器$(thing)缓存区/$中的物品与过滤器中的某个物品匹配(白名单时;黑名单则相反)模块才会运作。" + }, + { + "type": "text", + "anchor": "direction", + "title": "2. 方向选择器", + "text": "大多数模块以明确的方向运作,和路由器的朝向有关。你可以在这里定义方向。/$(p)一些模块(例如$(l:modules/sender2)发送 2 型/$)直接指向一个远处的方块,因此没有可定义的方向。这种情况下,方向选择器将为空白。" + }, + { + "type": "text", + "title": "3. 过滤器控制", + "text": "这里有一些按钮,它们控制着:$(li)白名单 / 黑名单$(li)是否匹配物品的损害值(用于有耐久度的物品)$(li)是否匹配物品 NBT,例如魔咒$(li)是否按$(l:https://zh.minecraft.wiki/w/%E6%A0%87%E7%AD%BE)物品标签/$匹配$(p)还有一个用于控制$(l:router/termination)终止行为/$的按钮,在单独一页中有解释。" + }, + { + "type": "text", + "title": "4. 拓展", + "text": "每个模块都有四个$(thing)拓展/$栏位,可以放入拓展(用于模块的升级)。$(p)可以放入的拓展种类取决于模块类型;不是每个模块类型都接受所有拓展类型。" + }, + { + "type": "text", + "title": "5. 额外设置", + "text": "一些模块有额外配置选项。比方说,之前展示的$(l:modules/detector)检测模块/$有设置红石输出等级的选项,以及输出信号为强或弱充能的选项。$(p)当模块有类似的选项时,它们会在 GUI 的右侧显示出来。" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/overview.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/overview.json new file mode 100644 index 000000000000..a92ec125237e --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/overview.json @@ -0,0 +1,20 @@ +{ + "name": "总览", + "icon": "minecraft:cake", + "category": "intro", + "priority": "true", + "pages": [ + { + "type": "text", + "text": "欢迎来到$(#228)模块化路由器$()!$(p)这是一个高度灵活的模组,能够以多种方式在世界中搬运物品。你只需要用一个方块——$(thing)模块化路由器/$——以及一个或多个可插入的$(thing)模块/$,就可以从任何容器中抽取物品、将它们发送到或近或远的其他容器中、放置方块、破坏方块、投掷物品到世界中、分类物品,还有更多可以做的事。" + }, + { + "type": "image", + "text": "$(italic)把它想象成一个更强大的可调节性极高的漏斗……/$", + "images": [ + "modularrouters:textures/patchouli/item_router.png" + ], + "border": "true" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/upgrades.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/upgrades.json new file mode 100644 index 000000000000..85233f648cb2 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/intro/upgrades.json @@ -0,0 +1,11 @@ +{ + "name": "升级", + "icon": "modularrouters:speed_upgrade", + "category": "intro", + "pages": [ + { + "type": "text", + "text": "$(thing)升级/$可在多种方面提升$(l:intro/item_router)模块化路由器/$的功能。共有 8 种不同的升级,每个模块化路由器有 5 个升级栏位。$(p)你可以在升级栏位中放置多个升级,尽管每种可以放入路由器的升级数量有限;见单独介绍升级的页面或升级物品的提示以了解更多信息。" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/activator.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/activator.json new file mode 100644 index 000000000000..4dbd5808d786 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/activator.json @@ -0,0 +1,34 @@ +{ + "name": "执行模块", + "category": "modules", + "icon": "modularrouters:activator_module", + "pages": [ + { + "type": "text", + "text": "这个强大的模块表现得像一个$(italic)假玩家/$,可以对周围的方块或实体使用路由器缓存区中的物品。有三种模式可在 GUI 右边的控制进行选择。以下页面详细描述了每种模式。" + }, + { + "type": "text", + "title": "右击", + "text": "此模式会用路由器缓存区中的物品执行右击操作,和玩家执行是一样的。其中的逻辑与玩家点击是相同的,比如用$(item)打火石/$右击门会打开门,而不是点火。$(p)目标方块(如果有的话)取决于路由器的朝向、模块方向和朝向上方/下方/水平模块设置。" + }, + { + "type": "text", + "title": "右击实体", + "text": "此模式会用路由器缓存区中的物品对附近的一个$(thing)实体/$执行右击操作。例如,你可以使用此模式为牛挤奶,或为绵羊剪毛。$(p)这会导致物品掉落在地面上,比如用路由器缓存区中多于一个的桶点击牛时。" + }, + { + "type": "text", + "title": "攻击实体", + "text": "此模式会用路由器缓存区中的物品对附近的一个一个$(thing)实体/$执行左击操作,对其进行攻击。与其他模式不同,此模式默认会消耗$(l:upgrades/energy)Forge 能量/$。$(p)注:虽然$(l:upgrades/speed)速度升级/$在这里会很有用,但是依然会有武器冷却,因此过量的速度升级只会浪费能量和武器耐久度。" + }, + { + "type": "text", + "text": "执行模块大约有 4 格的距离,和真正的玩家相似。该模块也可以配置成朝向$(thing)上方/$或$(thing)下方/$(默认为$(thing)水平/$)。$(p)$(thing)朝向上方/$对于在路由器旁或上方的完整方块上种植东西是非常方便,而$(thing)朝向下方/$在你想要直接指向路由器周围而非远处的地面时很有用。" + }, + { + "type": "crafting", + "recipe": "modularrouters:activator_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/breaker.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/breaker.json new file mode 100644 index 000000000000..8ca3755b09e2 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/breaker.json @@ -0,0 +1,23 @@ +{ + "name": "破坏模块", + "category": "modules", + "icon": "modularrouters:breaker_module", + "pages": [ + { + "type": "text", + "text": "该模块会尝试破坏与$(l:router/item_router)路由器/$模块$(l:intro/modules#direction)配置方向/$相邻的方块。$(p)它可以破坏大多数方块,但任何硬度为不可破坏(比如原版的$(item)基岩/$或$(item)末地传送门/$)的方块不可以被破坏,流体方块也无法被破坏。方块破坏后,如果可行,其主要掉落物会被自动放进路由器的物品缓存区。" + }, + { + "type": "text", + "text": "破坏模块可以由任意类型的镐(包括模组中的镐)合成而得,但用于合成模块的镐决定了模块的采集等级。比如你用一把$(item)铁镐/$合成了破坏模块,它就无法破坏$(item)黑曜石/$。$(p)此外,镐上的任何$(thing)魔咒/$都会在模块中生效($(thing)精准采集/$和$(thing)时运/$有特殊用途)。" + }, + { + "type": "text", + "text": "默认状态下破坏模块过滤器会对$(thing)预期掉落的物品生效/$,而不是方块本身。比如过滤$(item)石头/$不会在破坏石头时起效,除非模块开启了$(thing)精准采集/$。在此情况下,你应该过滤$(item)圆石/$。$(p)你可以在模块 GUI 中设置按$(thing)方块/$匹配;这对区分不掉落任何东西的方块很有用,比如$(item)冰/$和$(item)浮冰/$。" + }, + { + "type": "crafting", + "recipe": "modularrouters:breaker_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/creative.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/creative.json new file mode 100644 index 000000000000..fc683a97c343 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/creative.json @@ -0,0 +1,11 @@ +{ + "name": "创造模块", + "category": "modules", + "icon": "modularrouters:creative_module", + "pages": [ + { + "type": "text", + "text": "创造模块是一种无法合成的特殊模块,会无中生有,产生物品进入路由器的缓存区。$(p)它将模块的过滤器作为物品列表,每路由器刻都会以轮询的方式遍历过滤器中的物品。它不会受任何其它过滤器设置的影响(白名单/黑名单,NBT 匹配……)。" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/detector.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/detector.json new file mode 100644 index 000000000000..d05fda6713a3 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/detector.json @@ -0,0 +1,15 @@ +{ + "name": "检测模块", + "category": "modules", + "icon": "modularrouters:detector_module", + "pages": [ + { + "type": "text", + "text": "该模块不会操纵物品,而是检测路由器缓存区中的特定物品。如果缓存区中的物品与模块的过滤器相匹配,它就会使路由器在$(l:intro/modules#direction)配置方向/$发出红石信号。$(p)信号等级(默认:15)和信号充能方式(默认:弱)可以通过模块 GUI 调整。" + }, + { + "type": "crafting", + "recipe": "modularrouters:detector_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/distributor.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/distributor.json new file mode 100644 index 000000000000..d80e5a085297 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/distributor.json @@ -0,0 +1,19 @@ +{ + "name": "分配模块", + "category": "modules", + "icon": "modularrouters:distributor_module", + "pages": [ + { + "type": "text", + "text": "这是$(l:modules/sender_2)发送模块 2 型/$的拓展版本,可以向多个目标发送物品。$(thing)潜行右击/$容器将其加入分配模块,再次$(thing)潜行右击/$容器将其移除。$(p)分配模块最多可以向8个目标分配物品。" + }, + { + "type": "text", + "text": "通过 GUI 右侧的控制可以控制分配策略:$(li)$(bold)轮询/$——轮回为每个容器分配,尽可能地平均$(li)$(bold)随机/$——随机选取其中一个目标$(li)$(bold)最近/$——总是填充最近且有空位的目标$(li)$(bold)最远/$——总是填充总是填充最远且有空位的目标。" + }, + { + "type": "crafting", + "recipe": "modularrouters:distributor_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/dropper.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/dropper.json new file mode 100644 index 000000000000..8603a4e6eaa9 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/dropper.json @@ -0,0 +1,15 @@ +{ + "name": "投掷器模块", + "category": "modules", + "icon": "modularrouters:dropper_module", + "pages": [ + { + "type": "text", + "text": "该模块会试着从路由器缓存区投掷物品,将其变为世界中的物品实体。此掉落物会在以模块的$(l:intro/modules#direction)配置方向/$与路由器相邻的位置。物品实体放置时速度为零,和为物品增加烦人的随机速度的原版$(item)投掷器/$不同。" + }, + { + "type": "crafting", + "recipe": "modularrouters:dropper_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_distributor.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_distributor.json new file mode 100644 index 000000000000..bc5279a19433 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_distributor.json @@ -0,0 +1,19 @@ +{ + "name": "能量分配模块", + "category": "modules", + "icon": "modularrouters:energy_distributor_module", + "pages": [ + { + "type": "text", + "text": "该模块很像$(l:modules/energy_output)能量输出/$和$(l:modules/distributor)分配/$模块的结合,因为它可为至多 8 个附近的能量接收方块无线分配 FE(Forge 能量)。$(p)$(thing)潜行右击/$一个方块将其添加至能量分配模块,再次$(thing)潜行右击/$方块将其移除。" + }, + { + "type": "text", + "text": "和$(l:modules/energy_output)能量输出模块/$相似,该模块会从路由器的内部能量缓存区(如果安装了任何$(l:upgrades/energy)能量升级/$)或路由器物品缓存区中的承载能量的物品中提取能量。优先使用内部能量缓存区。" + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_distributor_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_output.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_output.json new file mode 100644 index 000000000000..a859405a5f38 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/energy_output.json @@ -0,0 +1,15 @@ +{ + "name": "能量输出模块", + "category": "modules", + "icon": "modularrouters:energy_output_module", + "pages": [ + { + "type": "text", + "text": "该模块会试图从路由器中向其配置方向相邻的能量接收方块输出 FE(Forge 能量)。该模块会从路由器的内部能量缓存区(如果安装了任何$(l:upgrades/energy)能量升级/$)或路由器物品缓存区中的承载能量的物品中提取能量。优先使用内部能量缓存区。" + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_output_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_1.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_1.json new file mode 100644 index 000000000000..bd14cc1c3ed4 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_1.json @@ -0,0 +1,31 @@ +{ + "name": "挤出模块 1 型", + "category": "modules", + "icon": "modularrouters:extruder_module_1", + "pages": [ + { + "type": "text", + "text": "该模块会向模块配置方向延伸和收回一行方块(来自路由器缓存区)。$(p)默认状态下,该模块会在路由器收到红石信号后延伸方块,并在路由器没有信号时收回它们,但是可以向模块添加红石增强来自定义其行为。" + }, + { + "type": "text", + "text": "使用该模块,可以建造大型的延伸桥和门(如果你曾使用过来自 1.7.10 Tinker's Mechworks 模组的造桥器,你会对这个功能很熟悉)。$(li)也看看$(l:upgrades/camouflage)伪装升级/$,它对隐藏路由器很有用。$(li)默认范围(既可以放置的方块数量)为 12 个,最高可以被$(l:augments/range_up)范围扩大拓展/$增加至 24 个。" + }, + { + "type": "text", + "text": "$(li)如果你在其方块延伸时改变了模块的方向,路由器可能会有一点困惑。在这种情况下,破坏并重放路由器会有帮助。$(li)如果你在方块延伸时破坏了路由器,它不会记住这事,因此你需要手动移除这些方块。" + }, + { + "type": "text", + "text": "$(li)如果你有多个安装挤出模块的路由器(例如用于较宽的门或桥),你也许会发现$(l:upgrades/sync)同步升级/$在保证它们在同一游戏刻运行很有用。$(li)挤出模块(和$(l:modules/placer)放置模块/$一样)也可以在耕地上种植作物种子,在相邻的丛林原木上种植可可豆。" + }, + { + "type": "text", + "text": "需要注意的是用于此模块的$(l:modules/breaker)破坏模块/$会将其采集等级(和魔咒)转移到该模块上。因此,比如你想让你的挤出模块破坏$(item)黑曜石/$,请确保使用$(item)钻石镐/$合成的破坏模块!" + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_1" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_2.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_2.json new file mode 100644 index 000000000000..a0f7e51f2678 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/extruder_2.json @@ -0,0 +1,19 @@ +{ + "name": "挤出模块 2 型", + "category": "modules", + "icon": "modularrouters:extruder_module_2", + "pages": [ + { + "type": "text", + "text": "该模块表现和$(l:modules/extruder_1)挤出模块 1 型/$相似,但有几个重要的差别:$(li)2 型模块不会从路由器缓存器中放置物品,而是来自模块内定义的模板。$(li)此模板会在模块 GUI 右侧出现,有 9 个栏位,并且每个栏位可以放多个物品。放置在模板中的物品为“幽灵”物品。" + }, + { + "type": "text", + "text": "$(li)挤出的方块是“虚拟”的——一种高效的无中生有,但破坏时不会掉落任何东西,也不能被正常合成。$(li)因此,该模块不适合像挤出 1 型一样收获方块,但可以用于放置比 1 型更复杂样式的门/桥等。。$(li)挤出 2 型的默认范围为 24 格,可以被范围升级增加至 48 格。" + }, + { + "type": "crafting", + "recipe": "modularrouters:extruder_module_2" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/flinger.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/flinger.json new file mode 100644 index 000000000000..8b2ca87faf86 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/flinger.json @@ -0,0 +1,19 @@ +{ + "name": "投掷模块", + "category": "modules", + "icon": "modularrouters:flinger_module", + "pages": [ + { + "type": "text", + "text": "该模块和$(l:modules/dropper)投掷器模块/$行为相似,只不过它会为投掷的物品提供可配置的速度,能够将物品扔出可观的距离。你可以通过模块 GUI 调整物品速度、俯仰和偏转角。$(li)俯仰和偏转角按角度计量,相对于基本俯仰和偏转角。" + }, + { + "type": "text", + "text": "$(li)如果模块向上或向下弹出,基准俯仰角分别为 +90° 或 -90°。否则,基准俯仰角为 0°。$(li)如果模块向上或向下弹出,基准偏转角为路由器面向的方向。否则基准偏转角将从模块朝向中获取。$(li)示例:投掷速度 1.0、俯仰/偏转角 0°、水平模块朝向,将会将沿地面将一个物品投掷约7格远。" + }, + { + "type": "crafting", + "recipe": "modularrouters:flinger_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid.json new file mode 100644 index 000000000000..0d4bb73040f4 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid.json @@ -0,0 +1,31 @@ +{ + "name": "流体模块 1 型", + "category": "modules", + "icon": "modularrouters:fluid_module", + "pages": [ + { + "type": "text", + "text": "虽然路由器不能直接处理流体(它们没有内部储罐),但当缓存区有存储流体物品时可以操控流体。这包括桶和任何其他模组添加的流体容器。" + }, + { + "type": "text", + "text": "流体模块的 GUI 可以设置传输方向:$(li)$(bold)传输至路由器/$意味着路由器将会尝试从相邻方块(世界中的流体或承载流体的方块)中提取流体至缓存区的承载流体的物品中。$(li)$(bold)从路由器传出/$意味着路由器将会尝试从缓存区承载流体的物品中将流体输出至世界;要么将流体倒出,要么将其放入相邻的储罐中。" + }, + { + "type": "text", + "text": "其 GUI 也可以设置最大传输速率。请注意它将会$(italic)尝试/$这个最大值,其仍然会被路由器整体的传输速率限制,也就是每秒 1 桶,以及外部流体或流体容器的传输速率。$(p)流体模块过滤栏位只能接受容纳流体的物品,并且会按照容纳的流体过滤,而不是容器物品。" + }, + { + "type": "text", + "text": "添加$(l:upgrades/speed)速度升级/$不会使传输流体更快,只会让其更加频繁。带有 9 个速度升级的路由器依然只能每秒传输 1 桶,只不过会以小数量更频繁地传输。想要增加其总体的传输速率,需添加$(l:upgrades/fluid)流体传输升级/$。$(p)如果路由器盛装了任何危险的流体,比如熔岩桶,请非常小心的修改流体模块设置。如果你搞错了,路由器可不会犹豫将熔岩倒在你身上……" + }, + { + "type": "text", + "text": "请注意,$(bold)如果/$缓存区内有一个流体容器,你也可以将路由器与其他模组的流体管道连接,并将流体输入或输出路由器;流体将会被直接导入/导出容器物品。$(p)你$(italic)不/$需要安装流体模块来干这个;只有你想要主动输出或输入流体时需要流体模块。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid_2.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid_2.json new file mode 100644 index 000000000000..f71c3421a90c --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/fluid_2.json @@ -0,0 +1,19 @@ +{ + "name": "流体模块 2 型", + "category": "modules", + "icon": "modularrouters:fluid_module_2", + "pages": [ + { + "type": "text", + "text": "和$(l:modules/fluid_1)流体模块 1 型/$相似,该模块可以将流体传输至或传输出路由器,如果缓存区有一个承载流体的物品。然而,该模块也可以将远处的方块作为目标,最多 12 格远(有$(l:augments/range_up)范围扩大拓展/$时最多可达 24 格)。" + }, + { + "type": "text", + "text": "用该模块$(thing)潜行右击/$任意方块将其设置为目标。$(p)请注意目标方块并不一定需要是流体储罐;如果你在设置模块目标后破坏该方块,模块可以将一桶流体倒入世界中的那个位置。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_module_2" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/placer.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/placer.json new file mode 100644 index 000000000000..5e4ec178a1f8 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/placer.json @@ -0,0 +1,19 @@ +{ + "name": "放置模块", + "category": "modules", + "icon": "modularrouters:placer_module", + "pages": [ + { + "type": "text", + "text": "该模块会尝试从路由器缓存区取出物品以放置方块,放在路由器模块的$(l:intro/modules#direction)配置方向/$相邻的位置。$(li)如果物品不是一个方块或目标空间被阻挡,就不会发生任何事。$(li)遵循普通 Minecraft 的放置规则;比如甘蔗只能放置在临水的沙子/泥土上。" + }, + { + "type": "text", + "text": "$(li)流体方块,以及如高草丛一类的可替换方块,将会被替换。$(li)放置模块可以在耕地上种植种子,在相邻丛林原木上放置可可豆。" + }, + { + "type": "crafting", + "recipe": "modularrouters:placer_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/player.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/player.json new file mode 100644 index 000000000000..acf604716fee --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/player.json @@ -0,0 +1,31 @@ +{ + "name": "玩家模块", + "category": "modules", + "icon": "modularrouters:player_module", + "pages": [ + { + "type": "text", + "text": "该模块会尝试将物品在路由器和玩家物品栏之间传输。该玩家可以在任何维度的任何地方,因此这是一个非常强大的模块。$(p)该模块可以对玩家输入或输出物品;你可以在模块的 GUI 中进行设置。" + }, + { + "type": "text", + "text": "$(p)模块可以对玩家的 36 栏位主物品栏、4 栏位盔甲物品栏、副手栏或者末影物品栏(由原版$(item)末影箱/$显示)进行操作。你也可以在模块 GUI 中进行设置。当然,$(p)提取/输入的物品可以通过模块被过滤。" + }, + { + "type": "text", + "text": "一个优秀的模块使用案例为从玩家物品栏中提取矿石/圆石/泥土等物品,并将其发送至玩家基地中的主存储系统。加上一点小设计,就可以建立一个用于自动替换盔甲套装的系统(加上来自另一个模组的无线红石,也许还可以在野外实现……)。" + }, + { + "type": "text", + "text": "玩家模块与一位特定的玩家对应;物品提示会显示所有者。它设置为最初合成该模块的玩家,但可以手持模块潜行右击来覆盖。如果你通过其它手段(创造、JEI 作弊模式……)获得了该模块,你也许也需要这么做。" + }, + { + "type": "text", + "text": "将安全升级和该模块合并使用也许是在有不信任玩家服务器中的明智之举;你不会希望一个恶意玩家窃取这个模块……" + }, + { + "type": "crafting", + "recipe": "modularrouters:player_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_1.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_1.json new file mode 100644 index 000000000000..bc4a32a00210 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_1.json @@ -0,0 +1,15 @@ +{ + "name": "抽取模块 1 型", + "category": "modules", + "icon": "modularrouters:puller_module_1", + "pages": [ + { + "type": "text", + "text": "该模块会尝试抽取来自其$(l:intro/modules#direction)配置方向/$相邻的容器中的第一个可抽取物品,放进路由器的缓存区。如果缓存区已满或不存在可以与物品栏中物品堆叠的物品,就不会抽取任何东西。" + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_1" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_2.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_2.json new file mode 100644 index 000000000000..e73fc197b5c8 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/puller_2.json @@ -0,0 +1,20 @@ +{ + "name": "抽取模块 2 型", + "category": "modules", + "icon": "modularrouters:puller_module_2", + "pages": [ + { + "type": "text", + "text": "此模块与$(l:modules/puller_1)抽取 1 型/$行为相似,但可以从非相邻的容器中抽取物品。$(p)容器最远可以达到 12 格(有$(l:augments/range_up)范围扩大拓展/$时最多可以达 24);$(italic)不/$需要清除连线处的障碍物。" + }, + { + "type": "text", + "text": "$(li)用抽取模块 2 型$(thing)潜行右击/$方块以选择目标容器。你将会收到一条确认信息。$(li)当手持设定目标的抽取 2 型时,目标方块将会被高亮显示。" + }, + { + "type": "crafting", + "recipe": "modularrouters:puller_module_2", + "recipe2": "modularrouters:puller_module_2_x4" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_1.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_1.json new file mode 100644 index 000000000000..b7a7fca24563 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_1.json @@ -0,0 +1,16 @@ +{ + "name": "发送模块 1 型", + "category": "modules", + "icon": "modularrouters:sender_module_1", + "pages": [ + { + "type": "text", + "text": "该模块会尝试从路由器缓存区发送物品至与模块$(l:intro/modules#direction)配置方向/$相邻的容器中:$(li)目标容器最多可以离 8 格远(有$(l:augments/range_up)范围扩大拓展/$时最多可以有 16 格远)$(li)目标容器$(italic)必须/$沿 X、Y 或 Z 轴与路由器成直线。$(li)路由器$(italic)必须/$清除与目标连线间的障碍物;不能是不透明方块,但玻璃、栅栏、铁栏杆等方块可以。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_1", + "recipe2": "modularrouters:sender_module_1_alt" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_2.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_2.json new file mode 100644 index 000000000000..6f594ce3907d --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_2.json @@ -0,0 +1,20 @@ +{ + "name": "发送模块 2 型", + "category": "modules", + "icon": "modularrouters:sender_module_2", + "pages": [ + { + "type": "text", + "text": "该模块和$(l:modules/sender_1)发送模块 1 型/$行为相似,但是有更为强大的容器连接能力:$(li)目标容器可以达 24 格远(有$(l:augments/range_up)范围扩大拓展/$时可达 48 格)。$(li)$(italic)不/$需要清除连线上的障碍物。" + }, + { + "type": "text", + "text": "$(li)用发送模块 2 型$(thing)潜行右击/$目标容器,将其选中。你会收到一条确认信息。$(li)当手持设定目标的发送 2 型时,目标方块将会被高亮显示。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_2", + "recipe2": "modularrouters:sender_module_2_x4" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_3.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_3.json new file mode 100644 index 000000000000..ce5badc1e427 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/sender_3.json @@ -0,0 +1,15 @@ +{ + "name": "发送模块 3 型", + "category": "modules", + "icon": "modularrouters:sender_module_3", + "pages": [ + { + "type": "text", + "text": "这个最高阶的发送模块运作方式和$(l:modules/sender_3)发送 2 型/$非常相似,但是可以不受限制地向(任何维度的)任何容器发送物品!$(p)注:目标容器必须被区块加载;$(#228)模块化路由器$()不会为你做这件事。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sender_module_3" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/vacuum.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/vacuum.json new file mode 100644 index 000000000000..eb41d904da76 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/vacuum.json @@ -0,0 +1,19 @@ +{ + "name": "真空模块", + "category": "modules", + "icon": "modularrouters:vacuum_module", + "pages": [ + { + "type": "text", + "text": "该模块会在路由器周围 13x13x13 的立方区域内扫描掉落的物品(即每个方向 6 格远),如果可行,就将它们吸入路由器的缓存区中。$(p)通过$(l:augments/range_up)范围扩大拓展/$可以将最大范围增加到 25x25x25(每个方向 12 格),或通过$(l:augments/range_down)范围缩小拓展/$将范围减少到只有 3x3x3。" + }, + { + "type": "text", + "text": "如果模块的$(l:intro/modules#direction)配置方向/$为$(bold)所有方向/$(默认状态下),扫描的区域将以路由器为中心。$(p)如果模块有配置过的方向,区域将会以该方向偏离 6 格,同时每安装一个范围扩大拓展就会再多一格,每安装一个范围缩小拓展就会再少一格。$(p)比如,方向为$(bold)上方/$时,模块将只会扫描其正上方的一块区域。" + }, + { + "type": "crafting", + "recipe": "modularrouters:vacuum_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/void.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/void.json new file mode 100644 index 000000000000..6ad2f24f3998 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/modules/void.json @@ -0,0 +1,15 @@ +{ + "name": "销毁模块", + "category": "modules", + "icon": "modularrouters:void_module", + "pages": [ + { + "type": "text", + "text": "这个危险的模块会永久地销毁路由器缓存区的物品!强烈建议用$(l:intro/modules#filter)白名单过滤器/$来配置这个模块以防止宝贵物品被意外删除……" + }, + { + "type": "crafting", + "recipe": "modularrouters:void_module" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/item_router.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/item_router.json new file mode 100644 index 000000000000..83f8d2eaf406 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/item_router.json @@ -0,0 +1,53 @@ +{ + "name": "模块化路由器", + "icon": "modularrouters:item_router", + "category": "router", + "pages": [ + { + "type": "text", + "text": "$(thing)模块化路由器/$是本系统的核心。它负责执行所有插入其中的模块,以各种方式移动物品、方块和流体。" + }, + { + "type": "image", + "images": [ + "modularrouters:textures/patchouli/router_gui.png" + ], + "text": "$(italic)装有数个模块和升级的模块化路由器 GUI", + "border": true + }, + { + "type": "text", + "title": "1. 缓存区", + "text": "$(thing)模块化路由器/$有一格栏位的缓存区,可以存放一组物品。该缓存区和正常物品栏一样开放,因此可以通过$(item)漏斗/$和其他模组的运输系统与其进行互动。$(p)此外,对着路由器放置的$(item)比较器/$将会测量栏位的空满程度。" + }, + { + "type": "text", + "title": "2. 模块栏位", + "text": "$(thing)模块化路由器/$有九个栏位用于安装$(l:intro/modules)模块/$。每当路由器运行一次(每秒 1 至 10 次,取决于速度升级),它就会从左到右轮流$(thing)执行/$每个模块。$(p)你可以在GUI中将鼠标悬浮在模块上方按$(4)$(bold)[$(k:modularrouters.configure)]/$或$(thing)鼠标中键/$就能配置安装的模块,无需将它们移除。" + }, + { + "type": "text", + "title": "3. 升级栏位", + "text": "$(thing)模块化路由器/$有五个栏位用于安装$(l:intro/upgrades)升级/$。升级会以多种方式增强路由器的功能;比如说,每个放入的$(l:upgrades/speed)速度升级/$都会时路由器刻来的更快,而每个$(l:upgrades/stack)堆叠升级/$都可使其每次操作处理更多物品。" + }, + { + "type": "text", + "title": "4. 红石控制", + "text": "$(thing)模块化路由器/$在如何响应红石输入方面具有一定的灵活性,这是通过右上角的按钮控制的:$(li)默认:总是运行,忽视红石信号$(li)只在$(italic)无/$红石信号时运行$(li)只在$(italic)有/$红石信号时运行$(li)从不运行$(li)当接收红石脉冲(任何强度高于先前的信号)时运行$(italic)一次/$。" + }, + { + "type": "text", + "title": "5. 低耗模式", + "text": "本着环境友好的精神,路由器有一个选项,可以让路由器待机一段时间后自动放慢速度。$(p)当低耗模式开启时,如果路由器在上$(ttcolor)$(t:在模组配置中可调——'ecoTimeout')5 秒钟/$都没有可做的事,它就会放慢速度,每$(ttcolor)$(t:在模组配置中可调——'lowPowerTickRate')5 秒/$只运行一次(无视$(l:upgrades/speed)速度升级/$)。然而,当它有可做的事时,就会回到正常的工作速度。" + }, + { + "type": "text", + "title": "低耗模式(续)", + "text": "这主要是为了繁忙的服务器设计,用于节省 CPU 周期,但是,对于任何很少运行并且快速传输物品没有那么重要的路由器来说,这可能是一种很好的选择(比如一个有着$(l:modules/vacuum)真空模块/$定期收集羊毛的绵羊牧场)。" + }, + { + "type": "crafting", + "recipe": "modularrouters:item_router" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/termination.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/termination.json new file mode 100644 index 000000000000..d89fb281d4f3 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/router/termination.json @@ -0,0 +1,23 @@ +{ + "name": "终止", + "icon": "minecraft:barrier", + "category": "router", + "pages": [ + { + "type": "text", + "text": "这是一个稍微深奥的话题,在大多数情况下你不需要关心这个问题。然而,当你确实需要它时,它将非常有用!" + }, + { + "type": "text", + "text": "终止可以通过滤器栏位下方的'T'按钮进行配置,且每个模块可以单独配置。默认状态下,它不会激活;如果你开启了一个模块的终止选项,那么$(italic)如果/$该模块在路由器刻工作了,路由器就会停止于此。此轮的后续模块(既在该模块右方的模块)将不会被执行。" + }, + { + "type": "text", + "text": "为什么这会很有用?想象一个路由器被提供了很多物品的场景,比如说来自采石场的物品。你希望销毁$(item)圆石/$,并将其他东西送至另一个容器;因此你会添加一个带有圆石白名单的$(l:modules/void)销毁模块/$,以及向别处发送剩余物品的$(l:modules/sender_1)发送模块/$。" + }, + { + "type": "text", + "text": "当路由器运行时,假设缓存区已经有一组圆石了。虚空模块将会销毁一个圆石,然后发送模块将会把剩余的 63 个圆石送至你的存储系统。这也许不是你想要的。$(p)然而,如果你将销毁模块的终止打开,然后当其运行时,路由器将会在那一游戏刻停止;在销毁模块没有事可以做前,发送模块将不会运行。" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/blast.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/blast.json new file mode 100644 index 000000000000..59d1961e5b19 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/blast.json @@ -0,0 +1,15 @@ +{ + "name": "爆炸升级", + "category": "upgrades", + "icon": "modularrouters:blast_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级可使路由器完全免疫爆炸伤害,也不会被boss级生物摧毁。" + }, + { + "type": "crafting", + "recipe": "modularrouters:blast_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/camouflage.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/camouflage.json new file mode 100644 index 000000000000..ea54dfd12e55 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/camouflage.json @@ -0,0 +1,15 @@ +{ + "name": "伪装升级", + "category": "upgrades", + "icon": "modularrouters:camouflage_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级可以让路由器伪装成其它方块。用模块$(thing)潜行+右击/$一个方块,将该方块记录在伪装升级中。将升级放入路由器后,路由器将会变成记录方块的样子。$(p)注:手持$(thing)模块化路由器/$将会高亮显示周围任何的伪装路由器。" + }, + { + "type": "crafting", + "recipe": "modularrouters:camouflage_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/energy.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/energy.json new file mode 100644 index 000000000000..8d7111b9e101 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/energy.json @@ -0,0 +1,35 @@ +{ + "name": "能量升级", + "category": "upgrades", + "icon": "modularrouters:energy_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级给予了路由器一个内置的能量缓存区。每个升级都会增加缓存区大小 50,000 FE ,传输速率 1,000 FE 每$(italic)路由器刻/$(数值在模组配置中可调)。$(p)有几个场景能量升级会很有用,后续页面将会详细说明。" + }, + { + "type": "text", + "title": "1. 能量路由", + "text": "$(l:modules/energy_output)能量输出/$和$(l:modules/energy_distributor)能量分配/$模块都可以主动从路由器的缓存区输出能量至相邻或周围的方块。$(p)有了这些模块,你可以建造一个有着有限的无线能量传输能力的能量单元。" + }, + { + "type": "text", + "title": "2. 模块供电", + "text": "默认情况下,路由器模块不需要任何能量来运行,攻击模式下的$(l:modules/activator)执行模块/$除外。$(p)然而,能耗是可调的,并且你游玩的模组包中其它模块也有可能消耗能量;所有消耗能量的模块都在其物品提示下方列出了能耗数字。" + }, + { + "type": "text", + "title": "3. 物品充能", + "text": "任何路由器缓存区中承载能量的物品都可以将路由器内置缓存区的能量传输至自身,反之也可以。$(p)当承载能量的物品在物品缓存区中时,路由器 GUI 会在缓存区和能量条之间显示一个可调按钮,用于设置能量传输方向。" + }, + { + "type": "text", + "title": "传输速率", + "text": "需要注意的是提示框中标注的传输速率以 FE 每$(italic)路由器刻/$为单位,和 FE/t 不同。路由器刻速率取决于其$(l:upgrades/speed)速度升级/$;没有速度升级时,每 20 服务器刻为一个路由器刻。因此,总体传输速率可能会低于你预期的数值。" + }, + { + "type": "crafting", + "recipe": "modularrouters:energy_upgrade" + } + ] +} \ No newline at end of file diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/fluid.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/fluid.json new file mode 100644 index 000000000000..453c8b5971b5 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/fluid.json @@ -0,0 +1,15 @@ +{ + "name": "流体传输升级", + "category": "upgrades", + "icon": "modularrouters:fluid_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级只会影响$(l:modules/fluid)流体模块 1 型/$和$(l:modules/fluid_2)流体模块 2 型/$。$(p)它可以增加$(l:router/item_router)路由器/$(各个方向;输入和输出)的总体流体传输速率,由 50mB/刻的基准速率,增加 10mB/刻,最高可达 400mB/刻。因此路由器中最多可放 35 个流体传输升级。" + }, + { + "type": "crafting", + "recipe": "modularrouters:fluid_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/muffler.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/muffler.json new file mode 100644 index 000000000000..795d8c9fe363 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/muffler.json @@ -0,0 +1,19 @@ +{ + "name": "消声器升级", + "category": "upgrades", + "icon": "modularrouters:muffler_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级可以用于消除模块化路由器产生的声音和粒子效果,并且如果一个吵闹的模块经常在玩家附近运行,这可能会很有用。$(li)一个或更多消声器升级将会关闭所有路由器的声效$(li)两个或更多还会关闭所有的粒子效果(光束和飞行的物品)" + }, + { + "type": "text", + "text": "$(li)三个升级还会关闭路由器的启动动画;路由器方块正面的脉冲贴图$(p)请注意,所有声音和粒子效果也可以在模组配置中关闭;该升级只在声音/效果没有关闭的情况下有用。" + }, + { + "type": "crafting", + "recipe": "modularrouters:muffler_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/security.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/security.json new file mode 100644 index 000000000000..a35d7c4844bf --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/security.json @@ -0,0 +1,40 @@ +{ + "name": "安全升级", + "category": "upgrades", + "icon": "modularrouters:security_upgrade", + "pages": [ + { + "type": "text", + "text": "$(thing)安全升级/$有几个重要的功能,详见以下页面。" + }, + { + "type": "text", + "title": "保护", + "text": "安装有安全升级的路由器$(italic)只能/$被该升级白名单中的玩家打开。该升级不能阻止路由器被破坏;但因为破坏的路由器仍然会保留升级和模块,因此玩家不能窃取或重新配置其中的模块/升级。如果你想要防止路由器被破坏,你也许还要探索其他模组的方块保护功能。" + }, + { + "type": "text", + "title": "假玩家", + "text": "几个模块($(l:modules/placer)放置/$、$(l:modules/breaker)破坏/$、$(l:modules/activator)执行/$)以$(thing)假玩家/$的身份运行。默认状态下,这是一个用户名为$(thing)[Modular Routers]/$的玩家,但当安全升级安装后,这些模块以升级所有者的身份运行。在具有领地保护的多人服务器上,这比简单地允许$(thing)[Modular Routers]/$处理领地要安全得多。" + }, + { + "type": "text", + "title": "执行模块攻击模式", + "text": "当$(l:modules/activator)执行模块/$处于$(thing)攻击模式时/$,它会忽视所有在安全升级白名单中的玩家。这通常是一个避免受苦的好主意,如果你有一个高伤害武器在你的路由器中……" + }, + { + "type": "spotlight", + "item": "modularrouters:override_card", + "anchor": "override", + "text": "$(li)有一个叫做$(thing)安全覆盖卡/$的无法合成物品——它可以通过创造模式或 JEI 作弊模式等方式获得。在主手或副手持有此卡的玩家不会受任何安全升级的影响,并且可以访问任何路由器。" + }, + { + "type": "text", + "text": "你可以用安全升级$(thing)右击/$玩家来向升级中添加额外的玩家。$(p)你可以用安全升级$(thing)潜行右击玩家/$将其移除。$(p)每个安全升级最多可以有 6 名额外玩家(因此加上创造者,总共有 7 位),但如果有必要,你可以安装更多的安全升级。" + }, + { + "type": "crafting", + "recipe": "modularrouters:security_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/speed.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/speed.json new file mode 100644 index 000000000000..3eda4af7f06b --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/speed.json @@ -0,0 +1,19 @@ +{ + "name": "速度升级", + "category": "upgrades", + "icon": "modularrouters:speed_upgrade", + "pages": [ + { + "type": "text", + "text": "默认状态下,$(l:router/item_router)路由器/$每 20 服务器刻运行一次,或者说每秒执行一次。每个路由器刻,所有安装的模块都会按顺序执行,从左到右。$(p)如果你需要一个运行更快的路由器,请添加$(thing)速度升级/$;每个速度升级都会减少 2 服务器刻的刻间隔,最低可达每 2 服务器刻运行一次(或者说每秒运行 10 次)。" + }, + { + "type": "text", + "text": "基准刻速率、每次升级增加的路由器刻以及硬下限刻速率都可以在模块配置中配置(config/modularrouters-common.toml)。$(p)出于性能原因,可能时应该优先考虑$(l:upgrades/stack)堆叠升级/$而不是速度升级;明智地使用速度升级,并且仅在绝对需要最大物品传输速率的情况下使用。$(p)请善待服务器(tm)。" + }, + { + "type": "crafting", + "recipe": "modularrouters:speed_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/stack.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/stack.json new file mode 100644 index 000000000000..37cb4d7d1258 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/stack.json @@ -0,0 +1,19 @@ +{ + "name": "堆叠升级", + "category": "upgrades", + "icon": "modularrouters:stack_upgrade", + "pages": [ + { + "type": "text", + "text": "路由器中的模块一次处理单个物品:比如$(l:modules/sender_1)发送模块/$每路由器刻将会从路由器缓存区中发送一个物品,无论缓存区中有多少个物品。" + }, + { + "type": "text", + "text": "通过像路由器中添加堆叠升级,可以增加单次处理的物品。每个堆叠升级都能使每个模块处理的物品翻倍,最多可达 64 个物品,或者物品的原生堆叠大小(比如$(item)末影珍珠/$为 16 个)。$(p)因此,一个路由器中有效的堆叠升级最多为 6 个。" + }, + { + "type": "crafting", + "recipe": "modularrouters:stack_upgrade" + } + ] +} diff --git a/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/sync.json b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/sync.json new file mode 100644 index 000000000000..ffe9bea00e77 --- /dev/null +++ b/projects/1.19/assets/modular-routers/modularrouters/patchouli_books/book/zh_cn/entries/upgrades/sync.json @@ -0,0 +1,27 @@ +{ + "name": "同步升级", + "category": "upgrades", + "icon": "modularrouters:sync_upgrade", + "pages": [ + { + "type": "text", + "text": "该升级用于保证两个或多个路由器同时运行。同步升级有一个 0 至 19 的调整值(既比 20 的基准路由器刻速率少 1)。该调整值可以通过$(thing)右击/$打开同步升级的 GUI 进行设置,或$(thing)潜行右击/$升级快速设置一个随机值。" + }, + { + "type": "text", + "text": "任何安装此升级的路由器,且调整值相同,$(l:upgrades/speed)速度升级/$的安装数量相同,永远会在统一游戏刻运行。实际的调整值不重要;只要在同步的路由器之间,该值是一致的就行。$(p)当你有一组安装有$(l:modules/extruder_1)挤出模块/$的路由器,并想要确保所有模块同时延展/收回时非常有用。" + }, + { + "type": "text", + "text": "高级注释 #1:同步升级的调整值实际上精确指定路由器相对于其刻速率运行的时间。比如默认时路由器每 20 服务器刻运行一次;一个调整值为 15 的同步升级确保路由器$(italic)总是/$在其的 15 刻后运行,并且对$(italic)所有/$安装有 15 调整值同步升级的路由器适用。而 16 调整值的同步升级永远比 15 调整值的慢 1 刻,至少在所有路由器都有着相同数量的$(l:upgrades/speed)速度升级/$的情况下……" + }, + { + "type": "text", + "text": "高级注释 #2:由于$(l:upgrades/speed)速度升级/$会使路由器运作的更频繁,它们会影响同步升级的运作。一个带有 9 个速度升级的路由器每 2 服务器刻(而不是每 20 刻)运作一次。对于该路由器内的同步升级,只需要关注调整值为奇数还是偶数;2(或 4/6/8……)刻的延迟和 0 刻延迟等效!一般情况:在考虑速度升级后,调整值是按路由器的实际刻速率计算的。" + }, + { + "type": "crafting", + "recipe": "modularrouters:sync_upgrade" + } + ] +}