BBSMC Logo
模组整合包光影资源包软件汉化插件数据包地图
登录
模组插件数据包光影资源包整合包软件汉化地图
登录
设置
Thermoo

Thermoo

一个适用于 Fabric 和 Quilt 的温度库模组。

游戏机制
1,41012 years ago
Thermoo

Thermoo

一个适用于 Fabric 和 Quilt 的温度库模组。

1,410
1
游戏机制

基本信息

我的世界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

平台

\n \n \n Fabric
NeoForge
\n \n \n \n \n \n \n \n \n Quilt

运行环境

客户端和服务端

分类

游戏机制

其他链接

反馈问题 查看源码
Modrinth

搬运团队

BBSMC 官方搬运(1)
BBSMC 官方搬运(1)团队

搬运资源声明

对于可进行 JAR 文件搬运的许可证,我们提供站内下载服务;其他资源会跳转到原帖下载。资源更新可能不及时,建议前往资源内提供的原帖链接下载最新版本。

详情信息

许可证 LGPL-3.0-only
发布于 2024-12-01
更新于 2026-06-09
简介更新日志版本百科反馈讨论

全部版本

1
2
5

Thermoo 10.0.0

on 2026 Jun 09
下载

Thermoo 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.Event
    • net.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.v1
    • com.github.thedeathlycow.thermoo.api.temperature.effect → com.github.thedeathlycow.thermoo.api.temperature.status.v2
    • 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.*
  • 从 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 → ConstantProvider
    • ModifyEnvironmentProvider → ModifyProvider
    • TemperatureShiftEnvironmentProvider → ShiftTemperatureProvider
    • SetTemperatureFromPressure → SetTemperatureFromPressureProvider
    • SetPressureFromAltitude → SetPressureFromAltitudeProvider
    • TemperateSeasonEnvironmentProvider → TemperateSeasonSelector
    • TropicalSeasonEnvironmentProvider → TropicalSeasonSelector
    • LightThresholdLightProvider → LightThresholdSelector
    • WeatherStateEnvironmentProvider → WeatherStateSelector
    • BiomePrecipitationTypeEnvironmentProvider → PrecipitationTypeSelector
  • 将 Thermoo 注册表类名调整为与 Mojmap 保持一致:
    • ThermooRegistries → ThermooBuiltInRegistries
    • ThermooRegistryKeys → 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 -> ThermooBuiltInRegistries
    • ThermooRegistryKeys -> 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 -> ConstantProvider
    • ModifyEnvironmentProvider -> ModifyProvider
    • TemperatureShiftEnvironmentProvider -> ShiftTemperatureProvider
    • SetTemperatureFromPressure -> SetTemperatureFromPressureProvider
    • SetPressureFromAltitude -> SetPressureFromAltitudeProvider
    • TemperateSeasonEnvironmentProvider -> TemperateSeasonSelector
    • TropicalSeasonEnvironmentProvider -> TropicalSeasonSelector
    • LightThresholdLightProvider -> LightThresholdSelector
    • WeatherStateEnvironmentProvider -> WeatherStateSelector
    • BiomePrecipitationTypeEnvironmentProvider -> 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.v1
      • com.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 26
下载

Thermoo 10.0.0 Beta 3(适用于 Minecraft 26.1)

这是 Thermoo 10 针对 Minecraft 26.1 的又一个测试版构建,这次目标是完整正式版。虽然这是以正式版为目标,但仍然有可能出现进一步的破坏性更改。 文档也尚未更新,不过很快就会补上。

