9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-30 20:39:21 +00:00

Performance & Fixes

This commit is contained in:
Daniel Mills
2020-11-11 16:46:36 -05:00
parent ec39d7146c
commit 4c44957764
18 changed files with 706 additions and 789 deletions

View File

@@ -7,9 +7,7 @@ import com.volmit.iris.scaffold.cache.Cache;
import com.volmit.iris.scaffold.data.DataProvider;
import com.volmit.iris.scaffold.hunk.Hunk;
import com.volmit.iris.scaffold.parallax.ParallaxAccess;
import com.volmit.iris.util.B;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.RNG;
import com.volmit.iris.util.*;
import org.bukkit.Chunk;
import org.bukkit.World;
import org.bukkit.block.Biome;

View File

@@ -2,8 +2,6 @@ package com.volmit.iris.scaffold.engine;
import com.volmit.iris.Iris;
import com.volmit.iris.generator.IrisComplex;
import com.volmit.iris.generator.actuator.IrisTerrainActuator;
import com.volmit.iris.generator.modifier.IrisCaveModifier;
import com.volmit.iris.manager.IrisDataManager;
import com.volmit.iris.object.*;
import com.volmit.iris.scaffold.cache.Cache;
@@ -332,44 +330,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer
default int trueHeight(int x, int z)
{
int rx = (int) Math.round(getEngine().modifyX(x));
int rz = (int) Math.round(getEngine().modifyZ(z));
int height = (int) Math.round(getComplex().getHeightStream().get(rx, rz));
int m = height;
if(getEngine().getDimension().isCarving())
{
if(getEngine().getDimension().isCarved(rx, m, rz, ((IrisTerrainActuator)getFramework().getTerrainActuator()).getRng(), height))
{
m--;
while(getEngine().getDimension().isCarved(rx, m, rz, ((IrisTerrainActuator)getFramework().getTerrainActuator()).getRng(), height))
{
m--;
}
}
}
if(getEngine().getDimension().isCaves())
{
KList<CaveResult> caves = ((IrisCaveModifier)getFramework().getCaveModifier()).genCaves(rx, rz, 0, 0, null);
boolean again = true;
while(again)
{
again = false;
for(CaveResult i : caves)
{
if(i.getCeiling() > m && i.getFloor() < m)
{
m = i.getFloor();
again = true;
}
}
}
}
return m;
return getComplex().getTrueHeightStream().get(x, z);
}
@Override

View File

@@ -1,18 +1,17 @@
package com.volmit.iris.scaffold.hunk.io;
import java.io.IOException;
import com.volmit.iris.util.*;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.Iris;
import com.volmit.iris.scaffold.hunk.Hunk;
import com.volmit.iris.util.*;
import org.bukkit.block.data.BlockData;
import java.io.IOException;
public class HunkRegionSlice<T>
{
public static final Function2<Integer, CompoundTag, HunkRegionSlice<BlockData>> BLOCKDATA = (h, c) -> new HunkRegionSlice<>(h, Hunk::newAtomicHunk, new BlockDataHunkIOAdapter(), c, "blockdata");
public static final Function3<Integer, CompoundTag, String, HunkRegionSlice<String>> STRING = (h, c, t) -> new HunkRegionSlice<>(h, Hunk::newAtomicHunk, new StringHunkIOAdapter(), c, t);
public static final Function3<Integer, CompoundTag, String, HunkRegionSlice<Boolean>> BOOLEAN = (h, c, t) -> new HunkRegionSlice<>(h, Hunk::newAtomicHunk, new BooleanHunkIOAdapter(), c, t);
public static final Function2<Integer, CompoundTag, HunkRegionSlice<BlockData>> BLOCKDATA = (h, c) -> new HunkRegionSlice<>(h, Hunk::newMappedHunk, new BlockDataHunkIOAdapter(), c, "blockdata");
public static final Function3<Integer, CompoundTag, String, HunkRegionSlice<String>> STRING = (h, c, t) -> new HunkRegionSlice<>(h, Hunk::newMappedHunk, new StringHunkIOAdapter(), c, t);
public static final Function3<Integer, CompoundTag, String, HunkRegionSlice<Boolean>> BOOLEAN = (h, c, t) -> new HunkRegionSlice<>(h, Hunk::newMappedHunk, new BooleanHunkIOAdapter(), c, t);
private final Function3<Integer, Integer, Integer, Hunk<T>> factory;
private final HunkIOAdapter<T> adapter;
private final CompoundTag compound;

View File

@@ -18,7 +18,7 @@ public abstract class PaletteHunkIOAdapter<T> implements HunkIOAdapter<T> {
AtomicInteger nonNull = new AtomicInteger(0);
DataPalette<T> palette = new DataPalette<T>();
t.iterate(0, (x,y,z,w) -> {
t.iterateSync((x,y,z,w) -> {
if(w != null)
{
palette.getIndex(w);
@@ -29,7 +29,7 @@ public abstract class PaletteHunkIOAdapter<T> implements HunkIOAdapter<T> {
palette.write(this, dos);
dos.writeInt(nonNull.get() + Integer.MIN_VALUE);
AtomicBoolean failure = new AtomicBoolean(false);
t.iterate(0, (x,y,z,w) -> {
t.iterateSync((x,y,z,w) -> {
if(w != null)
{
try

View File

@@ -1,15 +1,18 @@
package com.volmit.iris.scaffold.parallax;
import java.io.File;
import java.io.IOException;
import com.volmit.iris.scaffold.hunk.Hunk;
import com.volmit.iris.scaffold.hunk.io.HunkIOAdapter;
import com.volmit.iris.scaffold.hunk.io.HunkRegion;
import com.volmit.iris.scaffold.hunk.io.HunkRegionSlice;
import com.volmit.iris.util.*;
import com.volmit.iris.util.ByteArrayTag;
import com.volmit.iris.util.CompoundTag;
import com.volmit.iris.util.M;
import com.volmit.iris.util.Tag;
import org.bukkit.block.data.BlockData;
import java.io.File;
import java.io.IOException;
public class ParallaxRegion extends HunkRegion
{
private boolean dirtyMeta;

View File

@@ -194,7 +194,7 @@ public class ParallaxWorld implements ParallaxAccess
public void cleanup()
{
cleanup(10000, 1000);
cleanup(15000, 5000);
}
@Override