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


