From f79a3d15d1bf97813c4eb99eade658cbb2f76cc7 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Thu, 29 Oct 2020 05:25:50 -0400 Subject: [PATCH] Engine api --- .../iris/gen/v2/scaffold/engine/Engine.java | 37 +++++++++++++ .../v2/scaffold/engine/EngineActuator.java | 54 +++++++++++++++++++ .../engine/EngineAssignedActuator.java | 11 ++++ .../v2/scaffold/engine/EngineFramework.java | 19 +++++++ .../gen/v2/scaffold/engine/EngineTarget.java | 26 +++++++++ 5 files changed, 147 insertions(+) create mode 100644 src/main/java/com/volmit/iris/gen/v2/scaffold/engine/Engine.java create mode 100644 src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineActuator.java create mode 100644 src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineAssignedActuator.java create mode 100644 src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineFramework.java create mode 100644 src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineTarget.java diff --git a/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/Engine.java b/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/Engine.java new file mode 100644 index 000000000..8e2ca7cf3 --- /dev/null +++ b/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/Engine.java @@ -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(); + } +} diff --git a/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineActuator.java b/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineActuator.java new file mode 100644 index 000000000..c461add24 --- /dev/null +++ b/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineActuator.java @@ -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 +{ + 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 output); +} diff --git a/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineAssignedActuator.java b/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineAssignedActuator.java new file mode 100644 index 000000000..05b24e6b0 --- /dev/null +++ b/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineAssignedActuator.java @@ -0,0 +1,11 @@ +package com.volmit.iris.gen.v2.scaffold.engine; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +public abstract class EngineAssignedActuator implements EngineActuator +{ + @Getter + private final Engine engine; +} diff --git a/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineFramework.java b/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineFramework.java new file mode 100644 index 000000000..83386e8cc --- /dev/null +++ b/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineFramework.java @@ -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 getTerrainActuator(); + + public EngineActuator getDecorantActuator(); + + public EngineActuator getBiomeActuator(); +} diff --git a/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineTarget.java b/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineTarget.java new file mode 100644 index 000000000..3453ad222 --- /dev/null +++ b/src/main/java/com/volmit/iris/gen/v2/scaffold/engine/EngineTarget.java @@ -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")); + } +}