血月设置

基本信息

属性 值
分类 Settings(全部键同分类,无独立 BloodMoon 分类)
配置项数 12
处理类 lumien.randomthings.Handler.Bloodmoon.ServerBloodmoonHandler
客户端类 ClientBloodmoonHandler(仅视觉效果)
实体 EntityBloodmoonCircle(ID 5)

功能

血月是本 mod 最大的独立玩法系统,由 12 个配置项控制触发、生成、行为与视觉表现。

触发判定

ServerBloodmoonHandler 以夜晚开始为触发点(Handler/Bloodmoon/ServerBloodmoonHandler.java:64-69):

boolean isNight = angle >= 0.215F && angle <= 0.785F;
boolean wasNight = nightMap.getOrDefault(dim, isNight);
nightMap.put(dim, isNight);
boolean duskJustStarted = isNight && !wasNight;
boolean dawnJustStarted = !isNight && wasNight;

夜晚定义:angle ∈ [0.215, 0.785],按维度分别记录状态。

实际触发条件(:95-96):

if (forced || (date >= Settings.BLOODMOON_INITIAL_PAUSE
        && (isBloodMoonCycle(date) || Math.random() < Settings.BLOODMOON_CHANCE))) {

即满足以下之一即可:强制触发、到达初始暂停天数且(周期命中 或 概率命中)。

周期判定(:201-203):

if (Settings.BLOODMOON_CYCLE > 0 && day > 0) {
    return day % Settings.BLOODMOON_CYCLE == 0;
}

BLOODMOON_CYCLE 为 0 时周期机制关闭,完全退回概率判定。

维度白名单

:57-59 先做维度过滤:

if (Settings.BLOODMOON_DIM_WHITELIST.length != 0
        && !ArrayUtils.contains(Settings.BLOODMOON_DIM_WHITELIST, dim)) {

空列表 = 允许所有维度;非空时只有列出的维度有效。默认 {0}(仅主世界),来源见 RTConfiguration.java:163-167。

这也意味着血月传感器 在白名单外的维度恒输出 0(其判定带 dimensionId 参数)。

12 个配置项

触发

配置项 默认 类型 说明 行
BloodMoonChance 0.05 double 每晚触发概率(0 = 从不,1 = 每晚) :131-135
BloodMoonCycle 0 int 每 X 天循环一次,0 = 关闭周期 :136-140
BloodMoonInitialPause 5 int 世界创建后前 X 天不触发(setMinValue(0)) :141-145

生物生成

配置项 默认 类型 说明 行
BloodMoonSpawnSpeed 3 int 敌人生成速度倍率(0 = 原版) :119-120
BloodMoonSpawnLimitMult 3 int 实体数量上限倍率 :121-125
BloodMoonSpawnRange 3 int 敌人生成距玩家的最近距离(原版 = 24) :126-130

生成循环为 for (int i = 0; i < Settings.BLOODMOON_SPAWNSPEED; i++)(:79),因此 SpawnSpeed 越大生成越多。

游戏规则判定(:78):if (!Settings.BLOODMOON_RESPECT_GAMERULE || (spawnHostiles && doMobSpawning)) —— 即 doMobSpawning 游戏规则与 spawnHostiles 共同决定是否生成。

行为

配置项 默认 类型 说明 行
BloodMoonNoSleep true boolean 血月期间禁止玩家睡觉 :146-150
BloodmoonVanish false boolean 血月生成的怪物在黎明时消失 :151-152
BloodmoonRespectGamerule true boolean 是否遵守 doMobSpawning 游戏规则 :153-157
BloodmoonMessage true boolean 主世界玩家是否收到血月提示 :158-162
BloodMoonDimensionWhitelist {0} int[] 允许血月的维度;空 = 全部 :163-167

视觉(4 项独立开关)

配置项 默认 说明 行
BloodMoonRedMoon true 血月期间月亮变红 :168-169
BloodMoonRedLight true 血月期间光照染红 :170-171
BloodMoonBlackFog true 雾变黑以配合红色天空 :172-176
BloodMoonRedSky true 天空变红 :177-178

这 4 项对应 ClientBloodmoonHandler 的纯客户端渲染处理,互不依赖,可单独关闭。

数值

数值名 值
配置项数 12
夜晚角度区间 [0.215, 0.785]
默认触发概率 0.05(5%)
默认周期 0(关闭)
默认初始暂停 5 天
默认白名单 {0}(仅主世界)
默认生成速度 3×
默认生成距离 3 格(原版 24)
提示语言键 text.bloodmoon.command / .notify / .nosleep(zh_CN.lang:169-171)

交互

触发 行为
夜晚开始 按概率 / 周期判定是否触发
/rt bloodmoon [dimID] 强制触发(见 指令)
血石 仪式 强制触发(需 50 点血量)
BloodmoonMessage 开启 主世界玩家收到「血月升起…」

相关条目