mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-19 02:36:59 +00:00
Parallax engine impl
This commit is contained in:
parent
c7c1b2b8c1
commit
1173c3d053
@ -33,6 +33,7 @@ public class IrisEngine implements Engine
|
||||
@Override
|
||||
public void generate(int x, int z, Hunk<BlockData> blocks, Hunk<Biome> biomes) {
|
||||
MultiBurst.burst.burst(
|
||||
() -> getFramework().getEngineParallax().generateParallaxArea(x, z),
|
||||
() -> blocks.compute2D(getParallelism(), (xx,yy,zz, b) -> {
|
||||
getFramework().getTerrainActuator().actuate(x+xx, z+zz, b);
|
||||
getFramework().getDecorantActuator().actuate(x+xx, z+zz, b);
|
||||
@ -41,5 +42,9 @@ public class IrisEngine implements Engine
|
||||
getFramework().getBiomeActuator().actuate(x+xx, z+zz, b);
|
||||
})
|
||||
);
|
||||
|
||||
getFramework().getEngineParallax().insertParallax(x, z, blocks);
|
||||
System.out.println("Regions: " + getParallax().getRegionCount() + ", Chunks: " + getParallax().getChunkCount());
|
||||
getParallax().cleanup();
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,8 @@ import org.bukkit.World;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.craftbukkit.v1_16_R2.generator.CraftChunkData;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.world.WorldSaveEvent;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
@ -72,6 +74,17 @@ public class IrisEngineCompound implements EngineCompound {
|
||||
engines[i] = new IrisEngine(new EngineTarget(world, dimension, data.copy().preferFolder(rootDimension.getLoadKey()), (int)Math.floor(256D * (index.getWeight() / totalWeight)), index.isInverted(), threadDist));
|
||||
}
|
||||
}
|
||||
|
||||
Iris.instance.registerListener(this);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void on(WorldSaveEvent e)
|
||||
{
|
||||
if(world != null &&e.getWorld().equals(world))
|
||||
{
|
||||
save();
|
||||
}
|
||||
}
|
||||
|
||||
private File getEngineMetadataFile() {
|
||||
|
@ -1,22 +1,34 @@
|
||||
package com.volmit.iris.v2.generator;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisObjectPlacement;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.IObjectPlacer;
|
||||
import com.volmit.iris.util.RNG;
|
||||
import com.volmit.iris.v2.generator.actuator.IrisBiomeActuator;
|
||||
import com.volmit.iris.v2.generator.actuator.IrisDecorantActuator;
|
||||
import com.volmit.iris.v2.generator.actuator.IrisTerrainActuator;
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineActuator;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineFramework;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineParallax;
|
||||
import lombok.Getter;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
public class IrisEngineFramework implements EngineFramework {
|
||||
|
||||
@Getter
|
||||
private final Engine engine;
|
||||
|
||||
@Getter
|
||||
private final IrisComplex complex;
|
||||
|
||||
@Getter
|
||||
final EngineParallax engineParallax;
|
||||
|
||||
@Getter
|
||||
private final EngineActuator<BlockData> terrainActuator;
|
||||
|
||||
@ -30,8 +42,9 @@ public class IrisEngineFramework implements EngineFramework {
|
||||
{
|
||||
this.engine = engine;
|
||||
this.complex = new IrisComplex(getEngine());
|
||||
terrainActuator = new IrisTerrainActuator(getEngine());
|
||||
decorantActuator = new IrisDecorantActuator(getEngine());
|
||||
biomeActuator = new IrisBiomeActuator(getEngine());
|
||||
this.engineParallax = new IrisEngineParallax(getEngine());
|
||||
this.terrainActuator = new IrisTerrainActuator(getEngine());
|
||||
this.decorantActuator = new IrisDecorantActuator(getEngine());
|
||||
this.biomeActuator = new IrisBiomeActuator(getEngine());
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,20 @@
|
||||
package com.volmit.iris.v2.generator;
|
||||
|
||||
import com.volmit.iris.v2.scaffold.engine.Engine;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineFramework;
|
||||
import com.volmit.iris.v2.scaffold.engine.EngineParallax;
|
||||
import lombok.Getter;
|
||||
|
||||
public class IrisEngineParallax implements EngineParallax {
|
||||
@Getter
|
||||
private final Engine engine;
|
||||
|
||||
@Getter
|
||||
private final int parallaxSize;
|
||||
|
||||
public IrisEngineParallax(Engine engine)
|
||||
{
|
||||
this.engine = engine;
|
||||
parallaxSize = computeParallaxSize();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user