Beta 3

  • 更新至正式版 26.1
  • 更新聚合物集成
  • 破坏性更改:重命名了 Thermoo 注册表类,以与 Mojmap 保持一致:
    • ThermooRegistries -> ThermooBuiltInRegistries
    • ThermooRegistryKeys -> 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 -> ConstantProvider
    • ModifyEnvironmentProvider -> ModifyProvider
    • TemperatureShiftEnvironmentProvider -> ShiftTemperatureProvider
    • SetTemperatureFromPressure -> SetTemperatureFromPressureProvider
    • SetPressureFromAltitude -> SetPressureFromAltitudeProvider
    • TemperateSeasonEnvironmentProvider -> TemperateSeasonSelector
    • TropicalSeasonEnvironmentProvider -> TropicalSeasonSelector
    • LightThresholdLightProvider -> LightThresholdSelector
    • WeatherStateEnvironmentProvider -> WeatherStateSelector
    • BiomePrecipitationTypeEnvironmentProvider -> 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.v1
      • com.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 -> ConstantProvider
    • ModifyEnvironmentProvider -> ModifyProvider
    • TemperatureShiftEnvironmentProvider -> ShiftTemperatureProvider
    • SetTemperatureFromPressure -> SetTemperatureFromPressureProvider
    • SetPressureFromAltitude -> SetPressureFromAltitudeProvider
    • TemperateSeasonEnvironmentProvider -> TemperateSeasonSelector
    • TropicalSeasonEnvironmentProvider -> TropicalSeasonSelector
    • LightThresholdLightProvider -> LightThresholdSelector
    • WeatherStateEnvironmentProvider -> WeatherStateSelector
    • BiomePrecipitationTypeEnvironmentProvider -> 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.v1
      • com.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 19
下载

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 -> ConstantProvider
    • ModifyEnvironmentProvider -> ModifyProvider
    • TemperatureShiftEnvironmentProvider -> ShiftTemperatureProvider
    • SetTemperatureFromPressure -> SetTemperatureFromPressureProvider
    • SetPressureFromAltitude -> SetPressureFromAltitudeProvider
    • TemperateSeasonEnvironmentProvider -> TemperateSeasonSelector
    • TropicalSeasonEnvironmentProvider -> TropicalSeasonSelector
    • LightThresholdLightProvider -> LightThresholdSelector
    • WeatherStateEnvironmentProvider -> WeatherStateSelector
    • BiomePrecipitationTypeEnvironmentProvider -> 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.v1
      • com.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 17
下载

Thermoo 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.v1
      • com.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 09
下载

Thermoo 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 09
下载

Thermoo 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.v1
      • com.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 03
下载

Thermoo 4.8.0 for Minecraft 1.21.1

  • 新增通过命令 /thermoo temperature effect set_enabled 动态按实体单独启用或禁用体温效果的功能。
  • 修复了部分体温效果未能正确移除的问题。

Thermoo 9.1.0

on 2026 Feb 21
下载

Thermoo 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 仍可使用,但已弃用。

Thermoo Neoforge 4.7.1+neoforge

on 2025 Dec 22
下载

Thermoo for Neoforge 1.21.1

Thermoo 现已通过 Forgified Fabric API 移植至 Neoforge 1.21.1。此移植版本可能尚未完全稳定,因此以 Alpha 版本发布。不过,该版本不再需要 Connector,因而运行表现应会更佳。

请注意,此移植版本未包含 Polymer 补丁,因为 Polymer 是仅限 Fabric 的模组。若您希望在服务端结合 Polymer 使用 Thermoo,则仍需使用通过 Connector 适配的 Fabric 版 Thermoo。

我目前不计划将此移植版本更新至除 1.21.1 以外的任何其他游戏版本。 FFAPI 目前尚无适用于更高版本的支持,且我个人对 1.20.1 版本亦无更新兴趣(更不用说还需将 Thermoo 1.20.1 转译为 Mojmap 映射)。若将来 FFAPI 更新支持更高版本的 Minecraft,我也将重新制作对应版本的移植版。

相较于 Thermoo 4.7.0+neoforge 的变更:

  • 4.7.1:发布接口注入数据

Thermoo Neoforge 4.7.0+neoforge

on 2025 Dec 22
下载

Thermoo for Neoforge 1.21.1

Thermoo 现已通过 Forgified Fabric API 移植到 Neoforge 1.21.1。此版本目前可能尚未完全稳定,因此以 Alpha 版本发布。不过,它 不 需要 Connector,因此运行效果应会更好一些。

服务器管理员请注意,此移植版本不包含 Polymer 补丁,因为 Polymer 是仅限 Fabric 的模组。如果你希望在服务端使用 Polymer 搭配 Thermoo,仍需通过 Connector 使用 Thermoo 的 Fabric 版本。

