diff --git a/src/main/java/ru/betterend/client/BetterEndClient.java b/src/main/java/ru/betterend/client/BetterEndClient.java index 08074771..3eefeaf4 100644 --- a/src/main/java/ru/betterend/client/BetterEndClient.java +++ b/src/main/java/ru/betterend/client/BetterEndClient.java @@ -3,14 +3,12 @@ package ru.betterend.client; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry; import net.fabricmc.fabric.api.client.rendering.v1.DimensionRenderingRegistry; - import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Style; import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; - import ru.bclib.BCLib; import ru.bclib.util.TranslationHelper; import ru.betterend.BetterEnd; diff --git a/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java b/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java index c750e726..a1f7f084 100644 --- a/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java +++ b/src/main/java/ru/betterend/client/render/BetterEndSkyRenderer.java @@ -11,6 +11,8 @@ import com.mojang.blaze3d.vertex.VertexFormat; import com.mojang.math.Matrix4f; import com.mojang.math.Quaternion; import com.mojang.math.Vector3f; +import net.fabricmc.fabric.api.client.rendering.v1.DimensionRenderingRegistry; +import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; import net.minecraft.client.renderer.FogRenderer; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.resources.ResourceLocation; @@ -20,9 +22,6 @@ import ru.betterend.BetterEnd; import java.util.Random; -import net.fabricmc.fabric.api.client.rendering.v1.DimensionRenderingRegistry; -import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; - public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRenderer { private static final ResourceLocation NEBULA_1 = BetterEnd.makeID("textures/sky/nebula_2.png"); private static final ResourceLocation NEBULA_2 = BetterEnd.makeID("textures/sky/nebula_3.png"); @@ -42,11 +41,11 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende private Vector3f axis2; private Vector3f axis3; private Vector3f axis4; - - private boolean initalized = false; + + private boolean initialised; private void initialise() { - if(!initalized) { + if (!initialised) { initStars(); Random random = new Random(131); axis1 = new Vector3f(random.nextFloat(), random.nextFloat(), random.nextFloat()); @@ -57,7 +56,7 @@ public class BetterEndSkyRenderer implements DimensionRenderingRegistry.SkyRende axis2.normalize(); axis3.normalize(); axis4.normalize(); - this.initalized = true; + initialised = true; } } diff --git a/src/main/java/ru/betterend/integration/EnderscapeIntegration.java b/src/main/java/ru/betterend/integration/EnderscapeIntegration.java new file mode 100644 index 00000000..92748088 --- /dev/null +++ b/src/main/java/ru/betterend/integration/EnderscapeIntegration.java @@ -0,0 +1,30 @@ +package ru.betterend.integration; + +import net.minecraft.core.MappedRegistry; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.biome.Biome; +import ru.bclib.api.BiomeAPI; +import ru.bclib.integration.ModIntegration; + +public class EnderscapeIntegration extends ModIntegration { + public EnderscapeIntegration() { + super("enderscape"); + } + + @Override + public void init() { + Class enderscape = getClass("net.enderscape.Enderscape"); + Class enderscapeIslandsBiome = getClass("net.enderscape.world.biomes.EnderscapeIslandsBiome"); + MappedRegistry biomes = getStaticFieldValue(enderscape, "ENDERSCAPE_BIOME"); + biomes.entrySet().forEach(entry -> { + ResourceKey key = entry.getKey(); + Biome biome = getBiome(key.location().getPath()); + if (enderscapeIslandsBiome.isInstance(entry.getValue())) { + BiomeAPI.registerEndVoidBiome(biome); + } + else { + BiomeAPI.registerEndLandBiome(biome); + } + }); + } +} diff --git a/src/main/java/ru/betterend/integration/Integrations.java b/src/main/java/ru/betterend/integration/Integrations.java index a92aafcd..21a7a9aa 100644 --- a/src/main/java/ru/betterend/integration/Integrations.java +++ b/src/main/java/ru/betterend/integration/Integrations.java @@ -18,6 +18,7 @@ public class Integrations { public static final ModIntegration BYG = ModIntegrationAPI.register(new BYGIntegration()); public static final ModIntegration NOURISH = ModIntegrationAPI.register(new NourishIntegration()); public static final ModIntegration FLAMBOYANT_REFABRICATED = ModIntegrationAPI.register(new FlamboyantRefabricatedIntegration()); + public static final ModIntegration ENDERSCAPE = ModIntegrationAPI.register(new EnderscapeIntegration()); private static boolean hasHydrogen; diff --git a/src/main/java/ru/betterend/mixin/client/EndEffectsMixin.java b/src/main/java/ru/betterend/mixin/client/EndEffectsMixin.java new file mode 100644 index 00000000..a215b8ec --- /dev/null +++ b/src/main/java/ru/betterend/mixin/client/EndEffectsMixin.java @@ -0,0 +1,26 @@ +package ru.betterend.mixin.client; + +import net.minecraft.client.renderer.DimensionSpecialEffects.EndEffects; +import net.minecraft.world.phys.Vec3; +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 ru.betterend.integration.Integrations; + +@Mixin(value = EndEffects.class, priority = 10) +public class EndEffectsMixin { + @Inject(method = "getBrightnessDependentFogColor", at = @At("HEAD"), cancellable = true) + private void be_restoreBrightness(Vec3 color, float sunHeight, CallbackInfoReturnable info) { + if (Integrations.ENDERSCAPE.modIsInstalled()) { + info.setReturnValue(color.scale(0.15000000596046448D)); + } + } + + @Inject(method = "isFoggyAt", at = @At("HEAD"), cancellable = true) + private void be_restoreFog(int camX, int camY, CallbackInfoReturnable info) { + if (Integrations.ENDERSCAPE.modIsInstalled()) { + info.setReturnValue(false); + } + } +} diff --git a/src/main/resources/betterend.mixins.client.json b/src/main/resources/betterend.mixins.client.json index d6bf3910..1ce18df4 100644 --- a/src/main/resources/betterend.mixins.client.json +++ b/src/main/resources/betterend.mixins.client.json @@ -13,6 +13,7 @@ "BiomeColorsMixin", "LocalPlayerMixin", "ModelLoaderMixin", + "EndEffectsMixin", "CapeLayerMixin", "ItemStackMixin" ],