Skip to content

Commit dcd1662

Browse files
committed
Mixin attempt to make model rendering work regardless of loader.
1 parent 288fb17 commit dcd1662

File tree

4 files changed

+41
-49
lines changed

4 files changed

+41
-49
lines changed

common/src/main/java/generations/gg/generations/core/generationscore/common/client/GenerationsCoreClient.kt

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import generations.gg.generations.core.generationscore.common.GenerationsCore.LO
2121
import generations.gg.generations.core.generationscore.common.client.model.GenerationsClientMolangFunctions
2222
import generations.gg.generations.core.generationscore.common.client.model.RareCandyBone
2323
import generations.gg.generations.core.generationscore.common.client.model.inventory.GenericChestItemStackRenderer
24+
import generations.gg.generations.core.generationscore.common.client.render.RenderStateRecord
2425
import generations.gg.generations.core.generationscore.common.client.render.block.entity.*
2526
import generations.gg.generations.core.generationscore.common.client.render.entity.*
2627
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.MinecraftClientGameProvider
@@ -533,6 +534,31 @@ object GenerationsCoreClient {
533534
.get() /*&& Minecraft.getInstance().options.renderDebugCharts*/ && !Minecraft.getInstance().options.hideGui
534535
}
535536

537+
fun secondRenderPass() {
538+
// renderHighlightedPath(stack, Minecraft.getInstance().levelRenderer.ticks, camera)
539+
540+
RenderStateRecord.push()
541+
RenderSystem.enableDepthTest()
542+
RenderSystem.defaultBlendFunc()
543+
RenderSystem.enableBlend()
544+
renderRareCandyTransparent(true)
545+
RenderStateRecord.pop()
546+
}
547+
548+
fun firstRenderPass() {
549+
550+
MatrixCache.projectionMatrix = RenderSystem.getProjectionMatrix()
551+
MatrixCache.viewMatrix = RenderSystem.getModelViewMatrix()
552+
553+
RenderStateRecord.push()
554+
555+
renderRareCandySolid()
556+
renderRareCandyTransparent()
557+
558+
RenderStateRecord.pop()
559+
}
560+
561+
536562
fun renderRareCandySolid() {
537563
renderRareCandy(RenderStage.SOLID, false)
538564
}
@@ -545,7 +571,6 @@ object GenerationsCoreClient {
545571
if (GenerationsCore.CONFIG.client.useVanilla) return
546572

547573
var startTime = System.currentTimeMillis()
548-
// level.profiler.popPush("render_models")
549574
RenderSystem.enableDepthTest()
550575
BufferUploader.reset()
551576

common/src/main/java/generations/gg/generations/core/generationscore/common/mixin/client/LevelRendererMixin.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,15 @@
4242

4343
@Mixin(LevelRenderer.class)
4444
public abstract class LevelRendererMixin {
45+
@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/debug/DebugRenderer;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource$BufferSource;DDD)V"))
46+
private void pokecraft$firstPass(DeltaTracker deltaTracker, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f frustumMatrix, Matrix4f projectionMatrix, CallbackInfo ci) {
47+
GenerationsCoreClient.INSTANCE.firstRenderPass();
48+
}
4549

46-
@Shadow
47-
@Nullable
48-
private ClientLevel level;
50+
@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Options;getCloudsType()Lnet/minecraft/client/CloudStatus;"))
51+
private void pokecraft$secondPass(DeltaTracker deltaTracker, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f frustumMatrix, Matrix4f projectionMatrix, CallbackInfo ci) {
52+
GenerationsCoreClient.INSTANCE.secondRenderPass();
53+
}
4954

50-
@Shadow
51-
@Final
52-
private static Logger LOGGER;
5355

54-
@Inject(method = "renderLevel", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/debug/DebugRenderer;render(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource$BufferSource;DDD)V"))
55-
private void pokecraft$rksRender(DeltaTracker deltaTracker, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f frustumMatrix, Matrix4f projectionMatrix, CallbackInfo ci) {
56-
// GenerationsCoreClient.renderRareCandy(level);
57-
}
5856
}

fabric/src/main/java/generations/gg/generations/core/generationscore/fabric/client/GenerationsCoreClientFabric.kt

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,12 @@
11
package generations.gg.generations.core.generationscore.fabric.client
22

3-
import com.mojang.blaze3d.systems.RenderSystem
43
import generations.gg.generations.core.generationscore.common.client.GenerationsCoreClient
54
import generations.gg.generations.core.generationscore.common.client.GenerationsCoreClient.BlockEntityRendererHandler
65
import generations.gg.generations.core.generationscore.common.client.GenerationsCoreClient.EntityRendererHandler
76
import generations.gg.generations.core.generationscore.common.client.GenerationsCoreClient.onInitialize
87
import generations.gg.generations.core.generationscore.common.client.GenerationsCoreClient.registerBlockEntityRenderers
98
import generations.gg.generations.core.generationscore.common.client.GenerationsCoreClient.registerEntityRenderers
109
import generations.gg.generations.core.generationscore.common.client.GenerationsCoreClient.registerLayerDefinitions
11-
import generations.gg.generations.core.generationscore.common.client.GenerationsCoreClient.renderHighlightedPath
12-
import generations.gg.generations.core.generationscore.common.client.GenerationsCoreClient.renderRareCandySolid
13-
import generations.gg.generations.core.generationscore.common.client.GenerationsCoreClient.renderRareCandyTransparent
14-
import generations.gg.generations.core.generationscore.common.client.MatrixCache
15-
import generations.gg.generations.core.generationscore.common.client.render.RenderStateRecord
1610
import generations.gg.generations.core.generationscore.common.world.level.block.GenerationsBlocks
1711
import generations.gg.generations.core.generationscore.common.world.level.block.GenerationsMushroomBlock
1812
import generations.gg.generations.core.generationscore.common.world.level.block.GenerationsWood
@@ -23,9 +17,6 @@ import net.fabricmc.api.Environment
2317
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap
2418
import net.fabricmc.fabric.api.client.rendering.v1.EntityModelLayerRegistry
2519
import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry
26-
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext
27-
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents
28-
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents.AfterTranslucent
2920
import net.minecraft.client.Minecraft
3021
import net.minecraft.client.renderer.RenderType
3122
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
@@ -54,31 +45,9 @@ class GenerationsCoreClientFabric : ClientModInitializer {
5445
* @see ClientModInitializer.onInitializeClient
5546
*/
5647
override fun onInitializeClient() {
57-
WorldRenderEvents.AFTER_TRANSLUCENT.register(AfterTranslucent { context: WorldRenderContext ->
58-
renderHighlightedPath(
59-
context.matrixStack()!!, Minecraft.getInstance().levelRenderer.ticks, context.camera()
60-
)
48+
// WorldRenderEvents.AFTER_TRANSLUCENT.register { secondRenderPass() }
6149

62-
RenderStateRecord.push()
63-
RenderSystem.enableDepthTest()
64-
RenderSystem.defaultBlendFunc()
65-
RenderSystem.enableBlend()
66-
renderRareCandyTransparent(true)
67-
RenderStateRecord.pop()
68-
})
69-
70-
WorldRenderEvents.BEFORE_DEBUG_RENDER.register {
71-
72-
MatrixCache.projectionMatrix = RenderSystem.getProjectionMatrix()
73-
MatrixCache.viewMatrix = RenderSystem.getModelViewMatrix()
74-
75-
RenderStateRecord.push()
76-
77-
renderRareCandySolid()
78-
renderRareCandyTransparent()
79-
80-
RenderStateRecord.pop()
81-
}
50+
// WorldRenderEvents.BEFORE_DEBUG_RENDER.register { firstRenderPass() }
8251

8352
GenerationsCoreFabric.networkManager.registerClientHandlers()
8453

neoforge/src/main/java/generations/gg/generations/core/generationscore/forge/client/GenerationsCoreClientForge.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,11 @@ class GenerationsCoreClientForge(eventBus: IEventBus) {
7474
// event
7575
// )
7676
// }
77-
NeoForge.EVENT_BUS.addListener { event: RenderLevelStageEvent ->
78-
renderHighlightedPath(
79-
event
80-
)
81-
}
77+
// NeoForge.EVENT_BUS.addListener { event: RenderLevelStageEvent ->
78+
// renderHighlightedPath(
79+
// event
80+
// )
81+
// }
8282
}
8383

8484
companion object {

0 commit comments

Comments
 (0)