生物喜爱阳光

生物喜爱阳光

一个Minecraft Fabric模组,防止选定的生物在阳光下燃烧,并允许它们在白天生成。

怪物

怪物喜爱阳光

阳光不再是安全区。

怪物喜爱阳光让你决定哪些敌对生物应该在白天生成,哪些生物应该在阳光下燃烧。该模组保留原版生成规则,只是移除了某些怪物必须在黑暗中生成的限制。

这意味着白天可能会变得和夜晚一样危险,而无需彻底改变 Minecraft 的生成系统运作方式。

该模组最初是为了配合 Mob Control 而创建,旨在作为打造属于你自己的白天生存体验的轻量级基础。

Mob Control 并非必需,但它与怪物喜爱阳光配合得非常好,因为它允许渐进式的难度缩放、自定义生成时间,以及针对白天和夜晚生物的不同行为规则。


特性

  • 允许选定的敌对生物在白天生成。
  • 防止选定的生物在阳光下燃烧。
  • 每种实体类型均可完全配置。
  • 可配置维度。
  • 可配置怪物方块光照上限。
  • 保留原版的生物群系限制、生成权重和特殊生成规则。

工作原理

该模组不会创建新的生成位置或改变怪物生成速率。

相反,它改变了通常阻止敌对生物在白天出现的规则。

因此:

  • 僵尸仍然在僵尸通常生成的地方生成。
  • 尸壳仍然需要沙漠。
  • 史莱姆仍然需要史莱姆区块或沼泽。
  • 特定于结构的生成仍然是特定于结构的。
  • 稀有生物仍然是稀有的。

一个有用的思考方式是:

如果一个生物在夜间可以在这个位置自然生成,那么它在白天也可以在那里生成(如果在配置中启用)。

由于该模组保留了原版的生成机制,只移除了白天的限制,它通常应该能很好地与修改生物属性、AI 或生成行为的模组配合使用,包括 Mob Control。


配置

配置文件位于:

config/mobs-love-sunlight.json

示例

{
  "noDaylightBurningEntityTypes": [
    "minecraft:zombie",
    "minecraft:skeleton"
  ],

  "daytimeSpawningEntityTypes": [
    "minecraft:zombie",
    "minecraft:skeleton",
    "minecraft:creeper",
    "minecraft:spider"
  ],

  "affectedDimensions": [
    "minecraft:overworld"
  ],

  "monsterSpawnBlockLightLimit": 0
}

默认配置

默认情况下,不允许任何敌对生物在白天生成。

默认配置仅为少数亡灵生物禁用了阳光燃烧。如果你想启用白天生成,你必须显式地将所需的实体类型添加到:

daytimeSpawningEntityTypes

选项

noDaylightBurningEntityTypes

一个实体标识符列表,这些实体将不再在阳光下燃烧。

示例:

[
  "minecraft:zombie",
  "minecraft:skeleton"
]

affectedDimensions

该模组应生效的维度列表。

示例:

[
  "minecraft:overworld",
  "aether:the_aether"
]

monsterSpawnBlockLightLimit

控制敌对生物可以生成的最高方块光照等级。

原版数值:

0

允许范围:

0-15

daytimeSpawningEntityTypes

允许在白天生成的敌对生物列表。

示例:

[
  "minecraft:zombie",
  "minecraft:creeper",
  "minecraft:spider"
]

难度警告

启用白天生成会显著改变 Minecraft 的难度。

即使只启用一种生物类型,也会使游戏前期的生存变得相当困难。

启用一种生物类型和启用所有原版敌对生物之间的区别,主要在于敌对生物容量上限被填满的速度,而不是白天是否变得危险。

例如:

  • 单独僵尸就能迅速占领地表,因为它们有很高的生成权重。
  • 骷髅使收集早期资源变得更加危险,因为它们可以从远处攻击。
  • 苦力怕可以摧毁地形和早期庇护所。
  • 末影人仍然相对少见,因为它们天生稀有。

由于保留了原版的生成权重和生成位置,具体难度在很大程度上取决于你选择启用的生物。

如果你启用了所有原版敌对生物,可以预期白天将成为持续的生存挑战,而不是安全的探索时段。


启用所有原版敌对生物生成

此列表仅包含在主世界中自然生成的生物。将其他实体添加到该列表是无害的,但也没有任何效果。

"daytimeSpawningEntityTypes": [
  "minecraft:bogged",
  "minecraft:creeper",
  "minecraft:drowned",
  "minecraft:enderman",
  "minecraft:skeleton",
  "minecraft:spider",
  "minecraft:stray",
  "minecraft:witch",
  "minecraft:zombie",
  "minecraft:zombie_villager"
]

为所有原版亡灵生物禁用阳光燃烧

noDaylightBurningEntityTypes 只影响在原版 Minecraft 中已经在阳光下燃烧的生物。将其他实体添加到该列表是无害的,但也没有任何效果。

幻翼被有意排除在外,因为它们有不同的生成和消失规则,如果它们不在阳光下燃烧,会随时间累积。如果你想添加它们,也可以。

