diff --git a/src/main/java/com/volmit/iris/util/function/NastySupplier.java b/src/main/java/com/volmit/iris/util/function/NastySupplier.java
new file mode 100644
index 000000000..d1c1c0048
--- /dev/null
+++ b/src/main/java/com/volmit/iris/util/function/NastySupplier.java
@@ -0,0 +1,23 @@
+/*
+ * 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.function;
+
+public interface NastySupplier {
+ T get() throws Throwable;
+}
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPalette.java b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPalette.java
index 4426e4286..100947f30 100644
--- a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPalette.java
+++ b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPalette.java
@@ -23,12 +23,12 @@ import com.volmit.iris.util.nbt.tag.ListTag;
import java.util.function.Predicate;
-public interface DataPalette {
- int getIndex(T var1);
+public interface DataPalette {
+ int getIndex(CompoundTag var1);
- boolean a(Predicate var1);
+ boolean a(Predicate var1);
- T getByIndex(int var1);
+ CompoundTag getByIndex(int var1);
int a();
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteBlock.java b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteBlock.java
index eef62b14d..5f3b53c7c 100644
--- a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteBlock.java
+++ b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteBlock.java
@@ -24,67 +24,50 @@ import com.volmit.iris.util.math.MathHelper;
import com.volmit.iris.util.nbt.mca.NBTWorld;
import com.volmit.iris.util.nbt.tag.CompoundTag;
import com.volmit.iris.util.nbt.tag.ListTag;
+import com.volmit.iris.util.scheduling.J;
import it.unimi.dsi.fastutil.ints.Int2IntMap;
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
import lombok.Getter;
import net.minecraft.network.PacketDataSerializer;
import org.bukkit.Material;
-import java.util.function.Function;
import java.util.function.Predicate;
@Getter
-public class DataPaletteBlock implements DataPaletteExpandable {
+public class DataPaletteBlock implements DataPaletteExpandable {
private static final int d = 4096;
public static final int HASH_BITS = 9;
public static final int LINEAR_BITS = 4;
- private final DataPalette globalPalette;
- private final DataPaletteExpandable f = (var0x, var1x) -> 0;
- private final RegistryBlockID stolenRegistry;
- private final Function h;
- private final Function i;
- private final T defAir;
- private static final AtomicCache> reg = new AtomicCache<>();
- private static final AtomicCache> global = new AtomicCache<>();
+ private final DataPalette globalPalette;
+ private final DataPaletteExpandable f = (var0x, var1x) -> 0;
+ private final RegistryBlockID stolenRegistry;
+ private final CompoundTag defAir;
+ private static final AtomicCache reg = new AtomicCache<>();
+ private static final AtomicCache global = new AtomicCache<>();
private static final CompoundTag air = NBTWorld.getCompound(Material.AIR.createBlockData());
protected DataBits dataBits;
- private DataPalette currentPalette;
+ private DataPalette currentPalette;
private int bits = 0;
public DataPaletteBlock() {
- this((DataPalette) global.aquire(() ->
- new DataPaletteGlobal<>(reg.aquire(() -> {
- try {
- return INMS.get().computeBlockIDRegistry();
- } catch (NoSuchFieldException ex) {
- ex.printStackTrace();
- } catch (IllegalAccessException ex) {
- ex.printStackTrace();
- }
- return null;
- }), air)
- ), (RegistryBlockID) reg.aquire(() -> {
- try {
- return INMS.get().computeBlockIDRegistry();
- } catch (NoSuchFieldException ex) {
- ex.printStackTrace();
- } catch (IllegalAccessException ex) {
- ex.printStackTrace();
- }
- return null;
- }), (i) -> (T) i, (i) -> (CompoundTag) i, (T) air);
+ this(global(), registry(), air);
}
- public DataPaletteBlock(DataPalette var0,
- RegistryBlockID var1,
- Function var2,
- Function var3,
- T var4) {
+ private static RegistryBlockID registry()
+ {
+ return ((DataPaletteGlobal) global()).getRegistry();
+ }
+
+ private static DataPalette global() {
+ return (DataPalette) global.aquire(() -> new DataPaletteGlobal(J.attemptResult(() -> INMS.get().computeBlockIDRegistry()), air));
+ }
+
+ public DataPaletteBlock(DataPalette var0,
+ RegistryBlockID var1,
+ CompoundTag airType) {
this.globalPalette = var0;
this.stolenRegistry = var1;
- this.h = var2;
- this.i = var3;
- this.defAir = var4;
+ this.defAir = airType;
this.changeBitsTo(4);
}
@@ -97,9 +80,9 @@ public class DataPaletteBlock implements DataPaletteExpandable {
this.bits = newbits;
if (this.bits <= LINEAR_BITS) {
this.bits = LINEAR_BITS;
- this.currentPalette = new DataPaletteLinear(this.stolenRegistry, this.bits, this, this.h);
+ this.currentPalette = new DataPaletteLinear(this.stolenRegistry, this.bits, this);
} else if (this.bits < HASH_BITS) {
- this.currentPalette = new DataPaletteHash(this.stolenRegistry, this.bits, this, this.h, this.i);
+ this.currentPalette = new DataPaletteHash(this.stolenRegistry, this.bits, this);
} else {
this.currentPalette = this.globalPalette;
this.bits = MathHelper.e(this.stolenRegistry.size());
@@ -110,52 +93,52 @@ public class DataPaletteBlock implements DataPaletteExpandable {
}
}
- public int onResize(int var0, T var1) {
+ public int onResize(int newBits, CompoundTag newData) {
DataBits var2 = this.dataBits;
- DataPalette var3 = this.currentPalette;
- this.changeBitsTo(var0);
+ DataPalette var3 = this.currentPalette;
+ this.changeBitsTo(newBits);
for (int var4 = 0; var4 < var2.b(); ++var4) {
- T var5 = var3.getByIndex(var2.getIndexFromPos(var4));
+ CompoundTag var5 = var3.getByIndex(var2.getIndexFromPos(var4));
if (var5 != null) {
this.setBlockIndex(var4, var5);
}
}
- return this.currentPalette.getIndex(var1);
+ return this.currentPalette.getIndex(newData);
}
- public T setBlock(int var0, int var1, int var2, T var3) {
+ public CompoundTag setBlock(int var0, int var1, int var2, CompoundTag var3) {
return this.a(blockIndex(var0, var1, var2), var3);
}
- private T a(int var0, T var1) {
+ private CompoundTag a(int var0, CompoundTag var1) {
int var2 = this.currentPalette.getIndex(var1);
int var3 = this.dataBits.a(var0, var2);
- T var4 = this.currentPalette.getByIndex(var3);
+ CompoundTag var4 = this.currentPalette.getByIndex(var3);
return var4 == null ? this.defAir : var4;
}
- public void c(int var0, int var1, int var2, T var3) {
+ public void c(int var0, int var1, int var2, CompoundTag var3) {
this.setBlockIndex(blockIndex(var0, var1, var2), var3);
}
- private void setBlockIndex(int var0, T var1) {
+ private void setBlockIndex(int var0, CompoundTag var1) {
int var2 = this.currentPalette.getIndex(var1);
this.dataBits.b(var0, var2);
}
- public T getBlock(int var0, int var1, int var2) {
+ public CompoundTag getBlock(int var0, int var1, int var2) {
return this.getByIndex(blockIndex(var0, var1, var2));
}
- protected T getByIndex(int var0) {
+ protected CompoundTag getByIndex(int var0) {
if(this.currentPalette == null)
{
return null;
}
- T data = this.currentPalette.getByIndex(this.dataBits.getIndexFromPos(var0));
+ CompoundTag data = this.currentPalette.getByIndex(this.dataBits.getIndexFromPos(var0));
return data == null ? this.defAir : data;
}
@@ -168,7 +151,7 @@ public class DataPaletteBlock implements DataPaletteExpandable {
this.currentPalette.replace(palettedata);
int dblen = databits.length * 64 / 4096;
if (this.currentPalette == this.globalPalette) {
- DataPalette hashPalette = new DataPaletteHash(this.stolenRegistry, readBits, this.f, this.h, this.i);
+ DataPalette hashPalette = new DataPaletteHash(this.stolenRegistry, readBits, this.f);
hashPalette.replace(palettedata);
DataBits var5 = new DataBits(readBits, 4096, databits);
@@ -187,13 +170,13 @@ public class DataPaletteBlock implements DataPaletteExpandable {
}
public void save(CompoundTag to, String paletteName, String blockStatesName) {
- DataPaletteHash hashpal = new DataPaletteHash(this.stolenRegistry, bits, this.f, this.h, this.i);
- T cursor = this.defAir;
+ DataPaletteHash hashpal = new DataPaletteHash(this.stolenRegistry, bits, this.f);
+ CompoundTag cursor = this.defAir;
int palIndex = hashpal.getIndex(this.defAir);
int[] var6 = new int[4096];
for (int var7 = 0; var7 < 4096; ++var7) {
- T entry = this.getByIndex(var7);
+ CompoundTag entry = this.getByIndex(var7);
if (!entry.equals(cursor)) {
cursor = entry;
palIndex = hashpal.getIndex(entry);
@@ -213,24 +196,25 @@ public class DataPaletteBlock implements DataPaletteExpandable {
}
to.putLongArray(blockStatesName, writeBits.getData());
+ to.putString("DEBUG_PALETTE_MODE", this.currentPalette.getClass().getSimpleName());
}
public int c() {
return 1 + this.currentPalette.a() + PacketDataSerializer.a(this.dataBits.b()) + this.dataBits.getData().length * 8;
}
- public boolean contains(Predicate var0) {
+ public boolean contains(Predicate var0) {
return this.currentPalette.a(var0);
}
- public void a(DataPaletteBlock.a var0) {
+ public void a(PaletteConsumer var0) {
Int2IntMap var1 = new Int2IntOpenHashMap();
this.dataBits.a((var1x) -> var1.put(var1x, var1.get(var1x) + 1));
var1.int2IntEntrySet().forEach((var1x) -> var0.accept(this.currentPalette.getByIndex(var1x.getIntKey()), var1x.getIntValue()));
}
@FunctionalInterface
- public interface a {
+ public interface PaletteConsumer {
void accept(T var1, int var2);
}
}
\ No newline at end of file
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteExpandable.java b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteExpandable.java
index ca1ac6d5b..21281139f 100644
--- a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteExpandable.java
+++ b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteExpandable.java
@@ -18,6 +18,8 @@
package com.volmit.iris.util.nbt.mca.palettes;
-interface DataPaletteExpandable {
- int onResize(int var1, T var2);
+import com.volmit.iris.util.nbt.tag.CompoundTag;
+
+interface DataPaletteExpandable {
+ int onResize(int newBits, CompoundTag newData);
}
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteGlobal.java b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteGlobal.java
index 67e4a9a6d..673560465 100644
--- a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteGlobal.java
+++ b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteGlobal.java
@@ -20,30 +20,29 @@ package com.volmit.iris.util.nbt.mca.palettes;
import com.volmit.iris.util.nbt.tag.CompoundTag;
import com.volmit.iris.util.nbt.tag.ListTag;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import java.util.function.Predicate;
-public class DataPaletteGlobal implements DataPalette {
- private final RegistryBlockID a;
- private final T b;
+@RequiredArgsConstructor
+public class DataPaletteGlobal implements DataPalette {
+ @Getter
+ private final RegistryBlockID registry;
+ private final CompoundTag air;
- public DataPaletteGlobal(RegistryBlockID var0, T var1) {
- this.a = var0;
- this.b = var1;
- }
-
- public int getIndex(T var0) {
- int var1 = this.a.getId(var0);
+ public int getIndex(CompoundTag var0) {
+ int var1 = this.registry.getId(var0);
return var1 == -1 ? 0 : var1;
}
- public boolean a(Predicate var0) {
+ public boolean a(Predicate var0) {
return true;
}
- public T getByIndex(int var0) {
- T var1 = this.a.fromId(var0);
- return var1 == null ? this.b : var1;
+ public CompoundTag getByIndex(int var0) {
+ CompoundTag var1 = this.registry.fromId(var0);
+ return var1 == null ? this.air : var1;
}
public static int aa(int i) {
@@ -61,7 +60,7 @@ public class DataPaletteGlobal implements DataPalette {
}
public int b() {
- return this.a.size();
+ return this.registry.size();
}
@Override
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteHash.java b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteHash.java
index ba41ba69a..a0fe4bf87 100644
--- a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteHash.java
+++ b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteHash.java
@@ -18,47 +18,41 @@
package com.volmit.iris.util.nbt.mca.palettes;
-import com.volmit.iris.Iris;
import com.volmit.iris.util.nbt.tag.CompoundTag;
import com.volmit.iris.util.nbt.tag.ListTag;
import net.minecraft.network.PacketDataSerializer;
-import net.minecraft.world.level.chunk.ChunkSection;
import java.util.function.Function;
import java.util.function.Predicate;
-public class DataPaletteHash implements DataPalette {
- private final RegistryBlockID a;
- private final RegistryID b;
- private final DataPaletteExpandable c;
- private final Function d;
- private final Function e;
- private final int f;
+public class DataPaletteHash implements DataPalette {
+ private final RegistryBlockID registryBlock;
+ private final RegistryID registryId;
+ private final DataPaletteExpandable expander;
+ private final int bits;
- public DataPaletteHash(RegistryBlockID var0, int var1, DataPaletteExpandable var2, Function var3, Function var4) {
- this.a = var0;
- this.f = var1;
- this.c = var2;
- this.d = var3;
- this.e = var4;
- this.b = new RegistryID(1 << var1);
+ public DataPaletteHash(RegistryBlockID var0, int bits, DataPaletteExpandable expander) {
+ this.registryBlock = var0;
+ this.bits = bits;
+ this.expander = expander;
+ this.registryId = new RegistryID(1 << bits);
}
- public int getIndex(T var0) {
- int var1 = this.b.getId(var0);
+ public int getIndex(CompoundTag var0) {
+ int var1 = this.registryId.getId(var0);
if (var1 == -1) {
- var1 = this.b.c(var0);
- if (var1 >= 1 << this.f) {
- var1 = this.c.onResize(this.f + 1, var0);
+ var1 = this.registryId.c(var0);
+ if (var1 >= 1 << this.bits) {
+ var1 = this.expander.onResize(this.bits + 1, var0);
}
}
return var1;
}
- public boolean a(Predicate var0) {
+ public boolean a(Predicate var0) {
for (int var1 = 0; var1 < this.b(); ++var1) {
- if (var0.test(this.b.fromId(var1))) {
+ if (var0.test(this.registryId.fromId(var1))) {
return true;
}
}
@@ -66,16 +60,16 @@ public class DataPaletteHash implements DataPalette {
return false;
}
- public T getByIndex(int var0) {
- return this.b.fromId(var0);
+ public CompoundTag getByIndex(int var0) {
+ return this.registryId.fromId(var0);
}
public void a(PacketDataSerializer var0) {
- this.b.a();
+ this.registryId.a();
int var1 = var0.j();
for (int var2 = 0; var2 < var1; ++var2) {
- this.b.c(this.a.fromId(var0.j()));
+ this.registryId.c(this.registryBlock.fromId(var0.j()));
}
}
@@ -85,7 +79,7 @@ public class DataPaletteHash implements DataPalette {
var0.d(var1);
for (int var2 = 0; var2 < var1; ++var2) {
- var0.d(this.a.getId(this.b.fromId(var2)));
+ var0.d(this.registryBlock.getId(this.registryId.fromId(var2)));
}
}
@@ -94,21 +88,21 @@ public class DataPaletteHash implements DataPalette {
int var0 = PacketDataSerializer.a(this.b());
for (int var1 = 0; var1 < this.b(); ++var1) {
- var0 += PacketDataSerializer.a(this.a.getId(this.b.fromId(var1)));
+ var0 += PacketDataSerializer.a(this.registryBlock.getId(this.registryId.fromId(var1)));
}
return var0;
}
public int b() {
- return this.b.b();
+ return this.registryId.b();
}
public void replace(ListTag var0) {
- this.b.a();
+ this.registryId.a();
for (int var1 = 0; var1 < var0.size(); ++var1) {
- this.b.c(this.d.apply(var0.get(var1)));
+ this.registryId.c(var0.get(var1));
}
}
@@ -119,7 +113,7 @@ public class DataPaletteHash implements DataPalette {
public void writePalette(ListTag var0) {
for (int var1 = 0; var1 < this.b(); ++var1) {
- var0.add((CompoundTag) this.b.fromId(var1));
+ var0.add((CompoundTag) this.registryId.fromId(var1));
}
}
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteLinear.java b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteLinear.java
index 7b9f5362e..274e91bf6 100644
--- a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteLinear.java
+++ b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/DataPaletteLinear.java
@@ -25,23 +25,21 @@ import net.minecraft.network.PacketDataSerializer;
import java.util.function.Function;
import java.util.function.Predicate;
-public class DataPaletteLinear implements DataPalette {
- private final RegistryBlockID a;
- private final T[] b;
- private final DataPaletteExpandable c;
- private final Function d;
+public class DataPaletteLinear implements DataPalette {
+ private final RegistryBlockID a;
+ private final CompoundTag[] b;
+ private final DataPaletteExpandable c;
private final int e;
private int f;
- public DataPaletteLinear(RegistryBlockID var0, int var1, DataPaletteExpandable var2, Function var3) {
+ public DataPaletteLinear(RegistryBlockID var0, int var1, DataPaletteExpandable var2) {
this.a = var0;
- this.b = (T[]) new Object[1 << var1];
+ this.b = (CompoundTag[]) new Object[1 << var1];
this.e = var1;
this.c = var2;
- this.d = var3;
}
- public int getIndex(T var0) {
+ public int getIndex(CompoundTag var0) {
int var1;
for (var1 = 0; var1 < this.f; ++var1) {
if (this.b[var1].equals(var0)) {
@@ -59,7 +57,7 @@ public class DataPaletteLinear implements DataPalette {
}
}
- public boolean a(Predicate var0) {
+ public boolean a(Predicate var0) {
for (int var1 = 0; var1 < this.f; ++var1) {
if (var0.test(this.b[var1])) {
return true;
@@ -69,7 +67,7 @@ public class DataPaletteLinear implements DataPalette {
return false;
}
- public T getByIndex(int var0) {
+ public CompoundTag getByIndex(int var0) {
return var0 >= 0 && var0 < this.f ? this.b[var0] : null;
}
@@ -107,7 +105,7 @@ public class DataPaletteLinear implements DataPalette {
public void replace(ListTag var0) {
for (int var1 = 0; var1 < var0.size(); ++var1) {
- this.b[var1] = this.d.apply(var0.get(var1));
+ this.b[var1] = var0.get(var1);
}
this.f = var0.size();
@@ -116,9 +114,9 @@ public class DataPaletteLinear implements DataPalette {
@Override
public ListTag getPalette() {
ListTag c = (ListTag) ListTag.createUnchecked(CompoundTag.class);
- for(T i : b)
+ for(CompoundTag i : b)
{
- c.add((CompoundTag) i);
+ c.add(i);
}
return c;
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/Registry.java b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/Registry.java
index 116185714..ad5898524 100644
--- a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/Registry.java
+++ b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/Registry.java
@@ -18,8 +18,10 @@
package com.volmit.iris.util.nbt.mca.palettes;
-public interface Registry extends Iterable {
- int getId(T var1);
+import com.volmit.iris.util.nbt.tag.CompoundTag;
- T fromId(int var1);
+public interface Registry extends Iterable {
+ int getId(CompoundTag var1);
+
+ CompoundTag fromId(int var1);
}
\ No newline at end of file
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/RegistryBlockID.java b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/RegistryBlockID.java
index e40dbc936..21e5077aa 100644
--- a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/RegistryBlockID.java
+++ b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/RegistryBlockID.java
@@ -21,20 +21,18 @@ package com.volmit.iris.util.nbt.mca.palettes;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterators;
import com.google.common.collect.Lists;
+import com.volmit.iris.util.nbt.tag.CompoundTag;
-import java.util.HashMap;
-import java.util.IdentityHashMap;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
-public class RegistryBlockID implements Registry {
+public class RegistryBlockID implements Registry {
public static final int a = -1;
private int b;
- private final HashMap indexMap;
- private final List indexes;
+ private final Map indexMap;
+ private final List indexes;
- public RegistryBlockID(IdentityHashMap c, List d, int b) {
- this.indexMap = new HashMap<>(c);
+ public RegistryBlockID(Map c, List d, int b) {
+ this.indexMap = c;
this.indexes = d;
this.b = b;
}
@@ -48,16 +46,16 @@ public class RegistryBlockID implements Registry {
this.indexMap = new HashMap<>(var0);
}
- public int getId(T var0) {
+ public int getId(CompoundTag var0) {
Integer var1 = this.indexMap.get(var0);
return var1 == null ? -1 : var1;
}
- public final T fromId(int var0) {
+ public final CompoundTag fromId(int var0) {
return var0 >= 0 && var0 < this.indexes.size() ? this.indexes.get(var0) : null;
}
- public Iterator iterator() {
+ public Iterator iterator() {
return Iterators.filter(this.indexes.iterator(), Predicates.notNull());
}
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/RegistryID.java b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/RegistryID.java
index 334c21371..30f4be9d8 100644
--- a/src/main/java/com/volmit/iris/util/nbt/mca/palettes/RegistryID.java
+++ b/src/main/java/com/volmit/iris/util/nbt/mca/palettes/RegistryID.java
@@ -21,32 +21,33 @@ package com.volmit.iris.util.nbt.mca.palettes;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterators;
import com.volmit.iris.util.math.MathHelper;
+import com.volmit.iris.util.nbt.tag.CompoundTag;
import java.util.Arrays;
import java.util.Iterator;
-public class RegistryID implements Registry {
+public class RegistryID implements Registry {
public static final int a = -1;
private static final Object b = null;
private static final float c = 0.8F;
- private K[] d;
+ private CompoundTag[] d;
private int[] e;
- private K[] f;
+ private CompoundTag[] f;
private int g;
private int h;
public RegistryID(int var0) {
var0 = (int) ((float) var0 / 0.8F);
- this.d = (K[]) new Object[var0];
+ this.d = (CompoundTag[]) new Object[var0];
this.e = new int[var0];
- this.f = (K[]) new Object[var0];
+ this.f = (CompoundTag[]) new Object[var0];
}
- public int getId(K var0) {
+ public int getId(CompoundTag var0) {
return this.c(this.b(var0, this.d(var0)));
}
- public K fromId(int var0) {
+ public CompoundTag fromId(int var0) {
return var0 >= 0 && var0 < this.f.length ? this.f[var0] : null;
}
@@ -54,7 +55,7 @@ public class RegistryID implements Registry {
return var0 == -1 ? -1 : this.e[var0];
}
- public boolean b(K var0) {
+ public boolean b(CompoundTag var0) {
return this.getId(var0) != -1;
}
@@ -62,7 +63,7 @@ public class RegistryID implements Registry {
return this.fromId(var0) != null;
}
- public int c(K var0) {
+ public int c(CompoundTag var0) {
int var1 = this.c();
this.a(var0, var1);
return var1;
@@ -77,11 +78,11 @@ public class RegistryID implements Registry {
}
private void d(int var0) {
- K[] var1 = this.d;
+ CompoundTag[] var1 = this.d;
int[] var2 = this.e;
- this.d = (K[]) new Object[var0];
+ this.d = (CompoundTag[]) new Object[var0];
this.e = new int[var0];
- this.f = (K[]) new Object[var0];
+ this.f = (CompoundTag[]) new Object[var0];
this.g = 0;
this.h = 0;
@@ -93,7 +94,7 @@ public class RegistryID implements Registry {
}
- public void a(K var0, int var1) {
+ public void a(CompoundTag var0, int var1) {
int var2 = Math.max(var1, this.h + 1);
int var3;
if ((float) var2 >= (float) this.d.length * 0.8F) {
@@ -114,11 +115,11 @@ public class RegistryID implements Registry {
}
- private int d(K var0) {
+ private int d(CompoundTag var0) {
return (MathHelper.g(System.identityHashCode(var0)) & 2147483647) % this.d.length;
}
- private int b(K var0, int var1) {
+ private int b(CompoundTag var0, int var1) {
int var2;
for (var2 = var1; var2 < this.d.length; ++var2) {
if (this.d[var2] == var0) {
@@ -160,7 +161,7 @@ public class RegistryID implements Registry {
throw new RuntimeException("Overflowed :(");
}
- public Iterator iterator() {
+ public Iterator iterator() {
return Iterators.filter(Iterators.forArray(this.f), Predicates.notNull());
}