3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-11-16 13:00:12 +01:00

Add option to construct ChunkSectionLightImpl without block light

Dieser Commit ist enthalten in:
RaphiMC 2024-10-23 16:42:21 +02:00 committet von Nassim Jahnke
Ursprung 84d928ebe7
Commit c556420870
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: EF6771C01F6EF02F
3 geänderte Dateien mit 15 neuen und 7 gelöschten Zeilen

Datei anzeigen

@ -37,14 +37,14 @@ public class ChunkSectionImpl implements ChunkSection {
public ChunkSectionImpl(final boolean holdsLight) { public ChunkSectionImpl(final boolean holdsLight) {
addPalette(PaletteType.BLOCKS, new DataPaletteImpl(ChunkSection.SIZE)); addPalette(PaletteType.BLOCKS, new DataPaletteImpl(ChunkSection.SIZE));
if (holdsLight) { if (holdsLight) {
this.light = new ChunkSectionLightImpl(); this.light = ChunkSectionLightImpl.createWithBlockLight();
} }
} }
public ChunkSectionImpl(final boolean holdsLight, final int expectedPaletteLength) { public ChunkSectionImpl(final boolean holdsLight, final int expectedPaletteLength) {
addPalette(PaletteType.BLOCKS, new DataPaletteImpl(ChunkSection.SIZE, expectedPaletteLength)); addPalette(PaletteType.BLOCKS, new DataPaletteImpl(ChunkSection.SIZE, expectedPaletteLength));
if (holdsLight) { if (holdsLight) {
this.light = new ChunkSectionLightImpl(); this.light = ChunkSectionLightImpl.createWithBlockLight();
} }
} }

Datei anzeigen

@ -35,7 +35,7 @@ public interface ChunkSectionLight {
/** /**
* Returns whether the section has sky light. * Returns whether the section has sky light.
* *
* @return true if skylight is present * @return true if sky light is present
*/ */
boolean hasSkyLight(); boolean hasSkyLight();
@ -43,7 +43,7 @@ public interface ChunkSectionLight {
* Returns whether the section has block light. * Returns whether the section has block light.
* This returns true unless specifically set to null. * This returns true unless specifically set to null.
* *
* @return true if skylight is present * @return true if block light is present
*/ */
boolean hasBlockLight(); boolean hasBlockLight();

Datei anzeigen

@ -30,9 +30,17 @@ public class ChunkSectionLightImpl implements ChunkSectionLight {
private NibbleArray blockLight; private NibbleArray blockLight;
private NibbleArray skyLight; private NibbleArray skyLight;
public ChunkSectionLightImpl() { protected ChunkSectionLightImpl() {
// Block light is always written }
this.blockLight = new NibbleArray(ChunkSection.SIZE);
public static ChunkSectionLight createWithBlockLight() {
final ChunkSectionLightImpl light = new ChunkSectionLightImpl();
light.blockLight = new NibbleArray(ChunkSection.SIZE);
return light;
}
public static ChunkSectionLight createEmpty() {
return new ChunkSectionLightImpl();
} }
@Override @Override