mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 18:23:06 +00:00
Safe plax chunk meta
This commit is contained in:
parent
bca5f4bec4
commit
05aa0c2482
@ -22,38 +22,60 @@ import com.google.gson.Gson;
|
|||||||
import com.volmit.iris.engine.hunk.io.HunkIOAdapter;
|
import com.volmit.iris.engine.hunk.io.HunkIOAdapter;
|
||||||
import com.volmit.iris.engine.hunk.io.PaletteHunkIOAdapter;
|
import com.volmit.iris.engine.hunk.io.PaletteHunkIOAdapter;
|
||||||
import com.volmit.iris.engine.object.IrisFeaturePositional;
|
import com.volmit.iris.engine.object.IrisFeaturePositional;
|
||||||
import com.volmit.iris.util.io.IO;
|
|
||||||
import com.volmit.iris.util.oldnbt.CompoundTag;
|
import com.volmit.iris.util.oldnbt.CompoundTag;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Data
|
@Data
|
||||||
public class ParallaxChunkMeta {
|
public class ParallaxChunkMeta {
|
||||||
|
private static final Gson gson = new Gson();
|
||||||
public static final Function<CompoundTag, HunkIOAdapter<ParallaxChunkMeta>> adapter = (c) -> new PaletteHunkIOAdapter<>() {
|
public static final Function<CompoundTag, HunkIOAdapter<ParallaxChunkMeta>> adapter = (c) -> new PaletteHunkIOAdapter<>() {
|
||||||
@Override
|
@Override
|
||||||
public void write(ParallaxChunkMeta parallaxChunkMeta, DataOutputStream dos) throws IOException {
|
public void write(ParallaxChunkMeta parallaxChunkMeta, DataOutputStream dos) throws IOException {
|
||||||
try
|
dos.writeBoolean(parallaxChunkMeta.updates);
|
||||||
{
|
dos.writeBoolean(parallaxChunkMeta.generated);
|
||||||
dos.writeUTF(new Gson().toJson(parallaxChunkMeta));
|
dos.writeBoolean(parallaxChunkMeta.tilesGenerated);
|
||||||
}
|
dos.writeBoolean(parallaxChunkMeta.parallaxGenerated);
|
||||||
|
dos.writeBoolean(parallaxChunkMeta.featureGenerated);
|
||||||
|
dos.writeBoolean(parallaxChunkMeta.objects);
|
||||||
|
dos.writeInt(parallaxChunkMeta.maxObject);
|
||||||
|
dos.writeInt(parallaxChunkMeta.minObject);
|
||||||
|
dos.writeInt(parallaxChunkMeta.count);
|
||||||
|
dos.writeInt(parallaxChunkMeta.features.size());
|
||||||
|
|
||||||
catch(Throwable e)
|
for(IrisFeaturePositional i : parallaxChunkMeta.features)
|
||||||
{
|
{
|
||||||
IO.writeAll(new File("WTF", UUID.randomUUID().toString() + ".json"), new Gson().toJson(parallaxChunkMeta));
|
dos.writeUTF(gson.toJson(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ParallaxChunkMeta read(DataInputStream din) throws IOException {
|
public ParallaxChunkMeta read(DataInputStream din) throws IOException {
|
||||||
return new Gson().fromJson(din.readUTF(), ParallaxChunkMeta.class);
|
ParallaxChunkMeta pcm = new ParallaxChunkMeta();
|
||||||
|
pcm.setUpdates(din.readBoolean());
|
||||||
|
pcm.setGenerated(din.readBoolean());
|
||||||
|
pcm.setTilesGenerated(din.readBoolean());
|
||||||
|
pcm.setParallaxGenerated(din.readBoolean());
|
||||||
|
pcm.setFeatureGenerated(din.readBoolean());
|
||||||
|
pcm.setObjects(din.readBoolean());
|
||||||
|
pcm.setMaxObject(din.readInt());
|
||||||
|
pcm.setMinObject(din.readInt());
|
||||||
|
pcm.setCount(din.readInt());
|
||||||
|
pcm.setFeatures(new CopyOnWriteArrayList<>());
|
||||||
|
int c = din.readInt();
|
||||||
|
|
||||||
|
for(int i = 0; i < c; i++)
|
||||||
|
{
|
||||||
|
pcm.getFeatures().add(gson.fromJson(din.readUTF(), IrisFeaturePositional.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
return pcm;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user