From 8586d44d7e2ea6047441f008a48385a59d079c18 Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Wed, 25 Aug 2021 07:10:31 -0400 Subject: [PATCH] Integrate real 1.17 chunks --- .../com/volmit/iris/core/nms/INMSBinding.java | 2 +- .../iris/core/nms/v17_1/NMSBinding17_1.java | 5 +---- .../iris/core/nms/v1X/NMSBinding1X.java | 2 +- .../com/volmit/iris/util/nbt/mca/Chunk.java | 21 ++++++++++++------- .../com/volmit/iris/util/nbt/mca/Section.java | 2 +- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/nms/INMSBinding.java b/src/main/java/com/volmit/iris/core/nms/INMSBinding.java index 26e791b07..731852fdd 100644 --- a/src/main/java/com/volmit/iris/core/nms/INMSBinding.java +++ b/src/main/java/com/volmit/iris/core/nms/INMSBinding.java @@ -18,7 +18,7 @@ package com.volmit.iris.core.nms; -import com.volmit.iris.util.nbt.mca.nmspalettes.PaletteAccess; +import com.volmit.iris.util.nbt.mca.palette.PaletteAccess; import com.volmit.iris.util.nbt.tag.CompoundTag; import org.bukkit.Location; import org.bukkit.World; diff --git a/src/main/java/com/volmit/iris/core/nms/v17_1/NMSBinding17_1.java b/src/main/java/com/volmit/iris/core/nms/v17_1/NMSBinding17_1.java index b128d977b..71472740b 100644 --- a/src/main/java/com/volmit/iris/core/nms/v17_1/NMSBinding17_1.java +++ b/src/main/java/com/volmit/iris/core/nms/v17_1/NMSBinding17_1.java @@ -24,7 +24,7 @@ import com.volmit.iris.engine.data.cache.AtomicCache; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.nbt.io.NBTUtil; import com.volmit.iris.util.nbt.mca.NBTWorld; -import com.volmit.iris.util.nbt.mca.nmspalettes.*; +import com.volmit.iris.util.nbt.mca.palette.*; import com.volmit.iris.util.nbt.tag.CompoundTag; import net.minecraft.core.BlockPosition; import net.minecraft.core.IRegistry; @@ -39,7 +39,6 @@ import net.minecraft.server.level.WorldServer; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.biome.BiomeBase; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.TileEntity; import net.minecraft.world.level.block.state.IBlockData; import net.minecraft.world.level.chunk.BiomeStorage; @@ -61,8 +60,6 @@ import org.bukkit.generator.ChunkGenerator; import java.io.*; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.HashMap; import java.util.IdentityHashMap; import java.util.List; import java.util.concurrent.atomic.AtomicInteger; diff --git a/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java b/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java index da03a904a..795d9104a 100644 --- a/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java +++ b/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java @@ -20,7 +20,7 @@ package com.volmit.iris.core.nms.v1X; import com.volmit.iris.Iris; import com.volmit.iris.core.nms.INMSBinding; -import com.volmit.iris.util.nbt.mca.nmspalettes.PaletteAccess; +import com.volmit.iris.util.nbt.mca.palette.PaletteAccess; import com.volmit.iris.util.nbt.tag.CompoundTag; import org.bukkit.Location; import org.bukkit.World; diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java b/src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java index 1eb54740f..f8b0e4a93 100644 --- a/src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java +++ b/src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java @@ -25,6 +25,7 @@ import com.volmit.iris.util.nbt.io.NBTSerializer; import com.volmit.iris.util.nbt.io.NamedTag; import com.volmit.iris.util.nbt.tag.CompoundTag; import com.volmit.iris.util.nbt.tag.ListTag; +import com.volmit.iris.util.nbt.tag.Tag; import java.io.*; import java.util.Arrays; @@ -33,15 +34,10 @@ import java.util.concurrent.atomic.AtomicReferenceArray; import static com.volmit.iris.util.nbt.mca.LoadFlags.*; public class Chunk { - - public static final int DEFAULT_DATA_VERSION = 1628; - + public static final int DEFAULT_DATA_VERSION = 2730; private boolean partial; - private int lastMCAUpdate; - private CompoundTag data; - private int dataVersion; private long lastUpdate; private long inhabitedTime; @@ -72,6 +68,7 @@ public class Chunk { public Chunk(CompoundTag data) { this.data = data; initReferences(ALL_DATA); + setStatus("full"); } private void initReferences(long loadFlags) { @@ -163,6 +160,7 @@ public class Chunk { try (BufferedOutputStream nbtOut = new BufferedOutputStream(CompressionType.ZLIB.compress(baos))) { new NBTSerializer(false).toStream(new NamedTag(null, updateHandle(xPos, zPos)), nbtOut); } + byte[] rawData = baos.toByteArray(); raf.writeInt(rawData.length + 1); // including the byte to store the compression type raf.writeByte(CompressionType.ZLIB.getID()); @@ -648,11 +646,18 @@ public class Chunk { Chunk c = new Chunk(0); c.dataVersion = DEFAULT_DATA_VERSION; c.data = new CompoundTag(); - c.data.put("Level", new CompoundTag()); - c.status = "mobs_spawned"; + c.data.put("Level", defaultLevel()); + c.status = "full"; return c; } + private static CompoundTag defaultLevel() { + CompoundTag level = new CompoundTag(); + level.putString("Status", "full"); + level.putString("Generator", "Iris Headless " + Iris.instance.getDescription().getVersion()); + return level; + } + public CompoundTag updateHandle(int xPos, int zPos) { data.putInt("DataVersion", dataVersion); CompoundTag level = data.getCompoundTag("Level"); diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/Section.java b/src/main/java/com/volmit/iris/util/nbt/mca/Section.java index 2ea9151ca..b337f2616 100644 --- a/src/main/java/com/volmit/iris/util/nbt/mca/Section.java +++ b/src/main/java/com/volmit/iris/util/nbt/mca/Section.java @@ -19,7 +19,7 @@ package com.volmit.iris.util.nbt.mca; import com.volmit.iris.core.nms.INMS; -import com.volmit.iris.util.nbt.mca.nmspalettes.PaletteAccess; +import com.volmit.iris.util.nbt.mca.palette.PaletteAccess; import com.volmit.iris.util.nbt.tag.ByteArrayTag; import com.volmit.iris.util.nbt.tag.CompoundTag; import com.volmit.iris.util.nbt.tag.ListTag;