1515import net .fabricmc .fabric .api .client .event .lifecycle .v1 .ClientTickEvents ;
1616import net .fabricmc .fabric .api .client .keybinding .v1 .KeyBindingHelper ;
1717import net .fabricmc .fabric .api .client .networking .v1 .ClientPlayConnectionEvents ;
18+ import net .fabricmc .fabric .api .client .rendering .v1 .world .WorldRenderContext ;
19+ import net .fabricmc .fabric .api .client .rendering .v1 .world .WorldRenderEvents ;
1820import net .fabricmc .fabric .api .networking .v1 .PacketSender ;
1921import net .minecraft .client .KeyMapping ;
2022import net .minecraft .client .Minecraft ;
2325import net .minecraft .resources .ResourceLocation ;
2426import net .minecraft .world .level .Level ;
2527import org .enginehub .worldeditcui .WorldEditCUI ;
26- import org .enginehub .worldeditcui .callback .WorldRenderCallback ;
2728import org .enginehub .worldeditcui .config .CUIConfiguration ;
2829import org .enginehub .worldeditcui .event .listeners .CUIListenerChannel ;
2930import org .enginehub .worldeditcui .event .listeners .CUIListenerWorldRender ;
3233import org .enginehub .worldeditcui .render .OptifinePipelineProvider ;
3334import org .enginehub .worldeditcui .render .PipelineProvider ;
3435import org .enginehub .worldeditcui .render .VanillaPipelineProvider ;
35- import org .enginehub .worldeditcui .render .WecuiRenderContext ;
3636import org .lwjgl .glfw .GLFW ;
3737import org .spongepowered .asm .mixin .MixinEnvironment ;
3838
@@ -71,6 +71,8 @@ public final class FabricModWorldEditCUI implements ModInitializer {
7171 private boolean visible = true ;
7272 private int delayedHelo = 0 ;
7373
74+ private float lastPartialTicks = 0.0f ;
75+
7476 /**
7577 * Register a key binding
7678 *
@@ -96,31 +98,20 @@ public void onInitialize() {
9698 ClientLifecycleEvents .CLIENT_STARTED .register (this ::onGameInitDone );
9799 CUINetworking .subscribeToCuiPacket (this ::onPluginMessage );
98100 ClientPlayConnectionEvents .JOIN .register (this ::onJoinGame );
99- WorldRenderCallback .AFTER_TRANSLUCENT .register (ctx -> {
100- if (ctx .advancedTranslucency ()) {
101- try {
102- RenderSystem .getModelViewStack ().pushMatrix ();
103- RenderSystem .getModelViewStack ().mul (ctx .poseStack ().last ().pose ());
104- // RenderSystem.applyModelViewMatrix();
105- //ctx.worldRenderer().getTranslucentTarget().bindWrite(false);
106- this .onPostRenderEntities (ctx );
107- } finally {
108- //Minecraft.getInstance().getMainRenderTarget().bindWrite(false);
109- RenderSystem .getModelViewStack ().popMatrix ();
110- }
111- }
101+ WorldRenderEvents .END_EXTRACTION .register (ctx -> {
102+ // MC now handles this separately to the actual render, due to it occurring across threads.
103+ // We need to store this for later use during actual render.
104+ lastPartialTicks = ctx .tickCounter ().getRealtimeDeltaTicks ();
112105 });
113- WorldRenderCallback .LAST .register (ctx -> {
114- if (!ctx .advancedTranslucency ()) {
115- try {
116- RenderSystem .getModelViewStack ().pushMatrix ();
117- RenderSystem .getModelViewStack ().mul (ctx .poseStack ().last ().pose ());
118- // RenderSystem.applyModelViewMatrix();
119- this .onPostRenderEntities (ctx );
120- } finally {
121- RenderSystem .getModelViewStack ().popMatrix ();
122- // RenderSystem.applyModelViewMatrix();
123- }
106+ WorldRenderEvents .END_MAIN .register (ctx -> {
107+ try {
108+ RenderSystem .getModelViewStack ().pushMatrix ();
109+ RenderSystem .getModelViewStack ().mul (ctx .matrices ().last ().pose ());
110+ // RenderSystem.applyModelViewMatrix();
111+ this .onPostRenderEntities (ctx );
112+ } finally {
113+ RenderSystem .getModelViewStack ().popMatrix ();
114+ // RenderSystem.applyModelViewMatrix();
124115 }
125116 });
126117 }
@@ -194,9 +185,9 @@ public void onJoinGame(final ClientPacketListener handler, final PacketSender se
194185 this .helo (handler );
195186 }
196187
197- public void onPostRenderEntities (final WecuiRenderContext ctx ) {
188+ public void onPostRenderEntities (final WorldRenderContext ctx ) {
198189 if (this .visible ) {
199- this .worldRenderListener .onRender (ctx . delta (). getRealtimeDeltaTicks () );
190+ this .worldRenderListener .onRender (lastPartialTicks );
200191 }
201192 }
202193
0 commit comments