Attributes
Thermoo defines several custom attribute types. For a full explanation of how attributes work in general see the Minecraft Wiki page on Attributes. This page will just document the attributes provided by Thermoo.
Attributes List
Attribute Name | Default Base | Minimum ~ Maximum | Description |
---|---|---|---|
thermoo:min_temperature |
0 | 0 ~ 8192 | Sets the minimum allowed temperature value to -140 * attribute_value . |
thermoo:max_temperature |
0 | 0 ~ 8192 | Sets the maximum allowed temperature value to 140 * attribute_value . |
thermoo:max_soaking_tick_multiplier |
1 | 0 ~ 8192 | Sets the maximum allowed wet ticks value to 600 * attribute_value . |
thermoo:frost_resistance |
0 | -10 ~ 10 | Reduces the impact of negative temperature changes from non-environmental sources. |
thermoo:heat_resistance |
0 | -10 ~ 10 | Reduces the impact of positive temperature changes from non-environmental sources. |
thermoo:environment_frost_resistance |
0 | 0 ~ 1 | Provides a random chance of "dodging" a negative temperature change from an environmental source. |
thermoo:environment_heat_resistance |
0 | 0 ~ 1 | Provides a random chance of "dodging" a positive temperature change from an environmental source. |
Info
In Minecraft versions 1.21.1 and earlier, all attribute IDs are prefixed with generic.
For example, thermoo:generic.frost_resistance
.
Setting the Base Value (mods)
Mods are able to use an event listener to set the base value of the Thermoo attributes. The base value provided by this event is stored as a temporary add_value
attribute modifier with the ID thermoo:base_{attributeName}
(for example, thermoo:base_frost_resistance
).
Example
static void initialize() {
ThermooAttributes.baseValueEvent(ThermooAttributes.FROST_RESISTANCE)
.register((entity, baseValue) -> {
return entity.getType() == EntityType.PLAYER
? baseValue + 45
: baseValue;
});
}
fun initialize() {
ThermooAttributes.baseValueEvent(ThermooAttributes.FROST_RESISTANCE)
.register { entity, baseValue ->
return@register if (entity.type === EntityType.PLAYER) baseValue + 45 else baseValue
}
}