From b72da7d1bf711040e7ea859798b32d96b872817b Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 6 May 2021 18:59:00 +0300 Subject: [PATCH] Biome temperature fix (WIP) --- .../mixin/common/ServerLevelMixin.java | 22 +++++++++++++++++++ .../world/biome/BiomeDefinition.java | 8 ++++++- .../world/biome/air/BiomeIceStarfield.java | 1 + 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/betterend/mixin/common/ServerLevelMixin.java b/src/main/java/ru/betterend/mixin/common/ServerLevelMixin.java index 03a9f624..33aefc96 100644 --- a/src/main/java/ru/betterend/mixin/common/ServerLevelMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ServerLevelMixin.java @@ -3,11 +3,15 @@ package ru.betterend.mixin.common; import java.io.File; import java.util.List; import java.util.Locale; +import java.util.Map; import java.util.concurrent.Executor; +import java.util.function.Supplier; 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.ModifyArg; +import org.spongepowered.asm.mixin.injection.ModifyVariable; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @@ -17,11 +21,16 @@ import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.progress.ChunkProgressListener; +import net.minecraft.tags.Tag; import net.minecraft.world.level.CustomSpawner; import net.minecraft.world.level.Level; +import net.minecraft.world.level.WorldGenLevel; +import net.minecraft.world.level.biome.Biome; +import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.level.storage.LevelStorageSource; @@ -29,6 +38,7 @@ import net.minecraft.world.level.storage.ServerLevelData; import ru.betterend.BetterEnd; import ru.betterend.registry.EndBiomes; import ru.betterend.util.DataFixerUtil; +import ru.betterend.util.TagHelper; import ru.betterend.util.WorldDataUtil; import ru.betterend.world.generator.GeneratorOptions; @@ -81,6 +91,18 @@ public class ServerLevelMixin { } } + @ModifyArg( + method = "tickChunk", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/world/level/Level;setBlockAndUpdate(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)Z" + ) + ) + private BlockState be_modifyTickState(BlockPos pos, BlockState state) { + System.out.println(state); + return state; + } + private static int be_getVersionInt(String version) { if (version.isEmpty()) { return 0; diff --git a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java index 0da55eba..585ba53b 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java +++ b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java @@ -68,6 +68,7 @@ public class BiomeDefinition { private float genChance = 1F; private boolean hasCaves = true; private boolean isCaveBiome = false; + private float temperature = 1F; private ConfiguredSurfaceBuilder surface; @@ -117,6 +118,11 @@ public class BiomeDefinition { this.depth = depth; return this; } + + public BiomeDefinition setTemperature(float temperature) { + this.temperature = temperature; + return this; + } public BiomeDefinition addMobSpawn(EntityType type, int weight, int minGroupSize, int maxGroupSize) { ResourceLocation eID = Registry.ENTITY_TYPE.getKey(type); @@ -263,7 +269,7 @@ public class BiomeDefinition { .biomeCategory(isCaveBiome ? BiomeCategory.NONE : BiomeCategory.THEEND) .depth(depth) .scale(0.2F) - .temperature(2.0F) + .temperature(temperature) .downfall(0.0F) .specialEffects(effects.build()) .mobSpawnSettings(spawnSettings.build()) diff --git a/src/main/java/ru/betterend/world/biome/air/BiomeIceStarfield.java b/src/main/java/ru/betterend/world/biome/air/BiomeIceStarfield.java index f90945e3..f4d17ce0 100644 --- a/src/main/java/ru/betterend/world/biome/air/BiomeIceStarfield.java +++ b/src/main/java/ru/betterend/world/biome/air/BiomeIceStarfield.java @@ -11,6 +11,7 @@ public class BiomeIceStarfield extends EndBiome { public BiomeIceStarfield() { super(new BiomeDefinition("ice_starfield") .setFogColor(224, 245, 254) + .setTemperature(0F) .setFogDensity(2.2F) .setFoliageColor(193, 244, 244) .setGenChance(0.25F)