Le Pregenerator with headless mode

This commit is contained in:
Daniel Mills 2021-07-19 10:46:03 -04:00
parent c3e2d34372
commit cfe91a8722
26 changed files with 98 additions and 30 deletions

View File

@ -19,7 +19,7 @@
package com.volmit.iris.core; package com.volmit.iris.core;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.util.board.BoardManager; import com.volmit.iris.util.board.BoardManager;

View File

@ -23,7 +23,7 @@ import com.volmit.iris.Iris;
import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.core.report.Report; import com.volmit.iris.core.report.Report;
import com.volmit.iris.core.report.ReportType; import com.volmit.iris.core.report.ReportType;
import com.volmit.iris.engine.IrisWorldCreator; import com.volmit.iris.core.tools.IrisWorldCreator;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.*; import com.volmit.iris.engine.object.*;

View File

@ -19,7 +19,7 @@
package com.volmit.iris.core.command; package com.volmit.iris.core.command;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;

View File

@ -20,7 +20,7 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisRegion; import com.volmit.iris.engine.object.IrisRegion;

View File

@ -20,7 +20,7 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.VolmitSender; import com.volmit.iris.util.plugin.VolmitSender;

View File

@ -20,7 +20,7 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.InventorySlotType; import com.volmit.iris.engine.object.InventorySlotType;
import com.volmit.iris.engine.object.IrisLootTable; import com.volmit.iris.engine.object.IrisLootTable;

View File

@ -21,7 +21,7 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.gui.VisionGUI; import com.volmit.iris.core.gui.VisionGUI;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;

View File

@ -20,7 +20,7 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisEntity; import com.volmit.iris.engine.object.IrisEntity;

View File

@ -20,7 +20,7 @@ package com.volmit.iris.core.command.what;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;

View File

@ -19,7 +19,7 @@
package com.volmit.iris.core.command.what; package com.volmit.iris.core.command.what;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisObject; import com.volmit.iris.engine.object.IrisObject;

View File

@ -24,7 +24,7 @@ import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.gui.components.Pregenerator; import com.volmit.iris.core.gui.components.Pregenerator;
import com.volmit.iris.core.link.MultiverseCoreLink; import com.volmit.iris.core.link.MultiverseCoreLink;
import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.engine.IrisWorldCreator; import com.volmit.iris.core.tools.IrisWorldCreator;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisDimension; import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;

View File

@ -19,7 +19,7 @@
package com.volmit.iris.core.command.world; package com.volmit.iris.core.command.world;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.format.Form; import com.volmit.iris.util.format.Form;

View File

@ -19,7 +19,7 @@
package com.volmit.iris.core.command.world; package com.volmit.iris.core.command.world;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.VolmitSender; import com.volmit.iris.util.plugin.VolmitSender;

View File

@ -19,7 +19,7 @@
package com.volmit.iris.core.edit; package com.volmit.iris.core.edit;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.parallax.ParallaxAccess; import com.volmit.iris.engine.parallax.ParallaxAccess;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;

View File

