From a80031c3c5d7ca2e02f6a9cf0bb5a7abd2aa4e36 Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Sat, 25 Sep 2021 18:25:00 -0400 Subject: [PATCH] Data fixes for tec plates --- src/main/java/com/volmit/iris/Iris.java | 4 +- .../iris/engine/mantle/MantleWriter.java | 10 +++- .../com/volmit/iris/util/format/Form.java | 36 ++++++++++++ .../volmit/iris/util/hunk/bits/DataBits.java | 1 + .../iris/util/hunk/bits/DataContainer.java | 56 ++++++++++++++----- .../iris/util/hunk/bits/HashPalette.java | 13 ++++- .../iris/util/hunk/bits/LinearPalette.java | 16 +++--- .../volmit/iris/util/hunk/bits/Palette.java | 2 +- .../volmit/iris/util/hunk/bits/TecTest.java | 53 ++++++++++++++++++ .../iris/util/hunk/storage/PaletteHunk.java | 6 +- .../iris/util/hunk/storage/PaletteOrHunk.java | 4 +- .../volmit/iris/util/matter/MatterSlice.java | 1 - .../volmit/iris/util/matter/MatterTest.java | 25 --------- .../iris/util/matter/slices/BlockMatter.java | 2 +- .../util/matter/slices/BooleanMatter.java | 2 +- .../iris/util/matter/slices/CavernMatter.java | 2 +- .../iris/util/matter/slices/EntityMatter.java | 2 +- .../iris/util/matter/slices/IntMatter.java | 2 +- .../iris/util/matter/slices/LongMatter.java | 2 +- .../iris/util/matter/slices/MarkerMatter.java | 2 +- .../iris/util/matter/slices/NBTMatter.java | 2 +- .../iris/util/matter/slices/RawMatter.java | 4 +- .../util/matter/slices/RegistryMatter.java | 2 +- .../iris/util/matter/slices/StringMatter.java | 2 +- .../iris/util/matter/slices/TileMatter.java | 2 +- .../iris/util/matter/slices/UpdateMatter.java | 2 +- 26 files changed, 184 insertions(+), 71 deletions(-) create mode 100644 src/main/java/com/volmit/iris/util/hunk/bits/TecTest.java delete mode 100644 src/main/java/com/volmit/iris/util/matter/MatterTest.java diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index 54f3d6c04..7f3669c9b 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -38,13 +38,13 @@ import com.volmit.iris.util.exceptions.IrisException; import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.function.NastyRunnable; +import com.volmit.iris.util.hunk.bits.TecTest; import com.volmit.iris.util.io.FileWatcher; import com.volmit.iris.util.io.IO; import com.volmit.iris.util.io.InstanceState; import com.volmit.iris.util.io.JarScanner; import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterTest; import com.volmit.iris.util.parallel.MultiBurst; import com.volmit.iris.util.plugin.IrisService; import com.volmit.iris.util.plugin.Metrics; @@ -454,9 +454,9 @@ public class Iris extends VolmitPlugin implements Listener { J.ar(this::checkConfigHotload, 60); J.sr(this::tickQueue, 0); J.s(this::setupPapi); + J.s(TecTest::go); J.a(ServerConfigurator::configure, 20); splash(); - J.a(MatterTest::test, 20); if (IrisSettings.get().getStudio().isAutoStartDefaultStudio()) { Iris.info("Starting up auto Studio!"); diff --git a/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java b/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java index cfda683b8..9e454b2e4 100644 --- a/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java +++ b/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java @@ -524,7 +524,15 @@ public class MantleWriter implements IObjectPlacer { } public void set(IrisPosition pos, T data) { - setData(pos.getX(), pos.getY(), pos.getZ(), data); + try + { + setData(pos.getX(), pos.getY(), pos.getZ(), data); + } + + catch(Throwable e) + { + Iris.error("No set? " + data.toString() + " for " + pos.toString()); + } } public void set(List positions, T data) { diff --git a/src/main/java/com/volmit/iris/util/format/Form.java b/src/main/java/com/volmit/iris/util/format/Form.java index b4a1fd2f0..cd53a66b3 100644 --- a/src/main/java/com/volmit/iris/util/format/Form.java +++ b/src/main/java/com/volmit/iris/util/format/Form.java @@ -24,9 +24,11 @@ import com.volmit.iris.util.math.RollingSequence; import java.math.BigInteger; import java.text.DecimalFormat; import java.text.NumberFormat; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.LinkedHashMap; +import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Map.Entry; @@ -158,6 +160,40 @@ public class Form { return wrap(s, len, newLineSep, soft, " "); } + public static String hardWrap(String s, int len) { + StringBuilder ss = new StringBuilder(); + + for(int i = 0; i < s.length(); i+= len) + { + if(i + len > s.length()) + { + ss.append(s, i, s.length()); + break; + } + + ss.append(s, i, i + len).append("\n"); + } + + return ss.toString(); + } + + public static List hardWrapList(String s, int len) { + List l = new ArrayList<>(); + for(int i = 0; i < s.length(); i+= len) + { + if(i + len > s.length()) + { + l.add(s.substring(i)); + break; + } + + l.add(s.substring(i, i + len)); + } + + return l; + } + + /** * Wrap words * diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java b/src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java index 3d13c4c90..8aec54478 100644 --- a/src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java +++ b/src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java @@ -18,6 +18,7 @@ package com.volmit.iris.util.hunk.bits; +import com.volmit.iris.Iris; import org.apache.commons.lang3.Validate; import java.io.DataInputStream; diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java b/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java index 05e38b497..f415b63ae 100644 --- a/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java +++ b/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java @@ -18,6 +18,8 @@ package com.volmit.iris.util.hunk.bits; +import com.volmit.iris.Iris; + import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -25,9 +27,10 @@ import java.io.IOException; import java.io.OutputStream; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.locks.ReentrantLock; public class DataContainer { - protected static final int INITIAL_BITS = 3; + protected static final int INITIAL_BITS = 2; protected static final int LINEAR_BITS_LIMIT = 5; protected static final int LINEAR_INITIAL_LENGTH = (int) Math.pow(2, LINEAR_BITS_LIMIT) + 1; protected static final int[] BIT = computeBitLimits(); @@ -37,13 +40,12 @@ public class DataContainer { private final int length; private final Writable writer; - public DataContainer(Writable writer, int length, T empty) { + public DataContainer(Writable writer, int length) { this.writer = writer; this.length = length; this.bits = new AtomicInteger(INITIAL_BITS); this.data = new AtomicReference<>(new DataBits(INITIAL_BITS, length)); this.palette = new AtomicReference<>(newPalette(INITIAL_BITS)); - this.ensurePaletted(empty); } public DataContainer(DataInputStream din, Writable writer) throws IOException { @@ -54,6 +56,16 @@ public class DataContainer { this.bits = new AtomicInteger(palette.get().bits()); } + public DataBits getData() + { + return data.get(); + } + + public Palette getPalette() + { + return palette.get(); + } + public String toString() { return "DataContainer <" + length + " x " + bits + " bits> -> Palette<" + palette.get().getClass().getSimpleName().replaceAll("\\QPalette\\E", "") + ">: " + palette.get().size() + " " + data.get().toString() + " PalBit: " + palette.get().bits(); @@ -79,7 +91,7 @@ public class DataContainer { private Palette newPalette(DataInputStream din) throws IOException { int paletteSize = din.readInt(); - Palette d = newPalette(bits(paletteSize)); + Palette d = newPalette(bits(paletteSize+1)); d.from(paletteSize, writer, din); return d; } @@ -105,24 +117,36 @@ public class DataContainer { } public void set(int position, T t) { - int id = palette.get().id(t); + synchronized (this) + { + int id = palette.get().id(t); - if (id == -1) { - checkBits(); - id = palette.get().add(t); + if (id == -1) { + expandOne(); + id = palette.get().add(t); + } + + data.get().set(position, id); } + } - data.get().set(position, id); + private void expandOne() { + if (palette.get().size()+1 >= BIT[bits.get()]) { + setBits(bits.get() + 1); + } } public T get(int position) { - int id = data.get().get(position) + 1; + synchronized (this) + { + int id = data.get().get(position) + 1; - if (id <= 0) { - return null; + if (id <= 0) { + return null; + } + + return palette.get().get(id - 1); } - - return palette.get().get(id - 1); } public void setBits(int bits) { @@ -159,4 +183,8 @@ public class DataContainer { return DataContainer.BIT.length - 1; } + + public int size() { + return getData().getSize(); + } } diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java b/src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java index 6bed881a5..16b16a6e9 100644 --- a/src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java +++ b/src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java @@ -33,6 +33,7 @@ public class HashPalette implements Palette { this.size = new AtomicInteger(0); this.palette = new LinkedHashMap<>(); this.lookup = new KMap<>(); + add(null); } @Override @@ -58,18 +59,28 @@ public class HashPalette implements Palette { @Override public int id(T t) { + if(t == null) + { + return 0; + } + Integer v = palette.get(t); return v != null ? v : -1; } @Override public int size() { - return size.get(); + return size.get() - 1; } @Override public void iterate(Consumer2 c) { for (T i : palette.keySet()) { + if(i == null) + { + continue; + } + c.accept(i, id(i)); } } diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java b/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java index befdead96..720f7fbb5 100644 --- a/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java +++ b/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java @@ -31,6 +31,7 @@ public class LinearPalette implements Palette { public LinearPalette(int initialSize) { this.size = new AtomicInteger(0); this.palette = new AtomicReference<>(new AtomicReferenceArray<>(initialSize)); + palette.get().set(size.getAndIncrement(), null); } @Override @@ -64,12 +65,13 @@ public class LinearPalette implements Palette { @Override public int id(T t) { - for (int i = 0; i < size(); i++) { - if (t == null && palette.get().get(i) == null) { - return i; - } + if(t == null) + { + return 0; + } - if (t != null && t.equals(palette.get().get(i))) { + for (int i = 0; i < size(); i++) { + if (t.equals(palette.get().get(i))) { return i; } } @@ -79,12 +81,12 @@ public class LinearPalette implements Palette { @Override public int size() { - return size.get(); + return size.get()-1; } @Override public void iterate(Consumer2 c) { - for (int i = 0; i < size(); i++) { + for (int i = 1; i < size()+1; i++) { c.accept(palette.get().get(i), i); } } diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/Palette.java b/src/main/java/com/volmit/iris/util/hunk/bits/Palette.java index d179572ba..f59b4040e 100644 --- a/src/main/java/com/volmit/iris/util/hunk/bits/Palette.java +++ b/src/main/java/com/volmit/iris/util/hunk/bits/Palette.java @@ -35,7 +35,7 @@ public interface Palette { int size(); default int bits() { - return DataContainer.bits(size()); + return DataContainer.bits(size()+1); } void iterate(Consumer2 c); diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/TecTest.java b/src/main/java/com/volmit/iris/util/hunk/bits/TecTest.java new file mode 100644 index 000000000..4b9db1bfd --- /dev/null +++ b/src/main/java/com/volmit/iris/util/hunk/bits/TecTest.java @@ -0,0 +1,53 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.volmit.iris.util.hunk.bits; + +import com.volmit.iris.Iris; +import com.volmit.iris.engine.data.cache.Cache; +import com.volmit.iris.util.io.IO; +import com.volmit.iris.util.mantle.Mantle; +import com.volmit.iris.util.math.RNG; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.File; +import java.io.IOException; + +public class TecTest { + public static void go() + { + Mantle m = new Mantle(new File("dummy"), 256); + + int size = 255; + int mx = (int) Math.pow(size, 3); + + for(int i = 0; i < mx; i++) + { + int[] p = Cache.to3D(i, size, size); + m.set(p[0], p[1], p[2], RNG.r.s(1)); + } + + m.close(); + + m = new Mantle(new File("dummy"), 256); + m.get(0,0,0, String.class); + } +} diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.java b/src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.java index 1be335f1d..ba30870e4 100644 --- a/src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.java +++ b/src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.java @@ -27,6 +27,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.IOException; +import java.util.concurrent.locks.ReentrantLock; @SuppressWarnings({"DefaultAnnotationParam", "Lombok"}) @Data @@ -34,16 +35,15 @@ import java.io.IOException; public class PaletteHunk extends StorageHunk implements Hunk { private DataContainer data; - public PaletteHunk(int w, int h, int d, Writable writer, T e) { + public PaletteHunk(int w, int h, int d, Writable writer) { super(w, h, d); - data = new DataContainer<>(writer, w * h * d, e); + data = new DataContainer<>(writer, w * h * d); } public void setPalette(DataContainer c) { data = c; } - public boolean isMapped() { return false; } diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java b/src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java index 3b58ea338..548210a7f 100644 --- a/src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java +++ b/src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java @@ -30,9 +30,9 @@ import java.util.function.Supplier; public abstract class PaletteOrHunk extends StorageHunk implements Hunk, Writable { private final Hunk hunk; - public PaletteOrHunk(int width, int height, int depth, boolean allow, Supplier> factory, T e) { + public PaletteOrHunk(int width, int height, int depth, boolean allow, Supplier> factory) { super(width, height, depth); - hunk = (allow) ? new PaletteHunk<>(width, height, depth, this, e) : factory.get(); + hunk = (allow) ? new PaletteHunk<>(width, height, depth, this) : factory.get(); } public DataContainer palette() { diff --git a/src/main/java/com/volmit/iris/util/matter/MatterSlice.java b/src/main/java/com/volmit/iris/util/matter/MatterSlice.java index c5994b844..669e35305 100644 --- a/src/main/java/com/volmit/iris/util/matter/MatterSlice.java +++ b/src/main/java/com/volmit/iris/util/matter/MatterSlice.java @@ -19,7 +19,6 @@ package com.volmit.iris.util.matter; import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.util.data.Varint; import com.volmit.iris.util.data.palette.Palette; import com.volmit.iris.util.data.palette.PaletteType; import com.volmit.iris.util.hunk.Hunk; diff --git a/src/main/java/com/volmit/iris/util/matter/MatterTest.java b/src/main/java/com/volmit/iris/util/matter/MatterTest.java deleted file mode 100644 index 83795b6c4..000000000 --- a/src/main/java/com/volmit/iris/util/matter/MatterTest.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Iris is a World Generator for Minecraft Bukkit Servers - * Copyright (c) 2021 Arcane Arts (Volmit Software) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.volmit.iris.util.matter; - -public class MatterTest { - public static void test() { - - } -} diff --git a/src/main/java/com/volmit/iris/util/matter/slices/BlockMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/BlockMatter.java index 5a8a0b01a..eb25aa8de 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/BlockMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/BlockMatter.java @@ -43,7 +43,7 @@ public class BlockMatter extends RawMatter { } public BlockMatter(int width, int height, int depth) { - super(width, height, depth, BlockData.class, AIR); + super(width, height, depth, BlockData.class); registerWriter(World.class, ((w, d, x, y, z) -> w.getBlockAt(x, y, z).setBlockData(d))); registerReader(World.class, (w, x, y, z) -> { BlockData d = w.getBlockAt(x, y, z).getBlockData(); diff --git a/src/main/java/com/volmit/iris/util/matter/slices/BooleanMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/BooleanMatter.java index a9936b806..ba7f66657 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/BooleanMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/BooleanMatter.java @@ -37,7 +37,7 @@ public class BooleanMatter extends RawMatter { } public BooleanMatter(int width, int height, int depth) { - super(width, height, depth, Boolean.class, false); + super(width, height, depth, Boolean.class); } @Override diff --git a/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java index 04de23238..7d9709363 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java @@ -40,7 +40,7 @@ public class CavernMatter extends RawMatter { } public CavernMatter(int width, int height, int depth) { - super(width, height, depth, MatterCavern.class, EMPTY); + super(width, height, depth, MatterCavern.class); } public static MatterCavern get(String customBiome, int liquid) { diff --git a/src/main/java/com/volmit/iris/util/matter/slices/EntityMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/EntityMatter.java index 8a53edda5..8f446ace6 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/EntityMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/EntityMatter.java @@ -54,7 +54,7 @@ public class EntityMatter extends RawMatter { } public EntityMatter(int width, int height, int depth) { - super(width, height, depth, MatterEntityGroup.class, EMPTY); + super(width, height, depth, MatterEntityGroup.class); registerWriter(World.class, ((w, d, x, y, z) -> { for (MatterEntity i : d.getEntities()) { Location realPosition = new Location(w, x + i.getXOff(), y + i.getYOff(), z + i.getZOff()); diff --git a/src/main/java/com/volmit/iris/util/matter/slices/IntMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/IntMatter.java index 78145821b..9eae24461 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/IntMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/IntMatter.java @@ -38,7 +38,7 @@ public class IntMatter extends RawMatter { } public IntMatter(int width, int height, int depth) { - super(width, height, depth, Integer.class, 0); + super(width, height, depth, Integer.class); } @Override diff --git a/src/main/java/com/volmit/iris/util/matter/slices/LongMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/LongMatter.java index 2831fcc1e..5837dde36 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/LongMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/LongMatter.java @@ -38,7 +38,7 @@ public class LongMatter extends RawMatter { } public LongMatter(int width, int height, int depth) { - super(width, height, depth, Long.class, 0L); + super(width, height, depth, Long.class); } @Override diff --git a/src/main/java/com/volmit/iris/util/matter/slices/MarkerMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/MarkerMatter.java index ccd315b70..288458f94 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/MarkerMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/MarkerMatter.java @@ -44,7 +44,7 @@ public class MarkerMatter extends RawMatter { } public MarkerMatter(int width, int height, int depth) { - super(width, height, depth, MatterMarker.class, NONE); + super(width, height, depth, MatterMarker.class); } @Override diff --git a/src/main/java/com/volmit/iris/util/matter/slices/NBTMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/NBTMatter.java index e7274f708..efcca9ec7 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/NBTMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/NBTMatter.java @@ -28,7 +28,7 @@ import java.io.IOException; public class NBTMatter> extends RawMatter { public NBTMatter(int width, int height, int depth, Class c, T e) { - super(width, height, depth, c, e); + super(width, height, depth, c); } @Override diff --git a/src/main/java/com/volmit/iris/util/matter/slices/RawMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/RawMatter.java index 465e9044d..d7f1ccdae 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/RawMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/RawMatter.java @@ -36,8 +36,8 @@ public abstract class RawMatter extends PaletteOrHunk implements MatterSli @Getter private final Class type; - public RawMatter(int width, int height, int depth, Class type, T e) { - super(width, height, depth, false, () -> new MappedHunk<>(width, height, depth), e); + public RawMatter(int width, int height, int depth, Class type) { + super(width, height, depth, true, () -> new MappedHunk<>(width, height, depth)); writers = new KMap<>(); readers = new KMap<>(); this.type = type; diff --git a/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java index 3745b755e..36c6098d1 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java @@ -28,7 +28,7 @@ import java.io.IOException; public class RegistryMatter extends RawMatter { public RegistryMatter(int width, int height, int depth, Class c, T e) { - super(width, height, depth, c, e); + super(width, height, depth, c); } @Override diff --git a/src/main/java/com/volmit/iris/util/matter/slices/StringMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/StringMatter.java index e5e5e3387..6af11b595 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/StringMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/StringMatter.java @@ -32,7 +32,7 @@ public class StringMatter extends RawMatter { } public StringMatter(int width, int height, int depth) { - super(width, height, depth, String.class, ""); + super(width, height, depth, String.class); } @Override diff --git a/src/main/java/com/volmit/iris/util/matter/slices/TileMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/TileMatter.java index 44c95d8c4..43b2b44bb 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/TileMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/TileMatter.java @@ -45,7 +45,7 @@ public class TileMatter extends RawMatter { } public TileMatter(int width, int height, int depth) { - super(width, height, depth, MatterTile.class, EMPTY); + super(width, height, depth, MatterTile.class); registerWriter(World.class, ((w, d, x, y, z) -> INMS.get().deserializeTile(d.getTileData(), new Location(w, x, y, z)))); registerReader(World.class, (w, x, y, z) -> { Location l = new Location(w, x, y, z); diff --git a/src/main/java/com/volmit/iris/util/matter/slices/UpdateMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/UpdateMatter.java index 21479b201..374eda80d 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/UpdateMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/UpdateMatter.java @@ -43,7 +43,7 @@ public class UpdateMatter extends RawMatter { } public UpdateMatter(int width, int height, int depth) { - super(width, height, depth, MatterUpdate.class, OFF); + super(width, height, depth, MatterUpdate.class); } @Override