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 org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import ninja.bytecode.iris.util.IO;
|
import ninja.bytecode.iris.util.IO;
|
||||||
|
import ninja.bytecode.iris.util.KMap;
|
||||||
|
|
||||||
public class Iris extends JavaPlugin
|
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.object.IrisRegion;
|
||||||
import ninja.bytecode.iris.util.BiomeResult;
|
import ninja.bytecode.iris.util.BiomeResult;
|
||||||
import ninja.bytecode.iris.util.CNG;
|
import ninja.bytecode.iris.util.CNG;
|
||||||
|
import ninja.bytecode.iris.util.ChronoLatch;
|
||||||
import ninja.bytecode.iris.util.IrisInterpolation;
|
import ninja.bytecode.iris.util.IrisInterpolation;
|
||||||
import ninja.bytecode.iris.util.KList;
|
import ninja.bytecode.iris.util.KList;
|
||||||
import ninja.bytecode.iris.util.RNG;
|
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
|
// TODO REMOVE OR FIND A BETTER PLACE
|
||||||
private BlockData STONE = Material.STONE.createBlockData();
|
private BlockData STONE = Material.STONE.createBlockData();
|
||||||
@ -30,12 +31,16 @@ public class IrisGenerator extends ChunkGenerator
|
|||||||
private String dimensionName;
|
private String dimensionName;
|
||||||
private GenLayerBiome glBiome;
|
private GenLayerBiome glBiome;
|
||||||
private CNG terrainNoise;
|
private CNG terrainNoise;
|
||||||
|
private IrisMetrics metrics;
|
||||||
|
private World world;
|
||||||
|
private ChronoLatch pushLatch;
|
||||||
|
|
||||||
private boolean initialized = false;
|
private boolean initialized = false;
|
||||||
|
|
||||||
public IrisGenerator(String dimensionName)
|
public IrisGenerator(String dimensionName)
|
||||||
{
|
{
|
||||||
this.dimensionName = dimensionName;
|
this.dimensionName = dimensionName;
|
||||||
|
pushLatch = new ChronoLatch(3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IrisDimension getDimension()
|
public IrisDimension getDimension()
|
||||||
@ -50,6 +55,8 @@ public class IrisGenerator extends ChunkGenerator
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.world = world;
|
||||||
|
metrics = new IrisMetrics(1024);
|
||||||
initialized = true;
|
initialized = true;
|
||||||
glBiome = new GenLayerBiome(this, rng.nextParallelRNG(1));
|
glBiome = new GenLayerBiome(this, rng.nextParallelRNG(1));
|
||||||
terrainNoise = CNG.signature(rng.nextParallelRNG(2));
|
terrainNoise = CNG.signature(rng.nextParallelRNG(2));
|
||||||
@ -64,7 +71,12 @@ public class IrisGenerator extends ChunkGenerator
|
|||||||
@Override
|
@Override
|
||||||
public ChunkData generateChunkData(World world, Random no, int x, int z, BiomeGrid biomeGrid)
|
public ChunkData generateChunkData(World world, Random no, int x, int z, BiomeGrid biomeGrid)
|
||||||
{
|
{
|
||||||
Iris.hotloader.check();
|
if(pushLatch.flip())
|
||||||
|
{
|
||||||
|
Iris.hotloader.check();
|
||||||
|
IrisContext.pushContext(this);
|
||||||
|
}
|
||||||
|
|
||||||
int i, j, k, height, depth;
|
int i, j, k, height, depth;
|
||||||
double wx, wz, rx, rz, noise, ox, oz;
|
double wx, wz, rx, rz, noise, ox, oz;
|
||||||
boolean underwater;
|
boolean underwater;
|
||||||
@ -79,7 +91,6 @@ public class IrisGenerator extends ChunkGenerator
|
|||||||
|
|
||||||
for(i = 0; i < 16; i++)
|
for(i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
|
|
||||||
for(j = 0; j < 16; j++)
|
for(j = 0; j < 16; j++)
|
||||||
{
|
{
|
||||||
rx = (x * 16) + i;
|
rx = (x * 16) + i;
|
||||||
@ -163,9 +174,27 @@ public class IrisGenerator extends ChunkGenerator
|
|||||||
return super.getFixedSpawnLocation(world, random);
|
return super.getFixedSpawnLocation(world, random);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BiomeResult getBiome(int x, int z)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isParallelCapable()
|
public boolean isParallelCapable()
|
||||||
{
|
{
|
||||||
return true;
|
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