"noDaylightBurningEntityTypes": [
  "minecraft:zombie",
  "minecraft:zombie_villager",
  "minecraft:skeleton",
  "minecraft:stray",
  "minecraft:bogged",
  "minecraft:wither_skeleton"
]

推荐的 Mob Control 配置

该模组最初是与 Mob Control 一起设计的,后者可用于在游戏前几个 Minecraft 天中逐步引入白天生成。

下面的示例配置不是立即启用完整的白天生成,而是缓慢增加生成频率:

天数 预期体验
第 1 天 大部分和平,在探索时偶尔遇到敌对生物。
第 2-3 天 预期频繁遭遇战和常规的战斗或逃跑,但仍然偶有平静时刻。
第 4 天及以上 白天变得持续危险。长时间待在庇护所外变得越来越困难。

这将创造一个更平滑的难度曲线,同时仍然允许每个配置的生物最终在白天生成。

安装配置

  1. 安装 Mob Control。
  2. 运行 Minecraft 一次以生成默认配置。
  3. 打开:
config/mobcontrol.toml
  1. 将以下规则复制到配置文件中。
################################################################################
# Day 1
################################################################################

[[mob]]
name=["minecraft:bogged", "minecraft:creeper", "minecraft:enderman", "minecraft:husk", "minecraft:skeleton", "minecraft:spider", "minecraft:stray", "minecraft:witch", "minecraft:zombie", "minecraft:zombie_villager"]

[[mob.rule]]
name="day1Spawns"
type="natural"
dimension=["minecraft:overworld"]
day=0
time-of-day="<12000"
run=1
cool-down=[80,200]
spawn.count=1

################################################################################
# Day 2-3
################################################################################

[[mob.rule]]
name="day2And3Spawns"
type="natural"
dimension=["minecraft:overworld"]
day=[1,2]
time-of-day="<12000"
run=100
cool-down=[40,150]

################################################################################
# Day 4+
################################################################################

[[mob.rule]]
name="day4PlusSpawns"
type="natural"
dimension=["minecraft:overworld"]
day=">2"
time-of-day="<12000"
run=100

################################################################################
# Keep vanilla nighttime spawning
################################################################################

[[mob.rule]]
name="vanillaNight"
type="natural"
dimension=["minecraft:overworld"]
time-of-day=">12000"
run=100

################################################################################
# Keep non-natural spawning (spawn eggs, spawners, commands, etc.)
################################################################################

[[mob.rule]]
type="all"

示例:创造一个末日

该模组最初是为了与 Mob Control 配合使用而编写,而不是替代它。

虽然 Mob Control 可以使用 type="control" 规则自行创建白天生成,但这样做会替换受影响生物的原版自然生成。所有生成规则——包括生物群系限制、结构、生成权重和特殊情况——都必须手动重新创建。

怪物喜爱阳光采取了不同的方法。

它保留原版自然生成不变,只移除白天的限制。这允许 Mob Control 的 type="natural" 规则修改现有的原版生成,而不是替换它们。

实际上这意味着你可以:

  • 在保持原版生成表的同时启用白天生成;
  • 在游戏过程中调整生成概率;
  • 在特定天数禁用或限制白天生成;
  • 使用 Mob Control 改变生物行为或属性;
  • 将本模组与生物群系和结构模组结合使用,而无需重建生成规则。

这使得在贴近原版生成行为的同时,更容易创造基于进度推进的生存体验。

重要说明

生物仍会燃烧

配置用于白天生成的生物,除非它也被包含在:

noDaylightBurningEntityTypes

否则它仍然会在阳光下燃烧。


生物可能不在你期望的地方生成

该模组只移除白天的限制。

它不会改变:

  • 生物群系
  • 生成权重
  • 结构
  • 特殊生成条件
  • 生成概率

如果一个生物在夜间很少生成,它在白天也会很少生成。


模组维度

默认情况下,只有主世界受影响。

许多模组维度使用自定义生成系统,可能会有不同的行为。


兼容性信息

该模组使用 mixin 修改原版生成。

以下系统被修改:

  • DimensionType.MonsterSettings
  • HostileEntity#getPathfindingFavor
  • MobEntity#isAffectedByDaylight

因此,可能与以下类型的模组产生冲突:

  • 修改怪物光照需求;
  • 改变敌对生物生成检查;
  • 替换生物寻路偏好计算;
  • 完全重写生物生成;
  • 替换阳光燃烧行为。

潜在不兼容模组的示例包括:

  • 白天生成模组;
  • 自定义难度模组;
  • 生成大改模组;
  • 重写原版生物 AI 或生成的模组。

与仅修改生成表的数据包的兼容性通常良好。


整合包作者信息

该模组有意保留原版的生成规则和概率。

它旨在与以下内容良好配合:

  • 生物群系模组;
  • 结构模组;
  • 生物属性模组;
  • 生物行为模组;
  • AI 大改模组;
  • 更改生成列表的数据包。

如果另一个模组也修改了上述列出的相同 mixin 目标,加载顺序和兼容性可能会有所不同。