Skip to content

Commit

Permalink
change: Fix NeoForge build
Browse files Browse the repository at this point in the history
  • Loading branch information
FlashyReese committed Feb 23, 2025
1 parent 7e5fb4d commit 8975d52
Showing 1 changed file with 23 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
package io.github.amerebagatelle.mods.nuit.mixin;

import com.mojang.blaze3d.framegraph.FrameGraphBuilder;
import com.mojang.blaze3d.vertex.PoseStack;
import io.github.amerebagatelle.mods.nuit.SkyboxManager;
import net.minecraft.client.Camera;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.FogParameters;
import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.RenderBuffers;
import net.minecraft.client.renderer.SkyRenderer;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
Expand All @@ -21,21 +27,33 @@ public abstract class MixinLevelRenderer {
@Final
private RenderBuffers renderBuffers;

@Unique
private float nuit$tickDelta;

@Unique
private FogParameters nuit$fogParameters;

@Inject(method = "addSkyPass", at = @At(value = "HEAD"))
private void preAddSkyPass(FrameGraphBuilder frameGraphBuilder, Camera camera, float f, FogParameters fogParameters, CallbackInfo ci) {
this.nuit$tickDelta = f;
this.nuit$fogParameters = fogParameters;
}

/**
* Contains the logic for when skyboxes should be rendered.
*/
@Inject(method = "method_62215", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;setShaderFog(Lnet/minecraft/client/renderer/FogParameters;)V", shift = At.Shift.AFTER), cancellable = true)
private void renderCustomSkyboxes(FogParameters fogParameters, DimensionSpecialEffects.SkyType skyType, float tickDelta, DimensionSpecialEffects dimensionSpecialEffects, CallbackInfo ci) {
@Inject(method = {"method_62215", "lambda$addSkyPass$12"}, require = 1, at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/systems/RenderSystem;setShaderFog(Lnet/minecraft/client/renderer/FogParameters;)V", shift = At.Shift.AFTER), cancellable = true)
private void renderCustomSkyboxes(CallbackInfo ci) {
SkyboxManager skyboxManager = SkyboxManager.getInstance();
if (skyboxManager.isEnabled() && !skyboxManager.getActiveSkyboxes().isEmpty()) {
PoseStack poseStack = new PoseStack();
skyboxManager.renderSkyboxes(
(SkyRendererAccessor) skyRenderer,
poseStack,
tickDelta,
this.nuit$tickDelta,
Minecraft.getInstance().gameRenderer.getMainCamera(),
this.renderBuffers.bufferSource(),
fogParameters
this.nuit$fogParameters
);
ci.cancel();
}
Expand Down

0 comments on commit 8975d52

Please sign in to comment.