mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-20 09:57:43 +01:00
Updated Upstream (Tuinity)
Upstream has released updates that appear to apply and compile correctly Tuinity Changes: 610b3aaad Fix /paper fixlight
This commit is contained in:
@@ -2791,10 +2791,10 @@ index 0000000000000000000000000000000000000000..41d9234a6b265f5500269cef537ad0b6
|
|||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/com/tuinity/tuinity/chunk/light/StarLightEngine.java b/src/main/java/com/tuinity/tuinity/chunk/light/StarLightEngine.java
|
diff --git a/src/main/java/com/tuinity/tuinity/chunk/light/StarLightEngine.java b/src/main/java/com/tuinity/tuinity/chunk/light/StarLightEngine.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..38b84cee50a5e97ba12dcfba472c607064d4eec2
|
index 0000000000000000000000000000000000000000..cafa498c6a743e05757c0845576288760842bfbd
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/com/tuinity/tuinity/chunk/light/StarLightEngine.java
|
+++ b/src/main/java/com/tuinity/tuinity/chunk/light/StarLightEngine.java
|
||||||
@@ -0,0 +1,1223 @@
|
@@ -0,0 +1,1245 @@
|
||||||
+package com.tuinity.tuinity.chunk.light;
|
+package com.tuinity.tuinity.chunk.light;
|
||||||
+
|
+
|
||||||
+import com.tuinity.tuinity.util.IntegerUtil;
|
+import com.tuinity.tuinity.util.IntegerUtil;
|
||||||
@@ -3524,11 +3524,14 @@ index 0000000000000000000000000000000000000000..38b84cee50a5e97ba12dcfba472c6070
|
|||||||
+ this.setupEncodeOffset(chunkPos.x * 16 + 7, 128, chunkPos.z * 16 + 7);
|
+ this.setupEncodeOffset(chunkPos.x * 16 + 7, 128, chunkPos.z * 16 + 7);
|
||||||
+
|
+
|
||||||
+ try {
|
+ try {
|
||||||
+ final SWMRNibbleArray[] chunkNibbles = getFilledEmptyLight();
|
+ final SWMRNibbleArray[][] chunkNibbles = new SWMRNibbleArray[(2 * 1 + 1) * (2 * 1 + 1)][];
|
||||||
|
+ for (int i = 0; i < chunkNibbles.length; ++i) {
|
||||||
|
+ chunkNibbles[i] = getFilledEmptyLight();
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
+ this.setChunkInCache(chunkPos.x, chunkPos.z, chunk);
|
+ this.setChunkInCache(chunkPos.x, chunkPos.z, chunk);
|
||||||
+ this.setBlocksForChunkInCache(chunkPos.x, chunkPos.z, chunk.getSections());
|
+ this.setBlocksForChunkInCache(chunkPos.x, chunkPos.z, chunk.getSections());
|
||||||
+ this.setNibblesForChunkInCache(chunkPos.x, chunkPos.z, chunkNibbles);
|
+ this.setNibblesForChunkInCache(chunkPos.x, chunkPos.z, chunkNibbles[IChunkAccess.getEmptinessMapIndex(0, 0)]);
|
||||||
+ this.setEmptinessMapCache(chunkPos.x, chunkPos.z, new boolean[9][]);
|
+ this.setEmptinessMapCache(chunkPos.x, chunkPos.z, new boolean[9][]);
|
||||||
+
|
+
|
||||||
+ this.handleEmptySectionChanges(lightAccess, chunk, getEmptySectionsForChunk(chunk), true);
|
+ this.handleEmptySectionChanges(lightAccess, chunk, getEmptySectionsForChunk(chunk), true);
|
||||||
@@ -3548,9 +3551,21 @@ index 0000000000000000000000000000000000000000..38b84cee50a5e97ba12dcfba472c6070
|
|||||||
+ continue;
|
+ continue;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
+ for (int dz2 = -1; dz2 <= 1; ++dz2) {
|
||||||
|
+ for (int dx2 = -1; dx2 <= 1; ++dx2) {
|
||||||
|
+ final IChunkAccess neighbour = this.getChunkInCache(dx2 + chunkPos.x, dz2 + chunkPos.z);
|
||||||
|
+ if (neighbour == null) {
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ // re-insert nibbles for chunk, they might have been removed due to the emptiness map
|
||||||
|
+ this.setNibblesForChunkInCache(dx2 + chunkPos.x, dz2 + chunkPos.z, chunkNibbles[IChunkAccess.getEmptinessMapIndex(dx2, dz2)]);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+ this.setChunkInCache(cx, cz, neighbourChunk);
|
+ this.setChunkInCache(cx, cz, neighbourChunk);
|
||||||
+ this.setBlocksForChunkInCache(cx, cz, neighbourChunk.getSections());
|
+ this.setBlocksForChunkInCache(cx, cz, neighbourChunk.getSections());
|
||||||
+ this.setNibblesForChunkInCache(cx, cz, getFilledEmptyLight());
|
+ this.setNibblesForChunkInCache(cx, cz, chunkNibbles[IChunkAccess.getEmptinessMapIndex(dx, dz)]);
|
||||||
+ this.setEmptinessMapCache(cx, cz, new boolean[9][]);
|
+ this.setEmptinessMapCache(cx, cz, new boolean[9][]);
|
||||||
+
|
+
|
||||||
+ this.handleEmptySectionChanges(lightAccess, neighbourChunk, getEmptySectionsForChunk(neighbourChunk), true);
|
+ this.handleEmptySectionChanges(lightAccess, neighbourChunk, getEmptySectionsForChunk(neighbourChunk), true);
|
||||||
@@ -3558,8 +3573,15 @@ index 0000000000000000000000000000000000000000..38b84cee50a5e97ba12dcfba472c6070
|
|||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ this.setNibbles(chunk, chunkNibbles);
|
+ for (final SWMRNibbleArray nibble : chunkNibbles[IChunkAccess.getEmptinessMapIndex(0, 0)]) {
|
||||||
+ this.updateVisible(lightAccess);
|
+ nibble.updateVisible();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ this.setNibbles(chunk, chunkNibbles[IChunkAccess.getEmptinessMapIndex(0, 0)]);
|
||||||
|
+
|
||||||
|
+ for (int y = -1; y <= 16; ++y) {
|
||||||
|
+ lightAccess.markLightSectionDirty(this.skylightPropagator ? EnumSkyBlock.SKY : EnumSkyBlock.BLOCK, new SectionPosition(chunkPos.x, y, chunkPos.z));
|
||||||
|
+ }
|
||||||
+ } finally {
|
+ } finally {
|
||||||
+ this.destroyCaches();
|
+ this.destroyCaches();
|
||||||
+ }
|
+ }
|
||||||
|
|||||||
Reference in New Issue
Block a user