
太阳井
可制作的动态太阳井灯笼可在地下投射真实的天空光线。支持作物、动态树木、雨水、降雪及风暴!可将任意方块标记为生长灯或完整太阳井,适用于整合包。
查看大图☀️ Sunwell
一款可以悬挂在天花板上的便携天窗。在地下也能享受真实的天空光照——一切由你掌控。
Sunwell 添加了可合成的 太阳井灯笼,能够将真正的 Minecraft 天空光照 投射到封闭空间中。农作物可以生长,动态树木得以存活,日光传感器会响应,雨水和雪花会飘落而下,闪电也会在暴风雨中劈穿光柱。
就像露天环境一样——只不过你可以将它挂在天花板上。整合包作者可以获得一个 基于标签的引擎:无需编写 Java 代码,即可将任何方块注册为简单的生长灯或功能完整的天气感知太阳井。
✨ 为什么不用火把?
| 💡 太阳井灯笼 | 🔥 火把 / 萤石 | |
|---|---|---|
| 光照类型 | 天空光照 —— 植物实际检测的光照 | 仅方块光照 |
| 促进动态树木生长 | ✅ 是(需要 ≥ 12 级天空光照) | ❌ 否 |
| 激活日光传感器 | ✅ 是,暴露于“白天”时 | ❌ 否 |
| 光照覆盖地面 | ✅ 逐渐扩大的光锥 —— 灯笼挂得越高,光照范围越广 | ❌ 随距离衰减 |
| 天气与时间 | ⚙️ 可选(标签 + 配置) | 始终开启 |
| 生物生成 | 🚫 在光照区域内被抑制 | 常规规则 |
🏮 太阳井灯笼
- 🪝 与原版灯笼放置方式一致 —— 可放置于地面或悬挂在天花板上。
- 🔦 以向下扩大的光锥投射天空光照 —— 挂得越高,照亮的地面范围越广。宛如一个小太阳。
- 🌗 球体实时映射其所代表的天空 —— 太阳、月亮、云层或雷暴云(见下文)。
- 🧪 合成配方: 石英 ×3 · 铁栏杆 ×4 · 萤石 · 玻璃。
⚠️ 从 2.0.x 升级 —— 灵魂井灯笼已被移除(现在一个灯笼即可呈现所有天空状态)。已放置的灵魂井灯笼将无法通过升级保留,任何引用
sunwell:soulwell_lantern的内容都需要更新。
🌤️ 球体是一扇窗户
看向灯笼内部,你会看到它所代表的天空。它会随着天空的变化而同步变化。
| 天空状态 | 球体呈现 |
|---|---|
| ☀️ 晴天 | 温暖的太阳,带有缓慢旋转的光芒射线 |
| 🌙 夜晚 | 苍白清冷的月亮 —— 更暗,无射线 |
| 🌧️ 雨天 | 平坦的灰色阴天云层 |
| ⛈️ 雷暴 | 黑暗的雷暴云,每次闪电都会闪现白光 |
⛅ 光锥内的天气
为灯笼添加完整天气标签(或使用默认的太阳井灯笼),天空便会随之降临:
- 🌧️ 雨水 会穿过整个被照亮区域,并在落地处溅起水花 —— 下雨时是细雨绵绵,暴雨时则是倾盆大雨。
- ❄️ 寒冷生物群系中的降雪会缓缓飘落,并在地面上逐渐堆积成雪层,随着时间推移使光照区域变得银装素裹。
- ⚡ 雷暴天气中,闪电会劈穿光柱。闪电会随机落在光池中的某个位置,但倾向于击中区域内最高的目标 —— 无论是树木、生物还是玩家。光池中任意位置的避雷针都能无害地接住闪电,并为其红石电路提供能量。避雷针附近的闪电概率会显著提高。
🏷️ 基于标签的行为机制
每个太阳井方块都需要 #sunwell:sunwell_source 标签。仅需此标签即可成为静态生长灯 —— 始终开启的虚拟天空,无天气效果,无降雨。通过添加额外标签可解锁更多功能:
| 标签 | 效果 |
|---|---|
sunwell:sunwell_source |
必需。 为农作物和树木填充虚拟天空光照 |
sunwell:dynamic_exposure |
光照跟随昼夜、地表天空和天气变化 |
sunwell:undead_burning |
白天时,亡灵生物在光照区域内会被阳光灼烧 |
sunwell:rain_through |
雨水、降雪和闪电可以穿透 —— 积雪还会堆积成层 |
太阳井灯笼 默认集齐全部四种标签。完整的天气呈现效果(天空映射球体、雨/雪、积雪堆积、闪电)需要同时具备 dynamic_exposure 和 rain_through 两种标签。
📦 注册你自己的方块(数据包 & KubeJS)
展开查看
数据包 —— data/sunwell/tags/blocks/sunwell_source.json(在 1.21+ 版本中文件夹为单数形式 tags/block):
{
"replace": false,
"values": [
"yourmod:ceiling_lamp"
]
}
KubeJS —— 静态生长灯,或完整的天气感知功能:
ServerEvents.tags('block', event => {
// 静态生长灯
event.add('sunwell:sunwell_source', 'yourmod:ceiling_lamp')
// 完整功能
const block = 'yourmod:solar_panel'
event.add('sunwell:sunwell_source', block)
event.add('sunwell:dynamic_exposure', block)
event.add('sunwell:undead_burning', block)
event.add('sunwell:rain_through', block)
})
标签赋予能力;下方的配置开关则作为整合包级别的总开关,控制这些标签。
🎛️ 配置
所有选项均位于 config/sunwell-server.toml 文件中。
⚙️ 完整配置参考
展开查看
区域与光照
| 选项 | 默认值 | 描述 |
|---|---|---|
maxRadius |
12 |
每个光源的水平扩散范围(格) |
maxDepth |
40 |
光源下方的最大深度(格) |
coneSpread |
1 |
每下降一格额外获得的半径。0 = 垂直光柱 |
skyLevel |
14 |
虚拟天空亮度。14 可促进所有植物生长;15 会触发原版 canSeeSky 判定 |
attenuateByDepth |
false |
光照随距离光源的远近而衰减 |
行为 —— 天气、灼烧、生成、闪电、积雪
| 选项 | 默认值 | 描述 |
|---|---|---|
followDayNightCycle |
true |
夜间调暗具有 dynamic_exposure 标签的光源 |
respondToWeather |
true |
降雨和暴风雨会使 dynamic_exposure 光源变暗 |
respondToSurfaceLight |
true |
将光照强度与光柱上方真实的室外天空亮度关联 |
lanternFlux |
true |
为 dynamic_exposure 光源添加微妙的闪烁效果 |
allowRainThrough |
true |
控制 rain_through 标签的雨/雪穿透总开关 |
weatherShaftParticles |
true |
客户端的雨/雪光柱粒子效果(仅限完整灯笼配置) |
snowAccumulation |
true |
下雪时在地面上堆积雪层 |
snowAccumulateOdds |
12 |
下雪光锥内增加雪层的 1/N 概率。数值越高 = 堆积越慢 |
snowMaxLayers |
8 |
积雪的最大深度(1–8 层;8 = 完整方块) |
lightningThroughOdds |
80000 |
完整光柱内闪电发生的 1/N 概率。0 = 关闭 |
lightningRodBoost |
40 |
4 格范围内有避雷针时,闪电概率提高至此倍数。1 = 无加成 |
lightningVisualOnly |
false |
true = 仅闪光和音效。默认 false:真实闪电会造成火焰/伤害,但避雷针总能无害地接住 |
enableUndeadBurning |
true |
控制 undead_burning 标签的亡灵灼烧总开关 |
blockHostileSpawns |
true |
阻止敌对生物在任何光照区域内生成 |
性能 —— nodeBudgetPerTick(80000,每 tick 的洪泛填充单元数)和 chunkBudgetPerTick(24,每 tick 重建的区块数)。如果你运行大量高天花板灯具且 coneSpread 值较大,可同时调高这两项。
📦 支持版本
| Minecraft | 加载器 | Java |
|---|---|---|
| 1.20.1 | Forge 47.4+ | 17 |
| 1.21.1 | NeoForge 21.1+ | 21 |
两个版本功能完整 —— 包括灯笼、视觉效果、标签系统以及 Amendments 墙壁/手持灯笼兼容性。在 1.21.1 版本中,数据包文件夹名为单数形式(tags/block、recipe、loot_table)。
📜 致谢与许可
Sunwell 是 SdataG 的原创模组 —— 所有代码、模型、纹理和视觉效果均为本项目原创;未移植任何素材。天花板天窗的创意在模组界并不陌生(例如 Ferreus Veritas 的 Skylight Lanterns);Sunwell 是一个独立的重新实现。
正在加载版本记录…



正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。