diff --git a/README.md b/README.md index 6221bce9..aa565c38 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,8 @@ Basically everything about this mod is documented extensively on the [wiki](http * [Farmer's Respite](https://www.curseforge.com/minecraft/mc-mods/farmers-respite): Teas and warm foods provide the Warmth effect * [Festive Delight](https://www.curseforge.com/minecraft/mc-mods/festive-delight): Christmas Tea provides the Warmth effect * [Frozen Up](https://www.curseforge.com/minecraft/mc-mods/frozen-up): Truffle Hot Chocolate provides the Warmth effect -* [Fabric Seasons](https://modrinth.com/mod/fabric-seasons): Winters in snowy and freezing biomes are *even colder* than normal +* [Spectrum](https://modrinth.com/mod/spectrum): Hot Chocolate, Demon Tea, Restoration Tea, and Glistering Jelly Tea provide the Warmth effect +* [Fabric Seasons](https://modrinth.com/mod/fabric-seasons): Winters in snowy and freezing biomes are *even colder* than normal. Freezing biomes are slightly warmer in Summer. # Additional Credits diff --git a/build.gradle b/build.gradle index 0308cd9b..53894e0f 100644 --- a/build.gradle +++ b/build.gradle @@ -84,6 +84,9 @@ dependencies { // Fabric Seasons https://modrinth.com/mod/fabric-seasons modCompileOnly("maven.modrinth:fabric-seasons:${project.fabric_seasons_version}") { transitive = false } + // Farmer's Delight and add ons + modCompileOnly("maven.modrinth:farmers-delight-fabric:${project.farmers_delight_version}") { transitive = false } + modImplementation "dev.onyxstudios.cardinal-components-api:cardinal-components-base:${project.cardinal_components_version}" modImplementation "dev.onyxstudios.cardinal-components-api:cardinal-components-entity:${project.cardinal_components_version}" // Includes Cardinal Components API as a Jar-in-Jar dependency (optional but recommended) diff --git a/gradle.properties b/gradle.properties index 17fbb9d9..5f207fe6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ loader_version=0.14.21 # Mod Properties -mod_version = 1.0.0 +mod_version = 1.0.1 maven_group = com.github.thedeathlycow archives_base_name = frostiful @@ -39,4 +39,7 @@ cardinal_components_version=5.2.1 trinkets_version=3.7.0 # Fabric Seasons -fabric_seasons_version=2.3+1.20 \ No newline at end of file +fabric_seasons_version=2.3+1.20 + +# Farmer's Delight and addons +farmers_delight_version=1.4.3 \ No newline at end of file diff --git a/src/main/java/com/github/thedeathlycow/frostiful/compat/AdaptedSeason.java b/src/main/java/com/github/thedeathlycow/frostiful/compat/AdaptedSeason.java new file mode 100644 index 00000000..0a283a42 --- /dev/null +++ b/src/main/java/com/github/thedeathlycow/frostiful/compat/AdaptedSeason.java @@ -0,0 +1,67 @@ +package com.github.thedeathlycow.frostiful.compat; + +import com.github.thedeathlycow.frostiful.survival.BiomeCategory; +import io.github.lucaargolo.seasons.FabricSeasons; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +/** + * Used as a mod-neutral adapter for different possible seasons from other mods. + */ +public enum AdaptedSeason { + + SPRING, + SUMMER, + AUTUMN, + WINTER, + WET_SEASON, + DRY_SEASON; + + + /** + * Gets the current season in the world. Returns null if no season mod is enabled. + * + * @param world The world to get the season for. + * @return Returns the current season. Returns null if no season mod is enabled. + */ + @Nullable + public static AdaptedSeason getCurrentSeason(World world) { + if (FrostifulIntegrations.isModLoaded(FrostifulIntegrations.FABRIC_SEASONS_ID)) { + return switch (FabricSeasons.getCurrentSeason(world)) { + case SUMMER -> AdaptedSeason.SUMMER; + case WINTER -> AdaptedSeason.WINTER; + case FALL -> AdaptedSeason.AUTUMN; + case SPRING -> AdaptedSeason.SPRING; + }; + } else { + return null; + } + } + + /** + * Adjusts biome categories for their season. + * + * @param season The current season + * @param normalCategory The normal category of the biome if no season mod was enabled. + * @return Returns the biome category, adjusted for the season. + */ + public static BiomeCategory getSeasonallyShiftedBiomeCategory( + @Nullable AdaptedSeason season, + BiomeCategory normalCategory + ) { + if (isSummer(season) && normalCategory == BiomeCategory.FREEZING) { + return BiomeCategory.COLD; + } + return normalCategory; + } + + /** + * Checks if the current season is one of the two possible summer seasons. + * + * @param season The current season + * @return Returns true if the season is {@link #SUMMER} or {@link #DRY_SEASON} + */ + public static boolean isSummer(@Nullable AdaptedSeason season) { + return season == SUMMER || season == DRY_SEASON; + } +} diff --git a/src/main/java/com/github/thedeathlycow/frostiful/compat/FoodIntegration.java b/src/main/java/com/github/thedeathlycow/frostiful/compat/FoodIntegration.java new file mode 100644 index 00000000..82991d67 --- /dev/null +++ b/src/main/java/com/github/thedeathlycow/frostiful/compat/FoodIntegration.java @@ -0,0 +1,42 @@ +package com.github.thedeathlycow.frostiful.compat; + +import com.github.thedeathlycow.frostiful.Frostiful; +import com.github.thedeathlycow.frostiful.entity.effect.FStatusEffects; +import com.github.thedeathlycow.frostiful.tag.FItemTags; +import com.github.thedeathlycow.frostiful.util.TextStyles; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.text.Text; + +import java.util.List; + +public class FoodIntegration { + + public static void onConsumeFood(Item item, ItemStack stack, LivingEntity user) { + if (isWarmingFood(item, stack)) { + applyWarmthFromFood(user); + } + } + + public static void appendWarmthTooltip(Item item, ItemStack stack, List tooltip) { + if (isWarmingFood(item, stack)) { + tooltip.add(Text.translatable("item.frostiful.warming.tooltip") + .setStyle(TextStyles.WARMING_TOOLTIP)); + } + } + + private static boolean isWarmingFood(Item item, ItemStack stack) { + return stack.isIn(FItemTags.WARM_FOODS); + } + + private static void applyWarmthFromFood(LivingEntity user) { + int duration = Frostiful.getConfig().freezingConfig.getWarmFoodWarmthTime(); + user.addStatusEffect(new StatusEffectInstance(FStatusEffects.WARMTH, duration)); + } + + private FoodIntegration() { + + } +} diff --git a/src/main/java/com/github/thedeathlycow/frostiful/compat/FrostifulIntegrations.java b/src/main/java/com/github/thedeathlycow/frostiful/compat/FrostifulIntegrations.java index 204f56be..30408631 100644 --- a/src/main/java/com/github/thedeathlycow/frostiful/compat/FrostifulIntegrations.java +++ b/src/main/java/com/github/thedeathlycow/frostiful/compat/FrostifulIntegrations.java @@ -1,9 +1,6 @@ package com.github.thedeathlycow.frostiful.compat; -import io.github.lucaargolo.seasons.FabricSeasons; -import io.github.lucaargolo.seasons.utils.Season; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.world.World; public class FrostifulIntegrations { @@ -24,12 +21,4 @@ public static boolean isHeartsRenderOverridden() { public static boolean isModLoaded(String id) { return FabricLoader.getInstance().isModLoaded(id); } - - public static boolean isWinter(World world) { - if (isModLoaded(FABRIC_SEASONS_ID)) { - return Season.WINTER == FabricSeasons.getCurrentSeason(world); - } else { - return false; - } - } } diff --git a/src/main/java/com/github/thedeathlycow/frostiful/config/group/EnvironmentConfigGroup.java b/src/main/java/com/github/thedeathlycow/frostiful/config/group/EnvironmentConfigGroup.java index 15922f85..d5e06f65 100644 --- a/src/main/java/com/github/thedeathlycow/frostiful/config/group/EnvironmentConfigGroup.java +++ b/src/main/java/com/github/thedeathlycow/frostiful/config/group/EnvironmentConfigGroup.java @@ -28,6 +28,7 @@ public class EnvironmentConfigGroup implements ConfigData { int ultrawarmWarmRate = 15; int winterTemperatureShift = -1; + boolean isNightColdInSummer = false; public boolean doDryBiomeNightFreezing() { return doDryBiomeNightFreezing; @@ -84,4 +85,8 @@ public int getUltrawarmWarmRate() { public int getWinterTemperatureShift() { return winterTemperatureShift; } + + public boolean isNightColdInSummer() { + return isNightColdInSummer; + } } diff --git a/src/main/java/com/github/thedeathlycow/frostiful/mixins/compat/farmersdelight/present/HotCocoaItemMixin.java b/src/main/java/com/github/thedeathlycow/frostiful/mixins/compat/farmersdelight/present/HotCocoaItemMixin.java new file mode 100644 index 00000000..7c0dddf9 --- /dev/null +++ b/src/main/java/com/github/thedeathlycow/frostiful/mixins/compat/farmersdelight/present/HotCocoaItemMixin.java @@ -0,0 +1,38 @@ +package com.github.thedeathlycow.frostiful.mixins.compat.farmersdelight.present; + +import com.github.thedeathlycow.frostiful.compat.FoodIntegration; +import com.nhoryzon.mc.farmersdelight.item.HotCocoaItem; +import com.nhoryzon.mc.farmersdelight.item.MilkBottleItem; +import net.minecraft.client.item.TooltipContext; +import net.minecraft.entity.LivingEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.text.Text; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.List; + +@Mixin(HotCocoaItem.class) +public abstract class HotCocoaItemMixin extends MilkBottleItem { + + @Inject( + method = "affectConsumer", + at = @At("HEAD") + ) + private void onConsume(ItemStack stack, World world, LivingEntity user, CallbackInfo ci) { + FoodIntegration.onConsumeFood(this, stack, user); + } + + @Inject( + method = "appendTooltip", + at = @At("HEAD") + ) + private void appendWarmthToolTip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context, CallbackInfo ci) { + FoodIntegration.appendWarmthTooltip(this, stack, tooltip); + } + +} diff --git a/src/main/java/com/github/thedeathlycow/frostiful/mixins/food/compat/WarmFoodMixin.java b/src/main/java/com/github/thedeathlycow/frostiful/mixins/food/compat/WarmFoodMixin.java index 7eba5050..3cb23381 100644 --- a/src/main/java/com/github/thedeathlycow/frostiful/mixins/food/compat/WarmFoodMixin.java +++ b/src/main/java/com/github/thedeathlycow/frostiful/mixins/food/compat/WarmFoodMixin.java @@ -1,19 +1,14 @@ package com.github.thedeathlycow.frostiful.mixins.food.compat; -import com.github.thedeathlycow.frostiful.Frostiful; -import com.github.thedeathlycow.frostiful.entity.effect.FStatusEffects; -import com.github.thedeathlycow.frostiful.tag.FItemTags; -import com.github.thedeathlycow.frostiful.util.TextStyles; +import com.github.thedeathlycow.frostiful.compat.FoodIntegration; import net.minecraft.client.item.TooltipContext; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.world.World; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -24,8 +19,6 @@ @Mixin(Item.class) public abstract class WarmFoodMixin { - @Shadow public abstract boolean isFood(); - @Inject( method = "finishUsing", at = @At("HEAD") @@ -36,10 +29,7 @@ private void addWarmthToWarmFoods( LivingEntity user, CallbackInfoReturnable cir ) { - if (this.isWarmingFood(stack)) { - int duration = Frostiful.getConfig().freezingConfig.getWarmFoodWarmthTime(); - user.addStatusEffect(new StatusEffectInstance(FStatusEffects.WARMTH, duration)); - } + FoodIntegration.onConsumeFood((Item) (Object) this, stack, user); } @Inject( @@ -53,17 +43,6 @@ private void addToolTip( TooltipContext context, CallbackInfo ci ) { - if (this.isWarmingFood(stack)) { - tooltip.add(Text.translatable("item.frostiful.warming.tooltip") - .setStyle(TextStyles.WARMING_TOOLTIP)); - } - } - - private boolean isWarmingFood(ItemStack stack) { - return this.isFood() && stack.isIn(FItemTags.WARM_FOODS); + FoodIntegration.appendWarmthTooltip((Item) (Object) this, stack, tooltip); } - - - - } diff --git a/src/main/java/com/github/thedeathlycow/frostiful/survival/AmbientTemperatureController.java b/src/main/java/com/github/thedeathlycow/frostiful/survival/AmbientTemperatureController.java index 7fe07d2d..22e843c5 100644 --- a/src/main/java/com/github/thedeathlycow/frostiful/survival/AmbientTemperatureController.java +++ b/src/main/java/com/github/thedeathlycow/frostiful/survival/AmbientTemperatureController.java @@ -1,7 +1,7 @@ package com.github.thedeathlycow.frostiful.survival; import com.github.thedeathlycow.frostiful.Frostiful; -import com.github.thedeathlycow.frostiful.compat.FrostifulIntegrations; +import com.github.thedeathlycow.frostiful.compat.AdaptedSeason; import com.github.thedeathlycow.frostiful.config.FrostifulConfig; import com.github.thedeathlycow.frostiful.tag.FBlockTags; import com.github.thedeathlycow.thermoo.api.temperature.EnvironmentController; @@ -14,6 +14,7 @@ import net.minecraft.world.LightType; import net.minecraft.world.World; import net.minecraft.world.biome.Biome; +import org.jetbrains.annotations.Nullable; public class AmbientTemperatureController extends EnvironmentControllerDecorator { @@ -79,12 +80,10 @@ public boolean isAreaHeated(World world, BlockPos pos) { private int getNaturalWorldTemperatureChange(World world, BlockPos pos) { RegistryEntry biome = world.getBiome(pos); - BiomeCategory category = BiomeCategory.fromBiome(biome); - int temp = category.getTemperatureChange(world); + @Nullable AdaptedSeason season = AdaptedSeason.getCurrentSeason(world); + BiomeCategory category = BiomeCategory.fromBiome(biome, season); + int temp = category.getTemperatureChange(world, season); if (temp < 0) { - if (FrostifulIntegrations.isWinter(world)) { - temp += Frostiful.getConfig().environmentConfig.getWinterTemperatureShift(); - } return temp; } diff --git a/src/main/java/com/github/thedeathlycow/frostiful/survival/BiomeCategory.java b/src/main/java/com/github/thedeathlycow/frostiful/survival/BiomeCategory.java index de66c406..26a24389 100644 --- a/src/main/java/com/github/thedeathlycow/frostiful/survival/BiomeCategory.java +++ b/src/main/java/com/github/thedeathlycow/frostiful/survival/BiomeCategory.java @@ -1,11 +1,13 @@ package com.github.thedeathlycow.frostiful.survival; import com.github.thedeathlycow.frostiful.Frostiful; +import com.github.thedeathlycow.frostiful.compat.AdaptedSeason; import com.github.thedeathlycow.frostiful.config.group.EnvironmentConfigGroup; import com.github.thedeathlycow.frostiful.tag.FBiomeTags; import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.world.World; import net.minecraft.world.biome.Biome; +import org.jetbrains.annotations.Nullable; import java.util.function.ToIntFunction; @@ -17,7 +19,7 @@ public enum BiomeCategory { FREEZING(EnvironmentConfigGroup::getFreezingBiomeTemperatureChange, true); private static final float SNOW_TEMPERATURE = 0.15f; - private static final float TAIGA_TEMPERATURE = 0.25f; + private static final float TAIGA_TEMPERATURE = 0.3f; private final ToIntFunction temperatureChange; private final boolean coldAtNight; @@ -27,30 +29,48 @@ public enum BiomeCategory { this.coldAtNight = coldAtNight; } - public static BiomeCategory fromBiome(RegistryEntry biomeEntry) { + public static BiomeCategory fromBiome(RegistryEntry biomeEntry, @Nullable AdaptedSeason season) { Biome biome = biomeEntry.value(); + EnvironmentConfigGroup config = Frostiful.getConfig().environmentConfig; + + // +inf means only tags will be considered float temperature = biome.getTemperature(); - if (biomeEntry.isIn(FBiomeTags.FREEZING_BIOMES)) { - return FREEZING; - } else if (temperature <= SNOW_TEMPERATURE) { - return COLD; + + BiomeCategory category; + + if (biomeEntry.isIn(FBiomeTags.FREEZING_BLACKLIST_BIOMES)) { + category = NORMAL; + } else if (biomeEntry.isIn(FBiomeTags.FREEZING_BIOMES)) { + category = FREEZING; + } else if (temperature <= SNOW_TEMPERATURE || biomeEntry.isIn(FBiomeTags.COLD_BIOMES)) { + category = COLD; } else if ( temperature <= TAIGA_TEMPERATURE - || (!biome.hasPrecipitation() && Frostiful.getConfig().environmentConfig.doDryBiomeNightFreezing()) + || (biomeEntry.isIn(FBiomeTags.DRY_BIOMES) && config.doDryBiomeNightFreezing()) + || biomeEntry.isIn(FBiomeTags.COOL_BIOMES) ) { - return COLD_AT_NIGHT; + category = COLD_AT_NIGHT; } else { - return NORMAL; + category = NORMAL; } + + return AdaptedSeason.getSeasonallyShiftedBiomeCategory(season, category); } - public int getTemperatureChange(World world) { + public int getTemperatureChange(World world, @Nullable AdaptedSeason season) { EnvironmentConfigGroup config = Frostiful.getConfig().environmentConfig; int change = this.temperatureChange.applyAsInt(config); - if (coldAtNight && world.isNight()) { + + if (coldAtNight && world.isNight() && (!AdaptedSeason.isSummer(season) || config.isNightColdInSummer())) { change += config.getNightTemperatureShift(); } + + if (change < 0 && season == AdaptedSeason.WINTER) { + change += config.getWinterTemperatureShift(); + } + + return change; } } diff --git a/src/main/java/com/github/thedeathlycow/frostiful/tag/FBiomeTags.java b/src/main/java/com/github/thedeathlycow/frostiful/tag/FBiomeTags.java index ac395e2c..a555f40b 100644 --- a/src/main/java/com/github/thedeathlycow/frostiful/tag/FBiomeTags.java +++ b/src/main/java/com/github/thedeathlycow/frostiful/tag/FBiomeTags.java @@ -11,6 +11,10 @@ public class FBiomeTags { public static final TagKey FREEZING_WIND_ALWAYS_SPAWNS = FBiomeTags.register("freezing_wind_always_spawns"); public static final TagKey FREEZING_WIND_SPAWNS_IN_STORMS = FBiomeTags.register("freezing_wind_spawns_in_storms"); public static final TagKey FREEZING_BIOMES = FBiomeTags.register("freezing_biomes"); + public static final TagKey COLD_BIOMES = FBiomeTags.register("cold_biomes"); + public static final TagKey COOL_BIOMES = FBiomeTags.register("cool_biomes"); + public static final TagKey DRY_BIOMES = FBiomeTags.register("dry_biomes"); + public static final TagKey FREEZING_BLACKLIST_BIOMES = FBiomeTags.register("freezing_blacklist_biomes"); public static TagKey register(String id) { return TagKey.of(RegistryKeys.BIOME, new Identifier(Frostiful.MODID, id)); diff --git a/src/main/resources/assets/frostiful/lang/en_us.json b/src/main/resources/assets/frostiful/lang/en_us.json index ab00d1e1..2d6012a8 100644 --- a/src/main/resources/assets/frostiful/lang/en_us.json +++ b/src/main/resources/assets/frostiful/lang/en_us.json @@ -290,5 +290,6 @@ "text.autoconfig.frostiful.option.environmentConfig.warmthPerLightLevel": "Warmth per light level", "text.autoconfig.frostiful.option.environmentConfig.minLightForWarmth": "Minimum block light level for warmth", "text.autoconfig.frostiful.option.environmentConfig.ultrawarmWarmRate": "Ultrawarm dimension warm rate", - "text.autoconfig.frostiful.option.environmentConfig.winterTemperatureShift": "Winter temperature shift (requires Fabric Seasons)" + "text.autoconfig.frostiful.option.environmentConfig.winterTemperatureShift": "Winter temperature shift (requires Fabric Seasons)", + "text.autoconfig.frostiful.option.environmentConfig.isNightColdInSummer": "Is night cold in summer (requires Fabric Seasons)" } \ No newline at end of file diff --git a/src/main/resources/data/frostiful/tags/items/warm_foods.json b/src/main/resources/data/frostiful/tags/items/warm_foods.json index 764ac9e2..6e5184fb 100644 --- a/src/main/resources/data/frostiful/tags/items/warm_foods.json +++ b/src/main/resources/data/frostiful/tags/items/warm_foods.json @@ -21,18 +21,10 @@ "id": "farmersrespite:black_tea", "required": false }, - { - "id": "farmersrespite:rose_hip_tea", - "required": false - }, { "id": "farmersrespite:dandelion_tea", "required": false }, - { - "id": "farmersrespite:purulent_tea", - "required": false - }, { "id": "farmersrespite:coffee", "required": false @@ -70,27 +62,35 @@ "required": false }, { - "id": "farmersrespite:strong_purulent_tea", + "id": "farmersrespite:strong_coffee", "required": false }, { - "id": "farmersrespite:strong_rose_hip_tea", + "id": "farmersrespite:tea_curry", "required": false }, { - "id": "farmersrespite:strong_coffee", + "id": "farmersrespite:blazing_chili", "required": false }, { - "id": "farmersrespite:tea_curry", + "id": "festive_delight:christmas_tea", "required": false }, { - "id": "farmersrespite:blazing_chili", + "id": "spectrum:hot_chocolate", "required": false }, { - "id": "festive_delight:christmas_tea", + "id": "spectrum:demon_tea", + "required": false + }, + { + "id": "spectrum:restoration_tea", + "required": false + }, + { + "id": "spectrum:glistering_jelly_tea", "required": false } ] diff --git a/src/main/resources/data/frostiful/tags/worldgen/biome/cold_biomes.json b/src/main/resources/data/frostiful/tags/worldgen/biome/cold_biomes.json new file mode 100644 index 00000000..20b14abe --- /dev/null +++ b/src/main/resources/data/frostiful/tags/worldgen/biome/cold_biomes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + + ] +} \ No newline at end of file diff --git a/src/main/resources/data/frostiful/tags/worldgen/biome/cool_biomes.json b/src/main/resources/data/frostiful/tags/worldgen/biome/cool_biomes.json new file mode 100644 index 00000000..20b14abe --- /dev/null +++ b/src/main/resources/data/frostiful/tags/worldgen/biome/cool_biomes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + + ] +} \ No newline at end of file diff --git a/src/main/resources/data/frostiful/tags/worldgen/biome/dry_biomes.json b/src/main/resources/data/frostiful/tags/worldgen/biome/dry_biomes.json new file mode 100644 index 00000000..9ec09d9c --- /dev/null +++ b/src/main/resources/data/frostiful/tags/worldgen/biome/dry_biomes.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "#c:climate_dry" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/frostiful/tags/worldgen/biome/freezing_blacklist_biomes.json b/src/main/resources/data/frostiful/tags/worldgen/biome/freezing_blacklist_biomes.json new file mode 100644 index 00000000..80686249 --- /dev/null +++ b/src/main/resources/data/frostiful/tags/worldgen/biome/freezing_blacklist_biomes.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "#c:in_nether", + "#c:in_the_end" + ] +} \ No newline at end of file diff --git a/src/main/resources/frostiful.mixins.json b/src/main/resources/frostiful.mixins.json index 7e43673d..9b4e83ec 100644 --- a/src/main/resources/frostiful.mixins.json +++ b/src/main/resources/frostiful.mixins.json @@ -11,6 +11,7 @@ "block.PowderSnowWalkableMixin", "block.SnowPackingMixin", "block.WindBlowoutMixin", + "compat.farmersdelight.present.HotCocoaItemMixin", "entity.DamageSourcesMixin", "entity.EntityInvoker", "entity.FallingBlockEntityAccessor", @@ -60,5 +61,5 @@ ], "injectors": { "defaultRequire": 1 - } + } }