我并不计划将此移植版本更新至除 1.21.1 以外的任何其他游戏版本。 目前 FFAPI 尚未支持更高版本,而我对 1.20.1 版本也毫无兴趣(更不用说我还得将 Thermoo 1.20.1 转换为 Mojmap 映射)。如果/当 FFAPI 更新支持更高版本的 Minecraft 时,我也会为对应版本重新制作该移植版。

Thermoo 9.0.0

on 2025 Dec 19
下载

膳魔师保温杯 9.0.0

此更新将膳魔师保温杯(Thermoo)升级至 Minecraft 1.21.11。根据长期支持(LTS)政策,本版本标志着对 Minecraft 1.21.9-10 的支持正式结束。

  • 更新至 Minecraft 1.21.11。
  • 新增环境属性以控制季节与温度。
  • 重构了季节 API,以更好地支持环境属性的集成。这对所有使用 Java 端 Seasons API 的用户来说是一次重大破坏性变更。详见下文说明。JSON API 应保持完全不变。
  • 新增一种 mild(温和)热带季节。

环境属性

膳魔师保温杯现在提供了多个新的环境属性,将这一新的原版系统与季节和温度相集成。这些新属性已在 Thermoo 维基 上详细记录。

季节 API 重构

季节 API 已被重构,总体上有两项主要变更,旨在支持更好的未来可扩展性:

第一,ThermooSeason 枚举已转换为一个接口,由两个独立的枚举分别实现:用于温带的 TemperateSeason 和用于热带的 TropicalSeason。此次变更还新增了一种 mild 热带季节,用以表示从雨季到旱季之间的过渡阶段。

第二,季节事件返回的类型已从“可选的季节”更改为“可选的季节状态”(season state),该状态不仅包含原始的季节信息,还新增了一个 progress(进度)值。这能够捕捉某一时刻下季节的“状态”。新的 progress 值是一个范围在 [0, 1] 之间的数字,表示当前季节的推进程度。

以下是基本迁移概览:

  • ThermooSeason.SPRING → TemperateSeason.SPRING
  • ThermooSeason.AUTUMN → TemperateSeason.AUTUMN
  • ThermooSeason.SUMMER → TemperateSeason.SUMMER
  • ThermooSeason.WINTER → TemperateSeason.WINTER
  • ThermooSeason.TROPICAL_DRY → TropicalSeason.DRY
  • ThermooSeason.TROPICAL_WET → TropicalSeason.WET
  • 新增 TropicalSeason.MILD
  • ThermooSeason#getCurrentSeason(Level) → TemperateSeason#getCurrentState(Level, BlockPos)(注意增加了 BlockPos 参数)
  • ThermooSeason#getCurrentTropicalSeason(Level, BlockPos) → TropicalSeason#getCurrentState(Level, BlockPos).map()

示例:

-Optional<ThermooSeason> season = ThermooSeason#getCurrentSeason(level);
+Optional<TemperateSeason> season = TemperateSeason#getCurrentState(level, pos).map(ThermooSeasonState::season);
ThermooSeasonEvents.GET_CURRENT_TROPICAL_SEASON.register(
        (level, pos) -> {
-            return Optional.of(ThermooSeason.TROPICAL_WET);
+            return Optional.of(TropicalSeason.WET.createState());
        }
);

Thermoo 8.1.1

on 2025 Nov 22
下载
  • 环境刻上下文所选的实体位置现在基于实体的根载具,而非其实际位置。
  • 此更改修复了 Frostiful 中的一些衍生问题,例如玩家在船中时不会回暖。参见 #90。

Thermoo 4.7.1

on 2025 Nov 22
下载
  • 环境刻(environment tick)上下文中所选的实体位置现在基于实体的根载具(root vehicle),而非其实体实际位置。
  • 此更改修复了 Frostiful 中的一些衍生问题,例如玩家在船中时无法正常预热。详见 #90。

Thermoo 4.7.0

on 2025 Nov 05
下载

迁移至 Mojang 映射

这是 Thermoo 8.1.0 针对 Minecraft 1.21.1 的回退版本

由于 Mojang 正在推进取消代码混淆,并预计 Fabric 将转向使用 MojMap,我已将 Thermoo 重映射为 MojMap。这对 Thermoo 的代码层面是一次重大变更,但得益于 intermediary 的存在,公共 API 不应出现任何破坏性变化。不过,我可能仍遗漏了一些问题,因此此版本将最初以测试版(beta)形式发布。

