Thermoo 6.0.3
on 2025 May 12- 修复了在土耳其语环境下Thermoo温度单位编解码器无法正确解码的问题
Thermoo 5.3.3
on 2025 May 12- 修复了在土耳其语区域设置下,Thermoo温度单位编解码器无法正确解码的问题
Thermoo 4.5.3
on 2025 May 12- 修复了在土耳其语环境下,热动力学(Thermoo)温度单位编解码器无法正确解码的问题
Thermoo 6.0.2
on 2025 May 01Thermoo 5.3.2
on 2025 May 01Thermoo 4.5.2
on 2025 May 01- 添加了阿根廷西班牙语翻译(Texaliuz)
Thermoo 6.0.1
on 2025 Apr 25- 修复骑乘具有特定最大生命值的坐骑时的崩溃问题
Thermoo 5.3.1
on 2025 Apr 25Thermoo 4.5.1
on 2025 Apr 25- 修复骑乘具有特定最大生命值的坐骑时发生的崩溃问题
Thermoo 6.0
on 2025 Apr 04更新至《我的世界》1.21.5版本
这是《我的世界》1.21.5版本的首个稳定发布版。它还包含了来自Thermoo 4.4和5.3版本的一些新特性,旨在提供更大的灵活性和深度。
- 已更新至《我的世界》1.21.5版本
- 移除了所有已废弃的应用程序编程接口(API),包括“环境控制器(EnvironmentController)”、“温度转换器(TemperatureConverter)”以及“配置温度效果(ConfiguredTemperatureEffect)”和“温度效果(TemperatureEffects)”的一些方法。
- 许多类,如“环境命令(EnvironmentCommand)”和“温度命令(TemperatureCommand)”类已被设为最终类,并且所有仅为静态的类现在都有一个私有构造函数。从技术上讲,这是一个重大变更,但不太可能影响到任何人。
- 更新了游戏测试以使用新框架
- 用“可变冷(canBeCold)”和“可变暖(canBeWarm)”替换了Kotlin中感知温度的函数扩展“可冻结(canFreeze)”和“可过热(canOverheat)”,以解决与“实体(Entity)#可冻结(canFreeze)”方法的冲突。
- 环境耐热和抗寒能力现在可以接受负值。负的环境抗性现在提供了一个随机机会,可使来自环境源的温度下降加倍。
- 在环境定义中添加了一个“优先级(priority)”字段。这用于在查找期间对应用于生物群系的环境提供者的顺序进行排序。
- 仅实现细节:环境提供者现在作为“生物群系(Biome)”类的一个字段存储,这应该能使查找时间略微加快。
Thermoo 5.3
on 2025 Apr 04环境优化
本次更新为环境API添加了一些新特性,使其更具灵活性并更有深度。
- 环境耐热与耐寒属性现在可以接受负值。负的环境抗性现在会提供一个随机几率,使来自环境源的温度降幅翻倍。
- 在环境定义中添加了一个
优先级
字段。这用于在查找期间对应用于生物群系的环境提供者的顺序进行排序。 - 仅实现细节:环境提供者现在作为
生物群系
类的一个字段存储,这应该能使查找时间略微加快。
Thermoo 4.5
on 2025 Apr 04环境优化
本次更新为环境API添加了一些新特性,使其更具灵活性并更有深度。
- 环境耐热与耐寒属性现在可接受负值。负的环境抗性现在会提供一个随机机会,使来自环境源的温度降幅翻倍。
- 在环境定义中添加了一个
优先级
字段。这用于在查找期间对应用于生物群系的环境提供者的顺序进行排序。 - 仅实现细节:环境提供者现在作为
生物群系
类的一个字段存储,这应该能使查找时间略微加快。
Thermoo 6.0-beta.1
on 2025 Apr 04更新至《我的世界》1.21.5版本
这是针对《我的世界》1.21.5版本的首次发布。由于核心组件API(Cardinal Components API)尚不稳定,所以最初是以测试版(Beta)形式发布的,不过从我的测试情况来看,它似乎运行良好。如果你发现任何问题,请随时将其反馈至https://github.com/TheDeathlyCow/thermoo/issues。
- 已更新至《我的世界》1.21.5版本
- 移除了所有已弃用的API,包括“环境控制器(EnvironmentController)”、“温度转换器(TemperatureConverter)”以及“已配置温度效果(ConfiguredTemperatureEffect)”和“温度效果(TemperatureEffects)”的部分方法。
- 许多类,如“环境指令(EnvironmentCommand)”和“温度指令(TemperatureCommand)”类已被设为最终类(final),并且所有仅含静态成员的类现在都只有私有构造函数。从技术上讲,这是一个重大变更,但不太可能影响到任何人。
- 已更新游戏测试以使用新框架
- 将“是否能冻结(canFreeze)”和“是否会过热(canOverheat)”这两个感知温度的Kotlin函数扩展替换为“是否能变冷(canBeCold)”和“是否能变热(canBeWarm)”,以解决与“实体(Entity)#是否能冻结(canFreeze)”方法的冲突。
[1.21.5-rc1] Thermoo 6.0-alpha.1
on 2025 Apr 04更新至《我的世界》1.21.5版本
这是针对《我的世界》1.21.5版本的首个发布版本,目标版本为“1.21.5-rc1”。此版本目前不稳定,应当仅用于早期移植。
- 已更新至《我的世界》1.21.5版本
- 移除了所有已废弃的API,包括“环境控制器”、“温度转换器”以及“已配置温度效果”和“温度效果”的部分方法。
- 暂时禁用了游戏测试功能,以便日后能够重写它们。
- “环境命令”和“温度命令”类已设为最终类,并且现在拥有私有构造函数。其他类似的仅静态类不久也将接受类似处理。
Thermoo 5.2.1
on 2025 Apr 04- 已更新至我的世界1.21.4版本
- 我的世界1.21.2 - 1.21.3版本似乎仍可与此版本兼容,然而对这些版本的支持可能随时会被移除
- 我的世界1.20.1版本现已正式不再受支持
Thermoo 5.2
on 2025 Apr 04新开发者维基
- 热力(Thermoo)维基已迁移!它已迁至一个由MkDocs驱动的新维基,网址为https://thermoo.thedeathlycow.com/
- 随着新维基站点的推出,维基已进行了大幅重构,许多页面都已更新。
- 贡献者现在也可以通过在GitHub上发起拉取请求来为维基做出贡献。
环境API
这是一个全新的大型API,由数据包和基于模组的组件混合而成。我强烈建议在着手尝试在你的模组中实现它之前,先在新维基上阅读环境API概述。
- 引入了一个新的基于数据包的环境API,用于控制环境温度变化。
- 环境控制器中的所有方法都已被替换为一种新的、更符合用途的替代方法。
- 这里的根本变化在于,环境数据包注册表现在会以某种广为人知的温度单位(摄氏、华氏、开尔文或兰金)以及其他一些参数来计算一个生物群系的温度,然后这些参数会由一个事件监听器转换为温度点变化。
- 添加了数据包注册表
thermoo/environment
。格式:https://thermoo.thedeathlycow.com/datapacks/environment_definition/ - 添加了数据包注册表
thermoo/environment_provider
。格式:https://thermoo.thedeathlycow.com/datapacks/environment_provider_definition/ - 添加了环境抗性属性,
thermoo:environment_heat_resistance
和thermoo:environment_frost_resistance
。 - 环境抗性属性表示每次应用时“躲避”由
ServerPlayerEnvironmentTickEvents
中的事件所计算出的温度变化的百分比几率。
方法替换的完整列表如下:
getBaseValueForAttribute()
->ThermooAttributes#baseValueEvent()
getLocalTemperatureChange()
-> 环境数据包注册表getEnvironmentTemperatureForPlayer()
->ServerPlayerEnvironmentTickEvents.GET_TEMPERATURE_CHANGE
getTemperatureEffectsChange()
->LivingEntityTemperatureTickEvents.GET_ACTIVE_TEMPERATURE_CHANGE
getFloorTemperature()
->LivingEntityTemperatureTickEvents.GET_PASSIVE_TEMPERATURE_CHANGE
getMaxWetTicks()
-> 实体属性thermoo:max_soaking_tick_multiplier
(在1.21.1版本中,名称为thermoo:generic.max_soaking_tick_multiplier
)getSoakChange()
->LivingEntitySoakingTickEvents.GET_SOAKING_CHANGE
getHeatAtLocation()
->LivingEntityTemperatureTickEvents.GET_PASSIVE_TEMPERATURE_CHANGE
applyAwareHeat()
->LivingEntityTemperatureTickEvents.ALLOW_ACTIVE_TEMPERATURE_CHANGE
getHeatFromBlockState()
-> 已移除isHeatSource()
-> 已移除isColdSource()
-> 已移除isAreaHeated()
-> 已移除
物品属性修饰符事件
- 添加了一个实验性的
ModifyItemAttributeModifiersCallback.EVENT
,它与之前同名的Fabric API事件非常相似。 - 当实体装备或卸下物品时,这会将属性修饰符应用于该实体,它实际上并不会修改物品堆叠的底层
minecraft:attribute_modifiers
组件。
Kotlin绑定
- 为
TemperatureAware
和Soakable
添加了新的特定于Kotlin的方法和字段扩展。 - 这些方法允许Kotlin用户以一种直观的方式使用这些接口,而无需为所有方法添加
thermoo$
前缀。
Thermoo 4.4
on 2025 Apr 04新开发者维基
- 热力(Thermoo)维基已迁移!它已迁移至一个由MkDocs驱动的新维基,网址为https://thermoo.thedeathlycow.com/
- 随着新维基站点的推出,维基已进行了大幅重构,许多页面都已更新。
- 贡献者现在也可以通过在GitHub上发起拉取请求来为维基做出贡献。
环境API
这是一个全新的大型API,由数据包和基于模组的组件混合而成。我强烈建议在尝试在你的模组中实现它之前,先在新维基上阅读环境API概述。
- 引入了一个新的基于数据包的环境API,用于控制环境温度变化。
- 环境控制器中的所有方法都已被替换为一种全新的、更符合用途的替代方法。
- 这里的根本变化是,环境数据包注册表现在会以一些广泛认可的温度单位(摄氏、华氏、开尔文或兰金)以及其他一些参数来计算一个生物群系的温度,然后这些参数会由一个事件监听器转换为温度点变化。
- 添加了数据包注册表
thermoo/environment
。格式:https://thermoo.thedeathlycow.com/datapacks/environment_definition/ - 添加了数据包注册表
thermoo/environment_provider
。格式:https://thermoo.thedeathlycow.com/datapacks/environment_provider_definition/ - 添加了环境抗性属性,
thermoo:environment_heat_resistance
和thermoo:environment_frost_resistance
。 - 环境抗性属性表示每次应用时“躲避”由
ServerPlayerEnvironmentTickEvents
中的事件所计算出的温度变化的百分比几率。
方法替换的完整列表如下:
getBaseValueForAttribute()
->ThermooAttributes#baseValueEvent()
getLocalTemperatureChange()
-> 环境数据包注册表getEnvironmentTemperatureForPlayer()
->ServerPlayerEnvironmentTickEvents.GET_TEMPERATURE_CHANGE
getTemperatureEffectsChange()
->LivingEntityTemperatureTickEvents.GET_ACTIVE_TEMPERATURE_CHANGE
getFloorTemperature()
->LivingEntityTemperatureTickEvents.GET_PASSIVE_TEMPERATURE_CHANGE
getMaxWetTicks()
-> 实体属性thermoo:max_soaking_tick_multiplier
(在1.21.1版本中,名称为thermoo:generic.max_soaking_tick_multiplier
)getSoakChange()
->LivingEntitySoakingTickEvents.GET_SOAKING_CHANGE
getHeatAtLocation()
->LivingEntityTemperatureTickEvents.GET_PASSIVE_TEMPERATURE_CHANGE
applyAwareHeat()
->LivingEntityTemperatureTickEvents.ALLOW_ACTIVE_TEMPERATURE_CHANGE
getHeatFromBlockState()
-> 已移除isHeatSource()
-> 已移除isColdSource()
-> 已移除isAreaHeated()
-> 已移除
物品属性修饰符事件
- 添加了一个实验性的
ModifyItemAttributeModifiersCallback.EVENT
,它与之前同名的Fabric API事件非常相似。 - 当实体装备或卸下物品时,这会将属性修饰符应用于该实体,它实际上并不会修改物品堆叠的底层
minecraft:attribute_modifiers
组件。
Kotlin绑定
- 为
TemperatureAware
和Soakable
添加了新的特定于Kotlin的方法和字段扩展。 - 这些方法允许Kotlin用户以一种直观的方式使用这些接口,而无需在所有方法前添加
thermoo$
前缀。
Thermoo 5.1
on 2025 Jan 15- 向
TemperatureAware
类添加了get
方法,该方法允许从LivingEntity
和Entity
获取接口。主要用于接口注入可能效果不佳的情况。 - 为可消耗标签添加了翻译
- 用专用事件替换了环境控制器的属性基础值方法。旧的控制器方法已弃用。请参阅 PR #43
- 现在允许在温度效果
entity_type
字段中使用实体标签和列表,作为以#
开头的标签 ID 或直接实体类型 ID 列表。请参阅 PR #42 - 修复了
remove()
温度效果方法未按每个实体正确调用/跟踪的问题。特别是,这修复了属性修改器温度效果行为异常的问题 ConfiguredTemperatureEffect
的构造函数已标记为内部。之前的构造函数已保留以避免破坏更改,但现在也已标记为内部。- 弃用了
ConfiguredTemperatureEffect#applyIfPossible()
(已替换为返回成功的apply()
方法)。 - 弃用了
ConfiguredTemperatureEffect#entityType()
- 使用新的entityTypes()
方法(复数) - 弃用了
TemperatureEffects#getEffectsForEntity
- 此方法不应是 API 的一部分,将被删除 - 添加了
TemperatureEffects#getEffect
,允许通过 ID 查找配置的温度效果 - “资源条件未满足”日志已移至调试,这应减少由 Thermoo 引起的日志垃圾邮件
Thermoo 4.3
on 2025 Jan 15- 向
TemperatureAware
类添加了get
方法,该方法允许从LivingEntity
和Entity
获取接口。主要用于接口注入可能效果不佳的情况。 - 为可消耗标签添加了翻译
- 用专用事件替换了环境控制器的属性基础值方法。旧的控制器方法已被弃用。请参阅 PR #43
- 现在允许在温度效果
entity_type
字段中使用实体标签和列表,作为以#
前缀的标签 ID 或直接实体类型 ID 列表。请参阅 PR #42 - 修复了
remove()
温度效果方法未按每个实体正确调用/跟踪的问题。特别是,这修复了属性修改器温度效果行为异常的问题 ConfiguredTemperatureEffect
的构造函数已被标记为内部的。之前的构造函数已被保留以避免破坏更改,但现在也已被标记为内部的。- 弃用了
ConfiguredTemperatureEffect#applyIfPossible()
(已替换为返回成功的apply()
方法)。 - 弃用了
ConfiguredTemperatureEffect#entityType()
- 使用新的entityTypes()
方法(复数) - 弃用了
TemperatureEffects#getEffectsForEntity
- 此方法不应是 API 的一部分,将被删除 - 添加了
TemperatureEffects#getEffect
,允许通过 ID 查找配置的温度效果 - “资源条件未满足”日志已移至调试,这应该减少由 Thermoo 引起的日志垃圾邮件
Thermoo 5.0.2
on 2025 Jan 02- 修复了当坐骑具有超过 60 点生命值且温度显示超过实际显示的心数时的崩溃问题
- 在 gradle 中正确暴露 Fabric API。