2626import btw .lowercase .skyboxify .Skyboxify ;
2727import btw .lowercase .skyboxify .events .SkyRenderEvent ;
2828import btw .lowercase .skyboxify .skybox .SkyboxManager ;
29+ import com .llamalad7 .mixinextras .injector .v2 .WrapWithCondition ;
2930import com .llamalad7 .mixinextras .injector .wrapoperation .Operation ;
3031import com .llamalad7 .mixinextras .injector .wrapoperation .WrapOperation ;
3132import com .mojang .blaze3d .framegraph .FrameGraphBuilder ;
3536import net .minecraft .client .renderer .LevelRenderer ;
3637import net .minecraft .world .level .Level ;
3738import org .jetbrains .annotations .Nullable ;
39+ import org .objectweb .asm .Opcodes ;
3840import org .spongepowered .asm .mixin .Mixin ;
3941import org .spongepowered .asm .mixin .Shadow ;
4042import org .spongepowered .asm .mixin .Unique ;
4345import org .spongepowered .asm .mixin .injection .callback .CallbackInfo ;
4446
4547//? >=1.21.11 {
46- import net .minecraft .world .level .dimension .DimensionType ;
47- //?} else {
48- /* import net.minecraft.client.renderer.DimensionSpecialEffects;
49- */ //?}
48+ /* import net.minecraft.world.level.dimension.DimensionType;
49+ */ //?} else {
50+ import net .minecraft .client .renderer .DimensionSpecialEffects ;
51+ //?}
5052
5153@ Mixin (value = LevelRenderer .class , priority = 900 )
5254public abstract class MixinLevelRenderer {
5355 @ Unique
54- private static float skyboxify$tickDelta ;
56+ private static float skyboxify$tickDelta = 0.0F ;
57+
5558 @ Shadow
5659 @ Nullable
5760 private ClientLevel level ;
@@ -88,8 +91,8 @@ public abstract class MixinLevelRenderer {
8891 )
8992 )
9093 private
91- //? >=1.21.11
92- static
94+ //? >=1.21.11
95+ /* static*/
9396 void skyboxify$renderEndSkybox (
9497 net .minecraft .client .renderer .SkyRenderer instance ,
9598 //? <=1.21.3
@@ -103,14 +106,14 @@ public abstract class MixinLevelRenderer {
103106 );
104107 Skyboxify .getEventManager ().dispatch (new SkyRenderEvent .EndSky .After (
105108 //? >=1.21.11 {
106- net .minecraft .client .Minecraft .getInstance ().level
107- //? } else {
108- /* this.level
109- */ //? }
109+ /* net.minecraft.client.Minecraft.getInstance().level
110+ */ //? } else {
111+ this .level
112+ //? }
110113 ));
111114 }
112115
113- @ WrapOperation (
116+ @ WrapWithCondition (
114117 method = "method_62215" ,
115118 at = @ At (
116119 value = "INVOKE" ,
@@ -125,50 +128,37 @@ public abstract class MixinLevelRenderer {
125128 )
126129 private
127130 //? >=1.21.11
128- static
129- void skyboxify$endBatchSunrise (
131+ /* static*/
132+ boolean skyboxify$endBatchSunrise (
130133 net .minecraft .client .renderer .SkyRenderer instance ,
131134 PoseStack poseStack ,
132135 //? >=1.21.4 <1.21.9
133136 /*net.minecraft.client.renderer.MultiBufferSource.BufferSource bufferSource,*/
134137 //? <=1.21.3
135138 /*com.mojang.blaze3d.vertex.Tesselator tesselator,*/
136139 float sunAngle ,
137- int sunriseOrSunsetColor ,
138- Operation <Void > original
140+ int sunriseOrSunsetColor
139141 ) {
140- final var event = Skyboxify .getEventManager ().dispatch (new SkyRenderEvent .SunriseSunset (
142+ return ! Skyboxify .getEventManager ().dispatch (new SkyRenderEvent .SunriseSunset (
141143 //? >=1.21.11 {
142- net .minecraft .client .Minecraft .getInstance ().level
143- //? } else {
144- /* this.level
145- */ //? }
144+ /* net.minecraft.client.Minecraft.getInstance().level
145+ */ //? } else {
146+ this .level
147+ //? }
146148 //? >=1.21.4 <1.21.9
147149 /*, bufferSource*/
148- ));
149- if (!event .isCancelled ()) {
150- original .call (
151- instance ,
152- poseStack ,
153- //? >=1.21.4 <1.21.9
154- /*bufferSource,*/
155- //? <=1.21.3
156- /*tesselator,*/
157- sunAngle ,
158- sunriseOrSunsetColor
159- );
160- }
150+ )).isCancelled ();
161151 }
162152
163- @ WrapOperation (
153+ @ WrapWithCondition (
164154 method = "method_62215" ,
165155 at = @ At (
166156 value = "INVOKE" ,
167157 //? >=1.21.11 {
168- target = "Lnet/minecraft/client/renderer/SkyRenderer;renderSunMoonAndStars(Lcom/mojang/blaze3d/vertex/PoseStack;FFFLnet/minecraft/world/level/MoonPhase;FF)V"
169- //?} else >=1.21.9 {
170- /* target = "Lnet/minecraft/client/renderer/SkyRenderer;renderSunMoonAndStars(Lcom/mojang/blaze3d/vertex/PoseStack;FIFF)V"
171- */ //?} else >=1.21.6 {
158+ /* target = "Lnet/minecraft/client/renderer/SkyRenderer;renderSunMoonAndStars(Lcom/mojang/blaze3d/vertex/PoseStack;FFFLnet/minecraft/world/level/MoonPhase;FF)V"
159+ */ //?} else >=1.21.9 {
160+ target = "Lnet/minecraft/client/renderer/SkyRenderer;renderSunMoonAndStars(Lcom/mojang/blaze3d/vertex/PoseStack;FIFF)V"
161+ //?} else >=1.21.6 {
172162 /*target = "Lnet/minecraft/client/renderer/SkyRenderer;renderSunMoonAndStars(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource$BufferSource;FIFF)V"
173163 */ //?} else >=1.21.4 {
174164 /*target = "Lnet/minecraft/client/renderer/SkyRenderer;renderSunMoonAndStars(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource$BufferSource;FIFFLnet/minecraft/client/renderer/FogParameters;)V"
@@ -178,9 +168,9 @@ public abstract class MixinLevelRenderer {
178168 )
179169 )
180170 private
181- //? >=1.21.11
182- static
183- void skyboxify$renderSkyboxes (
171+ //? >=1.21.11
172+ /* static*/
173+ boolean skyboxify$renderSkyboxes (
184174 net .minecraft .client .renderer .SkyRenderer instance ,
185175 PoseStack poseStack ,
186176 //? >=1.21.4 <1.21.9
@@ -189,70 +179,50 @@ public abstract class MixinLevelRenderer {
189179 /*com.mojang.blaze3d.vertex.Tesselator tesselator,*/
190180 float timeOfDay ,
191181 //? <=1.21.10 {
192- /* int moonPhase,
193- */ //?}
182+ int moonPhase ,
183+ //?}
194184 float moonAngle ,
195- float starAngle ,
185+ float starAngle
196186 //? >=1.21.11 {
197- net .minecraft .world .level .MoonPhase moonPhase ,
187+ /*, net.minecraft.world.level.MoonPhase moonPhase,
198188 float rainBrightness,
199- float starBrightness ,
200- //?}
189+ float starBrightness
190+ */ //?}
201191 //? <1.21.6
202- /*net.minecraft.client.renderer.FogParameters fog,*/
203- Operation <Void > original
192+ /*,net.minecraft.client.renderer.FogParameters fog*/
204193 ) {
205- final var event = Skyboxify .getEventManager ().dispatch (new SkyRenderEvent .SunMoonStars (
194+ return ! Skyboxify .getEventManager ().dispatch (new SkyRenderEvent .SunMoonStars (
206195 //? >=1.21.11 {
207- net .minecraft .client .Minecraft .getInstance ().level ,
208- //? } else {
209- /* this.level,
210- */ //? }
196+ /* net.minecraft.client.Minecraft.getInstance().level,
197+ */ //? } else {
198+ this .level ,
199+ //? }
211200 skyboxify$tickDelta
212- ));
213- if (!event .isCancelled ()) {
214- original .call (
215- instance ,
216- poseStack ,
217- //? >=1.21.4 <1.21.9
218- /*bufferSource,*/
219- //? <=1.21.3
220- /*tesselator,*/
221- timeOfDay ,
222- //? <=1.21.10
223- /*moonPhase,*/
224- moonAngle ,
225- starAngle
226- //? >=1.21.11 {
227- , moonPhase , rainBrightness , starBrightness
228- //?}
229- //? <1.21.6
230- /*, fog*/
231- );
232- }
201+ )).isCancelled ();
233202 }
234203
235204 @ WrapOperation (
236205 method = "addSkyPass" ,
237206 at = @ At (
238207 //? >=1.21.11 {
239- value = "FIELD" ,
240- target = "Lnet/minecraft/client/renderer/state/SkyRenderState;skybox:Lnet/minecraft/world/level/dimension/DimensionType$Skybox;"
241- //?} else >=1.21.10 {
242208 /*value = "FIELD",
243- target = "Lnet/minecraft/client/renderer/state/SkyRenderState;skyType:Lnet/minecraft/client/renderer/DimensionSpecialEffects$SkyType;"
244- */ //?} else {
209+ target = "Lnet/minecraft/client/renderer/state/SkyRenderState;skybox:Lnet/minecraft/world/level/dimension/DimensionType$Skybox;",
210+ */ //?} else >=1.21.10 {
211+ value = "FIELD" ,
212+ target = "Lnet/minecraft/client/renderer/state/SkyRenderState;skyType:Lnet/minecraft/client/renderer/DimensionSpecialEffects$SkyType;" ,
213+ //?} else {
245214 /*value = "INVOKE",
246- target = "Lnet/minecraft/client/renderer/DimensionSpecialEffects;skyType()Lnet/minecraft/client/renderer/DimensionSpecialEffects$SkyType;"
215+ target = "Lnet/minecraft/client/renderer/DimensionSpecialEffects;skyType()Lnet/minecraft/client/renderer/DimensionSpecialEffects$SkyType;",
247216 */ //?}
217+ opcode = Opcodes .GETFIELD
248218 )
249219 )
250220 private
251- //? >=1.21.11 {
252- DimensionType .Skybox
253- //?} else {
254- /* DimensionSpecialEffects.SkyType
255- */ //?}
221+ //? >=1.21.11 {
222+ /* DimensionType.Skybox
223+ */ //?} else {
224+ DimensionSpecialEffects .SkyType
225+ //?}
256226 skyboxify$allowNetherSky (
257227 //? >= 1.21.9 {
258228 net .minecraft .client .renderer .state .SkyRenderState instance ,
@@ -261,19 +231,19 @@ public abstract class MixinLevelRenderer {
261231 */ //?}
262232 Operation <
263233 //? >=1.21.11 {
264- DimensionType .Skybox
265- //?} else {
266- /* DimensionSpecialEffects.SkyType
267- */ //?}
268- > original
234+ /* DimensionType.Skybox
235+ */ //?} else {
236+ DimensionSpecialEffects .SkyType
237+ //?}
238+ > original
269239 ) {
270240 //noinspection DataFlowIssue
271241 if (SkyboxManager .INSTANCE .isEnabled (this .level ) && SkyboxManager .INSTANCE .containsEnabled (Level .NETHER ) && this .level .dimension ().equals (Level .NETHER )) {
272242 //? >=1.21.11 {
273- return DimensionType .Skybox .OVERWORLD ;
274- //?} else {
275- /* return DimensionSpecialEffects.SkyType.OVERWORLD;
276- */ //?}
243+ /* return DimensionType.Skybox.OVERWORLD;
244+ */ //?} else {
245+ return DimensionSpecialEffects .SkyType .OVERWORLD ;
246+ //?}
277247 } else {
278248 return original .call (instance );
279249 }
0 commit comments