mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-19 10:43:14 +00:00
Fix
This commit is contained in:
parent
a82ba6503f
commit
5d7126f772
@ -16,6 +16,7 @@ import org.bukkit.generator.ChunkGenerator;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import ninja.bytecode.iris.util.IO;
|
||||
import ninja.bytecode.iris.util.KMap;
|
||||
|
||||
public class Iris extends JavaPlugin
|
||||
{
|
||||
|
27
src/main/java/ninja/bytecode/iris/IrisContext.java
Normal file
27
src/main/java/ninja/bytecode/iris/IrisContext.java
Normal file
@ -0,0 +1,27 @@
|
||||
package ninja.bytecode.iris;
|
||||
|
||||
import org.bukkit.World;
|
||||
|
||||
import ninja.bytecode.iris.util.BiomeResult;
|
||||
import ninja.bytecode.iris.util.KMap;
|
||||
|
||||
public interface IrisContext
|
||||
{
|
||||
static KMap<World, IrisContext> contexts = new KMap<>();
|
||||
|
||||
public static void pushContext(IrisContext context)
|
||||
{
|
||||
contexts.put(context.getWorld(), context);
|
||||
}
|
||||
|
||||
public static IrisContext of(World world)
|
||||
{
|
||||
return contexts.get(world);
|
||||
}
|
||||
|
||||
public BiomeResult getBiome(int x, int z);
|
||||
|
||||
public IrisMetrics getMetrics();
|
||||
|
||||
public World getWorld();
|
||||
}
|
@ -18,11 +18,12 @@ import ninja.bytecode.iris.object.IrisDimension;
|
||||
import ninja.bytecode.iris.object.IrisRegion;
|
||||
import ninja.bytecode.iris.util.BiomeResult;
|
||||
import ninja.bytecode.iris.util.CNG;
|
||||
import ninja.bytecode.iris.util.ChronoLatch;
|
||||
import ninja.bytecode.iris.util.IrisInterpolation;
|
||||
import ninja.bytecode.iris.util.KList;
|
||||
import ninja.bytecode.iris.util.RNG;
|
||||
|
||||
public class IrisGenerator extends ChunkGenerator
|
||||
public class IrisGenerator extends ChunkGenerator implements IrisContext
|
||||
{
|
||||
// TODO REMOVE OR FIND A BETTER PLACE
|
||||
private BlockData STONE = Material.STONE.createBlockData();
|
||||
@ -30,12 +31,16 @@ public class IrisGenerator extends ChunkGenerator
|
||||
private String dimensionName;
|
||||
private GenLayerBiome glBiome;
|
||||
private CNG terrainNoise;
|
||||
private IrisMetrics metrics;
|
||||
private World world;
|
||||
private ChronoLatch pushLatch;
|
||||
|
||||
private boolean initialized = false;
|
||||
|
||||
public IrisGenerator(String dimensionName)
|
||||
{
|
||||
this.dimensionName = dimensionName;
|
||||
pushLatch = new ChronoLatch(3000);
|
||||
}
|
||||
|
||||
public IrisDimension getDimension()
|
||||
@ -50,6 +55,8 @@ public class IrisGenerator extends ChunkGenerator
|
||||
return;
|
||||
}
|
||||
|
||||
this.world = world;
|
||||
metrics = new IrisMetrics(1024);
|
||||
initialized = true;
|
||||
glBiome = new GenLayerBiome(this, rng.nextParallelRNG(1));
|
||||
terrainNoise = CNG.signature(rng.nextParallelRNG(2));
|
||||
@ -63,8 +70,13 @@ public class IrisGenerator extends ChunkGenerator
|
||||
|
||||
@Override
|
||||
public ChunkData generateChunkData(World world, Random no, int x, int z, BiomeGrid biomeGrid)
|
||||
{
|
||||
if(pushLatch.flip())
|
||||
{
|
||||
Iris.hotloader.check();
|
||||
IrisContext.pushContext(this);
|
||||
}
|
||||
|
||||
int i, j, k, height, depth;
|
||||
double wx, wz, rx, rz, noise, ox, oz;
|
||||
boolean underwater;
|
||||
@ -79,7 +91,6 @@ public class IrisGenerator extends ChunkGenerator
|
||||
|
||||
for(i = 0; i < 16; i++)
|
||||
{
|
||||
|
||||
for(j = 0; j < 16; j++)
|
||||
{
|
||||
rx = (x * 16) + i;
|
||||
@ -163,9 +174,27 @@ public class IrisGenerator extends ChunkGenerator
|
||||
return super.getFixedSpawnLocation(world, random);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BiomeResult getBiome(int x, int z)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isParallelCapable()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IrisMetrics getMetrics()
|
||||
{
|
||||
return metrics;
|
||||
}
|
||||
|
||||
@Override
|
||||
public World getWorld()
|
||||
{
|
||||
return world;
|
||||
}
|
||||
}
|
||||
|
15
src/main/java/ninja/bytecode/iris/IrisMetrics.java
Normal file
15
src/main/java/ninja/bytecode/iris/IrisMetrics.java
Normal file
@ -0,0 +1,15 @@
|
||||
package ninja.bytecode.iris;
|
||||
|
||||
import lombok.Data;
|
||||
import ninja.bytecode.iris.util.RollingSequence;
|
||||
|
||||
@Data
|
||||
public class IrisMetrics
|
||||
{
|
||||
private final RollingSequence total;
|
||||
|
||||
public IrisMetrics(int memory)
|
||||
{
|
||||
total = new RollingSequence(memory);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user