
沙漏
床铺会平滑地加速时间流逝,直至白天。自定义昼夜时长。
Hourglass 是一个 Minecraft Forge 模组,让你能够掌控时间的流逝。它允许你自定义昼夜循环的长度,并通过加速时间流速来改变 Minecraft 的睡眠机制。
功能特性
该模组(可选地)用平滑且自然的早晨过渡取代了原版的睡眠功能,通过在你躺在床上时加速时间流逝来实现这一点。在多人游戏中,时间的流逝速度将根据当前正在睡觉的玩家比例而加快。这消除了对任何睡眠投票系统或玩家数量门槛的需求,因为任意数量的玩家都能对夜晚的持续时间产生影响。
Hourglass 允许自定义昼夜循环的时长,并且可以独立控制白天和夜晚的速度。不同于原版的 20 分钟时长,你可以放慢时间,让 Minecraft 中的一天与现实生活中的一天一样长,或者加速夜晚的流逝以获得更轻松的体验。
Hourglass 还提供了多种时间效果,可以加速 Minecraft 中各种元素的进程,以适应当前的时间速度。一些例子包括作物生长、草丛生长、天气、药水效果、熔炉、漏斗等。大多数这些时间效果默认是禁用的,但可以通过设置其相关的 配置选项 来启用。
兼容性
Hourglass 与以下模组兼容:
- Comforts
- Serene Seasons
- Enhanced Celestials
- Quark
- Quark 的“改进睡眠”模块会干扰 Hourglass 的睡眠功能。请参阅下面的注释。
- Quark 的“削弱时钟”选项会破坏 Hourglass 中的床界面时钟。要么应禁用 Quark 的调整,要么应通过
displayBedClock配置禁用 Hourglass 床时钟。
- Morpheus
- 若要同时使用 Morpheus,需要禁用 Hourglass 的睡眠功能。请参阅下面的注释。
- Good Night's Sleep
睡眠投票模组
Hourglass 与启用睡眠投票或具有睡眠百分比系统的模组(如 Quark 和 Morpheus)兼容,但它们与此模组的睡眠功能存在冲突。这些功能应在其对应的模组中禁用,或者应禁用 Hourglass 中的睡眠功能。可以通过命令或文件修改 enableSleepFeature 选项来禁用睡眠功能。
其他兼容性说明
主世界目前是唯一受支持的维度。然而,Minecraft 中的大多数维度(包括自定义维度)都从主世界获取时间信息,因此它们会以相同的速率流逝时间。
命令
/hourglass config <配置键> [<值>]
修改或显示指定配置选项的当前值。
如果省略 <值> 参数,此命令将显示配置选项的当前值。
某些配置无法通过此命令使用,需要通过配置文件访问。
/hourglass query timeSpeed
显示时间当前流逝的速度。
/hourglass query sleeperCount
显示当前维度中正在睡觉的玩家比例。
配置
所有配置值都可以在运行时更改,无需重新加载游戏。
虽然许多配置选项可以通过 配置命令 访问,但有些只能通过访问模组的配置文件来获取。大多数选项位于模组的 服务器配置文件 中,无论是在单人世界还是在多人服务器中。少数客户端特定选项也存在于 客户端配置文件 中。
整合包开发者可以通过先在测试世界中调整服务器设置,然后将文件移动到其整合包的 ./defaultconfigs 文件夹中,来自定义他们整合包中的 Hourglass 服务器设置。Forge 会将 defaultconfigs 文件夹中的所有文件移动到所有新创建世界的 serverconfig 文件夹中。
在自定义 Hourglass 时,时间速度 通过倍率控制。值为 1 等同于原版速度(一个完整的昼夜循环为 20 分钟)。将 daySpeed 和 nightSpeed 设置为 0.5 将时间速度减半,使一整天时长加倍至 40 分钟。同样,将配置的速度加倍至 2.0 将导致缩短的一天,从一个早晨到下一个早晨仅需 10 分钟。
警告: 将 daySpeed 和 nightSpeed 设置为高于 3600 的值可能对光敏性癫痫患者不安全。
默认服务器配置
相对于 Minecraft 文件夹的位置:
- 单人世界:
./saves/<存档>/serverconfig/hourglass-server.toml - 多人服务器:
./world/serverconfig/hourglass-server.toml
[time]
#白天时间流逝的速度。
#白天定义为从 23500(黎明中段)到次日 12500(黄昏中段)之间的任何时间。
#原版速度:1.0
#范围:0.0 ~ 24000.0
daySpeed = 1.0
#夜晚时间流逝的速度。
#夜晚定义为从 12500(黄昏中段)到 23500(黎明中段)之间的任何时间。
#原版速度:1.0
#范围:0.0 ~ 24000.0
nightSpeed = 1.0
[time.effects]
#应用后,此效果会将天气的进程与当前时间速度同步。
#即,随着时间加速,雨会更快停止。晴朗天气不受影响。
#设置为 SLEEPING 时,此效果仅在至少有一名玩家在维度中睡觉时应用。
#注意:如果游戏规则 doWeatherCycle 为 false,则此设置不适用。
#允许值:NEVER, ALWAYS, SLEEPING
weatherEffect = "SLEEPING"
#应用后,此效果会将随机刻速度与当前时间速度同步,迫使作物、树木和草丛的生长速度变为 baseRandomTickSpeed 乘以当前时间速度。
#设置为 SLEEPING 时,除非至少有一名玩家在维度中睡觉,否则 randomTickSpeed 将设置为 baseRandomTickSpeed。
#更多关于随机刻速度影响的信息可以在这里找到:https://minecraft.fandom.com/wiki/Tick#Random_tick
#警告:此设置会覆盖 randomTickSpeed 游戏规则。要修改基础随机刻速度,
#请使用 baseRandomTickSpeed 设置,而不是直接更改游戏规则。
#允许值:NEVER, ALWAYS, SLEEPING
randomTickEffect = "NEVER"
#randomTickEffect 时间效果使用的基础随机刻速度。
#范围:> 0
baseRandomTickSpeed = 3
#应用后,此效果会使药水效果的进程适应当前时间速度。
#如果时间速度为 1.0 或更低,则此效果不适用。
#这可能会对拥有大量玩家的服务器性能产生负面影响。
#设置为 ALWAYS 时,此效果适用于维度中的所有玩家,无论白天还是夜晚。
#设置为 SLEEPING 时,此效果仅适用于正在睡觉的玩家。
#允许值:NEVER, ALWAYS, SLEEPING
potionEffect = "NEVER"
#应用后,此效果会使玩家饥饿效果的进程适应当前时间速度。
#这会导致当食物条满时恢复更快,当食物条过低时受到伤害更快。
#如果时间速度为 1.0 或更低,则此效果不适用。
#设置为 ALWAYS 时,此效果适用于维度中的所有玩家,无论白天还是夜晚。不建议在更高难度设置下使用。
#设置为 SLEEPING 时,此效果仅适用于正在睡觉的玩家。
#允许值:NEVER, ALWAYS, SLEEPING
hungerEffect = "NEVER"
#应用后,此效果会使方块实体(如熔炉、漏斗和刷怪笼)的进程适应当前时间速度。
#警告:此时间效果对性能有显著影响。
#如果时间速度为 1.0 或更低,则此效果不适用。
#设置为 SLEEPING 时,此效果仅在至少有一名玩家在维度中睡觉时应用。
#允许值:NEVER, ALWAYS, SLEEPING
blockEntityEffect = "NEVER"
[sleep]
#启用或禁用此模组的睡眠功能。启用此设置将修改原版睡眠功能
#并可能与其他睡眠模组冲突。如果禁用,睡眠部分中的所有设置将不适用。
enableSleepFeature = true
### 此设置定义单人游戏中的睡眠时间速度 ###
#当所有玩家都在睡觉时,时间流逝的最大速度。
#110 的值几乎等同于原版中睡觉所需的时间。
#范围:0.0 ~ 24000.0
sleepSpeedMax = 120.0
#当满员服务器中只有 1 名玩家睡觉时,时间流逝的最小速度。
#范围:0.0 ~ 24000.0
sleepSpeedMin = 1.0
#当所有玩家都在睡觉时,时间流逝的速度。
#设置为 -1 可禁用此功能(当所有玩家都睡觉时,将使用 sleepSpeedMax)。
#范围:-1.0 ~ 24000.0
sleepSpeedAll = -1.0
#此参数定义了将睡觉玩家百分比转换为时间速度的插值函数的曲率。
#使用的函数是归一化可调 S 型函数。
#0.5 的值表示线性关系。
#较小的值使曲线向 X 轴弯曲,而较大的值使其向 Y 轴弯曲。
#此图形可用作调整曲线的参考:https://www.desmos.com/calculator/w8gntxzfow
#感谢 Dino Dini 提供的函数:https://dinodini.wordpress.com/2010/04/05/normalized-tunable-sigmoid-functions/
#感谢 SmoothSleep 提供的想法:https://www.spigotmc.org/resources/smoothsleep.32043/
#范围:0.0 ~ 1.0
sleepSpeedCurve = 0.3
#设置为 'true' 时,当玩家在早晨醒来时天气将放晴,如同原版一样。
#设置为 'false' 时,强制天气自然变化。当 accelerateWeather 启用时,增加真实感。
#注意:如果游戏规则 doWeatherCycle 为 false,则忽略此设置。
clearWeatherOnWake = true
#当为 true 时,床界面将显示一个时钟。
#玩家可以通过 hideBedClock 配置设置禁用此时钟。
allowBedClock = true
#此部分定义通知消息的设置。
#所有消息都支持 Minecraft 格式代码 (https://minecraft.fandom.com/wiki/Formatting_codes)。
#所有消息都有可以使用以下格式插入的变量:${variableName}
#type 选项控制消息出现的位置:
# SYSTEM: 作为聊天中的消息出现。(例如,"重生点已设置")
# GAME_INFO: 显示在快捷栏上方的游戏信息 (例如,"你现在不能休息,床离得太远")。
#target 选项控制消息发送给谁:
# ALL: 向服务器上的所有玩家发送消息。
# DIMENSION: 向当前维度中的所有玩家发送消息。
# SLEEPING: 向当前维度中所有正在睡觉的玩家发送消息。
# AWAKE: 向当前维度中所有醒着的玩家发送消息。
[sleep.messages]
#此消息在睡眠周期完成后发送。
[sleep.messages.morning]
#可用变量:
#sleepingPlayers -> 当前维度中正在睡觉的玩家数量。
#totalPlayers -> 当前维度中的玩家总数(不计算旁观者)。
#sleepingPercentage -> 当前维度中正在睡觉的玩家百分比(不包括 % 符号)。
message = "§e§oTempus fugit!"
#设置此消息出现的位置。
#允许值:SYSTEM, GAME_INFO
type = "GAME_INFO"
#设置此消息发送给谁。
#target 为 'SLEEPING' 将把消息发送给所有刚刚醒来的玩家。
#允许值:ALL, DIMENSION, SLEEPING, AWAKE
target = "DIMENSION"
#此消息在玩家进入其床时发送。
[sleep.messages.enterBed]
#可用变量:
#player -> 开始睡觉的玩家。
#sleepingPlayers -> 当前维度中正在睡觉的玩家数量。
#totalPlayers -> 当前维度中的玩家总数(不计算旁观者)。
#sleepingPercentage -> 当前维度中正在睡觉的玩家百分比(不包括 % 符号)。
message = "${player} 正在睡觉。 [${sleepingPlayers}/${totalPlayers}]"
#设置此消息出现的位置。
#允许值:SYSTEM, GAME_INFO
type = "GAME_INFO"
#设置此消息发送给谁。
#允许值:ALL, DIMENSION, SLEEPING, AWAKE
target = "DIMENSION"
#此消息在玩家离开其床时发送(未被早晨自然唤醒)。
[sleep.messages.leaveBed]
#可用变量:
#player -> 离开床的玩家。
#sleepingPlayers -> 当前维度中正在睡觉的玩家数量。
#totalPlayers -> 当前维度中的玩家总数(不计算旁观者)。
#sleepingPercentage -> 当前维度中正在睡觉的玩家百分比(不包括 % 符号)。
message = "${player} 已经离开了他们的床。 [${sleepingPlayers}/${totalPlayers}]"
#设置此消息出现的位置。
#允许值:SYSTEM, GAME_INFO
type = "GAME_INFO"
#设置此消息发送给谁。
#允许值:ALL, DIMENSION, SLEEPING, AWAKE
target = "DIMENSION"
默认客户端配置
相对于 Minecraft 文件夹的位置:./config/hourglass-client.toml
[gui]
#当为 false 时,如果服务器设置允许,床界面会显示一个时钟。
#当为 true 时,时钟被隐藏。
hideBedClock = false
#设置床时钟的屏幕对齐方式。
#允许值:TOP_LEFT, TOP_CENTER, TOP_RIGHT, CENTER_LEFT, CENTER_CENTER, CENTER_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT
clockAlignment = "TOP_RIGHT"
#此设置通过每刻更新时钟位置来防止上床时时钟晃动。
#副作用是,时钟在首次查看时不会像原版那样晃动。如果 displayBedClock 为 false,则此设置
#未被使用。
preventClockWobble = true
#设置时钟与屏幕边缘之间的距离。
#如果 clockAlignment 为 CENTER_CENTER,则未使用。
#范围:> 0
clockMargin = 16
#设置床时钟的缩放比例。
#范围:> 1
clockScale = 64
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。