基本信息
我的世界Java版本
26.1.x
1.21.8–1.21.11
1.21–1.21.6
1.20.4
1.20–1.20.2
1.19.4
1.19.2
平台
Fabric
运行环境
分类
搬运团队
搬运资源声明
对于可进行 JAR 文件搬运的许可证,我们提供站内下载服务;其他资源会跳转到原帖下载。资源更新可能不及时,建议前往资源内提供的原帖链接下载最新版本。
详情信息
许可证 LGPL-3.0-only
发布于 2024-12-01
更新于 2026-06-09
更新日志
Minecraft 26.1-pre-2 版 Thermoo 10.0.0 Beta 1
这是适用于 Minecraft 26.1 的 Thermoo 10 测试版构建。到目前为止,我已经实现了计划在 26.1 中发布的所有功能。不过,仍然可能会有进一步的破坏性更改。 正因如此,文档也尚未更新! 等到 26.1 的 API 变更最终敲定后,Thermoo 文档将会完整更新。
Beta 1
- 将
core包的版本提升到v2,以与 26.1 所引入的整体改动风格保持一致。 - 将此前位于
util.v1包下的所有类移动到了core.v2包。 - 将
TemperatureRecord#add(TemperatureRecord)重命名为TemperatureRecord#shift(TemperatureRecord),并弃用了add方法。 - 在
BuiltinTemperatureSources中添加了用于创建TemperatureChange实例的便捷方法。 - 将对 Fabric API 的 API 暴露替换为 LambdAurora 的 Yumi Commons。
- 将所有对 Fabric API 事件类(
net.fabricmc.fabric.api.event.Event)的使用替换为 Yumi 事件类(dev.yumi.commons.event.Event)。- Yumi 事件的用法与 Fabric API 事件基本一致,但这样可以避免将 Thermoo 的 API 绑定到另一个 Minecraft 模组上。
- 这主要是为了让未来基于非 FFAPI 的 Neoforge 版 Thermoo 成为可能。
- 我不会制作不含 FFAPI 的 Frostiful 移植版。
- 重构了
TemperatureLootCondition和SoakedLootCondition类,使其不再是 record。 - 用直接注册
MapCodec的方式替换了EnvironmentProviderType类及其用法。 - 为
EnvironmentProvider的内置实现建立了更加统一、一致的命名方案。类名调整如下:ConstantEnvironmentProvider->ConstantProviderModifyEnvironmentProvider->ModifyProviderTemperatureShiftEnvironmentProvider->ShiftTemperatureProviderSetTemperatureFromPressure->SetTemperatureFromPressureProviderSetPressureFromAltitude->SetPressureFromAltitudeProviderTemperateSeasonEnvironmentProvider->TemperateSeasonSelectorTropicalSeasonEnvironmentProvider->TropicalSeasonSelectorLightThresholdLightProvider->LightThresholdSelectorWeatherStateEnvironmentProvider->WeatherStateSelectorBiomePrecipitationTypeEnvironmentProvider->PrecipitationTypeSelector
Alpha 2
- 用数据驱动的温度源 API 替换了
HeatingMode(#109)。 - 将所有剩余的 API 包移动到了带版本号的包中,具体如下:
com.github.thedeathlycow.thermoo.api.environment.*->com.github.thedeathlycow.thermoo.api.environment.v2.*com.github.thedeathlycow.thermoo.api.item.*->com.github.thedeathlycow.thermoo.api.item.v2.*com.github.thedeathlycow.thermoo.api.season.*->com.github.thedeathlycow.thermoo.api.season.v2.*com.github.thedeathlycow.thermoo.api.util.*->com.github.thedeathlycow.thermoo.api.util.v1.*(这些类之后仍可能会被拆分到更具体的包中)com.github.thedeathlycow.thermoo.api.client.*->com.github.thedeathlycow.thermoo.api.client.v1.*
- 将
ThermooRegistries和ThermooRegistryKeys类移动到了核心 API 中的registry包 - 将
predicate包和ThermooAttributes类移动到了新的实体 API 包:com.github.thedeathlycow.thermoo.api.entity.v1 - 将
ThermooTags中的Item和EntityType标签分别拆分到实体 API(ThermooEntityTypeTags)和物品 API(ThermooItemTags)中的独立类里 - 移除了
ThermooTags。 - 将
StatusBarOverlayRenderEvents中对GuiGraphics的使用替换为GuiGraphicsExtractor
数据驱动的温度源
- 将
com.github.thedeathlycow.thermoo.api.temperature.*下除status包以外的所有类和包移动到了com.github.thedeathlycow.thermoo.api.core.v2。 - 移除了
HeatingMode和HeatingModes类。 - 将方法
TemperatureAware#thermoo$addTemperature(int, HeatingMode)改为TemperatureAware#thermoo$addTemperature(int, TemperatureChange)。 TemperatureChange现在会存储单次温度变化的上下文信息,包括来源、成因、直接成因和位置,并且这些数据现在会传递给各种与温度变化相关的事件。- 添加了新的
ThermooLevel接口,它会通过 mixin 注入到所有Level实例上。ThermooLevel提供对一组共享TemperatureChange实例的访问。
LivingEntityTemperatureTickEvents中的ALLOW_X_UPDATE和ALLOW_X_CHANGE事件已被移除,并替换为TemperatureChangeEvents中更通用的事件。LivingEntityTemperatureTickEvents中的GET_X_CHANGE事件现在变成了一个由getTemperatureChange返回的源键映射事件,这使同类事件能够应用于任意温度源——绝对温度源和环境温度源除外。/thermoo temperature (add|remove)子命令现在可以通过at和by语法更详细地指定温度变化的上下文,本质上就是为TemperatureChange类提供数据。
Alpha 1
- 开始为 API 包添加版本号。
- 目前已影响以下包:
com.github.thedeathlycow.thermoo.api.command->com.github.thedeathlycow.thermoo.api.command.v1com.github.thedeathlycow.thermoo.api.temperature.effect->com.github.thedeathlycow.thermoo.api.temperature.status.v2
- 在 26.1 正式发布前,还会有更多包被移动。
- 目前已影响以下包:
- 从 API 中移除了命令定义类。
- 这些类现在属于实现类。
- 将命令 API 中的
*ArgumentType类重命名为*Argument。 - 用 Temperature Status API 替换了 Temperature Effect API(#104)。
- 添加了温度状态标签(#106)。
迁移示例
一个简单的添加温度迁移示例:
void foo(LivingEntity e) {
- e.thermoo$addTemperature(10, HeatingModes.ACTIVE);
+ e.thermoo$addTemperature(10, e.level().thermoo$temperatureSources().active());
}
温度状态 API
Temperature Effect API 已被重写并重命名为 Temperature Status API,以便更好地区分 JSON 文件(status)和实际执行功能的效果类型。API 整体上仍然做着差不多的事情,不过以下是改动总结:
- 将
thermoo/temperature_effect注册表替换为thermoo/temperature_status注册表 - 新的状态注册表现在是真正的注册表,支持标签、同步、
Holder等功能。 - 用直接的
effects列表项替换了config对象。 - 将类型委托移动到了效果条目中,而不是放在注册表对象的根层级。
- 将
attribute_modifier和scaling_attribute_modifier合并为单一类型,并通过字段加以区分。 - 移除了
empty和sequence类型,因为它们已经不再需要。 - 添加了通过
thermoo:application_order温度状态标签来定义状态应用顺序的方法。
这也移除了一些功能:
- 温度状态不再支持“热重载”;你必须重启服务器才能重新加载它们。
loading_priority字段已不再存在。这个字段原本的设计目的是让 Thermoo Patches 能通过检查 Origin 来覆盖 Frostiful/焦土 的效果。这个用途后来已被启用 API 所取代。目前尚不清楚是否还有其他人将其用于某些确实必要的功能,因此它将被移除。
迁移示例
旧效果
{
"type": "thermoo:damage",
"temperature_scale_range": {
"max": -0.99
},
"config": {
"amount": 1,
"damage_interval": 20,
"damage_type": "minecraft:freeze"
}
}
新状态
{
"temperature_scale_range": {
"max": -0.99
},
"interval": 20,
"effects": [
{
"type": "thermoo:damage",
"amount": 1,
"damage_type": "minecraft:freeze"
}
]
}


