mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 02:03:59 +00:00
V+
This commit is contained in:
parent
d52d70a014
commit
3f730ead84
@ -32,7 +32,7 @@ plugins {
|
||||
}
|
||||
|
||||
group 'com.volmit.iris'
|
||||
version '1.7.8-Dumpy'
|
||||
version '1.7.9'
|
||||
def apiVersion = '1.17'
|
||||
def name = getRootProject().getName() // See settings.gradle
|
||||
def main = 'com.volmit.iris.Iris'
|
||||
|
@ -48,40 +48,30 @@ 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.nbt.mca.*;
|
||||
import com.volmit.iris.util.nbt.mca.palette.BiomeContainer;
|
||||
import com.volmit.iris.util.parallel.MultiBurst;
|
||||
import com.volmit.iris.util.plugin.*;
|
||||
import com.volmit.iris.util.reflect.ShadeFix;
|
||||
import com.volmit.iris.util.scheduling.J;
|
||||
import com.volmit.iris.util.scheduling.Looper;
|
||||
import com.volmit.iris.util.scheduling.Queue;
|
||||
import com.volmit.iris.util.scheduling.ShurikenQueue;
|
||||
import io.papermc.lib.PaperLib;
|
||||
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
|
||||
import net.kyori.adventure.text.serializer.ComponentSerializer;
|
||||
import net.minecraft.world.level.chunk.storage.RegionFile;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockDamageEvent;
|
||||
import org.bukkit.generator.ChunkGenerator;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.checkerframework.checker.units.qual.K;
|
||||
|
||||
import java.io.*;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.net.URL;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@SuppressWarnings("CanBeFinal")
|
||||
public class Iris extends VolmitPlugin implements Listener {
|
||||
@ -118,14 +108,6 @@ public class Iris extends VolmitPlugin implements Listener {
|
||||
IO.delete(new File("iris"));
|
||||
installDataPacks();
|
||||
fixShading();
|
||||
(new Looper() {
|
||||
protected long loop() {
|
||||
File ff = Iris.instance.getDataFolderNoCreate("dump");
|
||||
if (ff.exists() && ff.isDirectory() && ff.listFiles().length == 0)
|
||||
Iris.dump();
|
||||
return 10000L;
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
private void enable() {
|
||||
|
@ -118,7 +118,6 @@ public class DecIris implements DecreeExecutor {
|
||||
case ">>" -> v = value1 >> value2;
|
||||
case "<<" -> v = value1 << value2;
|
||||
}
|
||||
;
|
||||
if (v == null) {
|
||||
sender().sendMessage(C.RED + "The operator you entered: (" + operator + ") is invalid!");
|
||||
return;
|
||||
|
@ -66,7 +66,7 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class NMSBinding17_1 implements INMSBinding{
|
||||
public class NMSBinding17_1 implements INMSBinding {
|
||||
private final BlockData AIR = Material.AIR.createBlockData();
|
||||
private final KMap<Biome, Object> baseBiomeCache = new KMap<>();
|
||||
private final AtomicCache<IdMapper<IBlockData>> registryCache = new AtomicCache<>();
|
||||
@ -93,14 +93,14 @@ public class NMSBinding17_1 implements INMSBinding{
|
||||
List<IBlockData> d = (List<IBlockData>) df.get(blockData);
|
||||
return new IdMapper<>(c, d, b);
|
||||
});
|
||||
Palette<IBlockData> global = globalCache.aquireNasty(() -> new GlobalPalette<>(registry, ((CraftBlockData)AIR).getState()));
|
||||
Palette<IBlockData> global = globalCache.aquireNasty(() -> new GlobalPalette<>(registry, ((CraftBlockData) AIR).getState()));
|
||||
PalettedContainer<IBlockData> container = new PalettedContainer<>(global, registry,
|
||||
i -> ((CraftBlockData)NBTWorld.getBlockData(i)).getState(),
|
||||
i -> ((CraftBlockData) NBTWorld.getBlockData(i)).getState(),
|
||||
i -> NBTWorld.getCompound(CraftBlockData.fromData(i)),
|
||||
((CraftBlockData) AIR).getState());
|
||||
return new WrappedPalettedContainer<>(container,
|
||||
i -> NBTWorld.getCompound(CraftBlockData.fromData(i)),
|
||||
i -> ((CraftBlockData)NBTWorld.getBlockData(i)).getState());
|
||||
i -> ((CraftBlockData) NBTWorld.getBlockData(i)).getState());
|
||||
}
|
||||
|
||||
private Object getBiomeStorage(ChunkGenerator.BiomeGrid g) {
|
||||
@ -386,8 +386,7 @@ public class NMSBinding17_1 implements INMSBinding{
|
||||
return biome.ordinal();
|
||||
}
|
||||
|
||||
private IdMap<BiomeBase> getBiomeMapping()
|
||||
{
|
||||
private IdMap<BiomeBase> getBiomeMapping() {
|
||||
return biomeMapCache.aquire(() -> new IdMap<>() {
|
||||
@NotNull
|
||||
@Override
|
||||
@ -434,7 +433,7 @@ public class NMSBinding17_1 implements INMSBinding{
|
||||
|
||||
@Override
|
||||
public int getBiome(int x, int y, int z) {
|
||||
return biomeMapping.getId(base.getBiome(x,y,z));
|
||||
return biomeMapping.getId(base.getBiome(x, y, z));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -113,7 +113,7 @@ public class AsyncPregenMethod implements PregeneratorMethod {
|
||||
|
||||
@Override
|
||||
public void generateChunk(int x, int z, PregenListener listener) {
|
||||
if (future.size() > IrisSettings.getThreadCount((int) IrisSettings.get().getConcurrency().getParallelism())) { // TODO: FIX
|
||||
if (future.size() > IrisSettings.getThreadCount(IrisSettings.get().getConcurrency().getParallelism())) { // TODO: FIX
|
||||
waitForChunks();
|
||||
}
|
||||
|
||||
|
@ -95,7 +95,7 @@ public class MedievalPregenMethod implements PregeneratorMethod {
|
||||
|
||||
@Override
|
||||
public void generateChunk(int x, int z, PregenListener listener) {
|
||||
if (futures.size() > IrisSettings.getThreadCount((int) IrisSettings.get().getConcurrency().getParallelism())) {
|
||||
if (futures.size() > IrisSettings.getThreadCount(IrisSettings.get().getConcurrency().getParallelism())) {
|
||||
waitForChunks();
|
||||
}
|
||||
|
||||
|
@ -337,7 +337,7 @@ public class IrisData {
|
||||
}
|
||||
}
|
||||
|
||||
String ff = g.toString().substring(1).split("\\Q.\\E")[0];
|
||||
String ff = g.substring(1).split("\\Q.\\E")[0];
|
||||
return ff;
|
||||
} else {
|
||||
Iris.error("Forign file from loader " + f.getPath() + " (loader realm: " + getDataFolder().getPath() + ")");
|
||||
|
@ -29,8 +29,8 @@ import com.volmit.iris.util.scheduling.Looper;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
public class PreservationSVC implements IrisService {
|
||||
private KList<Thread> threads = new KList<>();
|
||||
private KList<ExecutorService> services = new KList<>();
|
||||
private final KList<Thread> threads = new KList<>();
|
||||
private final KList<ExecutorService> services = new KList<>();
|
||||
private Looper dereferencer;
|
||||
|
||||
public void register(Thread t) {
|
||||
|
@ -129,7 +129,7 @@ public class IrisToolbelt {
|
||||
}
|
||||
|
||||
return pregenerate(task, new HybridPregenMethod(gen.getEngine().getWorld().realWorld(),
|
||||
IrisSettings.getThreadCount((int) IrisSettings.get().getConcurrency().getParallelism())));
|
||||
IrisSettings.getThreadCount(IrisSettings.get().getConcurrency().getParallelism())));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -145,7 +145,7 @@ public class IrisToolbelt {
|
||||
return pregenerate(task, access(world));
|
||||
}
|
||||
|
||||
return pregenerate(task, new HybridPregenMethod(world, IrisSettings.getThreadCount((int) IrisSettings.get().getConcurrency().getParallelism())));
|
||||
return pregenerate(task, new HybridPregenMethod(world, IrisSettings.getThreadCount(IrisSettings.get().getConcurrency().getParallelism())));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -400,17 +400,13 @@ public class IrisEngine implements Engine {
|
||||
PrecisionStopwatch p = PrecisionStopwatch.start();
|
||||
Hunk<BlockData> blocks = vblocks.listen((xx, y, zz, t) -> catchBlockUpdates(x + xx, y + getMinHeight(), z + zz, t));
|
||||
|
||||
if(getDimension().isDebugChunkCrossSections() && ((x >> 4) % getDimension().getDebugCrossSectionsMod() == 0 || (z >> 4) % getDimension().getDebugCrossSectionsMod() == 0))
|
||||
{
|
||||
if (getDimension().isDebugChunkCrossSections() && ((x >> 4) % getDimension().getDebugCrossSectionsMod() == 0 || (z >> 4) % getDimension().getDebugCrossSectionsMod() == 0)) {
|
||||
for (int i = 0; i < 16; i++) {
|
||||
for (int j = 0; j < 16; j++) {
|
||||
blocks.set(i, 0, j, Material.CRYING_OBSIDIAN.createBlockData());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
} else {
|
||||
getMantle().generateMatter(x >> 4, z >> 4, true);
|
||||
burst().burst(multicore,
|
||||
() -> getTerrainActuator().actuate(x, z, vblocks, multicore),
|
||||
|
@ -51,16 +51,11 @@ public class AtomicCache<T> {
|
||||
}
|
||||
}
|
||||
|
||||
public T aquireNasty(NastySupplier<T> t)
|
||||
{
|
||||
public T aquireNasty(NastySupplier<T> t) {
|
||||
return aquire(() -> {
|
||||
try
|
||||
{
|
||||
try {
|
||||
return t.get();
|
||||
}
|
||||
|
||||
catch(Throwable e)
|
||||
{
|
||||
} catch (Throwable e) {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
@ -44,7 +44,6 @@ import com.volmit.iris.engine.object.spawners.IrisSpawner;
|
||||
import com.volmit.iris.util.collection.KList;
|
||||
import com.volmit.iris.util.collection.KMap;
|
||||
import com.volmit.iris.util.collection.KSet;
|
||||
import com.volmit.iris.util.context.IrisContext;
|
||||
import com.volmit.iris.util.data.B;
|
||||
import com.volmit.iris.util.data.DataProvider;
|
||||
import com.volmit.iris.util.data.VanillaBiomeMap;
|
||||
@ -372,10 +371,8 @@ public class IrisBiome extends IrisRegistrant implements IRare {
|
||||
break;
|
||||
}
|
||||
|
||||
if(dim.isExplodeBiomePalettes())
|
||||
{
|
||||
for(int j = 0; j < dim.getExplodeBiomePaletteSize(); j++)
|
||||
{
|
||||
if (dim.isExplodeBiomePalettes()) {
|
||||
for (int j = 0; j < dim.getExplodeBiomePaletteSize(); j++) {
|
||||
data.add(BARRIER);
|
||||
|
||||
if (data.size() >= maxDepth) {
|
||||
|
@ -26,7 +26,6 @@ import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.math.NumberUtils;
|
||||
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.IntPredicate;
|
||||
|
||||
public class MathHelper {
|
||||
@ -44,7 +43,7 @@ public class MathHelper {
|
||||
public static final float f = 1.0E-5F;
|
||||
public static final float g = c(2.0F);
|
||||
private static final float n = 10430.378F;
|
||||
private static final float[] o = (float[]) SystemUtils.a(new float[65536], (var0x) -> {
|
||||
private static final float[] o = SystemUtils.a(new float[65536], (var0x) -> {
|
||||
for (int var1 = 0; var1 < var0x.length; ++var1) {
|
||||
var0x[var1] = (float) Math.sin((double) var1 * 3.141592653589793D * 2.0D / 65536.0D);
|
||||
}
|
||||
@ -71,7 +70,7 @@ public class MathHelper {
|
||||
}
|
||||
|
||||
public static float c(float var0) {
|
||||
return (float) Math.sqrt((double) var0);
|
||||
return (float) Math.sqrt(var0);
|
||||
}
|
||||
|
||||
public static int d(float var0) {
|
||||
@ -607,7 +606,7 @@ public class MathHelper {
|
||||
|
||||
int var2;
|
||||
for (var2 = 0; var2 < var0.length; ++var2) {
|
||||
var0[var2] /= (double) var1;
|
||||
var0[var2] /= var1;
|
||||
}
|
||||
|
||||
for (var2 = 0; var2 < var0.length; ++var2) {
|
||||
@ -658,7 +657,7 @@ public class MathHelper {
|
||||
int var7 = 0;
|
||||
|
||||
for (int var8 = var4; var8 <= var5; ++var8) {
|
||||
var6[var7] = Math.max(var0 * StrictMath.log((double) var8) + var2, 0.0D);
|
||||
var6[var7] = Math.max(var0 * StrictMath.log(var8) + var2, 0.0D);
|
||||
++var7;
|
||||
}
|
||||
|
||||
@ -773,7 +772,7 @@ public class MathHelper {
|
||||
}
|
||||
|
||||
public static double n(double var0) {
|
||||
return var0 + (2.0D * (new Random((long) floor(var0 * 3000.0D))).nextDouble() - 1.0D) * 1.0E-7D / 2.0D;
|
||||
return var0 + (2.0D * (new Random(floor(var0 * 3000.0D))).nextDouble() - 1.0D) * 1.0E-7D / 2.0D;
|
||||
}
|
||||
|
||||
public static int d(int var0, int var1) {
|
||||
|
@ -20,17 +20,14 @@ package com.volmit.iris.util.nbt.mca;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.core.nms.INMS;
|
||||
import com.volmit.iris.util.io.IO;
|
||||
import com.volmit.iris.util.nbt.io.NBTDeserializer;
|
||||
import com.volmit.iris.util.nbt.io.NBTSerializer;
|
||||
import com.volmit.iris.util.nbt.io.NamedTag;
|
||||
import com.volmit.iris.util.nbt.mca.palette.BiomeContainer;
|
||||
import com.volmit.iris.util.nbt.tag.CompoundTag;
|
||||
import com.volmit.iris.util.nbt.tag.ListTag;
|
||||
import com.volmit.iris.util.nbt.tag.Tag;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.atomic.AtomicReferenceArray;
|
||||
|
||||
import static com.volmit.iris.util.nbt.mca.LoadFlags.*;
|
||||
|
@ -18,7 +18,6 @@
|
||||
|
||||
package com.volmit.iris.util.nbt.mca;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.util.collection.KList;
|
||||
import com.volmit.iris.util.math.Position2;
|
||||
import com.volmit.iris.util.nbt.tag.CompoundTag;
|
||||
|
@ -73,9 +73,8 @@ public class Section {
|
||||
* @return The block state data of this block.
|
||||
*/
|
||||
public synchronized CompoundTag getBlockStateAt(int blockX, int blockY, int blockZ) {
|
||||
synchronized (palette)
|
||||
{
|
||||
return palette.getBlock(blockX&15, blockY&15, blockZ&15);
|
||||
synchronized (palette) {
|
||||
return palette.getBlock(blockX & 15, blockY & 15, blockZ & 15);
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,9 +87,8 @@ public class Section {
|
||||
* @param state The block state to be set
|
||||
*/
|
||||
public synchronized void setBlockStateAt(int blockX, int blockY, int blockZ, CompoundTag state, boolean cleanup) {
|
||||
synchronized (palette)
|
||||
{
|
||||
palette.setBlock(blockX&15, blockY&15, blockZ&15, state);
|
||||
synchronized (palette) {
|
||||
palette.setBlock(blockX & 15, blockY & 15, blockZ & 15, state);
|
||||
}
|
||||
}
|
||||
|
||||
@ -167,8 +165,7 @@ public class Section {
|
||||
data.putByte("Y", (byte) y);
|
||||
|
||||
if (palette != null) {
|
||||
synchronized (palette)
|
||||
{
|
||||
synchronized (palette) {
|
||||
palette.writeToSection(data);
|
||||
}
|
||||
}
|
||||
|
@ -18,8 +18,7 @@
|
||||
|
||||
package com.volmit.iris.util.nbt.mca.palette;
|
||||
|
||||
public interface BiomeContainer
|
||||
{
|
||||
public interface BiomeContainer {
|
||||
int[] getData();
|
||||
|
||||
void setBiome(int x, int y, int z, int id);
|
||||
|
@ -23,7 +23,7 @@ import org.apache.commons.lang3.Validate;
|
||||
import java.util.function.IntConsumer;
|
||||
|
||||
public class BitStorage {
|
||||
private static final int[] MAGIC = new int[] {
|
||||
private static final int[] MAGIC = new int[]{
|
||||
-1, -1, 0, Integer.MIN_VALUE, 0, 0, 1431655765, 1431655765, 0, Integer.MIN_VALUE,
|
||||
0, 1, 858993459, 858993459, 0, 715827882, 715827882, 0, 613566756, 613566756,
|
||||
0, Integer.MIN_VALUE, 0, 2, 477218588, 477218588, 0, 429496729, 429496729, 0,
|
||||
@ -43,7 +43,7 @@ public class BitStorage {
|
||||
79536431, 0, 78090314, 78090314, 0, 76695844, 76695844, 0, 75350303, 75350303,
|
||||
0, 74051160, 74051160, 0, 72796055, 72796055, 0, 71582788, 71582788, 0,
|
||||
70409299, 70409299, 0, 69273666, 69273666, 0, 68174084, 68174084, 0, Integer.MIN_VALUE,
|
||||
0, 5 };
|
||||
0, 5};
|
||||
|
||||
private final long[] data;
|
||||
|
||||
@ -70,7 +70,7 @@ public class BitStorage {
|
||||
this.size = var1;
|
||||
this.bits = var0;
|
||||
this.mask = (1L << var0) - 1L;
|
||||
this.valuesPerLong = (char)(64 / var0);
|
||||
this.valuesPerLong = (char) (64 / var0);
|
||||
int var3 = 3 * (this.valuesPerLong - 1);
|
||||
this.divideMul = MAGIC[var3 + 0];
|
||||
this.divideAdd = MAGIC[var3 + 1];
|
||||
@ -88,7 +88,7 @@ public class BitStorage {
|
||||
private int cellIndex(int var0) {
|
||||
long var1 = Integer.toUnsignedLong(this.divideMul);
|
||||
long var3 = Integer.toUnsignedLong(this.divideAdd);
|
||||
return (int)(var0 * var1 + var3 >> 32L >> this.divideShift);
|
||||
return (int) (var0 * var1 + var3 >> 32L >> this.divideShift);
|
||||
}
|
||||
|
||||
public int getAndSet(int var0, int var1) {
|
||||
@ -97,7 +97,7 @@ public class BitStorage {
|
||||
int var2 = cellIndex(var0);
|
||||
long var3 = this.data[var2];
|
||||
int var5 = (var0 - var2 * this.valuesPerLong) * this.bits;
|
||||
int var6 = (int)(var3 >> var5 & this.mask);
|
||||
int var6 = (int) (var3 >> var5 & this.mask);
|
||||
this.data[var2] = var3 & (this.mask << var5 ^ 0xFFFFFFFFFFFFFFFFL) | (var1 & this.mask) << var5;
|
||||
return var6;
|
||||
}
|
||||
@ -116,7 +116,7 @@ public class BitStorage {
|
||||
int var1 = cellIndex(var0);
|
||||
long var2 = this.data[var1];
|
||||
int var4 = (var0 - var1 * this.valuesPerLong) * this.bits;
|
||||
return (int)(var2 >> var4 & this.mask);
|
||||
return (int) (var2 >> var4 & this.mask);
|
||||
}
|
||||
|
||||
public long[] getRaw() {
|
||||
@ -135,7 +135,7 @@ public class BitStorage {
|
||||
int var1 = 0;
|
||||
for (long var5 : this.data) {
|
||||
for (int var7 = 0; var7 < this.valuesPerLong; var7++) {
|
||||
var0.accept((int)(var5 & this.mask));
|
||||
var0.accept((int) (var5 & this.mask));
|
||||
var5 >>= this.bits;
|
||||
if (++var1 >= this.size)
|
||||
return;
|
||||
|
@ -18,12 +18,8 @@
|
||||
|
||||
package com.volmit.iris.util.nbt.mca.palette;
|
||||
|
||||
import net.minecraft.world.level.LevelHeightAccessor;
|
||||
import net.minecraft.world.level.biome.BiomeBase;
|
||||
import net.minecraft.world.level.biome.BiomeManager;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.bukkit.block.Biome;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
@ -51,13 +47,12 @@ public class ChunkBiomeContainer<T> {
|
||||
this.quartHeight = QuartPos.fromBlock(maxHeight) - 1;
|
||||
}
|
||||
|
||||
public ChunkBiomeContainer(IdMap<T> registry, int min, int max)
|
||||
{
|
||||
public ChunkBiomeContainer(IdMap<T> registry, int min, int max) {
|
||||
this(registry, min, max, new int[(1 << WIDTH_BITS + WIDTH_BITS) * ceilDiv(max - min, 4)]);
|
||||
}
|
||||
|
||||
public ChunkBiomeContainer(IdMap<T> registry, int minHeight, int maxHeight, int[] aint) {
|
||||
this(registry, minHeight, maxHeight, (T[])new Object[aint.length]);
|
||||
this(registry, minHeight, maxHeight, (T[]) new Object[aint.length]);
|
||||
int i = -1;
|
||||
for (int j = 0; j < this.biomes.length; j++) {
|
||||
int k = aint[j];
|
||||
@ -65,7 +60,7 @@ public class ChunkBiomeContainer<T> {
|
||||
if (biomebase == null) {
|
||||
if (i == -1)
|
||||
i = j;
|
||||
this.biomes[j] = (T)registry.byId(0);
|
||||
this.biomes[j] = registry.byId(0);
|
||||
} else {
|
||||
this.biomes[j] = biomebase;
|
||||
}
|
||||
|
@ -42,10 +42,10 @@ public class CrudeIncrementalIntIdentityHashBiMap<K> implements IdMap<K> {
|
||||
private int size;
|
||||
|
||||
public CrudeIncrementalIntIdentityHashBiMap(int var0) {
|
||||
var0 = (int)(var0 / 0.8F);
|
||||
this.keys = (K[])new Object[var0];
|
||||
var0 = (int) (var0 / 0.8F);
|
||||
this.keys = (K[]) new Object[var0];
|
||||
this.values = new int[var0];
|
||||
this.byId = (K[])new Object[var0];
|
||||
this.byId = (K[]) new Object[var0];
|
||||
}
|
||||
|
||||
public int getId(K var0) {
|
||||
@ -88,9 +88,9 @@ public class CrudeIncrementalIntIdentityHashBiMap<K> implements IdMap<K> {
|
||||
private void grow(int var0) {
|
||||
K[] var1 = this.keys;
|
||||
int[] var2 = this.values;
|
||||
this.keys = (K[])new Object[var0];
|
||||
this.keys = (K[]) new Object[var0];
|
||||
this.values = new int[var0];
|
||||
this.byId = (K[])new Object[var0];
|
||||
this.byId = (K[]) new Object[var0];
|
||||
this.nextId = 0;
|
||||
this.size = 0;
|
||||
for (int var3 = 0; var3 < var1.length; var3++) {
|
||||
@ -116,11 +116,11 @@ public class CrudeIncrementalIntIdentityHashBiMap<K> implements IdMap<K> {
|
||||
this.nextId++;
|
||||
}
|
||||
|
||||
private int hash( K var0) {
|
||||
private int hash(K var0) {
|
||||
return (Mth.murmurHash3Mixer(System.identityHashCode(var0)) & Integer.MAX_VALUE) % this.keys.length;
|
||||
}
|
||||
|
||||
private int indexOf( K var0, int var1) {
|
||||
private int indexOf(K var0, int var1) {
|
||||
int var2;
|
||||
for (var2 = var1; var2 < this.keys.length; var2++) {
|
||||
if (this.keys[var2] == var0)
|
||||
@ -151,12 +151,12 @@ public class CrudeIncrementalIntIdentityHashBiMap<K> implements IdMap<K> {
|
||||
}
|
||||
|
||||
public Iterator<K> iterator() {
|
||||
return (Iterator<K>) Iterators.filter((Iterator)Iterators.forArray((Object[])this.byId), Predicates.notNull());
|
||||
return (Iterator<K>) Iterators.filter(Iterators.forArray((Object[]) this.byId), Predicates.notNull());
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
Arrays.fill((Object[])this.keys, (Object)null);
|
||||
Arrays.fill((Object[])this.byId, (Object)null);
|
||||
Arrays.fill(this.keys, null);
|
||||
Arrays.fill(this.byId, null);
|
||||
this.nextId = 0;
|
||||
this.size = 0;
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ public class GlobalPalette<T> implements Palette<T> {
|
||||
}
|
||||
|
||||
public T valueFor(int var0) {
|
||||
T var1 = (T)this.registry.byId(var0);
|
||||
T var1 = this.registry.byId(var0);
|
||||
return (var1 == null) ? this.defaultValue : var1;
|
||||
}
|
||||
|
||||
@ -50,5 +50,6 @@ public class GlobalPalette<T> implements Palette<T> {
|
||||
return this.registry.size();
|
||||
}
|
||||
|
||||
public void read(ListTag var0) {}
|
||||
public void read(ListTag var0) {
|
||||
}
|
||||
}
|
||||
|
@ -58,14 +58,14 @@ public class HashMapPalette<T> implements Palette<T> {
|
||||
|
||||
public boolean maybeHas(Predicate<T> var0) {
|
||||
for (int var1 = 0; var1 < getSize(); var1++) {
|
||||
if (var0.test((T)this.values.byId(var1)))
|
||||
if (var0.test(this.values.byId(var1)))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public T valueFor(int var0) {
|
||||
return (T)this.values.byId(var0);
|
||||
return this.values.byId(var0);
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
@ -80,6 +80,6 @@ public class HashMapPalette<T> implements Palette<T> {
|
||||
|
||||
public void write(ListTag var0) {
|
||||
for (int var1 = 0; var1 < getSize(); var1++)
|
||||
var0.add(this.writer.apply((T)this.values.byId(var1)));
|
||||
var0.add(this.writer.apply(this.values.byId(var1)));
|
||||
}
|
||||
}
|
@ -75,7 +75,7 @@ public class IdMapper<T> implements IdMap<T> {
|
||||
}
|
||||
|
||||
public Iterator<T> iterator() {
|
||||
return (Iterator<T>) Iterators.filter(this.idToT.iterator(), Predicates.notNull());
|
||||
return Iterators.filter(this.idToT.iterator(), Predicates.notNull());
|
||||
}
|
||||
|
||||
public boolean contains(int var0) {
|
||||
|
@ -39,7 +39,7 @@ public class LinearPalette<T> implements Palette<T> {
|
||||
|
||||
public LinearPalette(IdMapper<T> var0, int var1, PaletteResize<T> var2, Function<CompoundTag, T> var3) {
|
||||
this.registry = var0;
|
||||
this.values = (T[])new Object[1 << var1];
|
||||
this.values = (T[]) new Object[1 << var1];
|
||||
this.bits = var1;
|
||||
this.resizeHandler = var2;
|
||||
this.reader = var3;
|
||||
|
@ -55,9 +55,9 @@ public class Mth {
|
||||
private static final float[] SIN;
|
||||
|
||||
static {
|
||||
SIN = (float[])make(new float[65536], var0 -> {
|
||||
SIN = make(new float[65536], var0 -> {
|
||||
for (int var1 = 0; var1 < var0.length; var1++)
|
||||
var0[var1] = (float)Math.sin(var1 * Math.PI * 2.0D / 65536.0D);
|
||||
var0[var1] = (float) Math.sin(var1 * Math.PI * 2.0D / 65536.0D);
|
||||
});
|
||||
}
|
||||
|
||||
@ -73,38 +73,38 @@ public class Mth {
|
||||
private static final Random RANDOM = new Random();
|
||||
|
||||
public static float sin(float var0) {
|
||||
return SIN[(int)(var0 * 10430.378F) & 0xFFFF];
|
||||
return SIN[(int) (var0 * 10430.378F) & 0xFFFF];
|
||||
}
|
||||
|
||||
public static float cos(float var0) {
|
||||
return SIN[(int)(var0 * 10430.378F + 16384.0F) & 0xFFFF];
|
||||
return SIN[(int) (var0 * 10430.378F + 16384.0F) & 0xFFFF];
|
||||
}
|
||||
|
||||
public static float sqrt(float var0) {
|
||||
return (float)Math.sqrt(var0);
|
||||
return (float) Math.sqrt(var0);
|
||||
}
|
||||
|
||||
public static int floor(float var0) {
|
||||
int var1 = (int)var0;
|
||||
int var1 = (int) var0;
|
||||
return (var0 < var1) ? (var1 - 1) : var1;
|
||||
}
|
||||
|
||||
public static int fastFloor(double var0) {
|
||||
return (int)(var0 + 1024.0D) - 1024;
|
||||
return (int) (var0 + 1024.0D) - 1024;
|
||||
}
|
||||
|
||||
public static int floor(double var0) {
|
||||
int var2 = (int)var0;
|
||||
int var2 = (int) var0;
|
||||
return (var0 < var2) ? (var2 - 1) : var2;
|
||||
}
|
||||
|
||||
public static long lfloor(double var0) {
|
||||
long var2 = (long)var0;
|
||||
long var2 = (long) var0;
|
||||
return (var0 < var2) ? (var2 - 1L) : var2;
|
||||
}
|
||||
|
||||
public static int absFloor(double var0) {
|
||||
return (int)((var0 >= 0.0D) ? var0 : (-var0 + 1.0D));
|
||||
return (int) ((var0 >= 0.0D) ? var0 : (-var0 + 1.0D));
|
||||
}
|
||||
|
||||
public static float abs(float var0) {
|
||||
@ -116,12 +116,12 @@ public class Mth {
|
||||
}
|
||||
|
||||
public static int ceil(float var0) {
|
||||
int var1 = (int)var0;
|
||||
int var1 = (int) var0;
|
||||
return (var0 > var1) ? (var1 + 1) : var1;
|
||||
}
|
||||
|
||||
public static int ceil(double var0) {
|
||||
int var2 = (int)var0;
|
||||
int var2 = (int) var0;
|
||||
return (var0 > var2) ? (var2 + 1) : var2;
|
||||
}
|
||||
|
||||
@ -325,11 +325,11 @@ public class Mth {
|
||||
return (var0 != 0 && (var0 & var0 - 1) == 0);
|
||||
}
|
||||
|
||||
private static final int[] MULTIPLY_DE_BRUIJN_BIT_POSITION = new int[] {
|
||||
private static final int[] MULTIPLY_DE_BRUIJN_BIT_POSITION = new int[]{
|
||||
0, 1, 28, 2, 29, 14, 24, 3, 30, 22,
|
||||
20, 15, 25, 17, 4, 8, 31, 27, 13, 23,
|
||||
21, 19, 16, 7, 26, 12, 18, 6, 11, 5,
|
||||
10, 9 };
|
||||
10, 9};
|
||||
|
||||
private static final double ONE_SIXTH = 0.16666666666666666D;
|
||||
|
||||
@ -339,7 +339,7 @@ public class Mth {
|
||||
|
||||
public static int ceillog2(int var0) {
|
||||
var0 = isPowerOfTwo(var0) ? var0 : smallestEncompassingPowerOfTwo(var0);
|
||||
return MULTIPLY_DE_BRUIJN_BIT_POSITION[(int)(var0 * 125613361L >> 27L) & 0x1F];
|
||||
return MULTIPLY_DE_BRUIJN_BIT_POSITION[(int) (var0 * 125613361L >> 27L) & 0x1F];
|
||||
}
|
||||
|
||||
public static int log2(int var0) {
|
||||
@ -364,9 +364,9 @@ public class Mth {
|
||||
int var5 = (var1 & 0xFF00) >> 8;
|
||||
int var6 = (var0 & 0xFF) >> 0;
|
||||
int var7 = (var1 & 0xFF) >> 0;
|
||||
int var8 = (int)(var2 * var3 / 255.0F);
|
||||
int var9 = (int)(var4 * var5 / 255.0F);
|
||||
int var10 = (int)(var6 * var7 / 255.0F);
|
||||
int var8 = (int) (var2 * var3 / 255.0F);
|
||||
int var9 = (int) (var4 * var5 / 255.0F);
|
||||
int var10 = (int) (var6 * var7 / 255.0F);
|
||||
return var0 & 0xFF000000 | var8 << 16 | var9 << 8 | var10;
|
||||
}
|
||||
|
||||
@ -374,9 +374,9 @@ public class Mth {
|
||||
int var4 = (var0 & 0xFF0000) >> 16;
|
||||
int var5 = (var0 & 0xFF00) >> 8;
|
||||
int var6 = (var0 & 0xFF) >> 0;
|
||||
int var7 = (int)(var4 * var1);
|
||||
int var8 = (int)(var5 * var2);
|
||||
int var9 = (int)(var6 * var3);
|
||||
int var7 = (int) (var4 * var1);
|
||||
int var8 = (int) (var5 * var2);
|
||||
int var9 = (int) (var6 * var3);
|
||||
return var0 & 0xFF000000 | var7 << 16 | var8 << 8 | var9;
|
||||
}
|
||||
|
||||
@ -428,7 +428,7 @@ public class Mth {
|
||||
var2 *= var9;
|
||||
var0 *= var9;
|
||||
double var11 = FRAC_BIAS + var0;
|
||||
int var13 = (int)Double.doubleToRawLongBits(var11);
|
||||
int var13 = (int) Double.doubleToRawLongBits(var11);
|
||||
double var14 = ASIN_TAB[var13];
|
||||
double var16 = COS_TAB[var13];
|
||||
double var18 = var11 - FRAC_BIAS;
|
||||
@ -488,7 +488,7 @@ public class Mth {
|
||||
|
||||
public static int hsvToRgb(float var0, float var1, float var2) {
|
||||
float var8, var9, var10;
|
||||
int var11, var12, var13, var3 = (int)(var0 * 6.0F) % 6;
|
||||
int var11, var12, var13, var3 = (int) (var0 * 6.0F) % 6;
|
||||
float var4 = var0 * 6.0F - var3;
|
||||
float var5 = var2 * (1.0F - var1);
|
||||
float var6 = var2 * (1.0F - var4 * var1);
|
||||
@ -498,49 +498,49 @@ public class Mth {
|
||||
var8 = var2;
|
||||
var9 = var7;
|
||||
var10 = var5;
|
||||
var11 = clamp((int)(var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int)(var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int)(var10 * 255.0F), 0, 255);
|
||||
var11 = clamp((int) (var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int) (var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int) (var10 * 255.0F), 0, 255);
|
||||
return var11 << 16 | var12 << 8 | var13;
|
||||
case 1:
|
||||
var8 = var6;
|
||||
var9 = var2;
|
||||
var10 = var5;
|
||||
var11 = clamp((int)(var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int)(var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int)(var10 * 255.0F), 0, 255);
|
||||
var11 = clamp((int) (var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int) (var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int) (var10 * 255.0F), 0, 255);
|
||||
return var11 << 16 | var12 << 8 | var13;
|
||||
case 2:
|
||||
var8 = var5;
|
||||
var9 = var2;
|
||||
var10 = var7;
|
||||
var11 = clamp((int)(var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int)(var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int)(var10 * 255.0F), 0, 255);
|
||||
var11 = clamp((int) (var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int) (var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int) (var10 * 255.0F), 0, 255);
|
||||
return var11 << 16 | var12 << 8 | var13;
|
||||
case 3:
|
||||
var8 = var5;
|
||||
var9 = var6;
|
||||
var10 = var2;
|
||||
var11 = clamp((int)(var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int)(var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int)(var10 * 255.0F), 0, 255);
|
||||
var11 = clamp((int) (var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int) (var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int) (var10 * 255.0F), 0, 255);
|
||||
return var11 << 16 | var12 << 8 | var13;
|
||||
case 4:
|
||||
var8 = var7;
|
||||
var9 = var5;
|
||||
var10 = var2;
|
||||
var11 = clamp((int)(var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int)(var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int)(var10 * 255.0F), 0, 255);
|
||||
var11 = clamp((int) (var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int) (var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int) (var10 * 255.0F), 0, 255);
|
||||
return var11 << 16 | var12 << 8 | var13;
|
||||
case 5:
|
||||
var8 = var2;
|
||||
var9 = var5;
|
||||
var10 = var6;
|
||||
var11 = clamp((int)(var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int)(var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int)(var10 * 255.0F), 0, 255);
|
||||
var11 = clamp((int) (var8 * 255.0F), 0, 255);
|
||||
var12 = clamp((int) (var9 * 255.0F), 0, 255);
|
||||
var13 = clamp((int) (var10 * 255.0F), 0, 255);
|
||||
return var11 << 16 | var12 << 8 | var13;
|
||||
}
|
||||
throw new RuntimeException("Something went wrong when converting from HSV to RGB. Input was " + var0 + ", " + var1 + ", " + var2);
|
||||
@ -567,7 +567,7 @@ public class Mth {
|
||||
public static double[] cumulativeSum(double... var0) {
|
||||
float var1 = 0.0F;
|
||||
for (double var5 : var0)
|
||||
var1 = (float)(var1 + var5);
|
||||
var1 = (float) (var1 + var5);
|
||||
int var2;
|
||||
for (var2 = 0; var2 < var0.length; var2++)
|
||||
var0[var2] = var0[var2] / var1;
|
||||
@ -680,7 +680,7 @@ public class Mth {
|
||||
var0 -= 360.0D;
|
||||
while (var0 < -180.0D)
|
||||
var0 += 360.0D;
|
||||
return (float)var0;
|
||||
return (float) var0;
|
||||
}
|
||||
|
||||
public static float triangleWave(float var0, float var1) {
|
||||
@ -724,7 +724,7 @@ public class Mth {
|
||||
}
|
||||
|
||||
public static float normal(Random var0, float var1, float var2) {
|
||||
return var1 + (float)var0.nextGaussian() * var2;
|
||||
return var1 + (float) var0.nextGaussian() * var2;
|
||||
}
|
||||
|
||||
public static double length(int var0, double var1, int var3) {
|
||||
|
@ -21,11 +21,11 @@ package com.volmit.iris.util.nbt.mca.palette;
|
||||
import com.volmit.iris.util.nbt.tag.CompoundTag;
|
||||
|
||||
public interface PaletteAccess {
|
||||
public void setBlock(int x, int y, int z, CompoundTag data);
|
||||
void setBlock(int x, int y, int z, CompoundTag data);
|
||||
|
||||
public CompoundTag getBlock(int x, int y, int z);
|
||||
CompoundTag getBlock(int x, int y, int z);
|
||||
|
||||
public void writeToSection(CompoundTag tag);
|
||||
void writeToSection(CompoundTag tag);
|
||||
|
||||
public void readFromSection(CompoundTag tag);
|
||||
void readFromSection(CompoundTag tag);
|
||||
}
|
||||
|
@ -164,8 +164,7 @@ public class PalettedContainer<T> implements PaletteResize<T> {
|
||||
var0.put(var1, paletteList);
|
||||
int var8 = Math.max(4, Mth.ceillog2(paletteList.size()));
|
||||
BitStorage var9 = new BitStorage(var8, 4096);
|
||||
for (int var10 = 0; var10 < var6.length; var10++)
|
||||
{
|
||||
for (int var10 = 0; var10 < var6.length; var10++) {
|
||||
var9.set(var10, var6[var10]);
|
||||
}
|
||||
var0.putLongArray(var2, var9.getRaw());
|
||||
|
@ -29,23 +29,19 @@ public class WrappedPalettedContainer<T> implements PaletteAccess {
|
||||
private final Function<T, CompoundTag> reader;
|
||||
private final Function<CompoundTag, T> writer;
|
||||
|
||||
public void setBlock(int x, int y, int z, CompoundTag data)
|
||||
{
|
||||
container.set(x,y,z,writer.apply(data));
|
||||
public void setBlock(int x, int y, int z, CompoundTag data) {
|
||||
container.set(x, y, z, writer.apply(data));
|
||||
}
|
||||
|
||||
public CompoundTag getBlock(int x, int y, int z)
|
||||
{
|
||||
return reader.apply(container.get(x,y,z));
|
||||
public CompoundTag getBlock(int x, int y, int z) {
|
||||
return reader.apply(container.get(x, y, z));
|
||||
}
|
||||
|
||||
public void writeToSection(CompoundTag tag)
|
||||
{
|
||||
public void writeToSection(CompoundTag tag) {
|
||||
container.write(tag, "Palette", "BlockStates");
|
||||
}
|
||||
|
||||
public void readFromSection(CompoundTag tag)
|
||||
{
|
||||
public void readFromSection(CompoundTag tag) {
|
||||
container.read(tag.getListTag("Palette"), tag.getLongArrayTag("BlockStates").getValue());
|
||||
}
|
||||
}
|
||||
|
@ -127,13 +127,9 @@ public class J {
|
||||
}
|
||||
|
||||
public static <T> T attemptResult(NastySupplier<T> r) {
|
||||
try
|
||||
{
|
||||
try {
|
||||
return r.get();
|
||||
}
|
||||
|
||||
catch(Throwable e)
|
||||
{
|
||||
} catch (Throwable e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
||||
public abstract class QueueJob<T> implements Job {
|
||||
final KList<T> queue;
|
||||
protected int totalWork;
|
||||
private AtomicInteger completed;
|
||||
private final AtomicInteger completed;
|
||||
|
||||
public QueueJob() {
|
||||
totalWork = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user