Enderscape integration
This commit is contained in:
parent
ae0efb1f52
commit
d8bad90731
6 changed files with 64 additions and 9 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
|
26
src/main/java/ru/betterend/mixin/client/EndEffectsMixin.java
Normal file
26
src/main/java/ru/betterend/mixin/client/EndEffectsMixin.java
Normal file
|
@ -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<Vec3> 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<Boolean> info) {
|
||||
if (Integrations.ENDERSCAPE.modIsInstalled()) {
|
||||
info.setReturnValue(false);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue