]> git.lizzy.rs Git - LightOverlay.git/blobdiff - forge/src/main/java/me/shedaniel/lightoverlay/forge/mixin/MixinClientConnection.java
2.8.0 Cubic Chunk calculation, using glList during caching
[LightOverlay.git] / forge / src / main / java / me / shedaniel / lightoverlay / forge / mixin / MixinClientConnection.java
index b6c82746e32d9f3fb09ec686d884ddd77d72dfb1..02f46debc4b81a21200f7446fbda208629220010 100644 (file)
@@ -1,5 +1,6 @@
 package me.shedaniel.lightoverlay.forge.mixin;
 
+import me.shedaniel.lightoverlay.common.CubicChunkPos;
 import me.shedaniel.lightoverlay.common.LightOverlay;
 import net.minecraft.network.Connection;
 import net.minecraft.network.PacketListener;
@@ -8,7 +9,6 @@ import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket;
 import net.minecraft.network.protocol.game.ClientboundLightUpdatePacket;
 import net.minecraft.network.protocol.game.ClientboundSectionBlocksUpdatePacket;
 import net.minecraft.network.protocol.game.ClientboundSetChunkCacheCenterPacket;
-import net.minecraft.world.level.ChunkPos;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.injection.At;
 import org.spongepowered.asm.mixin.injection.Inject;
@@ -19,13 +19,19 @@ public class MixinClientConnection {
     @Inject(method = "genericsFtw", at = @At("HEAD"))
     private static void handlePacket(Packet packet, PacketListener listener, CallbackInfo ci) {
         if (packet instanceof ClientboundBlockUpdatePacket) {
-            LightOverlay.queueChunkAndNear(new ChunkPos(((ClientboundBlockUpdatePacket) packet).getPos()));
+            LightOverlay.queueChunkAndNear(new CubicChunkPos(((ClientboundBlockUpdatePacket) packet).getPos()));
         } else if (packet instanceof ClientboundSetChunkCacheCenterPacket) {
-            LightOverlay.queueChunkAndNear(new ChunkPos(((ClientboundSetChunkCacheCenterPacket) packet).getX(), ((ClientboundSetChunkCacheCenterPacket) packet).getZ()));
+            for (int y = 0; y <= 15; y++) {
+                LightOverlay.queueChunkAndNear(new CubicChunkPos(((ClientboundSetChunkCacheCenterPacket) packet).getX(), y, ((ClientboundSetChunkCacheCenterPacket) packet).getZ()));
+            }
         } else if (packet instanceof ClientboundSectionBlocksUpdatePacket) {
-            LightOverlay.queueChunkAndNear(new ChunkPos(((ClientboundSectionBlocksUpdatePacket) packet).sectionPos.getX(), ((ClientboundSectionBlocksUpdatePacket) packet).sectionPos.getZ()));
+            for (int y = 0; y <= 15; y++) {
+                LightOverlay.queueChunkAndNear(new CubicChunkPos(((ClientboundSectionBlocksUpdatePacket) packet).sectionPos.getX(), y, ((ClientboundSectionBlocksUpdatePacket) packet).sectionPos.getZ()));
+            }
         } else if (packet instanceof ClientboundLightUpdatePacket) {
-            LightOverlay.queueChunk(new ChunkPos(((ClientboundLightUpdatePacket) packet).getX(), ((ClientboundLightUpdatePacket) packet).getZ()));
+            for (int y = 0; y <= 15; y++) {
+                LightOverlay.queueChunk(new CubicChunkPos(((ClientboundLightUpdatePacket) packet).getX(), y, ((ClientboundLightUpdatePacket) packet).getZ()));
+            }
         }
     }
 }