Integrate real 1.17 chunks

This commit is contained in:
cyberpwn 2021-08-25 07:10:31 -04:00
parent 5c8b600cb1
commit 8586d44d7e
5 changed files with 17 additions and 15 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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");

View File

@ -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;