基本信息
我的世界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 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"
}
]
}