@ -29,7 +29,6 @@ import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.function.Consumer2; import com.volmit.iris.util.function.Consumer2;
import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.M;
import com.volmit.iris.util.math.Position2; import com.volmit.iris.util.math.Position2;
import com.volmit.iris.util.math.Spiraler;
import com.volmit.iris.util.scheduling.J; import com.volmit.iris.util.scheduling.J;
import javax.swing.*; import javax.swing.*;
@ -38,6 +37,7 @@ import java.awt.event.KeyEvent;
import java.awt.event.KeyListener; import java.awt.event.KeyListener;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import java.util.function.Consumer;
public class PregeneratorJob implements PregenListener { public class PregeneratorJob implements PregenListener {
public static PregeneratorJob instance; public static PregeneratorJob instance;
@ -46,6 +46,8 @@ public class PregeneratorJob implements PregenListener {
private JFrame frame; private JFrame frame;
private final PregenTask task; private final PregenTask task;
private boolean saving; private boolean saving;
private KList<Consumer<Double>> onProgress = new KList<>();
private KList<Runnable> whenDone = new KList<>();
private final IrisPregenerator pregenerator; private final IrisPregenerator pregenerator;
private PregenRenderer renderer; private PregenRenderer renderer;
private String[] info; private String[] info;
@ -72,6 +74,18 @@ public class PregeneratorJob implements PregenListener {
open(); open();
} }
public PregeneratorJob onProgress(Consumer<Double> c)
{
onProgress.add(c);
return this;
}
public PregeneratorJob whenDone(Runnable r)
{
whenDone.add(r);
return this;
}
public static boolean shutdownInstance() { public static boolean shutdownInstance() {
if(instance == null) if(instance == null)
{ {
@ -190,6 +204,11 @@ public class PregeneratorJob implements PregenListener {
Form.duration(eta, 2) + " Remaining " + " (" + Form.duration(elapsed, 2) + " Elapsed)", Form.duration(eta, 2) + " Remaining " + " (" + Form.duration(elapsed, 2) + " Elapsed)",
"Generation Method: " + method, "Generation Method: " + method,
}; };
for(Consumer<Double> i : onProgress)
{
i.accept(percent);
}
} }
@Override @Override
@ -221,6 +240,7 @@ public class PregeneratorJob implements PregenListener {
public void onClose() { public void onClose() {
close(); close();
instance = null; instance = null;
whenDone.forEach(Runnable::run);
} }
@Override @Override

View File

@ -20,7 +20,7 @@ package com.volmit.iris.core.gui.components;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.data.mca.MCAFile; import com.volmit.iris.engine.data.mca.MCAFile;
import com.volmit.iris.engine.data.mca.NBTWorld; import com.volmit.iris.engine.data.mca.NBTWorld;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;

View File

@ -28,9 +28,14 @@ public class HeadlessPregenMethod implements PregeneratorMethod {
private final HeadlessGenerator generator; private final HeadlessGenerator generator;
public HeadlessPregenMethod(HeadlessWorld world) public HeadlessPregenMethod(HeadlessWorld world)
{
this(world, world.generate());
}
public HeadlessPregenMethod(HeadlessWorld world, HeadlessGenerator generator)
{ {
this.world = world; this.world = world;
this.generator = world.generate(); this.generator = generator;
} }
@Override @Override

View File

@ -20,7 +20,7 @@ package com.volmit.iris.core.pregenerator.methods;
import com.volmit.iris.core.pregenerator.PregenListener; import com.volmit.iris.core.pregenerator.PregenListener;
import com.volmit.iris.core.pregenerator.PregeneratorMethod; import com.volmit.iris.core.pregenerator.PregeneratorMethod;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.headless.HeadlessWorld; import com.volmit.iris.engine.headless.HeadlessWorld;
import org.bukkit.World; import org.bukkit.World;

View File

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package com.volmit.iris.engine; package com.volmit.iris.core.tools;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.framework.EngineCompositeGenerator; import com.volmit.iris.engine.framework.EngineCompositeGenerator;
@ -100,4 +100,9 @@ public class IrisWorldCreator {
return dim.getEnvironment(); return dim.getEnvironment();
} }
} }
public IrisWorldCreator studio(boolean studio) {
this.studio = studio;
return this;
}
} }

View File

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
package com.volmit.iris.engine; package com.volmit.iris.core.tools;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;

View File

