Minor changes to NMS logic

This commit is contained in:
MattBDev 2020-06-11 12:22:54 -04:00
parent 3caf53987f
commit 9f6e0ebd5c
2 changed files with 9 additions and 8 deletions

View File

@ -128,6 +128,7 @@ public class BukkitGetBlocks_1_14 extends CharGetBlocks {
public int getSkyLight(int x, int y, int z) { public int getSkyLight(int x, int y, int z) {
int layer = y >> 4; int layer = y >> 4;
if (skyLight[layer] == null) { if (skyLight[layer] == null) {
//getDataLayerData
skyLight[layer] = world.getChunkProvider().getLightEngine().a(EnumSkyBlock.SKY).a(SectionPosition.a(nmsChunk.getPos(), layer)); skyLight[layer] = world.getChunkProvider().getLightEngine().a(EnumSkyBlock.SKY).a(SectionPosition.a(nmsChunk.getPos(), layer));
} }
long l = BlockPosition.a(x, y, z); long l = BlockPosition.a(x, y, z);
@ -138,6 +139,7 @@ public class BukkitGetBlocks_1_14 extends CharGetBlocks {
public int getEmmittedLight(int x, int y, int z) { public int getEmmittedLight(int x, int y, int z) {
int layer = y >> 4; int layer = y >> 4;
if (blockLight[layer] == null) { if (blockLight[layer] == null) {
//getDataLayerData
blockLight[layer] = world.getChunkProvider().getLightEngine().a(EnumSkyBlock.BLOCK).a(SectionPosition.a(nmsChunk.getPos(), layer)); blockLight[layer] = world.getChunkProvider().getLightEngine().a(EnumSkyBlock.BLOCK).a(SectionPosition.a(nmsChunk.getPos(), layer));
} }
long l = BlockPosition.a(x, y, z); long l = BlockPosition.a(x, y, z);

View File

@ -428,7 +428,7 @@ public class NMSRelighter implements Relighter {
} }
} }
for (int y = 255; y > 0; y--) { for (int y = 255; y > 0; y--) {
for (RelightSkyEntry chunk : chunks) { // Propogate skylight for (RelightSkyEntry chunk : chunks) { // Propagate skylight
int layer = y >> 4; int layer = y >> 4;
byte[] mask = chunk.mask; byte[] mask = chunk.mask;
if ((y & 15) == 15 && chunk.fix[layer] != SkipReason.NONE) { if ((y & 15) == 15 && chunk.fix[layer] != SkipReason.NONE) {
@ -596,7 +596,7 @@ public class NMSRelighter implements Relighter {
} }
} }
private class RelightSkyEntry implements Comparable { private class RelightSkyEntry implements Comparable<RelightSkyEntry> {
public final int x; public final int x;
public final int z; public final int z;
public final byte[] mask; public final byte[] mask;
@ -625,18 +625,17 @@ public class NMSRelighter implements Relighter {
} }
@Override @Override
public int compareTo(Object o) { public int compareTo(RelightSkyEntry o) {
RelightSkyEntry other = (RelightSkyEntry) o; if (o.x < x) {
if (other.x < x) {
return 1; return 1;
} }
if (other.x > x) { if (o.x > x) {
return -1; return -1;
} }
if (other.z < z) { if (o.z < z) {
return 1; return 1;
} }
if (other.z > z) { if (o.z > z) {
return -1; return -1;
} }
return 0; return 0;