Thermoo Fabric 10.1.5
on 2026 Jul 31- 将模组元数据文件移至通用模块
- 此举应使依赖 Loom 中通用模块的用户能够正常应用 ClassTweaker
Thermoo NeoForge 10.1.5
on 2026 Jul 31- 将模组元数据文件移至通用模块
- 此举应使依赖 Loom 中通用模块的用户也能正常应用类修改器
Thermoo NeoForge 10.1.4
on 2026 Jul 28Thermoo Fabric 10.1.4
on 2026 Jul 28炙狱锭 10.1.4
- 通过 NeoLoom 发布兼容 MDG 的 AT/接口注入
- 更新了阿根廷西班牙语翻译
Thermoo NeoForge 10.1.3
on 2026 Jun 30Thermoo Fabric 10.1.3
on 2026 Jun 30- 修复了 Polymer 补丁导致的崩溃问题
Thermoo Fabric 10.1.1
on 2026 Jun 23Thermoo 10.1:多加载器化
Thermoo 现已全面支持 Fabric 与 NeoForge(适用于 Minecraft 26.1.x)。Thermoo 的 NeoForge 版本不再依赖 Forgified Fabric API,但仍需 Yumi Minecraft Foundation 库(该库已随模组一并提供)。
本次发布亦完全兼容 10.0.x 版本。对本模组的使用者而言,不应存在任何破坏性变更。不过,由于 Thermoo 现在附带一个通用模块,部分面向开发者的接口行为可能发生变化。
更新日志:
- 基于 Neo-Loom 将 Thermoo 迁移至多加载器架构。
- Thermoo 现在提供
thermoo-common、thermoo-fabric与thermoo-neoforge三个 JAR 文件。
- Thermoo 现在提供
- 新增对 NeoForge 的支持。
- 新增
ThermooDataComponentMapBuilder接口,以跨加载器方式实现FabricDataComponentMapBuilder接口所具备的功能。
10.1.1 更新日志:
- 修复 JavaDoc JAR 未生成任何数据的问题
- 修复补丁列表 URL,并从默认配置中移除该选项
Thermoo NeoForge 10.1.1
on 2026 Jun 23炙狱锭 10.1:多加载器化
炙狱锭现已全面支持 Minecraft 26.1.x 的 Fabric 和 NeoForge。炙狱锭的 NeoForge 版本不再需要 Forgified Fabric API,但仍需依赖 Yumi Minecraft 基础库(该库已随模组一同打包)。
本次更新亦完全兼容 10.0.x 版本。对本模组的用户而言,不应存在任何破坏性变更。不过,由于炙狱锭现附带一个通用模块,部分面向开发者的接口行为可能发生变化。
更新日志:
- 基于 Neo-Loom 将炙狱锭迁移至多加载器架构。
- 炙狱锭现提供
thermoo-common、thermoo-fabric和thermoo-neoforge三个 JAR 包。
- 炙狱锭现提供
- 新增对 NeoForge 的支持。
- 新增
ThermooDataComponentMapBuilder接口,以 loader 无关的方式实现原FabricDataComponentMapBuilder接口的功能。
10.1.1 更新日志:
- 修复 JavaDoc JAR 包未生成任何数据的问题
- 修复补丁列表 URL,并从默认配置中移除该选项
Thermoo 10.0.1
on 2026 Jun 22- 修复了属性修饰符温度状态效果错误地自我移除的问题
Thermoo 10.0.0
on 2026 Jun 09Thermoo 10.0.0(适用于 Minecraft 26.1.x)
Thermoo 10 面向 Minecraft 26.1.x 的正式版已发布。Thermoo 10 现已视为稳定版本,后续将不再引入破坏性变更。相关文档也已完成更新。
自 10.0.0-beta.4 版起新增内容:
- 在
ThermooSeasonEvents类中新增IS_COLD_ENOUGH_TO_SNOW事件。- 此事件提供了一种方式,用于判断季节模组是否认为某区域应降雪,而无需依赖多个冗余或不一致的原版判定逻辑。
ThermooSeason中已添加便捷方法以调用该事件。
- 引入更可靠的实体属性注册机制,避免其他模组因过早取消
createLivingAttributes导致无效数据。
9.x 版本至今完整更新日志:
- 升级至 Minecraft 26.1.x
- 将 Fabric API 的 API 暴露替换为 Yumi 类。
- 示例:
net.fabricmc.fabric.api.event.Event→dev.yumi.commons.event.Eventnet.fabricmc.fabric.api.util.TriState→dev.yumi.commons.TriState- Yumi 事件的使用方式与 Fabric API 事件基本一致,但此举使 Thermoo 的 API 不再绑定于其他 Minecraft 模组。
- 此举主要旨在为未来 Thermoo 向非 FFAPI 的 NeoForge 平台移植铺平道路。
- Frostiful 将不会推出无 FFAPI 依赖的移植版本。
- 以温度状态 API 替代原有温度效果 API(#104)。
- 新增温度状态标签(#106)。
- 以数据驱动的温度源 API 替代
HeatingMode(#109)。 - 在 F3 调试界面中新增温度、浸润度及环境提供器的显示条目。
- 新增事件:
TemperatureStatusEvents#ALLOW_TEMPERATURE_STATUS,相比启用/禁用 API,可对温度状态实现更精细的控制。 - 命令
/thermoo temperature status现支持enable或disable语法,作为set_enabled的替代方案。 - 移除此前已弃用的命令
/thermoo environment relativehumidity;用户现须改用/thermoo environment relative_humidity。 - 为 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.v2com.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.*
- 从 API 中移除命令定义类。
- 此类现仅作为实现类存在。
- 将命令 API 中的
*ArgumentType类重命名为*Argument。 - 将
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。- 将此前位于
util包下的所有类迁移至core.v2包。 - 将
TemperatureRecord#add(TemperatureRecord)重命名为TemperatureRecord#shift(TemperatureRecord),并弃用add方法。 - 在
BuiltinTemperatureSources中新增便捷方法,用于创建TemperatureChange实例。 - 对
TemperatureLootCondition与SoakedLootCondition类进行重构,二者不再为记录类(record)。 - 以
MapCodec的直接注册方式替代EnvironmentProviderType类及其全部用法。 - 为
EnvironmentProvider内置实现建立更统一、一致的命名规范。相关类重命名如下:ConstantEnvironmentProvider→ConstantProviderModifyEnvironmentProvider→ModifyProviderTemperatureShiftEnvironmentProvider→ShiftTemperatureProviderSetTemperatureFromPressure→SetTemperatureFromPressureProviderSetPressureFromAltitude→SetPressureFromAltitudeProviderTemperateSeasonEnvironmentProvider→TemperateSeasonSelectorTropicalSeasonEnvironmentProvider→TropicalSeasonSelectorLightThresholdLightProvider→LightThresholdSelectorWeatherStateEnvironmentProvider→WeatherStateSelectorBiomePrecipitationTypeEnvironmentProvider→PrecipitationTypeSelector
- 将 Thermoo 注册表类名调整为与 Mojmap 保持一致:
ThermooRegistries→ThermooBuiltInRegistriesThermooRegistryKeys→ThermooRegistries
数据驱动的温度源
- 将
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类提供所需数据。
迁移示例
简单的温度添加迁移示例:
void foo(LivingEntity e) {
- e.thermoo$addTemperature(10, HeatingModes.ACTIVE);
+ e.thermoo$addTemperature(10, e.level().thermoo$temperatureSources().active());
}
温度状态 API
温度效果 API 已重写并更名为温度状态 API,以便更清晰地区分 JSON 文件(即“状态”)与实际执行功能的效果类型。该 API 大体功能不变,但以下为变更要点摘要:
- 将
thermoo/temperature_effect注册表替换为thermoo/temperature_status注册表。 - 新增的状态注册表现为真正的注册表,支持标签、同步及
Holder等特性。 - 以直接的
effects列表项替代原有的config对象。 - 将类型委派逻辑下放至 effects 条目内部,而非注册表对象根层级。
- 将
attribute_modifier与scaling_attribute_modifier合并为单一类型,通过字段区分。 - 移除
empty与sequence类型,因其已无必要。 - 新增通过
thermoo:application_order温度状态标签定义状态应用顺序的功能。
此更新亦移除了部分功能:
- 温度状态不再支持“热重载”;需重启服务器方可重新加载。
- 移除
loading_priority字段。该字段原本意图是让 Thermoo 补丁可通过 Origin 检查覆盖 Frostiful/Scorchful 的效果。此功能现已被启用 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"
}
]
}
Thermoo 10.0.0-beta.4
on 2026 Mar 26适用于 Minecraft 26.1 的 Thermoo 10.0.0 Beta 3
这是 Thermoo 10 面向 Minecraft 26.1 的又一个 Beta 构建版本,这次的目标是完整正式版。虽然该版本以正式版为目标,但仍然可能出现进一步的破坏性变更。 文档也尚未更新,不过很快就会补上。
Beta 4
- 修复了 Yumi 库未正确加载而导致启动崩溃的问题。
Beta 3
- 更新到 26.1 正式版
- 更新了 Polymer 集成
- 破坏性变更:将 Thermoo 的注册表类重命名为与 Mojmap 一致:
ThermooRegistries->ThermooBuiltInRegistriesThermooRegistryKeys->ThermooRegistries
Beta 2
- 将公共 API 中对
net.fabricmc.fabric.api.util.TriState的使用替换为dev.yumi.commons.TriState - 新增事件:
TemperatureStatusEvents#ALLOW_TEMPERATURE_STATUS,相比启用/禁用 API,它能够对温度状态进行更细粒度的控制。 - 为温度和浸泡添加了 F3 调试画面条目。
- 命令
/thermoo temperature status现在允许使用enable或disable语法,作为set_enabled的替代。 - 移除了此前已弃用的
/thermoo environment relativehumidity用法,用户现在必须使用/thermoo environment relative_humidity。
Beta 1
- 将
core包的版本提升到v2,以配合 26.1 引入变更的整体风格。 - 将此前位于
util.v1包下的所有类移动到core.v2包。 - 将
TemperatureRecord#add(TemperatureRecord)重命名为TemperatureRecord#shift(TemperatureRecord),并弃用了add方法。 - 在
BuiltinTemperatureSources中添加了用于创建TemperatureChange实例的便捷方法。 - 将 API 暴露的 Fabric API 替换为 LambdAurora 的 Yumi Commons。
- 将所有 Fabric API 事件类(
net.fabricmc.fabric.api.event.Event)的使用替换为 Yumi 事件类(dev.yumi.commons.event.Event)。- Yumi 事件的用法与 Fabric API 事件基本一致,但它不会让 Thermoo 的 API 依赖于另一个 Minecraft mod。
- 这主要是为了让 Thermoo 在未来可以实现一个不基于 FFAPI 的 Neoforge 移植版本。
- 我不会制作不带 FFAPI 的 Frostiful 移植版本。
- 重构了
TemperatureLootCondition和SoakedLootCondition类,使其不再是 record。 - 移除了
EnvironmentProviderType类及其用法,改为直接注册MapCodec。 - 为
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返回的、基于 source-key 映射的事件,从而让同类事件可应用于任意温度源——绝对温度源和环境温度源除外。/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/Scorchful 的效果。该功能后来已被启用 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"
}
]
}
Thermoo 10.0.0-beta.3
on 2026 Mar 26Thermoo 10.0.0 Beta 3(适用于 Minecraft 26.1)
这是 Thermoo 10 针对 Minecraft 26.1 的又一个测试版构建,这次目标是完整正式版。虽然这是以正式版为目标,但仍然有可能出现进一步的破坏性更改。 文档也尚未更新,不过很快就会补上。
Beta 3
- 更新至正式版 26.1
- 更新聚合物集成
- 破坏性更改:重命名了 Thermoo 注册表类,以与 Mojmap 保持一致:
ThermooRegistries->ThermooBuiltInRegistriesThermooRegistryKeys->ThermooRegistries
Beta 2
- 将公开 API 中对
net.fabricmc.fabric.api.util.TriState的使用替换为dev.yumi.commons.TriState - 添加了一个新事件:
TemperatureStatusEvents#ALLOW_TEMPERATURE_STATUS,相比启用/禁用 API,它可以对温度状态进行更细粒度的控制。 - 为温度和浸泡添加了 F3 调试画面条目。
- 命令
/thermoo temperature status现在允许使用enable或disable语法,作为set_enabled的替代。 - 移除了此前已弃用的
/thermoo environment relativehumidity用法,用户现在必须使用/thermoo environment relative_humidity。
Beta 1
- 将
core包的版本提升到v2,以与 26.1 所引入的整体变更风格保持一致。 - 将此前位于
util.v1包下的所有类移动到core.v2包。 - 将
TemperatureRecord#add(TemperatureRecord)重命名为TemperatureRecord#shift(TemperatureRecord),并弃用了add方法。 - 向
BuiltinTemperatureSources添加了用于创建TemperatureChange实例的便捷方法。 - 将 API 中暴露的 Fabric API 替换为 LambdAurora 的 Yumi Commons。
- 将所有 Fabric API 事件类(
net.fabricmc.fabric.api.event.Event)的用法替换为 Yumi 事件类(dev.yumi.commons.event.Event)。- Yumi 事件的用法与 Fabric API 事件基本一致,但它不会让 Thermoo 的 API 绑定到另一个 Minecraft 模组。
- 这样做的主要目的是让 Thermoo 未来有可能实现一个不依赖 FFAPI 的 Neoforge 移植版。
- 我不会制作不依赖 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。 - 用温度状态 API 替换了温度效果 API(#104)。
- 添加了温度状态标签(#106)。
迁移示例
一个添加温度的简单迁移示例:
void foo(LivingEntity e) {
- e.thermoo$addTemperature(10, HeatingModes.ACTIVE);
+ e.thermoo$addTemperature(10, e.level().thermoo$temperatureSources().active());
}
温度状态 API
温度效果 API 已被重写并重命名为温度状态 API,以便更好地区分 JSON 文件(status)和实际执行功能的效果类型。该 API 的整体功能基本不变,但以下是更改摘要:
- 将
thermoo/temperature_effect注册表替换为thermoo/temperature_status注册表 - 新的状态注册表现在是真正的注册表,支持标签、同步、
Holder等功能。 - 用直接的
effects列表条目替换了config对象。 - 将类型委托移动到 effects 的各个条目中,而不是放在注册表对象的根部。
- 将
attribute_modifier和scaling_attribute_modifier合并为单一类型,并通过字段加以区分。 - 移除了
empty和sequence类型,因为它们已经不再需要。 - 添加了通过
thermoo:application_order温度状态标签来定义状态应用顺序的方法。
这也移除了一些功能:
- 温度状态不再支持“热重载”;若要重新加载,必须重启服务器。
- 不再有
loading_priority字段。该功能原本是为了让 Thermoo Patches 能通过检查 Origin 来覆盖 Frostiful/Scorchful 的效果。后来这已被启用 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"
}
]
}
Thermoo 10.0.0-beta.2
on 2026 Mar 20适用于 Minecraft 26.1-pre-2 的 Thermoo 10.0.0 Beta 1
这是适用于 Minecraft 26.1 的 Thermoo 10 测试版构建。目前,我已经实现了计划在 26.1 中发布的全部功能。不过,仍然有可能出现进一步的破坏性更改。 因此,文档也尚未更新! 等到 26.1 的 API 更改最终确定后,Thermoo 文档将会全面更新。
Beta 2
- 在公开 API 中,将
net.fabricmc.fabric.api.util.TriState替换为dev.yumi.commons.TriState - 添加了一个新事件:
TemperatureStatusEvents#ALLOW_TEMPERATURE_STATUS,与启用/禁用 API 相比,它可以对温度状态提供更细粒度的控制。 - 为温度和浸湿添加了 F3 调试屏幕条目。
- 命令
/thermoo temperature status现在允许使用enable或disable语法,作为set_enabled的替代方案。 - 移除了此前已弃用的
/thermoo environment relativehumidity用法,用户现在必须使用/thermoo environment relative_humidity。
Beta 1
- 将
core包的版本提升到v2,以契合 26.1 所带来的整体改动风格。 - 将此前位于
util.v1包下的所有类移动到了core.v2包下。 - 将
TemperatureRecord#add(TemperatureRecord)重命名为TemperatureRecord#shift(TemperatureRecord),并弃用了add方法。 - 在
BuiltinTemperatureSources中添加了用于创建TemperatureChange实例的便捷方法。 - 将 API 对 Fabric API 的暴露替换为 LambdAurora 的 Yumi Commons。
- 将所有对 Fabric API 事件类(
net.fabricmc.fabric.api.event.Event)的使用替换为 Yumi 事件类(dev.yumi.commons.event.Event)。- Yumi 事件的用法与 Fabric API 事件基本一致,但它不会让 Thermoo 的 API 依赖于另一个 Minecraft Mod。
- 这主要是为了让 Thermoo 在未来有可能实现一个不基于 FFAPI 的 Neoforge 移植版本。
- 我不会制作不依赖 FFAPI 的 霜冻 (Frostiful) 移植版。
- 重构了
TemperatureLootCondition和SoakedLootCondition类,使其不再是 record。 - 将
EnvironmentProviderType类及其用法替换为直接注册MapCodec。 - 为
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。 - 用温度状态 API 替换了温度效果 API(#104)。
- 添加了温度状态标签(#106)。
迁移示例
一个简单的添加温度迁移示例:
void foo(LivingEntity e) {
- e.thermoo$addTemperature(10, HeatingModes.ACTIVE);
+ e.thermoo$addTemperature(10, e.level().thermoo$temperatureSources().active());
}
温度状态 API
温度效果 API 已被重写并重命名为温度状态 API,以便更好地区分 JSON 文件(状态)与实际执行效果的效果类型。该 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)/焦土 (Scorchful) 的效果。这个功能后来被启用 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"
}
]
}
Thermoo 10.0.0-beta.1
on 2026 Mar 19Minecraft 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"
}
]
}
Thermoo 10.0.0-alpha.2
on 2026 Mar 17Thermoo 10.0.0 Alpha 2 for Minecraft 26.1-snapshot-11
面向 Minecraft 26.1 的 Thermoo 10 的第二个预发布版本。这是一个 Alpha 版本,并且 API 仍然极其不稳定,因为**计划进行更多破坏性改动。**因此,**文档也尚未更新!**当面向 26.1 的 API 改动最终确定后,Thermoo 文档将会完整更新。
此版本主要是为了让我能抢先开始更新 霜冻 (Frostiful) 和 焦土 (Scorchful),同时也将 Thermoo 开放给任何想参与的人进行公开 Bug 测试。
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)。
- 添加了 Temperature Status Tags(#106)。
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.v1。 - 移除了
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返回的、按 source-key 映射的事件,允许同一类事件应用到任意温度来源——但绝对来源与环境来源除外。/thermoo temperature (add|remove)子命令现在通过at与by语法,提供了更多指定温度变化上下文的能力,本质上是为TemperatureChange类提供数据。
迁移示例
添加温度的简单迁移:
void foo(LivingEntity e) {
- e.thermoo$addTemperature(10, HeatingModes.ACTIVE);
+ e.thermoo$addTemperature(10, e.level().thermoo$temperatureSources().active());
}
Temperature Status API
Temperature Effect API 被重写并更名为 Temperature Status API,以更好地区分 JSON 文件(status)与实际执行逻辑的效果类型。该 API 在整体上仍做同样的事情,但以下是改动摘要:
- 将
thermoo/temperature_effect注册表替换为thermoo/temperature_status注册表 - 新的 status 注册表现在是真正的注册表,支持标签、同步、
Holder等全部功能。 - 用直接的
effects列表条目替换了config对象。 - 将类型委托移动到 effects 的条目中,而不是放在注册表对象的根层级。
- 将
attribute_modifier与scaling_attribute_modifier合并为单一类型,通过一个字段区分。 - 移除了
empty与sequence类型,它们不再需要。 - 添加了一种通过
thermoo:application_order温度状态标签来定义 status 应用顺序的方法。
这也移除了一些功能:
- 温度状态不再支持“热重载”;你必须重启服务器才能重新加载它们。
- 不再有
loading_priority字段。其原本意图是允许 Thermoo Patches 在检查 Origin 后,用 Frostiful/Scorchful 的效果进行覆盖。这个用途已被启用 API 取代。目前不清楚是否还有其他人将其用于某些确实必要的功能,因此它将被移除。
迁移示例
旧 effect
{
"type": "thermoo:damage",
"temperature_scale_range": {
"max": -0.99
},
"config": {
"amount": 1,
"damage_interval": 20,
"damage_type": "minecraft:freeze"
}
}
新 status
{
"temperature_scale_range": {
"max": -0.99
},
"interval": 20,
"effects": [
{
"type": "thermoo:damage",
"amount": 1,
"damage_type": "minecraft:freeze"
}
]
}
Thermoo Neoforge 4.8.1-neoforge
on 2026 Mar 09Thermoo 4.8.1 适用于 Minecraft 1.21.1
- 新增了可使用命令
/thermoo temperature effect set_enabled为每个实体动态启用或禁用温度效果的功能。 - 修复了部分温度效果未被正确移除的问题。
- Hotfix 4.8.1:将接口注入数据作为分类构件发布
Thermoo Neoforge 4.8.0-neoforge
on 2026 Mar 09Thermoo 4.8.0 for Minecraft 1.21.1
- 新增了按实体动态启用或禁用温度效果的功能,可使用命令
/thermoo temperature effect set_enabled。 - 修复了部分温度效果未能被正确移除的问题。
Thermoo 10.0.0-alpha.1
on 2026 Mar 06适用于 Minecraft 26.1-snapshot-11 的 Thermoo 10.0.0 Alpha 1
这是 Thermoo 10 在 Minecraft 26.1 上的首个预发布版本。这是一个 alpha 版本,API 目前仍然极不稳定,因为后续还计划进行进一步的破坏性改动。 因此,文档也尚未更新! Thermoo Docs 将在 26.1 的 API 改动最终确定后完整更新。
这个版本主要是为了让我能抢先开始更新霜冻和焦土,同时也向任何愿意参与的人开放 Thermoo 的公开 Bug 测试。
- 已开始为 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。 - 已将温度效果 API 替换为温度状态 API(#104)。
- 已添加温度状态标签(#106)。
温度状态 API
温度效果 API 已被重写并重命名为温度状态 API,以便更好地区分 JSON 文件(状态)与实际执行工作的效果类型。这个 API 整体上完成的事情基本相同,不过以下是改动总结:
- 将
thermoo/temperature_effect注册表替换为thermoo/temperature_status注册表 - 新的状态注册表现在是真正的注册表,支持标签、同步、
Holder等等。 - 用直接的
effects列表项替换了config对象。 - 将类型委托移动到效果条目中,而不是注册表对象的根级别。
- 将
attribute_modifier和scaling_attribute_modifier合并为单一类型,并通过字段加以区分。 - 移除了
empty和sequence类型,它们已不再需要。 - 添加了通过
thermoo:application_order温度状态标签来定义状态应用顺序的方法。
这也移除了一些功能:
- 温度状态不再支持“热重载”;你必须重启服务器才能重新加载它们。
loading_priority字段已被移除。这个字段原本的设计目的是让 Thermoo Patches 能通过检查起源来覆盖霜冻/焦土的效果。这个用途后来被启用 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"
}
]
}
Thermoo 4.8.0
on 2026 Mar 03Thermoo 4.8.0 for Minecraft 1.21.1
- 新增通过命令
/thermoo temperature effect set_enabled动态按实体单独启用或禁用体温效果的功能。 - 修复了部分体温效果未能正确移除的问题。
Thermoo 9.1.0
on 2026 Feb 21Thermoo 9.1:大气压
- 新增通过命令
/thermoo temperature effect set_enabled动态按实体启停温度效果的功能。 - 在
ConfiguredTemperatureEffect类中新增 Java API,用于动态按实体启停温度效果。 - 在 F3 调试画面中新增 Thermoo 专属条目,默认处于禁用状态。
- 新增一种大气压环境组件类型。
- 此组件以毫巴(mbar)为单位存储局部大气压。
- 新增一个大气压游戏环境属性。
- 该属性用作环境组件映射的默认值。
- 在
/thermoo environment命令中新增子命令,用于获取指定方块位置的大气压数值。 - 新增
thermoo:set_temperature_from_pressure环境提供器类型。 - 新增
thermoo:set_pressure_from_altitude环境提供器类型。 - 现在可通过
/thermoo environment relative_humidity查询相对湿度。- 旧命令
/thermoo environment relativehumidity仍可使用,但已弃用。
- 旧命令