@ -26,11 +26,10 @@ import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.core.pregenerator.PregenListener; import com.volmit.iris.core.pregenerator.PregenListener;
import com.volmit.iris.core.pregenerator.PregenTask; import com.volmit.iris.core.pregenerator.PregenTask;
import com.volmit.iris.engine.IrisEngineCompound; import com.volmit.iris.engine.IrisEngineCompound;
import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.data.B; import com.volmit.iris.engine.data.B;
import com.volmit.iris.engine.data.chunk.TerrainChunk; import com.volmit.iris.engine.data.chunk.TerrainChunk;
import com.volmit.iris.engine.data.mca.NBTWorld; import com.volmit.iris.engine.data.mca.NBTWorld;
import com.volmit.iris.engine.headless.HeadlessGenerator;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDimension; import com.volmit.iris.engine.object.IrisDimension;
@ -78,6 +77,8 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
private final boolean production; private final boolean production;
private final KList<BlockPopulator> populators; private final KList<BlockPopulator> populators;
private long mst = 0; private long mst = 0;
private HeadlessGenerator headlessGenerator;
private NBTWorld nbtWorld;
private int generated = 0; private int generated = 0;
private int lgenerated = 0; private int lgenerated = 0;
private final ChronoLatch hotloadcd; private final ChronoLatch hotloadcd;
@ -460,6 +461,26 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
return tc.getRaw(); return tc.getRaw();
} }
public void assignHeadlessGenerator(HeadlessGenerator headlessGenerator)
{
this.headlessGenerator = headlessGenerator;
}
@Override
public HeadlessGenerator getHeadlessGenerator() {
return headlessGenerator;
}
public void assignHeadlessNBTWriter(NBTWorld writer)
{
this.nbtWorld = writer;
}
@Override
public NBTWorld getHeadlessNBTWriter() {
return nbtWorld;
}
@Override @Override
public void directWriteMCA(IrisWorld w, int x, int z, NBTWorld writer, MultiBurst burst) { public void directWriteMCA(IrisWorld w, int x, int z, NBTWorld writer, MultiBurst burst) {
directWriteMCA(w, x, z, writer, burst, null); directWriteMCA(w, x, z, writer, burst, null);

View File

@ -24,6 +24,7 @@ import com.volmit.iris.core.pregenerator.PregenListener;
import com.volmit.iris.engine.IrisComplex; import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.data.DataProvider; import com.volmit.iris.engine.data.DataProvider;
import com.volmit.iris.engine.data.mca.NBTWorld; import com.volmit.iris.engine.data.mca.NBTWorld;
import com.volmit.iris.engine.headless.HeadlessGenerator;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisRegion; import com.volmit.iris.engine.object.IrisRegion;
import com.volmit.iris.engine.object.common.IrisWorld; import com.volmit.iris.engine.object.common.IrisWorld;
@ -46,6 +47,14 @@ import java.util.function.Consumer;
@SuppressWarnings("EmptyMethod") @SuppressWarnings("EmptyMethod")
public interface IrisAccess extends Hotloadable, DataProvider { public interface IrisAccess extends Hotloadable, DataProvider {
HeadlessGenerator getHeadlessGenerator();
default boolean isHeadless(){
return getHeadlessGenerator() != null;
}
NBTWorld getHeadlessNBTWriter();
void directWriteMCA(IrisWorld w, int x, int z, NBTWorld writer, MultiBurst burst); void directWriteMCA(IrisWorld w, int x, int z, NBTWorld writer, MultiBurst burst);
void directWriteMCA(IrisWorld w, int x, int z, NBTWorld writer, MultiBurst burst, PregenListener listener); void directWriteMCA(IrisWorld w, int x, int z, NBTWorld writer, MultiBurst burst, PregenListener listener);

View File

@ -37,9 +37,11 @@ public class HeadlessGenerator {
{ {
this.world = world; this.world = world;
burst = new MultiBurst("Iris Headless Generator", 9, Runtime.getRuntime().availableProcessors()); burst = new MultiBurst("Iris Headless Generator", 9, Runtime.getRuntime().availableProcessors());
generator = new EngineCompositeGenerator(world.getDimension().getLoadKey(), true);
generator.initialize(world.getWorld());
writer = new NBTWorld(world.getWorld().worldFolder()); writer = new NBTWorld(world.getWorld().worldFolder());
generator = new EngineCompositeGenerator(world.getDimension().getLoadKey(), !world.isStudio());
generator.assignHeadlessGenerator(this);
generator.assignHeadlessNBTWriter(writer);
generator.initialize(world.getWorld());
} }
public void generateChunk(int x, int z) public void generateChunk(int x, int z)

View File

@ -20,9 +20,8 @@ package com.volmit.iris.engine.headless;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.EngineCompositeGenerator; import com.volmit.iris.engine.framework.EngineCompositeGenerator;
import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisDimension; import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.engine.object.common.IrisWorld; import com.volmit.iris.engine.object.common.IrisWorld;
import com.volmit.iris.util.plugin.VolmitSender; import com.volmit.iris.util.plugin.VolmitSender;
@ -39,11 +38,18 @@ public class HeadlessWorld {
private final IrisDimension dimension; private final IrisDimension dimension;
private final String worldName; private final String worldName;
private final IrisWorld world; private final IrisWorld world;
private boolean studio = false;
public HeadlessWorld(String worldName, IrisDimension dimension, long seed) public HeadlessWorld(String worldName, IrisDimension dimension, long seed)
{
this(worldName, dimension, seed, false);
}
public HeadlessWorld(String worldName, IrisDimension dimension, long seed, boolean studio)
{ {
this.worldName = worldName; this.worldName = worldName;
this.dimension = dimension; this.dimension = dimension;
this.studio = studio;
world = IrisWorld.builder() world = IrisWorld.builder()
.environment(dimension.getEnvironment()) .environment(dimension.getEnvironment())
.worldFolder(new File(worldName)) .worldFolder(new File(worldName))
@ -55,7 +61,7 @@ public class HeadlessWorld {
world.worldFolder().mkdirs(); world.worldFolder().mkdirs();
new File(world.worldFolder(), "region").mkdirs(); new File(world.worldFolder(), "region").mkdirs();
if(!new File(world.worldFolder(), "iris").exists()) if(!studio && !new File(world.worldFolder(), "iris").exists())
{ {
Iris.proj.installIntoWorld(new VolmitSender(Bukkit.getConsoleSender(), Iris.instance.getTag("Headless")), dimension.getLoadKey(), world.worldFolder()); Iris.proj.installIntoWorld(new VolmitSender(Bukkit.getConsoleSender(), Iris.instance.getTag("Headless")), dimension.getLoadKey(), world.worldFolder());
} }
@ -71,7 +77,7 @@ public class HeadlessWorld {
return new WorldCreator(worldName) return new WorldCreator(worldName)
.environment(dimension.getEnvironment()) .environment(dimension.getEnvironment())
.seed(world.seed()) .seed(world.seed())
.generator(new EngineCompositeGenerator(dimension.getLoadKey(), true)) .generator(new EngineCompositeGenerator(dimension.getLoadKey(), !studio))
.createWorld(); .createWorld();
} }

View File

@ -19,7 +19,7 @@
package com.volmit.iris.engine.jigsaw; package com.volmit.iris.engine.jigsaw;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.*; import com.volmit.iris.engine.object.*;

View File

@ -20,7 +20,7 @@ package com.volmit.iris.engine.jigsaw;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.core.tools.IrisWorlds;
import com.volmit.iris.engine.framework.EngineParallaxManager; import com.volmit.iris.engine.framework.EngineParallaxManager;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.interpolation.InterpolationMethod; import com.volmit.iris.engine.interpolation.InterpolationMethod;