mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 18:23:06 +00:00
Engine api
This commit is contained in:
parent
f2b44d8f99
commit
f79a3d15d1
@ -0,0 +1,37 @@
|
||||
package com.volmit.iris.gen.v2.scaffold.engine;
|
||||
|
||||
import com.volmit.iris.gen.v2.scaffold.parallax.ParallaxAccess;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.object.IrisDimension;
|
||||
import org.bukkit.World;
|
||||
|
||||
public interface Engine
|
||||
{
|
||||
public void setParallelism(int parallelism);
|
||||
|
||||
public int getParallelism();
|
||||
|
||||
public EngineTarget getTarget();
|
||||
|
||||
public EngineFramework getFramework();
|
||||
|
||||
public default IrisDataManager getData()
|
||||
{
|
||||
return getTarget().getData();
|
||||
}
|
||||
|
||||
public default World getWorld()
|
||||
{
|
||||
return getTarget().getWorld();
|
||||
}
|
||||
|
||||
public default IrisDimension getDimension()
|
||||
{
|
||||
return getTarget().getDimension();
|
||||
}
|
||||
|
||||
public default ParallaxAccess getParallax()
|
||||
{
|
||||
return getTarget().getParallaxWorld();
|
||||
}
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
package com.volmit.iris.gen.v2.scaffold.engine;
|
||||
|
||||
import com.volmit.iris.gen.v2.generator.IrisComplex;
|
||||
import com.volmit.iris.gen.v2.scaffold.hunk.Hunk;
|
||||
import com.volmit.iris.gen.v2.scaffold.parallax.ParallaxAccess;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.object.IrisDimension;
|
||||
|
||||
public interface EngineActuator<O>
|
||||
{
|
||||
public Engine getEngine();
|
||||
|
||||
public default IrisDataManager getData()
|
||||
{
|
||||
return getEngine().getData();
|
||||
}
|
||||
|
||||
public default ParallaxAccess getParallax()
|
||||
{
|
||||
return getEngine().getParallax();
|
||||
}
|
||||
|
||||
public default EngineTarget getTarget()
|
||||
{
|
||||
return getEngine().getTarget();
|
||||
}
|
||||
|
||||
public default IrisDimension getDimension()
|
||||
{
|
||||
return getEngine().getDimension();
|
||||
}
|
||||
|
||||
public default long getSeed()
|
||||
{
|
||||
return getTarget().getWorld().getSeed();
|
||||
}
|
||||
|
||||
public default EngineFramework getFramework()
|
||||
{
|
||||
return getEngine().getFramework();
|
||||
}
|
||||
|
||||
public default int getParallelism()
|
||||
{
|
||||
return getEngine().getParallelism();
|
||||
}
|
||||
|
||||
public default IrisComplex getComplex()
|
||||
{
|
||||
return getFramework().getComplex();
|
||||
}
|
||||
|
||||
public void actuate(int x, int z, Hunk<O> output);
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.volmit.iris.gen.v2.scaffold.engine;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@AllArgsConstructor
|
||||
public abstract class EngineAssignedActuator<T> implements EngineActuator<T>
|
||||
{
|
||||
@Getter
|
||||
private final Engine engine;
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.volmit.iris.gen.v2.scaffold.engine;
|
||||
|
||||
import com.volmit.iris.gen.v2.generator.IrisComplex;
|
||||
import com.volmit.iris.gen.v2.generator.IrisEngine;
|
||||
import org.bukkit.block.Biome;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
|
||||
public interface EngineFramework
|
||||
{
|
||||
public IrisEngine getEngine();
|
||||
|
||||
public IrisComplex getComplex();
|
||||
|
||||
public EngineActuator<BlockData> getTerrainActuator();
|
||||
|
||||
public EngineActuator<BlockData> getDecorantActuator();
|
||||
|
||||
public EngineActuator<Biome> getBiomeActuator();
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package com.volmit.iris.gen.v2.scaffold.engine;
|
||||
|
||||
import com.volmit.iris.gen.v2.scaffold.parallax.ParallaxWorld;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.object.IrisDimension;
|
||||
import lombok.Data;
|
||||
import org.bukkit.World;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@Data
|
||||
public class EngineTarget
|
||||
{
|
||||
private final IrisDimension dimension;
|
||||
private final World world;
|
||||
private final IrisDataManager data;
|
||||
private final ParallaxWorld parallaxWorld;
|
||||
|
||||
public EngineTarget(World world, IrisDimension dimension, IrisDataManager data)
|
||||
{
|
||||
this.world = world;
|
||||
this.dimension = dimension;
|
||||
this.data = data;
|
||||
this.parallaxWorld = new ParallaxWorld(256, new File(world.getWorldFolder(), "iris/" + dimension.getLoadKey() + "/parallax"));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user