基本信息
我的世界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
更新日志
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.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"
}
]
}


