From 539da4bac15a8d94ad3c39c465a83b32552a190a Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Wed, 2 Dec 2020 04:31:32 +0300 Subject: [PATCH] Water color --- .../mixin/client/BiomeColorsMixin.java | 43 +++++++++++++++++++ .../world/biome/BiomeDefinition.java | 4 ++ .../world/biome/BiomeDustWastelands.java | 3 +- .../world/biome/BiomeFoggyMushroomland.java | 3 +- .../betterend/world/biome/BiomeMegalake.java | 3 +- .../world/biome/BiomeMegalakeGrove.java | 3 +- .../world/biome/BiomePaintedMountains.java | 3 +- .../world/biome/BiomeShadowForest.java | 3 +- .../world/biome/BiomeSulfurSprings.java | 1 + .../resources/betterend.mixins.client.json | 3 +- 10 files changed, 56 insertions(+), 13 deletions(-) create mode 100644 src/main/java/ru/betterend/mixin/client/BiomeColorsMixin.java diff --git a/src/main/java/ru/betterend/mixin/client/BiomeColorsMixin.java b/src/main/java/ru/betterend/mixin/client/BiomeColorsMixin.java new file mode 100644 index 00000000..697c19e9 --- /dev/null +++ b/src/main/java/ru/betterend/mixin/client/BiomeColorsMixin.java @@ -0,0 +1,43 @@ +package ru.betterend.mixin.client; + +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.CallbackInfoReturnable; + +import net.minecraft.client.color.world.BiomeColors; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockPos.Mutable; +import net.minecraft.world.BlockRenderView; +import ru.betterend.registry.EndBlocks; +import ru.betterend.util.MHelper; + +@Mixin(BiomeColors.class) +public class BiomeColorsMixin { + private static final int POISON_COLOR = MHelper.color(92, 160, 78); + + @Inject(method = "getWaterColor", at = @At("HEAD"), cancellable = true) + private static void beGetWaterColor(BlockRenderView world, BlockPos pos, CallbackInfoReturnable info) { + int x1 = pos.getX() - 1; + int y1 = pos.getY() - 1; + int z1 = pos.getZ() - 1; + int x2 = pos.getX() + 2; + int y2 = pos.getY() + 2; + int z2 = pos.getZ() + 2; + Mutable mut = new Mutable(); + for (int x = x1; x < x2; x++) { + mut.setX(x); + for (int y = y1; y < y2; y++) { + mut.setY(y); + for (int z = z1; z < z2; z++) { + mut.setZ(z); + if (world.getBlockState(mut).isOf(EndBlocks.BRIMSTONE)) { + info.setReturnValue(POISON_COLOR); + info.cancel(); + return; + } + } + } + } + } +} diff --git a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java index ac3b2442..11880976 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeDefinition.java +++ b/src/main/java/ru/betterend/world/biome/BiomeDefinition.java @@ -166,6 +166,10 @@ public class BiomeDefinition { return this; } + public BiomeDefinition setWaterAndFogColor(int r, int g, int b) { + return setWaterColor(r, g, b).setWaterFogColor(r, g, b); + } + public BiomeDefinition setFoliageColor(int r, int g, int b) { this.foliageColor = getColor(r, g, b); return this; diff --git a/src/main/java/ru/betterend/world/biome/BiomeDustWastelands.java b/src/main/java/ru/betterend/world/biome/BiomeDustWastelands.java index d6da20a6..4bd14725 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeDustWastelands.java +++ b/src/main/java/ru/betterend/world/biome/BiomeDustWastelands.java @@ -12,8 +12,7 @@ public class BiomeDustWastelands extends EndBiome { .setFogColor(226, 239, 168) .setFogDensity(2) .setCaves(false) - .setWaterColor(192, 180, 131) - .setWaterFogColor(192, 180, 131) + .setWaterAndFogColor(192, 180, 131) .setSurface(EndBlocks.ENDSTONE_DUST) .setParticles(ParticleTypes.WHITE_ASH, 0.01F) .setLoop(EndSounds.AMBIENT_DUST_WASTELANDS) diff --git a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java index 7014422e..41a12f44 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java +++ b/src/main/java/ru/betterend/world/biome/BiomeFoggyMushroomland.java @@ -15,8 +15,7 @@ public class BiomeFoggyMushroomland extends EndBiome { .setPlantsColor(73, 210, 209) .setFogColor(41, 122, 173) .setFogDensity(3) - .setWaterColor(119, 227, 250) - .setWaterFogColor(119, 227, 250) + .setWaterAndFogColor(119, 227, 250) .setSurface(EndBlocks.END_MOSS, EndBlocks.END_MYCELIUM) .setParticles(EndParticles.GLOWING_SPHERE, 0.001F) .setLoop(EndSounds.AMBIENT_FOGGY_MUSHROOMLAND) diff --git a/src/main/java/ru/betterend/world/biome/BiomeMegalake.java b/src/main/java/ru/betterend/world/biome/BiomeMegalake.java index 9be7cd58..6d810c74 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeMegalake.java +++ b/src/main/java/ru/betterend/world/biome/BiomeMegalake.java @@ -12,8 +12,7 @@ public class BiomeMegalake extends EndBiome { super(new BiomeDefinition("megalake") .setPlantsColor(73, 210, 209) .setFogColor(178, 209, 248) - .setWaterColor(96, 163, 255) - .setWaterFogColor(96, 163, 255) + .setWaterAndFogColor(96, 163, 255) .setFogDensity(1.75F) .setMusic(EndSounds.MUSIC_MEGALAKE) .setLoop(EndSounds.AMBIENT_MEGALAKE) diff --git a/src/main/java/ru/betterend/world/biome/BiomeMegalakeGrove.java b/src/main/java/ru/betterend/world/biome/BiomeMegalakeGrove.java index eb8173a4..5e11d790 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeMegalakeGrove.java +++ b/src/main/java/ru/betterend/world/biome/BiomeMegalakeGrove.java @@ -13,8 +13,7 @@ public class BiomeMegalakeGrove extends EndBiome { super(new BiomeDefinition("megalake_grove") .setPlantsColor(73, 210, 209) .setFogColor(178, 209, 248) - .setWaterColor(96, 163, 255) - .setWaterFogColor(96, 163, 255) + .setWaterAndFogColor(96, 163, 255) .setFogDensity(2.0F) .setParticles(EndParticles.GLOWING_SPHERE, 0.001F) .setMusic(EndSounds.MUSIC_MEGALAKE) diff --git a/src/main/java/ru/betterend/world/biome/BiomePaintedMountains.java b/src/main/java/ru/betterend/world/biome/BiomePaintedMountains.java index b1bd0fd2..1aa00072 100644 --- a/src/main/java/ru/betterend/world/biome/BiomePaintedMountains.java +++ b/src/main/java/ru/betterend/world/biome/BiomePaintedMountains.java @@ -12,8 +12,7 @@ public class BiomePaintedMountains extends EndBiome { .setFogColor(226, 239, 168) .setFogDensity(2) .setCaves(false) - .setWaterColor(192, 180, 131) - .setWaterFogColor(192, 180, 131) + .setWaterAndFogColor(192, 180, 131) .setMusic(EndSounds.MUSIC_DUST_WASTELANDS) .setLoop(EndSounds.AMBIENT_DUST_WASTELANDS) .setSurface(EndBlocks.ENDSTONE_DUST) diff --git a/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java b/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java index 4ffe5998..3c027767 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java +++ b/src/main/java/ru/betterend/world/biome/BiomeShadowForest.java @@ -14,8 +14,7 @@ public class BiomeShadowForest extends EndBiome { .setFogColor(0, 0, 0) .setFogDensity(2.5F) .setPlantsColor(45, 45, 45) - .setWaterColor(42, 45, 80) - .setWaterFogColor(42, 45, 80) + .setWaterAndFogColor(42, 45, 80) .setSurface(EndBlocks.SHADOW_GRASS) .setParticles(ParticleTypes.MYCELIUM, 0.01F) .setLoop(EndSounds.AMBIENT_CHORUS_FOREST) diff --git a/src/main/java/ru/betterend/world/biome/BiomeSulfurSprings.java b/src/main/java/ru/betterend/world/biome/BiomeSulfurSprings.java index 1201ae22..39989c15 100644 --- a/src/main/java/ru/betterend/world/biome/BiomeSulfurSprings.java +++ b/src/main/java/ru/betterend/world/biome/BiomeSulfurSprings.java @@ -9,6 +9,7 @@ public class BiomeSulfurSprings extends EndBiome { public BiomeSulfurSprings() { super(new BiomeDefinition("sulfur_springs") .setSurface(SurfaceBuilders.SULPHURIC_SURFACE) + .setWaterAndFogColor(105, 213, 244) .setFogColor(207, 194, 62) .setFogDensity(1.5F) .setCaves(false) diff --git a/src/main/resources/betterend.mixins.client.json b/src/main/resources/betterend.mixins.client.json index 70fbfbd4..9fd178f7 100644 --- a/src/main/resources/betterend.mixins.client.json +++ b/src/main/resources/betterend.mixins.client.json @@ -15,7 +15,8 @@ "MinecraftClientMixin", "WorldRendererMixin", "MusicTrackerMixin", - "ModelLoaderMixin" + "ModelLoaderMixin", + "BiomeColorsMixin" ], "injectors": { "defaultRequire": 1