
耐心
为你的工作站增加制作时间,将瞬间完成的物品转变为一个需要投入时间的过程。
为你的工作台添加制作时间——点击输出槽位会启动一个计时进程,而不是立即完成制作。进度以视觉覆盖层显示,并伴有音效和反馈。完全由服务端权威控制:配置在玩家加入时同步到所有客户端,并支持重载。
⚙️ 特性
制作延迟 — 基础时间随材料数量缩放,并受到一系列乘数修正(全局、按容器、按材料、按产物、按配方)。移动时会阻止制作。创造模式完全绕过延迟。
经验缩放 — 制作速度通过自定义的 patience:crafting_speed 属性随经验等级提升。该属性暴露给其他模组以便集成。
进度衰减 — 启用时,制作过程中移动会导致进度流失,而不是直接取消。被打断的制作所剩余的进度也会随时间衰减。当衰减被禁用时,任何移动都会立即取消制作并重置进度。
小游戏 — 一个可选的技能检定,可在制作中途触发。进度覆盖层的随机一段被指定为成功区域。当进度到达该区域时,覆盖层变为黄色——此时点击输出槽位可立即完成制作。未命中则会施加时间惩罚。在没有小游戏区域激活时提前点击输出槽位也会施加惩罚。绿色表示成功,红色表示失败。
饥饿 — 每次完成制作都会增加疲劳。当饥饿值低于阈值时,制作速度会受到惩罚。
音效 — 每个工作台都有独特的循环制作音效和完成音效。音效可在三个层级上覆盖:按容器、按物品或按标签。
屏幕震动 — 制作过程中可选的镜头震动。默认禁用。
🔨 支持的容器
内置对 17 个工作台的预配置支持。所有工作台均可通过配置禁用、自定义或扩展。
| 容器 | |
|---|---|
| 原版 | 玩家背包(2×2)、工作台、锻造台、铁砧、砂轮、切石机、制图台、织布机 |
| 模组 | Curios、Inventorio、Sawmill、Woodworks、Easel Does It、Galosphere、Clayworks、Cold Sweat、Hexerei |
🛠️ 配置
配置存储在游戏配置目录下的 patience.json 中。安装 Cloth Config 后可使用 GUI 界面(Fabric/Quilt 通过 Mod Menu,NeoForge/Forge 通过模组界面)。GUI 涵盖通用设置——乘数映射和容器定义仅支持 JSON。
通用
| 设置 | 默认值 | 描述 |
|---|---|---|
debug |
false |
将槽位点击、界面名称、制作状态变更和移动检测记录到控制台 |
enable_sounds |
true |
播放制作和完成音效 |
default_crafting_sound |
patience:crafting |
制作过程中播放的音效 |
default_finish_sound |
patience:finish |
完成时播放的音效 |
default_penalty_sound |
patience:penalty |
惩罚点击时播放的音效 |
default_success_sound |
patience:success |
小游戏成功时播放的音效 |
global_time_multiplier |
1.0 |
应用于所有制作时间的乘数(0.0 - 100.0) |
经验
速度公式:(attributeValue × baseSpeed) + (speedPerLevel × min(xpLevel, maxLevelCap))
| 设置 | 默认值 | 描述 |
|---|---|---|
enabled |
true |
启用基于经验等级的制作速度缩放 |
multiplier |
1.0 |
整体制作速度乘数(0.0 - 100.0) |
base_speed |
1.0 |
经验加成前的基础速度(0.01 - 100.0) |
speed_per_level |
0.02 |
每经验等级的额外速度(0.0 - 10.0) |
max_level_cap |
200 |
超过此等级的部分被忽略(0 - 30000) |
衰减
| 设置 | 默认值 | 描述 |
|---|---|---|
enabled |
true |
移动时流失进度,而不是取消制作 |
rate |
2.0 |
移动或闲置时每 tick 损失的进度(0.0 - 100.0) |
屏幕震动
| 设置 | 默认值 | 描述 |
|---|---|---|
enabled |
false |
制作过程中的镜头震动 |
intensity |
0.5 |
震动强度(0.0 - 5.0) |
饥饿
| 设置 | 默认值 | 描述 |
|---|---|---|
enabled |
true |
启用饥饿疲劳和速度惩罚 |
exhaustion_cost |
0.1 |
每次完成制作增加的疲劳值(0.0 - 40.0) |
penalty.enabled |
true |
低饥饿时减慢制作速度 |
penalty.threshold |
6 |
触发惩罚的饥饿值(0 - 20) |
penalty.multiplier |
0.5 |
低于阈值时的速度乘数(0.0 - 10.0) |
小游戏
| 设置 | 默认值 | 描述 |
|---|---|---|
enabled |
true |
启用技能检定小游戏 |
chance |
0.5 |
每次制作触发的概率(0.0 - 1.0) |
window_width |
0.15 |
成功区域大小占总进度的比例(0.01 - 0.5) |
penalty_percent |
0.25 |
失败时损失的进度占剩余进度的比例(0.0 - 1.0) |
penalty_cancels_craft |
true |
当惩罚点击将进度减至零时取消制作 |
乘数
乘数映射允许对制作时间进行精细控制。所有映射在 JSON 中均为 Map<String, Float>。标签键使用 # 前缀(例如 "#minecraft:planks": 1.5)。
by_mod— 按模组命名空间缩放时间(例如"minecraft": 1.0)by_item— 按物品 ID 缩放时间(例如"minecraft:stick": 0.5)by_tag— 按物品标签缩放时间(例如"#minecraft:planks": 1.5)by_type— 按配方类型缩放时间(例如"minecraft:crafting": 2.0)by_recipe— 按特定配方 ID 缩放时间
这些在 JSON 中分组于 ingredient_multipliers、output_multipliers 和 recipe_multipliers 对象下。材料和产物乘数支持 by_mod、by_item、by_tag。配方乘数支持 by_type、by_recipe。
物品音效
item_sounds 是一个 Map<String, String>,用于按物品或标签覆盖制作音效(例如 "minecraft:stick": "patience:crafting"、"#minecraft:planks": "patience:sawmill")。
容器
containers 数组保存每个工作台的配置。每个条目支持:
| 字段 | 类型 | 描述 |
|---|---|---|
enabled |
boolean | 切换此容器的制作时间 |
screen_class |
string | 容器界面的完整 Java 类路径(例如 net.minecraft.client.gui.screens.inventory.CraftingScreen) |
recipe_type |
string | 用于配方乘数查找的配方类型 ID(例如 minecraft:crafting)。若省略,则从菜单类型推断 |
time_multiplier |
float | 容器特定的时间乘数 |
output_slot |
int | 玩家点击以开始制作的槽位索引(输出预览出现的位置) |
result_slot |
int | 完成后成品放置的槽位索引(-1 = 第一个可用的背包槽位) |
ingredient_slots |
string | 定义扫描材料的槽位范围——例如 "1-9"、"0,2,4"、"0-2,4,6-8" |
ingredient_mode |
string | 材料如何影响制作时间:"slot" 每个被占用的槽位计一次,"stack" 乘以堆叠数量,"custom" 使用硬编码的模组特定兼容逻辑 |
show_overlay |
boolean | 渲染进度条 |
overlay_texture |
string | 覆盖层的纹理路径 |
overlay_direction |
string | 填充方向:"right"、"left"、"up"、"down" |
overlay_x / overlay_y |
int | 覆盖层位置偏移 |
overlay_width / overlay_height |
int | 覆盖层尺寸 |
crafting_sound |
string | 覆盖此容器的制作音效 |
finish_sound |
string | 覆盖此容器的完成音效 |
💬 命令
| 命令 | 权限 | 描述 |
|---|---|---|
/patience reload |
Op(等级 2) | 从磁盘重新加载配置并同步到所有已连接的玩家 |
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。