尽管目前暂无计划引入破坏性更改,但部分字段和方法已重命名,以更好地符合官方映射标准。具体变更如下:

  • EnvironmentProvider.ENTRY_CODEC → EnvironmentProvider.HOLDER_CODEC
  • LightThresholdLightProvider#lightType → LightThresholdLightProvider#lightLayer
  • AttributeModifierTemperatureEffect$Config#id → AttributeModifierTemperatureEffect$Config#location
  • ScalingAttributeModifierTemperatureEffect$Config#id → ScalingAttributeModifierTemperatureEffect$Config#location
  • EnvironmentTickContext#world → EnvironmentTickContext#level
  • TemperatureEffects.STATUS_EFFECT → TemperatureEffects.MOB_EFFECT

温度效果类型的资源位置由 thermoo:status_effect 更改为 thermoo:mob_effect,但已添加别名,以确保现有的数据包仍可正常运行。

所有旧的字段和方法均已标记为弃用(deprecated),并直接重定向至新的字段和方法,因此不会造成任何 API 层面的破坏。

当 Minecraft 完全切换到使用非混淆 JAR(即“五月山丘”更新之后的版本)时,旧的字段将被移除,同时其他此前因会破坏公共 API 而难以更改的名称(尤其是类名)也将一并修改。

Thermoo 8.1.0

on 2025 Nov 05
下载

迁移至 Mojang 映射表

由于 Mojang 正在逐步移除混淆,并预计 Fabric 将不可避免地转向使用 MojMap,我已将 Thermoo 重映射到 MojMap。这对 Thermoo 的代码端是一次较大的变更,但得益于 intermediary 的支持,这不应对其公共 API 造成任何破坏性更改。不过,我可能仍存在疏漏,因此此版本将先以 beta 版本发布。

尽管目前暂无计划引入破坏性变更,但部分字段和方法已被重命名,以更好地符合官方映射标准。具体变更如下:

  • EnvironmentProvider.ENTRY_CODEC → EnvironmentProvider.HOLDER_CODEC
  • LightThresholdLightProvider#lightType → LightThresholdLightProvider#lightLayer
  • AttributeModifierTemperatureEffect$Config#id → AttributeModifierTemperatureEffect$Config#location
  • ScalingAttributeModifierTemperatureEffect$Config#id → ScalingAttributeModifierTemperatureEffect$Config#location
  • EnvironmentTickContext#world → EnvironmentTickContext#level
  • TemperatureEffects.STATUS_EFFECT → TemperatureEffects.MOB_EFFECT

温度效果类型 thermoo:status_effect 的资源位置已更改为 thermoo:mob_effect,但已添加别名以确保现有数据包仍可正常运行。

所有旧的字段和方法均已标记为 @Deprecated(弃用),并直接指向新的实现,因此不会造成任何破坏性变更。

当 Minecraft 完全切换至非混淆版 JAR 文件(即“五月风暴”更新之后的版本)时,这些旧字段将被彻底移除,届时一些此前因可能破坏公共 API 而未能轻易更改的名称(尤其是类名)也将一并更新。

Thermoo 8.0.2

on 2025 Nov 05
下载
  • 已更新以原生支持 Minecraft 1.21.10,此版本在 1.21.9 上仍可正常运行。

Thermoo 8.0.1

on 2025 Oct 08
下载
  • Thermoo 现在直接以 1.21.9 为目标版本
  • 模组元数据现在要求至少 1.21.9 版本才能加载
1
2
5
BBSMC Logo

中国最活跃的 Minecraft 中文资源社区

QQ 群:1078515449

资源

模组整合包光影资源包地图

社区

汉化软件插件数据包

帮助

服务条款隐私政策社区规则开源代码
设置

"Minecraft"以及"我的世界"为美国微软公司的商标,本站与微软公司没有从属关系。 本站与 Modrinth 无从属关系,网站遵循 LGPL 协议开源。

© 2019-2026 青岛柒兮网络科技有限公司 | 鲁B2-20210590 | 鲁ICP备2021009459号-12 | 公安备案 鲁公网安备37021002001586号