From 2aef5f94c0d7d043ffafab297c8ddeb6ec0ca4d5 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Mon, 20 Jan 2020 15:02:48 -0500 Subject: [PATCH] "fast" mode --- .../java/ninja/bytecode/iris/CommandIris.java | 2 ++ src/main/java/ninja/bytecode/iris/Settings.java | 6 ++---- .../iris/controller/DebugController.java | 17 +++++++++++++++++ .../bytecode/iris/generator/IrisGenerator.java | 4 ++-- .../iris/generator/layer/GenLayerCaverns.java | 2 +- .../iris/generator/layer/GenLayerCaves.java | 4 ++-- .../iris/util/ParallaxWorldGenerator.java | 6 +++--- 7 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/main/java/ninja/bytecode/iris/CommandIris.java b/src/main/java/ninja/bytecode/iris/CommandIris.java index f8ad216a7..3938ed0da 100644 --- a/src/main/java/ninja/bytecode/iris/CommandIris.java +++ b/src/main/java/ninja/bytecode/iris/CommandIris.java @@ -32,6 +32,8 @@ public class CommandIris implements CommandExecutor { msg(sender, "/iris timings - Iris Timings"); msg(sender, "/iris rtp [biome] - RTP to a biome"); + msg(sender, "/iris otp [schematic] - RTP to a specific schematic"); + msg(sender, "/iris info - Chunk info"); msg(sender, "/iris reload - Reload & Recompile"); msg(sender, "/iris clean - Clean Pack Install in Iris Folder"); msg(sender, "/ish - Iris Schematic Commands"); diff --git a/src/main/java/ninja/bytecode/iris/Settings.java b/src/main/java/ninja/bytecode/iris/Settings.java index bf9197dfe..cbaf81bab 100644 --- a/src/main/java/ninja/bytecode/iris/Settings.java +++ b/src/main/java/ninja/bytecode/iris/Settings.java @@ -10,13 +10,11 @@ public class Settings public static class PerformanceSettings { public PerformanceMode performanceMode = PerformanceMode.HALF_CPU; - public boolean fastDecoration = true; + public boolean fastMode = true; public int threadPriority = Thread.MAX_PRIORITY; public int threadCount = 4; public boolean debugMode = true; public int decorationAccuracy = 2; - public boolean interpolation = true; - public boolean surfaceNoise = true; public boolean noObjectFail = false; public boolean verbose = false; public int placeHistoryLimit = 8192; @@ -39,7 +37,7 @@ public class Settings public double baseHeight = 0.065; public int seaLevel = 63; public double caveDensity = 5; - public double caveScale = 1.45; + public double caveScale = 1.2; public double biomeScale = 0.65; public boolean flatBedrock = true; public boolean genObjects = true; diff --git a/src/main/java/ninja/bytecode/iris/controller/DebugController.java b/src/main/java/ninja/bytecode/iris/controller/DebugController.java index d48885d2b..2022a167f 100644 --- a/src/main/java/ninja/bytecode/iris/controller/DebugController.java +++ b/src/main/java/ninja/bytecode/iris/controller/DebugController.java @@ -1,11 +1,14 @@ package ninja.bytecode.iris.controller; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.World; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import mortar.util.text.C; import ninja.bytecode.iris.Iris; import ninja.bytecode.iris.generator.IrisGenerator; import ninja.bytecode.iris.util.IrisController; @@ -55,6 +58,15 @@ public class DebugController implements IrisController i.teleport(new Location(w, m.getX(), m.getY(), m.getZ(), m.getYaw(), m.getPitch())); i.setFlying(true); i.setGameMode(GameMode.SPECTATOR); + + if(Iris.settings.performance.fastMode) + { + msg(i, C.GOLD + "Fast Mode is ON!"); + msg(i, "* Terrain is not interpolated"); + msg(i, "* Schematics larger than 3 chunks may be clipped"); + msg(i, "* Underground Generation is disabled"); + msg(i, "* Surface Lighting is skipped"); + } } for(String i : ws) @@ -78,6 +90,11 @@ public class DebugController implements IrisController }, 1); } + public void msg(CommandSender s, String msg) + { + s.sendMessage(ChatColor.DARK_PURPLE + "[" + ChatColor.GRAY + "Iris" + ChatColor.DARK_PURPLE + "]" + ChatColor.GRAY + ": " + msg); + } + @Override public void onStop() { diff --git a/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java b/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java index 508cf3488..ea833bebe 100644 --- a/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java +++ b/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java @@ -223,8 +223,8 @@ public class IrisGenerator extends ParallaxWorldGenerator public double getANoise(int x, int z, ChunkPlan plan, IrisBiome biome) { - double hv = Iris.settings.performance.interpolation ? IrisInterpolation.getNoise(x, z, Iris.settings.gen.hermiteSampleRadius, (xf, zf) -> getBiomedHeight((int) Math.round(xf), (int) Math.round(zf), plan)) : getBiomedHeight((int) Math.round(x), (int) Math.round(z), plan); - hv += Iris.settings.performance.surfaceNoise ? glLNoise.generateLayer(hv * Iris.settings.gen.roughness * 215, (double) x * Iris.settings.gen.roughness * 0.82, (double) z * Iris.settings.gen.roughness * 0.82) * (1.6918 * (hv * 2.35)) : 0; + double hv = !Iris.settings.performance.fastMode ? IrisInterpolation.getNoise(x, z, Iris.settings.gen.hermiteSampleRadius, (xf, zf) -> getBiomedHeight((int) Math.round(xf), (int) Math.round(zf), plan)) : getBiomedHeight((int) Math.round(x), (int) Math.round(z), plan); + hv += glLNoise.generateLayer(hv * Iris.settings.gen.roughness * 215, (double) x * Iris.settings.gen.roughness * 0.82, (double) z * Iris.settings.gen.roughness * 0.82) * (1.6918 * (hv * 2.35)); if(biome.hasCliffs()) { diff --git a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaverns.java b/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaverns.java index ef7fec51d..88df73988 100644 --- a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaverns.java +++ b/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaverns.java @@ -71,7 +71,7 @@ public class GenLayerCaverns extends GenLayer public void genCaverns(double wxx, double wzx, int x, int z, int s, IrisGenerator g, IrisBiome biome, AtomicChunkData data) { - if(!Iris.settings.gen.genCaverns) + if(!Iris.settings.gen.genCaverns || Iris.settings.performance.fastMode) { return; } diff --git a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaves.java b/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaves.java index bab7a1e63..db7187c15 100644 --- a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaves.java +++ b/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaves.java @@ -31,7 +31,7 @@ public class GenLayerCaves extends GenLayer public void genCaves(double wxx, double wzx, int x, int z, int s, IrisGenerator g, AtomicChunkData data) { - if(!Iris.settings.gen.genCaves) + if(!Iris.settings.gen.genCaves || Iris.settings.performance.fastMode) { return; } @@ -40,7 +40,7 @@ public class GenLayerCaves extends GenLayer { double thickness = 0.25 + itr + (0.5 * caveClamp.noise(wxx, wzx)); double size = (3.88D * thickness); - double variance = 8.34D * thickness; + double variance = 3.34D * thickness; double w = size + (variance * caveGirth.noise(wxx, wzx)); double h = size + (variance * caveGirth.noise(wzx, wxx)); double width = 0; diff --git a/src/main/java/ninja/bytecode/iris/util/ParallaxWorldGenerator.java b/src/main/java/ninja/bytecode/iris/util/ParallaxWorldGenerator.java index ec0c5b0f3..12478bbbf 100644 --- a/src/main/java/ninja/bytecode/iris/util/ParallaxWorldGenerator.java +++ b/src/main/java/ninja/bytecode/iris/util/ParallaxWorldGenerator.java @@ -48,7 +48,7 @@ public abstract class ParallaxWorldGenerator extends ParallelChunkGenerator impl @EventHandler public void on(ChunkLoadEvent e) { - if(e.getWorld().equals(world)) + if(!Iris.settings.performance.fastMode && e.getWorld().equals(world)) { NMP.host.relight(e.getChunk()); Bukkit.getScheduler().scheduleSyncDelayedTask(Iris.instance, () -> fix.add(e.getChunk()), 20); @@ -109,11 +109,11 @@ public abstract class ParallaxWorldGenerator extends ParallelChunkGenerator impl TaskGroup g = startWork(); int gg = 0; int gx = 0; - for(int ii = -(getParallaxSize().getX() / 2) - 1; ii < (getParallaxSize().getX() / 2) + 1; ii++) + for(int ii = Iris.settings.performance.fastMode ? -1 : -(getParallaxSize().getX() / 2) - 1; ii < (Iris.settings.performance.fastMode ? 1 : ((getParallaxSize().getX() / 2) + 1)); ii++) { int i = ii; - for(int jj = -(getParallaxSize().getZ() / 2) - 1; jj < (getParallaxSize().getZ() / 2) + 1; jj++) + for(int jj = Iris.settings.performance.fastMode ? -1 : -(getParallaxSize().getZ() / 2) - 1; jj < (Iris.settings.performance.fastMode ? 1 : ((getParallaxSize().getZ() / 2) + 1)); jj++) { gx++; int j = jj;