mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 10:12:53 +00:00
Support Object scaling
This commit is contained in:
parent
2bd7fd2aa7
commit
2477ee4952
@ -1,8 +1,8 @@
|
||||
package com.volmit.iris.object.tile;
|
||||
|
||||
import lombok.Data;
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import net.querz.nbt.tag.ListTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ListTag;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Banner;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.volmit.iris.object.tile;
|
||||
|
||||
import com.volmit.iris.util.KList;
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.block.TileState;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.volmit.iris.object.tile;
|
||||
|
||||
import lombok.Data;
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import org.bukkit.DyeColor;
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.volmit.iris.object.tile;
|
||||
|
||||
import lombok.Data;
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import net.querz.nbt.tag.ListTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ListTag;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.CreatureSpawner;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
@ -7,12 +7,12 @@ import com.volmit.iris.scaffold.parallel.MultiBurst;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.KList;
|
||||
import com.volmit.iris.util.KMap;
|
||||
import net.querz.mca.Chunk;
|
||||
import net.querz.mca.MCAFile;
|
||||
import net.querz.mca.MCAUtil;
|
||||
import net.querz.mca.Section;
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import net.querz.nbt.tag.StringTag;
|
||||
import com.volmit.iris.scaffold.data.mca.Chunk;
|
||||
import com.volmit.iris.scaffold.data.mca.MCAFile;
|
||||
import com.volmit.iris.scaffold.data.mca.MCAUtil;
|
||||
import com.volmit.iris.scaffold.data.mca.Section;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.StringTag;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.io;
|
||||
package com.volmit.iris.scaffold.data.io;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.ByteArrayInputStream;
|
@ -1,4 +1,4 @@
|
||||
package net.querz.io;
|
||||
package com.volmit.iris.scaffold.data.io;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface ExceptionBiFunction <T, U, R, E extends Exception> {
|
@ -1,4 +1,4 @@
|
||||
package net.querz.io;
|
||||
package com.volmit.iris.scaffold.data.io;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface ExceptionTriConsumer<T, U, V, E extends Exception> {
|
@ -1,4 +1,4 @@
|
||||
package net.querz.io;
|
||||
package com.volmit.iris.scaffold.data.io;
|
||||
|
||||
public interface MaxDepthIO {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.io;
|
||||
package com.volmit.iris.scaffold.data.io;
|
||||
|
||||
/**
|
||||
* Exception indicating that the maximum (de-)serialization depth has been reached.
|
@ -1,4 +1,4 @@
|
||||
package net.querz.io;
|
||||
package com.volmit.iris.scaffold.data.io;
|
||||
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
@ -1,4 +1,4 @@
|
||||
package net.querz.io;
|
||||
package com.volmit.iris.scaffold.data.io;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
@ -1,4 +1,4 @@
|
||||
package net.querz.io;
|
||||
package com.volmit.iris.scaffold.data.io;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
@ -1,10 +1,11 @@
|
||||
package net.querz.mca;
|
||||
package com.volmit.iris.scaffold.data.mca;
|
||||
|
||||
import com.volmit.iris.scaffold.data.nbt.io.NBTDeserializer;
|
||||
import com.volmit.iris.scaffold.data.nbt.io.NBTSerializer;
|
||||
import com.volmit.iris.scaffold.data.nbt.io.NamedTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ListTag;
|
||||
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import net.querz.nbt.tag.ListTag;
|
||||
import net.querz.nbt.io.NamedTag;
|
||||
import net.querz.nbt.io.NBTDeserializer;
|
||||
import net.querz.nbt.io.NBTSerializer;
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@ -12,7 +13,7 @@ import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.RandomAccessFile;
|
||||
import java.util.Arrays;
|
||||
import static net.querz.mca.LoadFlags.*;
|
||||
import static com.volmit.iris.scaffold.data.mca.LoadFlags.*;
|
||||
|
||||
public class Chunk {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.mca;
|
||||
package com.volmit.iris.scaffold.data.mca;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
@ -1,4 +1,4 @@
|
||||
package net.querz.mca;
|
||||
package com.volmit.iris.scaffold.data.mca;
|
||||
|
||||
@FunctionalInterface
|
||||
public interface ExceptionFunction<T, R, E extends Exception> {
|
@ -1,4 +1,4 @@
|
||||
package net.querz.mca;
|
||||
package com.volmit.iris.scaffold.data.mca;
|
||||
|
||||
public class LoadFlags {
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.querz.mca;
|
||||
package com.volmit.iris.scaffold.data.mca;
|
||||
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import java.io.IOException;
|
||||
import java.io.RandomAccessFile;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.mca;
|
||||
package com.volmit.iris.scaffold.data.mca;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
@ -1,19 +1,16 @@
|
||||
package net.querz.mca;
|
||||
package com.volmit.iris.scaffold.data.mca;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.util.KMap;
|
||||
import net.querz.nbt.tag.ByteArrayTag;
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import net.querz.nbt.tag.ListTag;
|
||||
import net.querz.nbt.tag.LongArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ByteArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ListTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.LongArrayTag;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static net.querz.mca.LoadFlags.*;
|
||||
|
||||
public class Section {
|
||||
|
||||
private CompoundTag data;
|
||||
@ -25,7 +22,7 @@ public class Section {
|
||||
private int dataVersion;
|
||||
|
||||
public Section(CompoundTag sectionRoot, int dataVersion) {
|
||||
this(sectionRoot, dataVersion, ALL_DATA);
|
||||
this(sectionRoot, dataVersion, LoadFlags.ALL_DATA);
|
||||
}
|
||||
|
||||
public Section(CompoundTag sectionRoot, int dataVersion, long loadFlags) {
|
||||
@ -45,13 +42,13 @@ public class Section {
|
||||
LongArrayTag blockStates = sectionRoot.getLongArrayTag("BlockStates");
|
||||
ByteArrayTag skyLight = sectionRoot.getByteArrayTag("SkyLight");
|
||||
|
||||
if ((loadFlags & BLOCK_LIGHTS) != 0) {
|
||||
if ((loadFlags & LoadFlags.BLOCK_LIGHTS) != 0) {
|
||||
this.blockLight = blockLight != null ? blockLight.getValue() : null;
|
||||
}
|
||||
if ((loadFlags & BLOCK_STATES) != 0) {
|
||||
if ((loadFlags & LoadFlags.BLOCK_STATES) != 0) {
|
||||
this.blockStates = blockStates != null ? blockStates.getValue() : null;
|
||||
}
|
||||
if ((loadFlags & SKY_LIGHT) != 0) {
|
||||
if ((loadFlags & LoadFlags.SKY_LIGHT) != 0) {
|
||||
this.skyLight = skyLight != null ? skyLight.getValue() : null;
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import net.querz.io.Deserializer;
|
||||
import net.querz.nbt.tag.Tag;
|
||||
import com.volmit.iris.scaffold.data.io.Deserializer;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.Tag;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.zip.GZIPInputStream;
|
@ -1,21 +1,21 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import net.querz.io.ExceptionBiFunction;
|
||||
import net.querz.io.MaxDepthIO;
|
||||
import net.querz.nbt.tag.ByteArrayTag;
|
||||
import net.querz.nbt.tag.ByteTag;
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import net.querz.nbt.tag.DoubleTag;
|
||||
import net.querz.nbt.tag.EndTag;
|
||||
import net.querz.nbt.tag.FloatTag;
|
||||
import net.querz.nbt.tag.IntArrayTag;
|
||||
import net.querz.nbt.tag.IntTag;
|
||||
import net.querz.nbt.tag.ListTag;
|
||||
import net.querz.nbt.tag.LongArrayTag;
|
||||
import net.querz.nbt.tag.LongTag;
|
||||
import net.querz.nbt.tag.ShortTag;
|
||||
import net.querz.nbt.tag.StringTag;
|
||||
import net.querz.nbt.tag.Tag;
|
||||
import com.volmit.iris.scaffold.data.io.ExceptionBiFunction;
|
||||
import com.volmit.iris.scaffold.data.io.MaxDepthIO;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ByteArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ByteTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.DoubleTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.EndTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.FloatTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.IntArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.IntTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ListTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.LongArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.LongTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ShortTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.StringTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.Tag;
|
||||
import java.io.DataInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
@ -1,21 +1,21 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import net.querz.io.ExceptionTriConsumer;
|
||||
import net.querz.io.MaxDepthIO;
|
||||
import net.querz.nbt.tag.ByteArrayTag;
|
||||
import net.querz.nbt.tag.ByteTag;
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import net.querz.nbt.tag.DoubleTag;
|
||||
import net.querz.nbt.tag.EndTag;
|
||||
import net.querz.nbt.tag.FloatTag;
|
||||
import net.querz.nbt.tag.IntArrayTag;
|
||||
import net.querz.nbt.tag.IntTag;
|
||||
import net.querz.nbt.tag.ListTag;
|
||||
import net.querz.nbt.tag.LongArrayTag;
|
||||
import net.querz.nbt.tag.LongTag;
|
||||
import net.querz.nbt.tag.ShortTag;
|
||||
import net.querz.nbt.tag.StringTag;
|
||||
import net.querz.nbt.tag.Tag;
|
||||
import com.volmit.iris.scaffold.data.io.ExceptionTriConsumer;
|
||||
import com.volmit.iris.scaffold.data.io.MaxDepthIO;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ByteArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ByteTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.DoubleTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.EndTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.FloatTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.IntArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.IntTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ListTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.LongArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.LongTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ShortTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.StringTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.Tag;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
@ -1,7 +1,7 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import net.querz.io.Serializer;
|
||||
import net.querz.nbt.tag.Tag;
|
||||
import com.volmit.iris.scaffold.data.io.Serializer;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.Tag;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.zip.GZIPOutputStream;
|
@ -1,6 +1,6 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import net.querz.nbt.tag.Tag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.Tag;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
@ -1,6 +1,6 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import net.querz.nbt.tag.Tag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.Tag;
|
||||
|
||||
public class NamedTag {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import net.querz.io.StringDeserializer;
|
||||
import net.querz.nbt.tag.Tag;
|
||||
import com.volmit.iris.scaffold.data.io.StringDeserializer;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.Tag;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
@ -1,21 +1,21 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import net.querz.io.MaxDepthIO;
|
||||
import net.querz.nbt.tag.ArrayTag;
|
||||
import net.querz.nbt.tag.ByteArrayTag;
|
||||
import net.querz.nbt.tag.ByteTag;
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import net.querz.nbt.tag.DoubleTag;
|
||||
import net.querz.nbt.tag.EndTag;
|
||||
import net.querz.nbt.tag.FloatTag;
|
||||
import net.querz.nbt.tag.IntArrayTag;
|
||||
import net.querz.nbt.tag.IntTag;
|
||||
import net.querz.nbt.tag.ListTag;
|
||||
import net.querz.nbt.tag.LongArrayTag;
|
||||
import net.querz.nbt.tag.LongTag;
|
||||
import net.querz.nbt.tag.ShortTag;
|
||||
import net.querz.nbt.tag.StringTag;
|
||||
import net.querz.nbt.tag.Tag;
|
||||
import com.volmit.iris.scaffold.data.io.MaxDepthIO;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ByteArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ByteTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.DoubleTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.EndTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.FloatTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.IntArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.IntTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ListTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.LongArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.LongTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ShortTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.StringTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.Tag;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
@ -1,7 +1,8 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import com.volmit.iris.scaffold.data.io.StringSerializer;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.Tag;
|
||||
|
||||
import net.querz.io.StringSerializer;
|
||||
import net.querz.nbt.tag.Tag;
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.Tag;
|
||||
|
||||
import net.querz.nbt.tag.Tag;
|
||||
import java.io.IOException;
|
||||
|
||||
public class SNBTUtil {
|
@ -1,20 +1,20 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
import net.querz.io.MaxDepthIO;
|
||||
import net.querz.nbt.tag.ByteArrayTag;
|
||||
import net.querz.nbt.tag.ByteTag;
|
||||
import net.querz.nbt.tag.CompoundTag;
|
||||
import net.querz.nbt.tag.DoubleTag;
|
||||
import net.querz.nbt.tag.EndTag;
|
||||
import net.querz.nbt.tag.FloatTag;
|
||||
import net.querz.nbt.tag.IntArrayTag;
|
||||
import net.querz.nbt.tag.IntTag;
|
||||
import net.querz.nbt.tag.ListTag;
|
||||
import net.querz.nbt.tag.LongArrayTag;
|
||||
import net.querz.nbt.tag.LongTag;
|
||||
import net.querz.nbt.tag.ShortTag;
|
||||
import net.querz.nbt.tag.StringTag;
|
||||
import net.querz.nbt.tag.Tag;
|
||||
import com.volmit.iris.scaffold.data.io.MaxDepthIO;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ByteArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ByteTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.DoubleTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.EndTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.FloatTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.IntArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.IntTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ListTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.LongArrayTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.LongTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.ShortTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.StringTag;
|
||||
import com.volmit.iris.scaffold.data.nbt.tag.Tag;
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.lang.reflect.Array;
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.io;
|
||||
package com.volmit.iris.scaffold.data.nbt.io;
|
||||
|
||||
public class StringPointer {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
public class ByteTag extends NumberTag<Byte> implements Comparable<ByteTag> {
|
||||
|
@ -1,8 +1,7 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.scaffold.data.io.MaxDepthIO;
|
||||
import com.volmit.iris.util.KMap;
|
||||
import net.querz.io.MaxDepthIO;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.BiConsumer;
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
public class DoubleTag extends NumberTag<Double> implements Comparable<DoubleTag> {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
public final class EndTag extends Tag<Void> {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
public class FloatTag extends NumberTag<Float> implements Comparable<FloatTag> {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
public class IntTag extends NumberTag<Integer> implements Comparable<IntTag> {
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
import com.volmit.iris.scaffold.data.io.MaxDepthIO;
|
||||
import com.volmit.iris.util.KList;
|
||||
import net.querz.io.MaxDepthIO;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Consumer;
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
public class LongTag extends NumberTag<Long> implements Comparable<LongTag> {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
public abstract class NumberTag<T extends Number & Comparable<T>> extends Tag<T> {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
public class ShortTag extends NumberTag<Short> implements Comparable<ShortTag> {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
public class StringTag extends Tag<String> implements Comparable<StringTag> {
|
||||
|
@ -1,6 +1,7 @@
|
||||
package net.querz.nbt.tag;
|
||||
package com.volmit.iris.scaffold.data.nbt.tag;
|
||||
|
||||
import com.volmit.iris.scaffold.data.io.MaxDepthReachedException;
|
||||
|
||||
import net.querz.io.MaxDepthReachedException;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
@ -6,7 +6,6 @@ import com.volmit.iris.generator.IrisEngineCompound;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDimension;
|
||||
import com.volmit.iris.object.IrisNoiseGenerator;
|
||||
import com.volmit.iris.object.IrisPosition;
|
||||
import com.volmit.iris.pregen.DirectWorldWriter;
|
||||
import com.volmit.iris.scaffold.IrisWorlds;
|
||||
@ -31,7 +30,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
@ -40,12 +38,8 @@ import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Random;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class EngineCompositeGenerator extends ChunkGenerator implements IrisAccess {
|
||||
private EngineCompound compound = null;
|
||||
@ -494,7 +488,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
|
||||
{
|
||||
int ox = x << 4;
|
||||
int oz = z << 4;
|
||||
net.querz.mca.Chunk cc = writer.getChunk(x, z);
|
||||
com.volmit.iris.scaffold.data.mca.Chunk cc = writer.getChunk(x, z);
|
||||
generateChunkRawData(w, x, z, new TerrainChunk() {
|
||||
@Override
|
||||
public void setRaw(ChunkData data) {
|
||||
|
@ -21,6 +21,7 @@ import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.util.BlockVector;
|
||||
import org.bukkit.util.Consumer;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
@ -551,7 +552,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
|
||||
{
|
||||
for(int i = 0; i < objectPlacement.getDensity(); i++)
|
||||
{
|
||||
IrisObject v = objectPlacement.getObject(getComplex(), rng);
|
||||
IrisObject v = objectPlacement.getScale().get(rng, objectPlacement.getObject(getComplex(), rng));
|
||||
if (v == null){
|
||||
return;
|
||||
}
|
||||
@ -604,13 +605,22 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
|
||||
zg.set(0);
|
||||
int jig = 0;
|
||||
KSet<String> objects = new KSet<>();
|
||||
KMap<IrisObjectScale, KList<String>> scalars = new KMap<>();
|
||||
KList<IrisRegion> r = getAllRegions();
|
||||
KList<IrisBiome> b = getAllBiomes();
|
||||
|
||||
for (IrisBiome i : b) {
|
||||
for (IrisObjectPlacement j : i.getObjects()) {
|
||||
if(j.getScale().canScaleBeyond())
|
||||
{
|
||||
scalars.put(j.getScale(), j.getPlace());
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
objects.addAll(j.getPlace());
|
||||
}
|
||||
}
|
||||
|
||||
for (IrisJigsawStructurePlacement j : i.getJigsawStructures()) {
|
||||
jig = Math.max(jig, getData().getJigsawStructureLoader().load(j.getStructure()).getMaxDimension());
|
||||
@ -619,6 +629,18 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
|
||||
|
||||
for (IrisRegion i : r)
|
||||
{
|
||||
for (IrisObjectPlacement j : i.getObjects()) {
|
||||
if(j.getScale().canScaleBeyond())
|
||||
{
|
||||
scalars.put(j.getScale(), j.getPlace());
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
objects.addAll(j.getPlace());
|
||||
}
|
||||
}
|
||||
|
||||
for(IrisJigsawStructurePlacement j : i.getJigsawStructures())
|
||||
{
|
||||
jig = Math.max(jig, getData().getJigsawStructureLoader().load(j.getStructure()).getMaxDimension());
|
||||
@ -646,12 +668,32 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
|
||||
|
||||
Iris.verbose("Checking sizes for " + Form.f(objects.size()) + " referenced objects.");
|
||||
BurstExecutor e = MultiBurst.burst.burst(objects.size());
|
||||
KMap<String, BlockVector> sizeCache = new KMap<>();
|
||||
for(String i : objects)
|
||||
{
|
||||
e.queue(() -> {
|
||||
try
|
||||
{
|
||||
BlockVector bv = IrisObject.sampleSize(getData().getObjectLoader().findFile(i));
|
||||
BlockVector bv = sizeCache.compute(i, (k,v) -> {
|
||||
if(v != null)
|
||||
{
|
||||
return v;
|
||||
}
|
||||
|
||||
try {
|
||||
return IrisObject.sampleSize(getData().getObjectLoader().findFile(i));
|
||||
} catch (IOException ioException) {
|
||||
ioException.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
});
|
||||
|
||||
if(bv == null)
|
||||
{
|
||||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
warn(i, bv);
|
||||
|
||||
synchronized (xg)
|
||||
@ -672,6 +714,55 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
|
||||
});
|
||||
}
|
||||
|
||||
for(IrisObjectScale i : scalars.keySet())
|
||||
{
|
||||
double ms = i.getMaximumScale();
|
||||
for(String j : scalars.get(i))
|
||||
{
|
||||
e.queue(() -> {
|
||||
try
|
||||
{
|
||||
BlockVector bv = sizeCache.compute(j, (k,v) -> {
|
||||
if(v != null)
|
||||
{
|
||||
return v;
|
||||
}
|
||||
|
||||
try {
|
||||
return IrisObject.sampleSize(getData().getObjectLoader().findFile(j));
|
||||
} catch (IOException ioException) {
|
||||
ioException.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
});
|
||||
|
||||
if(bv == null)
|
||||
{
|
||||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
warnScaled(j, bv, ms);
|
||||
|
||||
synchronized (xg)
|
||||
{
|
||||
xg.getAndSet((int) Math.max(Math.ceil(bv.getBlockX() * ms), xg.get()));
|
||||
}
|
||||
|
||||
synchronized (zg)
|
||||
{
|
||||
zg.getAndSet((int) Math.max(Math.ceil(bv.getBlockZ()* ms), zg.get()));
|
||||
}
|
||||
}
|
||||
|
||||
catch(Throwable ignored)
|
||||
{
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
e.complete();
|
||||
|
||||
int x = xg.get();
|
||||
@ -739,6 +830,14 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
|
||||
}
|
||||
}
|
||||
|
||||
default void warnScaled(String ob, BlockVector bv, double ms)
|
||||
{
|
||||
if(Math.max(bv.getBlockX(), bv.getBlockZ()) > 128)
|
||||
{
|
||||
Iris.warn("Object " + ob + " has a large size (" + bv.toString() + ") and may increase memory usage! (Object scaled up to "+Form.pc(ms, 2)+")");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
default int getHighest(int x, int z) {
|
||||
return getHighest(x,z,false);
|
||||
|
@ -1002,16 +1002,7 @@ public interface Hunk<T>
|
||||
{
|
||||
if(x < 0 || x >= getWidth() || y < 0 || y >= getHeight() || z < 0 || z >= getDepth())
|
||||
{
|
||||
try
|
||||
{
|
||||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
catch(Throwable e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
Iris.warn(x + "," + y + "," + z + " does not fit within size " + getWidth() + "," + getHeight() + "," + getDepth() + " (0,0,0 to " + (getWidth() - 1) + "," + (getHeight() - 1) + "," + (getDepth() - 1) + ")");
|
||||
//Iris.warn(x + "," + y + "," + z + " does not fit within size " + getWidth() + "," + getHeight() + "," + getDepth() + " (0,0,0 to " + (getWidth() - 1) + "," + (getHeight() - 1) + "," + (getDepth() - 1) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1019,7 +1010,7 @@ public interface Hunk<T>
|
||||
{
|
||||
if(x < 0 || x >= getWidth() || y < 0 || y >= getHeight() || z < 0 || z >= getDepth() || x + w < 0 || x + w > getWidth() || y + h < 0 || y + h > getHeight() || z + d < 0 || z + d > getDepth())
|
||||
{
|
||||
Iris.warn("The hunk " + w + "," + h + "," + d + " with an offset of " + x + "," + y + "," + z + " does not fit within the parent hunk " + getWidth() + "," + getHeight() + "," + getDepth() + " (0,0,0 to " + (getWidth() - 1) + "," + (getHeight() - 1) + "," + (getDepth() - 1) + ")");
|
||||
//Iris.warn("The hunk " + w + "," + h + "," + d + " with an offset of " + x + "," + y + "," + z + " does not fit within the parent hunk " + getWidth() + "," + getHeight() + "," + getDepth() + " (0,0,0 to " + (getWidth() - 1) + "," + (getHeight() - 1) + "," + (getDepth() - 1) + ")");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package com.volmit.iris.util;
|
||||
|
||||
import com.volmit.iris.object.IrisPosition;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.util.BlockVector;
|
||||
|
||||
public class AxisAlignedBB
|
||||
{
|
||||
@ -62,11 +63,22 @@ public class AxisAlignedBB
|
||||
return new IrisPosition((int)xb, (int)yb, (int)zb);
|
||||
}
|
||||
|
||||
|
||||
public BlockVector maxbv()
|
||||
{
|
||||
return new BlockVector((int)xb, (int)yb, (int)zb);
|
||||
}
|
||||
|
||||
public IrisPosition min()
|
||||
{
|
||||
return new IrisPosition((int)xa, (int)ya, (int)za);
|
||||
}
|
||||
|
||||
public BlockVector minbv()
|
||||
{
|
||||
return new BlockVector((int)xa, (int)ya, (int)za);
|
||||
}
|
||||
|
||||
public Cuboid toCuboid(World world) {
|
||||
return new Cuboid(min().toLocation(world), max().toLocation(world));
|
||||
}
|
||||
|
@ -703,6 +703,21 @@ public class KList<T> extends ArrayList<T> implements List<T>
|
||||
return get(M.irand(0, last()));
|
||||
}
|
||||
|
||||
public T getRandom(RNG rng)
|
||||
{
|
||||
if(isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if(size() == 1)
|
||||
{
|
||||
return get(0);
|
||||
}
|
||||
|
||||
return get(rng.i(0, last()));
|
||||
}
|
||||
|
||||
public KList<T> qdel(T t)
|
||||
{
|
||||
remove(t);
|
||||
|
Loading…
x
Reference in New Issue
Block a user