diff --git a/src/main/java/com/volmit/iris/engine/parallax/ParallaxChunkMeta.java b/src/main/java/com/volmit/iris/engine/parallax/ParallaxChunkMeta.java index 89865e50d..60c42750f 100644 --- a/src/main/java/com/volmit/iris/engine/parallax/ParallaxChunkMeta.java +++ b/src/main/java/com/volmit/iris/engine/parallax/ParallaxChunkMeta.java @@ -22,13 +22,15 @@ import com.google.gson.Gson; import com.volmit.iris.engine.hunk.io.HunkIOAdapter; import com.volmit.iris.engine.hunk.io.PaletteHunkIOAdapter; import com.volmit.iris.engine.object.IrisFeaturePositional; +import com.volmit.iris.util.io.IO; import com.volmit.iris.util.oldnbt.CompoundTag; import lombok.AllArgsConstructor; import lombok.Data; - import java.io.DataInputStream; import java.io.DataOutputStream; +import java.io.File; import java.io.IOException; +import java.util.UUID; import java.util.concurrent.CopyOnWriteArrayList; import java.util.function.Function; @@ -38,7 +40,15 @@ public class ParallaxChunkMeta { public static final Function> adapter = (c) -> new PaletteHunkIOAdapter<>() { @Override public void write(ParallaxChunkMeta parallaxChunkMeta, DataOutputStream dos) throws IOException { - dos.writeUTF(new Gson().toJson(parallaxChunkMeta)); + try + { + dos.writeUTF(new Gson().toJson(parallaxChunkMeta)); + } + + catch(Throwable e) + { + IO.writeAll(new File("WTF", UUID.randomUUID().toString()), new Gson().toJson(parallaxChunkMeta)); + } } @Override diff --git a/src/main/java/com/volmit/iris/util/math/BlockPosition.java b/src/main/java/com/volmit/iris/util/math/BlockPosition.java index 2729714e5..96415a2e4 100644 --- a/src/main/java/com/volmit/iris/util/math/BlockPosition.java +++ b/src/main/java/com/volmit/iris/util/math/BlockPosition.java @@ -19,6 +19,8 @@ package com.volmit.iris.util.math; import lombok.Data; +import org.bukkit.World; +import org.bukkit.block.Block; import java.util.Objects; @@ -28,6 +30,7 @@ public class BlockPosition { private int y; private int z; + //Magic numbers private static final int m1 = 1 + MathHelper.f(MathHelper.c(30000000)); private static final int m2 = 64 - (m1 * 2); @@ -88,4 +91,25 @@ public class BlockPosition { var3 |= (z & m6) << m2; return var3; } + + public Block toBlock(World world) + { + return world.getBlockAt(x,y,z); + } + + public BlockPosition add(int x, int y, int z) { + return new BlockPosition(x,y,z); + } + + public void min(BlockPosition i) { + setX(Math.min(i.getX(), getX())); + setY(Math.min(i.getY(), getY())); + setZ(Math.min(i.getZ(), getZ())); + } + + public void max(BlockPosition i) { + setX(Math.max(i.getX(), getX())); + setY(Math.max(i.getY(), getY())); + setZ(Math.max(i.getZ(), getZ())); + } } diff --git a/src/main/java/com/volmit/iris/util/math/Position2.java b/src/main/java/com/volmit/iris/util/math/Position2.java index bea71ea6c..835f1e448 100644 --- a/src/main/java/com/volmit/iris/util/math/Position2.java +++ b/src/main/java/com/volmit/iris/util/math/Position2.java @@ -18,6 +18,11 @@ package com.volmit.iris.util.math; +import com.volmit.iris.engine.object.IrisBiomePaletteLayer; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.block.Block; + public class Position2 { private int x; private int z;