Realistic Sun Burn

Realistic Sun Burn

亡灵生物会根据真实的太阳方向燃烧,而不仅仅是天空光照。墙壁、建筑和地形现在会投射出真实的阴影。

怪物

真实阳光灼烧

厌倦了僵尸仅仅因为头顶天空光照等级达标,就在屋顶下被烧成灰烬?本模组彻底重做了亡灵生物的阳光灼烧机制,改为基于太阳在天空中真实位置的定向光线投射检测。

这个模组做了什么?

在原版 Minecraft 中,亡灵生物在白天燃烧是基于一个简单的垂直天空光照检测。这意味着单层方块下方的僵尸总是安全的,但清晨阳光下,一堵 10 格厚的墙后面的僵尸却依然会燃烧,因为游戏只会向上看。

真实阳光灼烧用从生物头部朝向实际太阳位置的精确光线投射取代了该机制:

  • 早晨/傍晚:太阳低垂在地平线上。墙壁和建筑投下长长的阴影,保护了生物。
  • 头顶的单层方块无法保护生物,如果阳光是从侧面照射过来的话。
  • 深坑和峡谷能在太阳当前角度无法照射到时保护生物。
  • 玻璃和透明方块能让阳光透过,就像现实生活一样。

特性

  • 定向太阳光线投射:生物只在与太阳有直接视线时才会燃烧
  • 适用于所有生物,包括原版和模组添加的
  • 性能优化:交错检查(每只生物每秒 2 次)并缓存结果,对性能影响极小
  • 调试可视化:在游戏内通过粒子查看实际的光线投射
  • 游戏内配置界面,可从模组菜单访问

命令

所有命令都需要管理员权限(等级 2):

/sunburn debug 切换调试粒子。橙色火焰 = 生物在燃烧。蓝色火焰 = 生物在阴影中。烟雾 = 阻挡光线的方块。

/sunburn info 显示当前太阳方向、仰角和一天中的时间。

/sunburn test 测试你正在注视的生物,并在聊天栏中查看完整的光线投射结果。

配置

可通过 模组菜单 > 真实阳光灼烧 > 配置 访问:

  • 光线距离(默认 384,范围 16-512):最大光线投射距离(以方块为单位)。
  • 检查间隔(默认 10,范围 1-40):每只生物检查之间的游戏刻数。10 = 每秒两次。
  • 粒子密度(默认 1.5,范围 0.5-5.0):调试粒子之间的间距(以方块为单位)。

兼容性

  • Forge 1.20.1(Forge 47.x)
  • 所有使用原版阳光灼烧系统的模组生物
  • 光影包:本模组在服务端运行,与光影无关
  • 多人游戏:可在专用服务器上运行

工作原理

  1. 一个 Mixin 拦截原版的 isSunBurnTick() 方法,取消其默认行为。
  2. 根据世界的天体角度计算出太阳的方向。
  3. 从生物的眼睛位置向太阳方向发射一条光线。
  4. 透明方块(玻璃、花朵、火把)会被跳过。不透明方块会阻挡光线。
  5. 如果光线未被阻挡,生物就会燃烧。如果被阻挡,生物则安全地处于阴影中。