3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-12-20 21:40:06 +01:00

Create sections for chunk conversion if non-existant

Required to add in the new biome sections
Dieser Commit ist enthalten in:
Spottedleaf 2021-12-18 01:04:00 -08:00
Ursprung 358ceb80a5
Commit 8c189d0faf

Datei anzeigen

@ -15313,10 +15313,10 @@ index 0000000000000000000000000000000000000000..d28ade80499dce882a9a84309a2a0da5
+} +}
diff --git a/src/main/java/ca/spottedleaf/dataconverter/minecraft/versions/V2832.java b/src/main/java/ca/spottedleaf/dataconverter/minecraft/versions/V2832.java diff --git a/src/main/java/ca/spottedleaf/dataconverter/minecraft/versions/V2832.java b/src/main/java/ca/spottedleaf/dataconverter/minecraft/versions/V2832.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..6a975a5e69f4aad4b65aaf1300b5136d72ea6499 index 0000000000000000000000000000000000000000..b1049823fc2ff1c8183f4664ff4d40da6495f9ee
--- /dev/null --- /dev/null
+++ b/src/main/java/ca/spottedleaf/dataconverter/minecraft/versions/V2832.java +++ b/src/main/java/ca/spottedleaf/dataconverter/minecraft/versions/V2832.java
@@ -0,0 +1,919 @@ @@ -0,0 +1,920 @@
+package ca.spottedleaf.dataconverter.minecraft.versions; +package ca.spottedleaf.dataconverter.minecraft.versions;
+ +
+import ca.spottedleaf.dataconverter.converters.DataConverter; +import ca.spottedleaf.dataconverter.converters.DataConverter;
@ -15710,14 +15710,16 @@ index 0000000000000000000000000000000000000000..6a975a5e69f4aad4b65aaf1300b5136d
+ final MapType<String>[] newBiomes = createBiomeSections(level, isOverworld, minSection, isAlreadyExtended); + final MapType<String>[] newBiomes = createBiomeSections(level, isOverworld, minSection, isAlreadyExtended);
+ final MapType<String> wrappedEmptyBlockPalette = getEmptyBlockPalette(); + final MapType<String> wrappedEmptyBlockPalette = getEmptyBlockPalette();
+ +
+ final ListType sections = level.getList("Sections", ObjectType.MAP); + ListType sections = level.getList("Sections", ObjectType.MAP);
+ if (sections == null) {
+ level.setList("Sections", sections = Types.NBT.createEmptyList());
+ }
+ +
+ // must update sections for two things: + // must update sections for two things:
+ // 1. the biomes are now stored per section, so we must insert the biomes palette into each section (and create them if they don't exist) + // 1. the biomes are now stored per section, so we must insert the biomes palette into each section (and create them if they don't exist)
+ // 2. each section must now have block states (or at least DFU is ensuring they do, but current code does not require) + // 2. each section must now have block states (or at least DFU is ensuring they do, but current code does not require)
+ V2841.SimplePaletteReader bottomSection = null; + V2841.SimplePaletteReader bottomSection = null;
+ final Set<String> allBlocks = new HashSet<>(); + final Set<String> allBlocks = new HashSet<>();
+ if (sections != null) {
+ final IntOpenHashSet existingSections = new IntOpenHashSet(); + final IntOpenHashSet existingSections = new IntOpenHashSet();
+ +
+ for (int i = 0, len = sections.size(); i < len; ++i) { + for (int i = 0, len = sections.size(); i < len; ++i) {
@ -15777,7 +15779,6 @@ index 0000000000000000000000000000000000000000..6a975a5e69f4aad4b65aaf1300b5136d
+ +
+ newSection.setGeneric("biomes", newBiomes[sectionIndex]); + newSection.setGeneric("biomes", newBiomes[sectionIndex]);
+ } + }
+ }
+ +
+ // update status so interpolation can take place + // update status so interpolation can take place
+ predictChunkStatusBeforeSurface(level, allBlocks); + predictChunkStatusBeforeSurface(level, allBlocks);