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


