From 7dfe3a1c598f73d5713c2eb588f0510e462d221c Mon Sep 17 00:00:00 2001 From: Skizzles Date: Sun, 22 Aug 2021 04:29:42 -0700 Subject: [PATCH 01/37] Update bug.yml Fixes support links not linking to discord --- .github/ISSUE_TEMPLATE/bug.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 7a446280a..331ce0fdb 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -60,9 +60,9 @@ body: label: Checklist description: Please ensure you meet each of the requirements below options: - - label: I am using an unmodified version of Iris. (If you modified the plugin and see an issue, make sure it is reproducable on the latest spigot version or contact [support](discord.gg/volmit)) + - label: I am using an unmodified version of Iris. (If you modified the plugin and see an issue, make sure it is reproducable on the latest spigot version or contact [support](https://discord.gg/volmi)) required: true - - label: I am using Spigot, Paper, Tuinity, or Purpur. (If you are not, and still think it is a valid issue, contact [support](discord.gg/volmit)) + - label: I am using Spigot, Paper, Tuinity, or Purpur. (If you are not, and still think it is a valid issue, contact [support](https://discord.gg/volmit)) required: true - type: markdown id: thanks From 47b4a6c498499d9263bf1153963ba6c8aece8bf9 Mon Sep 17 00:00:00 2001 From: Skizzles Date: Sun, 22 Aug 2021 04:30:21 -0700 Subject: [PATCH 02/37] Update bug.yml fix my stupid spelling --- .github/ISSUE_TEMPLATE/bug.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 331ce0fdb..8691354d4 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -60,7 +60,7 @@ body: label: Checklist description: Please ensure you meet each of the requirements below options: - - label: I am using an unmodified version of Iris. (If you modified the plugin and see an issue, make sure it is reproducable on the latest spigot version or contact [support](https://discord.gg/volmi)) + - label: I am using an unmodified version of Iris. (If you modified the plugin and see an issue, make sure it is reproducable on the latest spigot version or contact [support](https://discord.gg/volmit)) required: true - label: I am using Spigot, Paper, Tuinity, or Purpur. (If you are not, and still think it is a valid issue, contact [support](https://discord.gg/volmit)) required: true From e5033cceec7b404e3072e8130efc55608897b5f8 Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 02:26:14 -0800 Subject: [PATCH 03/37] Update gradle --- build.gradle | 95 +++++++++++++++++++++++++--------------------------- 1 file changed, 45 insertions(+), 50 deletions(-) diff --git a/build.gradle b/build.gradle index 297a2b4a4..2beb9f325 100644 --- a/build.gradle +++ b/build.gradle @@ -15,16 +15,6 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath 'com.guardsquare:proguard-gradle:7.1.0' - } -} - plugins { id 'java' id 'io.freefair.lombok' version '5.2.1' @@ -34,9 +24,8 @@ plugins { group 'com.volmit.iris' version '1.8' def apiVersion = '1.17' -def name = getRootProject().getName() // See settings.gradle +def name = getRootProject().getName() // Defined in settings.gradle def main = 'com.volmit.iris.Iris' -// You need to also set command usage, aliases and description in src/main/resources/plugin.yml // ADD YOURSELF AS A NEW LINE IF YOU WANT YOUR OWN BUILD TASK GENERATED // ============================================================== @@ -47,32 +36,6 @@ registerCustomOutputTask('Coco', 'C:/Users/sjoer/Documents/Development/MCServer/ registerCustomOutputTask('Strange', 'D://Servers/1.17 Test Server/plugins', name) // ============================================================== -def dependsDir = "${buildDir}/libs/dependencies/" as String - -task copyDepends(type: Copy) { - dependsOn(":shadowJar") - group('proguard') - from configurations.default - into "${dependsDir}" -} - -task release(type: proguard.gradle.ProGuardTask) { - dependsOn(":copyDepends") - group('proguard') - configuration 'proguard.pro' - injars("${buildDir}/libs/" + name + "-" + version + "-all.jar") - outjars("${buildDir}/production/" + name + "/" + version + "/" + name + "-" + version + ".jar") - libraryjars "${System.getProperty('java.home')}/lib/rt.jar" - libraryjars "${System.getProperty('java.home')}/jmods/" - libraryjars "${dependsDir}" - dontobfuscate() - dontwarn() - dontshrink() - dontoptimize() - dontnote() - verbose() -} - def registerCustomOutputTask(name, path, plugin) { tasks.register('build' + name, Copy) { group('development') @@ -86,8 +49,14 @@ def registerCustomOutputTask(name, path, plugin) { } } +/** + * Gradle is weird sometimes, we need to delete the plugin yml from the build folder to actually filter properly. + */ file(jar.archiveFile.get().getAsFile().getParentFile().getParentFile().getParentFile().getAbsolutePath() + '/build/resources/main/plugin.yml').delete() +/** + * Expand properties into plugin yml + */ processResources { filesMatching('**/plugin.yml') { expand( @@ -99,6 +68,10 @@ processResources { } } +/** + * For performance during compilation, we specify which module groups are accessible from which repositories + * This may cause issues resolving new dependencies but normally it shouldn't. + */ repositories { maven { url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' @@ -153,23 +126,45 @@ repositories { // maven { allowInsecureProtocol true, url 'http://archive.arcane.art/repository/arcane'} } +/** + * We need parameter meta for the decree command system + */ compileJava { options.compilerArgs << '-parameters' } -shadowJar - { - minimize() - append("plugin.yml") - relocate 'com.dfsek.paralithic', 'com.volmit.iris.util.paralithic' - relocate 'io.papermc.lib', 'com.volmit.iris.util.paper' - dependencies { - include(dependency('io.papermc:paperlib')) - include(dependency('com.dfsek:Paralithic')) - include(dependency('net.kyori:')) - } - } +/** + * Configure Iris for shading + */ +shadowJar { + minimize() + append("plugin.yml") + relocate 'com.dfsek.paralithic', 'com.volmit.iris.util.paralithic' + relocate 'io.papermc.lib', 'com.volmit.iris.util.paper' + dependencies { + include(dependency('io.papermc:paperlib')) + include(dependency('com.dfsek:Paralithic')) + include(dependency('net.kyori:')) + } +} +configurations.all { + resolutionStrategy.cacheChangingModulesFor 60, 'minutes' + resolutionStrategy.cacheDynamicVersionsFor 60, 'minutes' +} + +/** + * Dependencies. + * + * Provided or classpath dependencies are not shaded and are available on the runtime classpath + * + * Shaded dependencies are not available at runtime, nor are they available on mvn central so they + * need to be shaded into the jar (increasing binary size) + * + * Dynamically loaded dependencies are defined in the plugin.yml (updating these must be updated in the + * plugin.yml also, otherwise they wont be available). These do not increase binary size). Only declare + * these dependencies if they are available on mvn central. + */ dependencies { // Provided or Classpath compileOnly 'org.projectlombok:lombok:1.18.20' From ac0d0a6680369a1fee0daa3f187afd61e4b1a57d Mon Sep 17 00:00:00 2001 From: ArMiN231 Date: Wed, 1 Sep 2021 14:17:14 +0200 Subject: [PATCH 04/37] Getting rid of the double n when hotloading --- src/main/java/com/volmit/iris/Iris.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index aa9b4c0ad..3c22fc181 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -320,7 +320,7 @@ public class Iris extends VolmitPlugin implements Listener { IrisSettings.invalidate(); IrisSettings.get(); configWatcher.checkModified(); - Iris.info("Hotloaded settings.json"); + Iris.info("Hotloaded settings.json + " "); //The extra space stops a bug from repeating the last letter } } From 7b002606bf5781d1b4166a2ff847e65b9003a095 Mon Sep 17 00:00:00 2001 From: ArMiN231 Date: Wed, 1 Sep 2021 14:24:44 +0200 Subject: [PATCH 05/37] Update Iris.java --- src/main/java/com/volmit/iris/Iris.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index 3c22fc181..88d0d5ce4 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -320,7 +320,7 @@ public class Iris extends VolmitPlugin implements Listener { IrisSettings.invalidate(); IrisSettings.get(); configWatcher.checkModified(); - Iris.info("Hotloaded settings.json + " "); //The extra space stops a bug from repeating the last letter + Iris.info("Hotloaded settings.json "); } } From ca96b45637b124a6de8a79435c723451b219911c Mon Sep 17 00:00:00 2001 From: CocoTheOwner Date: Wed, 1 Sep 2021 16:27:42 +0200 Subject: [PATCH 06/37] Fix weird --- .../com/volmit/iris/engine/platform/BukkitChunkGenerator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java index 84e196154..311af4b27 100644 --- a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java +++ b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java @@ -117,7 +117,7 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun IrisDimension test = IrisData.loadAnyDimension(dimensionKey); if (test != null) { - Iris.warn("Looks like " + dimensionKey + " exists in " + test.getLoadFile().getPath()); + Iris.warn("Looks like " + dimensionKey + " exists in " + test.getLoadFile().getPath() + " "); Iris.service(StudioSVC.class).installIntoWorld(Iris.getSender(), dimensionKey, dataLocation.getParentFile().getParentFile()); Iris.warn("Attempted to install into " + data.getDataFolder().getPath()); data.dump(); From 44c807aedd0b03ee778fa6b1240e0e616ebacf49 Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 10:27:41 -0800 Subject: [PATCH 07/37] Interpolator as registry --- .../iris/engine/object/IrisInterpolator.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java b/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java index f4997f832..8d5e4b055 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java @@ -18,10 +18,13 @@ package com.volmit.iris.engine.object; +import com.volmit.iris.core.loader.IrisRegistrant; import com.volmit.iris.engine.object.annotations.*; import com.volmit.iris.util.function.NoiseProvider; import com.volmit.iris.util.interpolation.InterpolationMethod; import com.volmit.iris.util.interpolation.IrisInterpolation; +import com.volmit.iris.util.json.JSONObject; +import com.volmit.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -33,7 +36,7 @@ import lombok.experimental.Accessors; @AllArgsConstructor @Desc("Configures rotation for iris") @Data -public class IrisInterpolator { +public class IrisInterpolator extends IrisRegistrant { @Required @Desc("The interpolation method when two biomes use different heights but this same generator") private InterpolationMethod function = InterpolationMethod.BILINEAR_STARCAST_6; @@ -51,4 +54,19 @@ public class IrisInterpolator { public double interpolate(int x, int z, NoiseProvider provider) { return IrisInterpolation.getNoise(getFunction(), x, z, getHorizontalScale(), provider); } + + @Override + public String getFolderName() { + return "interpolators"; + } + + @Override + public String getTypeName() { + return "Interpolator"; + } + + @Override + public void scanForErrors(JSONObject p, VolmitSender sender) { + + } } From d763967d4bdd88269abfaeddaae4fdc3d152d0aa Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 10:27:49 -0800 Subject: [PATCH 08/37] Cleanup --- src/main/java/com/volmit/iris/Iris.java | 12 +--- .../iris/core/commands/CommandObject.java | 8 +-- .../iris/core/commands/CommandStudio.java | 17 +---- .../iris/core/commands/CommandWhat.java | 6 +- .../volmit/iris/core/edit/BlockSignal.java | 1 + .../volmit/iris/core/edit/DustRevealer.java | 10 +-- .../volmit/iris/core/edit/JigsawEditor.java | 6 +- .../com/volmit/iris/core/gui/VisionGUI.java | 2 +- .../com/volmit/iris/core/loader/IrisData.java | 63 ++++--------------- .../iris/core/loader/IrisRegistrant.java | 5 +- .../iris/core/loader/ResourceLoader.java | 6 -- .../com/volmit/iris/core/pack/IrisPack.java | 2 +- .../volmit/iris/core/project/IrisProject.java | 30 ++------- .../iris/core/project/SchemaBuilder.java | 13 ++-- .../volmit/iris/core/service/BoardSVC.java | 3 +- .../volmit/iris/core/service/CommandSVC.java | 10 +-- .../iris/core/service/ConversionSVC.java | 7 +-- .../com/volmit/iris/core/service/TreeSVC.java | 9 +-- .../iris/core/tools/IrisWorldCreator.java | 2 +- .../com/volmit/iris/engine/IrisComplex.java | 8 +-- .../com/volmit/iris/engine/IrisEngine.java | 9 +-- .../volmit/iris/engine/IrisEngineEffects.java | 1 - .../volmit/iris/engine/IrisEngineMantle.java | 9 +-- .../volmit/iris/engine/IrisWorldManager.java | 16 +---- .../volmit/iris/engine/framework/Engine.java | 13 +--- .../framework/EngineAssignedModifier.java | 8 +-- .../iris/engine/framework/EngineTarget.java | 2 +- .../iris/engine/framework/LootProvider.java | 2 +- .../iris/engine/jigsaw/PlannedPiece.java | 11 +--- .../iris/engine/mantle/EngineMantle.java | 7 +-- .../iris/engine/mantle/MantleWriter.java | 4 +- .../components/MantleJigsawComponent.java | 8 +-- .../components/MantleObjectComponent.java | 8 +-- .../engine/modifier/IrisCarveModifier.java | 29 +++------ .../volmit/iris/engine/object/IrisCave.java | 26 +++----- .../iris/engine/object/IrisCavePlacer.java | 4 +- .../object/IrisEngineSpawnerCooldown.java | 1 - .../volmit/iris/engine/object/IrisEntity.java | 12 ++-- .../iris/engine/object/IrisEntitySpawn.java | 3 - .../engine/object/IrisModBiomeReplacer.java | 1 - .../iris/engine/object/IrisObjectLoot.java | 2 - .../iris/engine/object/IrisObjectReplace.java | 2 - .../volmit/iris/engine/object/IrisRavine.java | 48 ++++++-------- .../engine/object/annotations/Snippet.java | 2 +- .../engine/platform/BukkitChunkGenerator.java | 2 +- .../util/decree/DecreeParameterHandler.java | 2 +- .../volmit/iris/util/decree/DecreeSystem.java | 33 ++++------ .../util/decree/handlers/BiomeHandler.java | 16 ++--- .../decree/handlers/DimensionHandler.java | 16 ++--- .../util/decree/handlers/EntityHandler.java | 16 ++--- .../decree/handlers/GeneratorHandler.java | 16 ++--- .../util/decree/handlers/PlayerHandler.java | 16 ++--- .../util/decree/handlers/RegionHandler.java | 16 ++--- .../util/decree/handlers/ScriptHandler.java | 16 ++--- .../util/decree/handlers/WorldHandler.java | 16 ++--- .../decree/specialhandlers/ObjectHandler.java | 16 ++--- .../decree/virtual/VirtualDecreeCommand.java | 50 ++++++--------- .../volmit/iris/util/io/ReactiveFolder.java | 10 +-- .../volmit/iris/util/matter/MatterMarker.java | 1 - .../com/volmit/iris/util/plugin/Chunks.java | 29 ++++----- .../volmit/iris/util/plugin/VolmitSender.java | 42 +++++-------- 61 files changed, 208 insertions(+), 553 deletions(-) diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index aa9b4c0ad..ab5095a96 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -26,11 +26,7 @@ import com.volmit.iris.core.link.OraxenLink; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomeCustom; -import com.volmit.iris.engine.object.IrisWorld; -import com.volmit.iris.engine.object.IrisCompat; -import com.volmit.iris.engine.object.IrisDimension; +import com.volmit.iris.engine.object.*; import com.volmit.iris.engine.platform.BukkitChunkGenerator; import com.volmit.iris.engine.platform.DummyChunkGenerator; import com.volmit.iris.util.collection.KList; @@ -281,8 +277,7 @@ public class Iris extends VolmitPlugin implements Listener { if (j.getName().endsWith(".json")) { IrisDimension dim = data.getDimensionLoader().load(j.getName().split("\\Q.\\E")[0]); - if(dim == null) - { + if (dim == null) { continue; } @@ -381,8 +376,7 @@ public class Iris extends VolmitPlugin implements Listener { if (j.getName().endsWith(".json")) { IrisDimension dim = data.getDimensionLoader().load(j.getName().split("\\Q.\\E")[0]); - if(dim == null) - { + if (dim == null) { Iris.error("Failed to load " + j.getPath()); continue; } diff --git a/src/main/java/com/volmit/iris/core/commands/CommandObject.java b/src/main/java/com/volmit/iris/core/commands/CommandObject.java index d5f842d4a..06384b16f 100644 --- a/src/main/java/com/volmit/iris/core/commands/CommandObject.java +++ b/src/main/java/com/volmit/iris/core/commands/CommandObject.java @@ -5,13 +5,7 @@ import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.core.service.ObjectSVC; import com.volmit.iris.core.service.StudioSVC; import com.volmit.iris.core.service.WandSVC; -import com.volmit.iris.engine.object.IObjectPlacer; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisObjectPlacement; -import com.volmit.iris.engine.object.IrisObjectPlacementScaleInterpolator; -import com.volmit.iris.engine.object.IrisObjectRotation; -import com.volmit.iris.engine.object.TileData; +import com.volmit.iris.engine.object.*; import com.volmit.iris.util.data.Cuboid; import com.volmit.iris.util.decree.DecreeExecutor; import com.volmit.iris.util.decree.DecreeOrigin; diff --git a/src/main/java/com/volmit/iris/core/commands/CommandStudio.java b/src/main/java/com/volmit/iris/core/commands/CommandStudio.java index 2ab74fa5c..ff7885728 100644 --- a/src/main/java/com/volmit/iris/core/commands/CommandStudio.java +++ b/src/main/java/com/volmit/iris/core/commands/CommandStudio.java @@ -29,22 +29,7 @@ import com.volmit.iris.core.service.ConversionSVC; import com.volmit.iris.core.service.StudioSVC; import com.volmit.iris.core.tools.IrisToolbelt; import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomePaletteLayer; -import com.volmit.iris.engine.object.IrisScript; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.object.IrisEntity; -import com.volmit.iris.engine.object.IrisFeaturePositional; -import com.volmit.iris.engine.object.IrisLootTable; -import com.volmit.iris.engine.object.InventorySlotType; -import com.volmit.iris.engine.object.IrisGenerator; -import com.volmit.iris.engine.object.IrisInterpolator; -import com.volmit.iris.engine.object.IrisNoiseGenerator; -import com.volmit.iris.engine.object.NoiseStyle; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisObjectPlacement; -import com.volmit.iris.engine.object.IrisRegion; +import com.volmit.iris.engine.object.*; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KSet; diff --git a/src/main/java/com/volmit/iris/core/commands/CommandWhat.java b/src/main/java/com/volmit/iris/core/commands/CommandWhat.java index 7caaea96c..e5685d5b0 100644 --- a/src/main/java/com/volmit/iris/core/commands/CommandWhat.java +++ b/src/main/java/com/volmit/iris/core/commands/CommandWhat.java @@ -134,10 +134,8 @@ public class CommandWhat implements DecreeExecutor { int m = 1; AtomicInteger v = new AtomicInteger(0); - for(int xxx = c.getX() - 4; xxx <= c.getX() + 4; xxx++) - { - for(int zzz = c.getZ() - 4; zzz <= c.getZ() + 4; zzz++) - { + for (int xxx = c.getX() - 4; xxx <= c.getX() + 4; xxx++) { + for (int zzz = c.getZ() - 4; zzz <= c.getZ() + 4; zzz++) { IrisToolbelt.access(c.getWorld()).getEngine().getMantle().findMarkers(xxx, zzz, new MatterMarker(marker)) .convert((i) -> i.toLocation(c.getWorld())).forEach((i) -> { J.s(() -> BlockSignal.of(i.getBlock(), 100)); diff --git a/src/main/java/com/volmit/iris/core/edit/BlockSignal.java b/src/main/java/com/volmit/iris/core/edit/BlockSignal.java index 1483dea6a..9d2ad94f5 100644 --- a/src/main/java/com/volmit/iris/core/edit/BlockSignal.java +++ b/src/main/java/com/volmit/iris/core/edit/BlockSignal.java @@ -33,6 +33,7 @@ import java.util.concurrent.atomic.AtomicInteger; @SuppressWarnings("InstantiationOfUtilityClass") public class BlockSignal { public static final AtomicInteger active = new AtomicInteger(0); + public static void of(Block block, int ticks) { new BlockSignal(block, ticks); } diff --git a/src/main/java/com/volmit/iris/core/edit/DustRevealer.java b/src/main/java/com/volmit/iris/core/edit/DustRevealer.java index 43d9e154d..1cff294c8 100644 --- a/src/main/java/com/volmit/iris/core/edit/DustRevealer.java +++ b/src/main/java/com/volmit/iris/core/edit/DustRevealer.java @@ -32,8 +32,6 @@ import org.bukkit.Sound; import org.bukkit.World; import org.bukkit.block.Block; -import java.util.concurrent.atomic.AtomicInteger; - @SuppressWarnings("ALL") @Data public class DustRevealer { @@ -70,13 +68,11 @@ public class DustRevealer { J.s(() -> { new BlockSignal(world.getBlockAt(block.getX(), block.getY(), block.getZ()), 7); - if(M.r(0.25)) - { + if (M.r(0.25)) { world.playSound(block.toBlock(world).getLocation(), Sound.BLOCK_AMETHYST_BLOCK_CHIME, 1f, RNG.r.f(0.2f, 2f)); } J.a(() -> { - while(BlockSignal.active.get() > 128) - { + while (BlockSignal.active.get() > 128) { J.sleep(5); } @@ -112,7 +108,7 @@ public class DustRevealer { e.printStackTrace(); } }); - }, RNG.r.i(2,8)); + }, RNG.r.i(2, 8)); } private boolean is(BlockPosition a) { diff --git a/src/main/java/com/volmit/iris/core/edit/JigsawEditor.java b/src/main/java/com/volmit/iris/core/edit/JigsawEditor.java index b88f01d0e..bb82f77aa 100644 --- a/src/main/java/com/volmit/iris/core/edit/JigsawEditor.java +++ b/src/main/java/com/volmit/iris/core/edit/JigsawEditor.java @@ -21,11 +21,7 @@ package com.volmit.iris.core.edit; import com.google.gson.Gson; import com.volmit.iris.Iris; import com.volmit.iris.core.service.WandSVC; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.engine.object.IrisJigsawPiece; -import com.volmit.iris.engine.object.IrisJigsawPieceConnector; -import com.volmit.iris.engine.object.IrisDirection; -import com.volmit.iris.engine.object.IrisObject; +import com.volmit.iris.engine.object.*; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.data.Cuboid; import com.volmit.iris.util.io.IO; diff --git a/src/main/java/com/volmit/iris/core/gui/VisionGUI.java b/src/main/java/com/volmit/iris/core/gui/VisionGUI.java index 7c8bfeea3..f0862d4dd 100644 --- a/src/main/java/com/volmit/iris/core/gui/VisionGUI.java +++ b/src/main/java/com/volmit/iris/core/gui/VisionGUI.java @@ -25,8 +25,8 @@ import com.volmit.iris.core.tools.IrisToolbelt; import com.volmit.iris.engine.IrisComplex; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisWorld; import com.volmit.iris.engine.object.IrisRegion; +import com.volmit.iris.engine.object.IrisWorld; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KSet; diff --git a/src/main/java/com/volmit/iris/core/loader/IrisData.java b/src/main/java/com/volmit/iris/core/loader/IrisData.java index 006e18f9e..a6e51aa2e 100644 --- a/src/main/java/com/volmit/iris/core/loader/IrisData.java +++ b/src/main/java/com/volmit/iris/core/loader/IrisData.java @@ -26,24 +26,8 @@ import com.google.gson.stream.JsonWriter; import com.volmit.iris.Iris; import com.volmit.iris.engine.data.cache.AtomicCache; import com.volmit.iris.engine.framework.Engine; +import com.volmit.iris.engine.object.*; import com.volmit.iris.engine.object.annotations.Snippet; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBlockData; -import com.volmit.iris.engine.object.IrisCave; -import com.volmit.iris.engine.object.IrisRavine; -import com.volmit.iris.engine.object.IrisScript; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.object.IrisEntity; -import com.volmit.iris.engine.object.IrisJigsawPiece; -import com.volmit.iris.engine.object.IrisJigsawPool; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisLootTable; -import com.volmit.iris.engine.object.IrisMod; -import com.volmit.iris.engine.object.IrisExpression; -import com.volmit.iris.engine.object.IrisGenerator; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.engine.object.IrisSpawner; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.context.IrisContext; @@ -56,7 +40,6 @@ import lombok.Data; import java.io.File; import java.io.FileReader; import java.io.IOException; -import java.lang.reflect.InvocationTargetException; import java.util.Objects; import java.util.function.Function; @@ -372,13 +355,9 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory { @Override public boolean shouldSkipClass(Class c) { - if(c.equals(AtomicCache.class)) - { + if (c.equals(AtomicCache.class)) { return true; - } - - else if(c.equals(ChronoLatch.class)) - { + } else if (c.equals(ChronoLatch.class)) { return true; } @@ -387,8 +366,7 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory { @Override public TypeAdapter create(Gson gson, TypeToken typeToken) { - if(!typeToken.getRawType().isAnnotationPresent(Snippet.class)) - { + if (!typeToken.getRawType().isAnnotationPresent(Snippet.class)) { return null; } @@ -407,26 +385,17 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory { if (reader.peek().equals(JsonToken.STRING)) { String r = reader.nextString(); - if(r.startsWith("snippet/" + snippetType + "/")) - { + if (r.startsWith("snippet/" + snippetType + "/")) { File f = new File(getDataFolder(), r + ".json"); - if(f.exists()) - { - try - { + if (f.exists()) { + try { JsonReader snippetReader = new JsonReader(new FileReader(f)); return adapter.read(snippetReader); - } - - catch(Throwable e) - { + } catch (Throwable e) { Iris.error("Couldn't read snippet " + r + " in " + reader.getPath() + " (" + e.getMessage() + ")"); } - } - - else - { + } else { Iris.error("Couldn't find snippet " + r + " in " + reader.getPath()); } } @@ -434,13 +403,9 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory { return null; } - try - { + try { return adapter.read(reader); - } - - catch(Throwable e) - { + } catch (Throwable e) { Iris.error("Failed to read " + typeToken.getRawType().getCanonicalName() + "... faking objects a little to load the file at least."); try { return (T) typeToken.getRawType().getConstructor().newInstance(); @@ -459,10 +424,8 @@ public class IrisData implements ExclusionStrategy, TypeAdapterFactory { File snippetFolder = new File(getDataFolder(), "snippet/" + f); - if(snippetFolder.exists() && snippetFolder.isDirectory()) - { - for(File i : snippetFolder.listFiles()) - { + if (snippetFolder.exists() && snippetFolder.isDirectory()) { + for (File i : snippetFolder.listFiles()) { l.add("snippet/" + f + "/" + i.getName().split("\\Q.\\E")[0]); } } diff --git a/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java b/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java index c1bc11337..3797c14c1 100644 --- a/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java +++ b/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java @@ -20,10 +20,10 @@ package com.volmit.iris.core.loader; import com.google.gson.GsonBuilder; import com.volmit.iris.Iris; +import com.volmit.iris.engine.object.IrisScript; import com.volmit.iris.engine.object.annotations.ArrayType; import com.volmit.iris.engine.object.annotations.Desc; import com.volmit.iris.engine.object.annotations.RegistryListResource; -import com.volmit.iris.engine.object.IrisScript; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.json.JSONObject; import com.volmit.iris.util.plugin.VolmitSender; @@ -49,8 +49,7 @@ public abstract class IrisRegistrant { public abstract String getTypeName(); - public void registerTypeAdapters(GsonBuilder builder) - { + public void registerTypeAdapters(GsonBuilder builder) { } diff --git a/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java b/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java index d76619eb6..78b1ab5fc 100644 --- a/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java +++ b/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java @@ -19,13 +19,8 @@ package com.volmit.iris.core.loader; import com.google.common.util.concurrent.AtomicDouble; -import com.google.gson.ExclusionStrategy; -import com.google.gson.FieldAttributes; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; import com.volmit.iris.Iris; import com.volmit.iris.core.project.SchemaBuilder; -import com.volmit.iris.engine.data.cache.AtomicCache; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KSet; @@ -41,7 +36,6 @@ import com.volmit.iris.util.scheduling.PrecisionStopwatch; import lombok.Data; import java.io.File; -import java.lang.reflect.Field; import java.util.Locale; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; diff --git a/src/main/java/com/volmit/iris/core/pack/IrisPack.java b/src/main/java/com/volmit/iris/core/pack/IrisPack.java index e59ae014a..57da51085 100644 --- a/src/main/java/com/volmit/iris/core/pack/IrisPack.java +++ b/src/main/java/com/volmit/iris/core/pack/IrisPack.java @@ -22,8 +22,8 @@ import com.volmit.iris.Iris; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.core.loader.ResourceLoader; import com.volmit.iris.core.service.StudioSVC; -import com.volmit.iris.engine.object.IrisWorld; import com.volmit.iris.engine.object.IrisDimension; +import com.volmit.iris.engine.object.IrisWorld; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.exceptions.IrisException; import com.volmit.iris.util.format.Form; diff --git a/src/main/java/com/volmit/iris/core/project/IrisProject.java b/src/main/java/com/volmit/iris/core/project/IrisProject.java index 7c9ed8bb9..7ba21934b 100644 --- a/src/main/java/com/volmit/iris/core/project/IrisProject.java +++ b/src/main/java/com/volmit/iris/core/project/IrisProject.java @@ -25,16 +25,7 @@ import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.core.loader.IrisRegistrant; import com.volmit.iris.core.loader.ResourceLoader; import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBlockData; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.object.IrisEntity; -import com.volmit.iris.engine.object.IrisLootTable; -import com.volmit.iris.engine.object.IrisGenerator; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisObjectPlacement; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.engine.object.IrisSpawner; +import com.volmit.iris.engine.object.*; import com.volmit.iris.engine.object.annotations.Snippet; import com.volmit.iris.engine.platform.PlatformChunkGenerator; import com.volmit.iris.util.collection.KList; @@ -276,10 +267,8 @@ public class IrisProject { } } - for(Class i : Iris.getClasses("com.volmit.iris.engine.object.", Snippet.class)) - { - try - { + for (Class i : Iris.getClasses("com.volmit.iris.engine.object.", Snippet.class)) { + try { String snipType = i.getDeclaredAnnotation(Snippet.class).value(); JSONObject o = new JSONObject(); KList fm = new KList<>(); @@ -293,20 +282,13 @@ public class IrisProject { schemas.put(o); File a = new File(dm.getDataFolder(), ".iris/schema/snippet/" + snipType + "-schema.json"); J.attemptAsync(() -> { - try - { + try { IO.writeAll(a, new SchemaBuilder(i, dm).compute().toString(4)); - } - - catch(Throwable e) - { + } catch (Throwable e) { e.printStackTrace(); } }); - } - - catch(Throwable e) - { + } catch (Throwable e) { e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java b/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java index c7912750f..ef1a364d2 100644 --- a/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java +++ b/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java @@ -131,8 +131,7 @@ public class SchemaBuilder { o.put("properties", properties); - if(c.isAnnotationPresent(Snippet.class)) - { + if (c.isAnnotationPresent(Snippet.class)) { JSONObject anyOf = new JSONObject(); JSONArray arr = new JSONArray(); JSONObject str = new JSONObject(); @@ -533,8 +532,7 @@ public class SchemaBuilder { d.add(fancyType); d.add(getDescription(k.getType())); - if(k.getType().isAnnotationPresent(Snippet.class)) - { + if (k.getType().isAnnotationPresent(Snippet.class)) { String sm = k.getType().getDeclaredAnnotation(Snippet.class).value(); d.add(" "); d.add("You can instead specify \"snippet/" + sm + "/some-name.json\" to use a snippet file instead of specifying it here."); @@ -556,7 +554,7 @@ public class SchemaBuilder { d.add("* Default Value is " + value); } } - } catch (Throwable ignored) { + } catch (Throwable ignored) { } @@ -564,14 +562,13 @@ public class SchemaBuilder { prop.put("type", type); prop.put("description", d.toString("\n")); - if(k.getType().isAnnotationPresent(Snippet.class)) - { + if (k.getType().isAnnotationPresent(Snippet.class)) { JSONObject anyOf = new JSONObject(); JSONArray arr = new JSONArray(); JSONObject str = new JSONObject(); str.put("type", "string"); String key = "enum-snippet-" + k.getType().getDeclaredAnnotation(Snippet.class).value(); - str.put("$ref", "#/definitions/"+key); + str.put("$ref", "#/definitions/" + key); if (!definitions.containsKey(key)) { JSONObject j = new JSONObject(); diff --git a/src/main/java/com/volmit/iris/core/service/BoardSVC.java b/src/main/java/com/volmit/iris/core/service/BoardSVC.java index fc6950b07..6ed7a44fe 100644 --- a/src/main/java/com/volmit/iris/core/service/BoardSVC.java +++ b/src/main/java/com/volmit/iris/core/service/BoardSVC.java @@ -152,8 +152,7 @@ public class BoardSVC implements IrisService, BoardProvider { v.add(C.LIGHT_PURPLE + "Tasks" + C.GRAY + ": " + Form.f(Iris.jobCount())); } - if(engine.getBlockUpdatesPerSecond() > 0) - { + if (engine.getBlockUpdatesPerSecond() > 0) { v.add("&7&m------------------"); v.add(C.LIGHT_PURPLE + "BUD/s" + C.GRAY + ": " + Form.f(engine.getBlockUpdatesPerSecond())); } diff --git a/src/main/java/com/volmit/iris/core/service/CommandSVC.java b/src/main/java/com/volmit/iris/core/service/CommandSVC.java index 2c5b2478e..2de28725d 100644 --- a/src/main/java/com/volmit/iris/core/service/CommandSVC.java +++ b/src/main/java/com/volmit/iris/core/service/CommandSVC.java @@ -19,7 +19,6 @@ package com.volmit.iris.core.service; import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.commands.CommandIris; import com.volmit.iris.engine.data.cache.AtomicCache; import com.volmit.iris.util.collection.KMap; @@ -47,17 +46,14 @@ public class CommandSVC implements IrisService, DecreeSystem { } @EventHandler - public void on(PlayerCommandPreprocessEvent e) - { + public void on(PlayerCommandPreprocessEvent e) { String msg = e.getMessage().startsWith("/") ? e.getMessage().substring(1) : e.getMessage(); - if(msg.startsWith("irisdecree ")) - { + if (msg.startsWith("irisdecree ")) { String[] args = msg.split("\\Q \\E"); CompletableFuture future = futures.get(args[1]); - if(future != null) - { + if (future != null) { future.complete(args[2]); e.setCancelled(true); } diff --git a/src/main/java/com/volmit/iris/core/service/ConversionSVC.java b/src/main/java/com/volmit/iris/core/service/ConversionSVC.java index 68734ba5b..356dc4716 100644 --- a/src/main/java/com/volmit/iris/core/service/ConversionSVC.java +++ b/src/main/java/com/volmit/iris/core/service/ConversionSVC.java @@ -20,12 +20,7 @@ package com.volmit.iris.core.service; import com.google.gson.Gson; import com.volmit.iris.Iris; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.engine.object.IrisJigsawPiece; -import com.volmit.iris.engine.object.IrisJigsawPieceConnector; -import com.volmit.iris.engine.object.IrisJigsawPool; -import com.volmit.iris.engine.object.IrisDirection; -import com.volmit.iris.engine.object.IrisObject; +import com.volmit.iris.engine.object.*; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.format.Form; diff --git a/src/main/java/com/volmit/iris/core/service/TreeSVC.java b/src/main/java/com/volmit/iris/core/service/TreeSVC.java index 73b0120a5..9d00e830e 100644 --- a/src/main/java/com/volmit/iris/core/service/TreeSVC.java +++ b/src/main/java/com/volmit/iris/core/service/TreeSVC.java @@ -21,14 +21,7 @@ package com.volmit.iris.core.service; import com.volmit.iris.Iris; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.core.tools.IrisToolbelt; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IObjectPlacer; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisObjectPlacement; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.engine.object.TileData; -import com.volmit.iris.engine.object.IrisTreeModes; -import com.volmit.iris.engine.object.IrisTreeSize; +import com.volmit.iris.engine.object.*; import com.volmit.iris.engine.platform.PlatformChunkGenerator; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; diff --git a/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java b/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java index c42b8d15d..c05d3b0a3 100644 --- a/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java +++ b/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java @@ -19,8 +19,8 @@ package com.volmit.iris.core.tools; import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.object.IrisWorld; import com.volmit.iris.engine.object.IrisDimension; +import com.volmit.iris.engine.object.IrisWorld; import com.volmit.iris.engine.platform.BukkitChunkGenerator; import org.bukkit.World; import org.bukkit.WorldCreator; diff --git a/src/main/java/com/volmit/iris/engine/IrisComplex.java b/src/main/java/com/volmit/iris/engine/IrisComplex.java index 889844d2f..4731b4bda 100644 --- a/src/main/java/com/volmit/iris/engine/IrisComplex.java +++ b/src/main/java/com/volmit/iris/engine/IrisComplex.java @@ -22,13 +22,7 @@ import com.google.common.util.concurrent.AtomicDouble; import com.volmit.iris.Iris; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.InferredType; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisDecorationPart; -import com.volmit.iris.engine.object.IrisDecorator; -import com.volmit.iris.engine.object.IrisFeaturePositional; -import com.volmit.iris.engine.object.IrisGenerator; -import com.volmit.iris.engine.object.IrisRegion; +import com.volmit.iris.engine.object.*; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.data.DataProvider; diff --git a/src/main/java/com/volmit/iris/engine/IrisEngine.java b/src/main/java/com/volmit/iris/engine/IrisEngine.java index 456eec76c..af67b09a7 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngine.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngine.java @@ -34,11 +34,7 @@ import com.volmit.iris.engine.mantle.EngineMantle; import com.volmit.iris.engine.modifier.IrisCarveModifier; import com.volmit.iris.engine.modifier.IrisDepositModifier; import com.volmit.iris.engine.modifier.IrisPostModifier; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBiomePaletteLayer; -import com.volmit.iris.engine.object.IrisDecorator; -import com.volmit.iris.engine.object.IrisEngineData; -import com.volmit.iris.engine.object.IrisObjectPlacement; +import com.volmit.iris.engine.object.*; import com.volmit.iris.engine.scripting.EngineExecutionEnvironment; import com.volmit.iris.util.atomics.AtomicRollingSequence; import com.volmit.iris.util.collection.KMap; @@ -136,8 +132,7 @@ public class IrisEngine implements Engine { } private void tickRandomPlayer() { - if(perSecondBudLatch.flip()) - { + if (perSecondBudLatch.flip()) { buds.set(bud.get()); bud.set(0); } diff --git a/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java b/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java index a3b45b28b..8fcc6799c 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java @@ -25,7 +25,6 @@ import com.volmit.iris.engine.framework.EnginePlayer; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.math.M; import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import org.bukkit.Location; import org.bukkit.entity.Player; import java.util.List; diff --git a/src/main/java/com/volmit/iris/engine/IrisEngineMantle.java b/src/main/java/com/volmit/iris/engine/IrisEngineMantle.java index 808775b69..e1b4885cf 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngineMantle.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngineMantle.java @@ -27,14 +27,7 @@ import com.volmit.iris.engine.mantle.components.MantleCarvingComponent; import com.volmit.iris.engine.mantle.components.MantleFeatureComponent; import com.volmit.iris.engine.mantle.components.MantleJigsawComponent; import com.volmit.iris.engine.mantle.components.MantleObjectComponent; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisDepositGenerator; -import com.volmit.iris.engine.object.IrisFeaturePotential; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisObjectPlacement; -import com.volmit.iris.engine.object.IrisObjectScale; -import com.volmit.iris.engine.object.IrisRegion; +import com.volmit.iris.engine.object.*; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KSet; diff --git a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java index 1ac4030ec..be850807f 100644 --- a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java +++ b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java @@ -22,15 +22,7 @@ import com.volmit.iris.Iris; import com.volmit.iris.engine.data.cache.Cache; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.EngineAssignedWorldManager; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisBlockDrops; -import com.volmit.iris.engine.object.IRare; -import com.volmit.iris.engine.object.IrisEngineChunkData; -import com.volmit.iris.engine.object.IrisEngineData; -import com.volmit.iris.engine.object.IrisEngineSpawnerCooldown; -import com.volmit.iris.engine.object.IrisEntitySpawn; -import com.volmit.iris.engine.object.IrisRegion; -import com.volmit.iris.engine.object.IrisSpawner; +import com.volmit.iris.engine.object.*; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.format.Form; @@ -105,8 +97,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { interrupt(); } - if(!getEngine().getWorld().hasRealWorld() && clw.flip()) - { + if (!getEngine().getWorld().hasRealWorld() && clw.flip()) { getEngine().getWorld().tryGetRealWorld(); } @@ -227,8 +218,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { Chunk c = cc[RNG.r.nextInt(cc.length)]; - if(!c.isLoaded() || !Chunks.isSafe(c.getWorld(), c.getX(), c.getZ())) - { + if (!c.isLoaded() || !Chunks.isSafe(c.getWorld(), c.getX(), c.getZ())) { continue; } diff --git a/src/main/java/com/volmit/iris/engine/framework/Engine.java b/src/main/java/com/volmit/iris/engine/framework/Engine.java index 050d69e4b..5b7812483 100644 --- a/src/main/java/com/volmit/iris/engine/framework/Engine.java +++ b/src/main/java/com/volmit/iris/engine/framework/Engine.java @@ -26,18 +26,7 @@ import com.volmit.iris.engine.IrisComplex; import com.volmit.iris.engine.data.cache.Cache; import com.volmit.iris.engine.data.chunk.TerrainChunk; import com.volmit.iris.engine.mantle.EngineMantle; -import com.volmit.iris.engine.object.IrisColor; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisWorld; -import com.volmit.iris.engine.object.IrisDimension; -import com.volmit.iris.engine.object.IrisEngineData; -import com.volmit.iris.engine.object.IrisLootMode; -import com.volmit.iris.engine.object.IrisLootReference; -import com.volmit.iris.engine.object.IrisLootTable; -import com.volmit.iris.engine.object.InventorySlotType; -import com.volmit.iris.engine.object.IrisObjectPlacement; -import com.volmit.iris.engine.object.IrisRegion; +import com.volmit.iris.engine.object.*; import com.volmit.iris.engine.scripting.EngineExecutionEnvironment; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineAssignedModifier.java b/src/main/java/com/volmit/iris/engine/framework/EngineAssignedModifier.java index d39ab4d48..543a3739f 100644 --- a/src/main/java/com/volmit/iris/engine/framework/EngineAssignedModifier.java +++ b/src/main/java/com/volmit/iris/engine/framework/EngineAssignedModifier.java @@ -33,13 +33,9 @@ public abstract class EngineAssignedModifier extends EngineAssignedComponent @BlockCoordinates @Override public void modify(int x, int z, Hunk output, boolean multicore) { - try - { + try { onModify(x, z, output, multicore); - } - - catch(Throwable e) - { + } catch (Throwable e) { Iris.error("Modifier Failure: " + getName()); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java b/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java index 8665570a1..2bb7db7c2 100644 --- a/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java +++ b/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java @@ -19,8 +19,8 @@ package com.volmit.iris.engine.framework; import com.volmit.iris.core.loader.IrisData; -import com.volmit.iris.engine.object.IrisWorld; import com.volmit.iris.engine.object.IrisDimension; +import com.volmit.iris.engine.object.IrisWorld; import com.volmit.iris.util.parallel.MultiBurst; import lombok.Data; diff --git a/src/main/java/com/volmit/iris/engine/framework/LootProvider.java b/src/main/java/com/volmit/iris/engine/framework/LootProvider.java index d94a0b0ef..a3c4c2391 100644 --- a/src/main/java/com/volmit/iris/engine/framework/LootProvider.java +++ b/src/main/java/com/volmit/iris/engine/framework/LootProvider.java @@ -18,9 +18,9 @@ package com.volmit.iris.engine.framework; +import com.volmit.iris.engine.object.InventorySlotType; import com.volmit.iris.engine.object.IrisLootReference; import com.volmit.iris.engine.object.IrisLootTable; -import com.volmit.iris.engine.object.InventorySlotType; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.math.RNG; import org.bukkit.block.Block; diff --git a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java index ce50af0fc..5df15341f 100644 --- a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java +++ b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java @@ -21,16 +21,7 @@ package com.volmit.iris.engine.jigsaw; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.core.tools.IrisToolbelt; import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.engine.object.IObjectPlacer; -import com.volmit.iris.engine.object.IrisJigsawPiece; -import com.volmit.iris.engine.object.IrisJigsawPieceConnector; -import com.volmit.iris.engine.object.IrisLootTable; -import com.volmit.iris.engine.object.InventorySlotType; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisObjectRotation; -import com.volmit.iris.engine.object.IrisObjectTranslate; -import com.volmit.iris.engine.object.TileData; +import com.volmit.iris.engine.object.*; import com.volmit.iris.engine.platform.PlatformChunkGenerator; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.math.AxisAlignedBB; diff --git a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java index e8d6f86f6..051578677 100644 --- a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java +++ b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java @@ -35,7 +35,6 @@ import com.volmit.iris.util.mantle.MantleFlag; import com.volmit.iris.util.matter.Matter; import com.volmit.iris.util.matter.MatterCavern; import com.volmit.iris.util.matter.MatterMarker; -import com.volmit.iris.util.matter.slices.MarkerMatter; import com.volmit.iris.util.matter.slices.UpdateMatter; import com.volmit.iris.util.parallel.BurstExecutor; import com.volmit.iris.util.parallel.MultiBurst; @@ -65,12 +64,10 @@ public interface EngineMantle extends IObjectPlacer { } @ChunkCoordinates - default KList findMarkers(int x, int z, MatterMarker marker) - { + default KList findMarkers(int x, int z, MatterMarker marker) { KList p = new KList<>(); getMantle().iterateChunk(x, z, MatterMarker.class, (xx, yy, zz, mm) -> { - if(marker.equals(mm)) - { + if (marker.equals(mm)) { p.add(new IrisPosition(xx + (x << 4), yy, zz + (z << 4))); } }); diff --git a/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java b/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java index fa6572389..e9e297270 100644 --- a/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java +++ b/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java @@ -22,9 +22,9 @@ import com.google.common.collect.ImmutableList; import com.volmit.iris.Iris; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.engine.data.cache.Cache; -import com.volmit.iris.engine.object.IrisPosition; import com.volmit.iris.engine.object.IObjectPlacer; import com.volmit.iris.engine.object.IrisFeaturePositional; +import com.volmit.iris.engine.object.IrisPosition; import com.volmit.iris.engine.object.TileData; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KSet; @@ -475,7 +475,7 @@ public class MantleWriter implements IObjectPlacer { } } - public void setConsumer(Set positions, Function3 data) { + public void setConsumer(Set positions, Function3 data) { for (IrisPosition i : positions) { set(i, data.apply(i.getX(), i.getY(), i.getZ())); } diff --git a/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java b/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java index 67e51a29e..96a7178e7 100644 --- a/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java +++ b/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java @@ -22,13 +22,7 @@ import com.volmit.iris.engine.jigsaw.PlannedStructure; import com.volmit.iris.engine.mantle.EngineMantle; import com.volmit.iris.engine.mantle.IrisMantleComponent; import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisFeaturePositional; -import com.volmit.iris.engine.object.IrisJigsawStructure; -import com.volmit.iris.engine.object.IrisJigsawStructurePlacement; -import com.volmit.iris.engine.object.NoiseStyle; -import com.volmit.iris.engine.object.IrisRegion; +import com.volmit.iris.engine.object.*; import com.volmit.iris.util.documentation.BlockCoordinates; import com.volmit.iris.util.documentation.ChunkCoordinates; import com.volmit.iris.util.mantle.MantleFlag; diff --git a/src/main/java/com/volmit/iris/engine/mantle/components/MantleObjectComponent.java b/src/main/java/com/volmit/iris/engine/mantle/components/MantleObjectComponent.java index 10b2c22e0..73b734521 100644 --- a/src/main/java/com/volmit/iris/engine/mantle/components/MantleObjectComponent.java +++ b/src/main/java/com/volmit/iris/engine/mantle/components/MantleObjectComponent.java @@ -23,13 +23,7 @@ import com.volmit.iris.engine.data.cache.Cache; import com.volmit.iris.engine.mantle.EngineMantle; import com.volmit.iris.engine.mantle.IrisMantleComponent; import com.volmit.iris.engine.mantle.MantleWriter; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisFeature; -import com.volmit.iris.engine.object.IrisFeaturePositional; -import com.volmit.iris.engine.object.IrisFeaturePotential; -import com.volmit.iris.engine.object.IrisObject; -import com.volmit.iris.engine.object.IrisObjectPlacement; -import com.volmit.iris.engine.object.IrisRegion; +import com.volmit.iris.engine.object.*; import com.volmit.iris.util.documentation.BlockCoordinates; import com.volmit.iris.util.documentation.ChunkCoordinates; import com.volmit.iris.util.mantle.MantleFlag; diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java b/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java index 0bfeabaa0..f5b56a4bc 100644 --- a/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java +++ b/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java @@ -23,11 +23,7 @@ import com.volmit.iris.engine.actuator.IrisDecorantActuator; import com.volmit.iris.engine.data.cache.Cache; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.EngineAssignedModifier; -import com.volmit.iris.engine.object.IrisPosition; -import com.volmit.iris.engine.object.InferredType; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisDecorationPart; -import com.volmit.iris.engine.object.IrisDecorator; +import com.volmit.iris.engine.object.*; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.data.B; @@ -65,8 +61,7 @@ public class IrisCarveModifier extends EngineAssignedModifier { KMap> positions = new KMap<>(); KMap walls = new KMap<>(); Consumer4 iterator = (xx, yy, zz, c) -> { - if(c == null) - { + if (c == null) { return; } @@ -105,14 +100,10 @@ public class IrisCarveModifier extends EngineAssignedModifier { return; } - if(c.isWater()) - { - output.set(rx, yy, rz, WATER); - } - - else - { - output.set(rx, yy, rz, AIR); + if (c.isWater()) { + output.set(rx, yy, rz, WATER); + } else { + output.set(rx, yy, rz, AIR); } }; @@ -169,20 +160,18 @@ public class IrisCarveModifier extends EngineAssignedModifier { getEngine().getMetrics().getDeposit().put(p.getMilliseconds()); } - private void processZone(Hunk output, MantleChunk mc, Mantle mantle, CaveZone zone, int rx, int rz, int xx, int zz) { + private void processZone(Hunk output, MantleChunk mc, Mantle mantle, CaveZone zone, int rx, int rz, int xx, int zz) { boolean decFloor = B.isSolid(output.get(rx, zone.floor - 1, rz)); boolean decCeiling = B.isSolid(output.get(rx, zone.ceiling + 1, rz)); int center = (zone.floor + zone.ceiling) / 2; int thickness = zone.airThickness(); String customBiome = ""; - if(M.r(1D/16D)) - { + if (M.r(1D / 16D)) { mantle.set(xx, zone.ceiling, zz, MarkerMatter.CAVE_CEILING); } - if(M.r(1D/16D)) - { + if (M.r(1D / 16D)) { mantle.set(xx, zone.floor, zz, MarkerMatter.CAVE_FLOOR); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCave.java b/src/main/java/com/volmit/iris/engine/object/IrisCave.java index a8f1b8ae4..37de8a9e2 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisCave.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisCave.java @@ -74,40 +74,34 @@ public class IrisCave extends IrisRegistrant { double girth = getWorm().getGirth().get(rng, x, z, engine.getData()); KList points = getWorm().generate(rng, engine.getData(), writer, verticalRange, x, y, z, - (at) -> {}); + (at) -> { + }); int highestWater = Math.max(waterHint, -1); boolean water = false; - if(highestWater == -1) - { - for(IrisPosition i : points) - { + if (highestWater == -1) { + for (IrisPosition i : points) { double yy = i.getY() + girth; int th = engine.getHeight(x, z, true); - if(yy > th && th < engine.getDimension().getFluidHeight()) - { - highestWater = Math.max(highestWater, (int)yy); + if (yy > th && th < engine.getDimension().getFluidHeight()) { + highestWater = Math.max(highestWater, (int) yy); water = true; break; } } - } - - else - { + } else { water = true; } - int h = Math.min(Math.max(highestWater, waterHint), engine.getDimension().getFluidHeight()); + int h = Math.min(Math.max(highestWater, waterHint), engine.getDimension().getFluidHeight()); - for(IrisPosition i : points) - { + for (IrisPosition i : points) { fork.doCarving(writer, rng, engine, i.getX(), i.getY(), i.getZ(), h); } writer.setLineConsumer(points, - girth, true, + girth, true, (xf, yf, zf) -> new MatterCavern(true, customBiome, yf <= h)); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCavePlacer.java b/src/main/java/com/volmit/iris/engine/object/IrisCavePlacer.java index 9ab80a265..83b5b8f5f 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisCavePlacer.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisCavePlacer.java @@ -62,6 +62,7 @@ public class IrisCavePlacer implements IRare { public IrisCave getRealCave(IrisData data) { return caveCache.aquire(() -> data.getCaveLoader().load(getCave())); } + public void generateCave(MantleWriter mantle, RNG rng, Engine engine, int x, int y, int z) { generateCave(mantle, rng, engine, x, y, z, -1); } @@ -101,8 +102,7 @@ public class IrisCavePlacer implements IRare { public int getSize(IrisData data) { IrisCave cave = getRealCave(data); - if(cave != null) - { + if (cave != null) { return cave.getMaxSize(data); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEngineSpawnerCooldown.java b/src/main/java/com/volmit/iris/engine/object/IrisEngineSpawnerCooldown.java index 1e47506df..9c9deeadf 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisEngineSpawnerCooldown.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisEngineSpawnerCooldown.java @@ -19,7 +19,6 @@ package com.volmit.iris.engine.object; import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.IrisRate; import com.volmit.iris.util.math.M; import lombok.Data; diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEntity.java b/src/main/java/com/volmit/iris/engine/object/IrisEntity.java index cd76c2cbd..e3fb62723 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisEntity.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisEntity.java @@ -166,8 +166,7 @@ public class IrisEntity extends IrisRegistrant { } public Entity spawn(Engine gen, Location at, RNG rng) { - if(!Chunks.isSafe(at)) - { + if (!Chunks.isSafe(at)) { return null; } @@ -180,8 +179,7 @@ public class IrisEntity extends IrisRegistrant { Entity ee = doSpawn(at); - if(ee == null && !Chunks.isSafe(at)) - { + if (ee == null && !Chunks.isSafe(at)) { return null; } @@ -345,8 +343,7 @@ public class IrisEntity extends IrisRegistrant { AtomicInteger t = new AtomicInteger(0); AtomicInteger v = new AtomicInteger(0); v.set(J.sr(() -> { - if(t.get() > 100) - { + if (t.get() > 100) { J.csr(v.get()); return; } @@ -389,8 +386,7 @@ public class IrisEntity extends IrisRegistrant { } private Entity doSpawn(Location at) { - if(!Chunks.isSafe(at)) - { + if (!Chunks.isSafe(at)) { return null; } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java b/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java index 4b3cc2e32..4c35fb1e0 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java @@ -19,14 +19,11 @@ package com.volmit.iris.engine.object; import com.volmit.iris.Iris; -import com.volmit.iris.engine.IrisComplex; import com.volmit.iris.engine.data.cache.AtomicCache; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.format.C; import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.matter.MatterMarker; import com.volmit.iris.util.matter.slices.MarkerMatter; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/volmit/iris/engine/object/IrisModBiomeReplacer.java b/src/main/java/com/volmit/iris/engine/object/IrisModBiomeReplacer.java index f3e099405..ff5fae59d 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisModBiomeReplacer.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisModBiomeReplacer.java @@ -19,7 +19,6 @@ package com.volmit.iris.engine.object; import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectLoot.java b/src/main/java/com/volmit/iris/engine/object/IrisObjectLoot.java index 114a40fa5..5c57f1685 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisObjectLoot.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisObjectLoot.java @@ -21,8 +21,6 @@ package com.volmit.iris.engine.object; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.engine.data.cache.AtomicCache; import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.engine.object.IrisBlockData; -import com.volmit.iris.engine.object.IrisLootTable; import com.volmit.iris.util.collection.KList; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectReplace.java b/src/main/java/com/volmit/iris/engine/object/IrisObjectReplace.java index 7e141adfd..acfc66da7 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisObjectReplace.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisObjectReplace.java @@ -21,8 +21,6 @@ package com.volmit.iris.engine.object; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.engine.data.cache.AtomicCache; import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.engine.object.IrisBlockData; -import com.volmit.iris.engine.object.IrisMaterialPalette; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.noise.CNG; diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRavine.java b/src/main/java/com/volmit/iris/engine/object/IrisRavine.java index a0d5ccde2..03e4468d7 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisRavine.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisRavine.java @@ -88,70 +88,61 @@ public class IrisRavine extends IrisRegistrant { public String getTypeName() { return "Ravine"; } + public void generate(MantleWriter writer, RNG rng, Engine engine, int x, int y, int z) { generate(writer, rng, engine, x, y, z, -1); } public void generate(MantleWriter writer, RNG rng, Engine engine, int x, int y, int z, int waterHint) { - KList pos = getWorm().generate(rng, engine.getData(), writer, null, x, y, z, (at) -> {}); + KList pos = getWorm().generate(rng, engine.getData(), writer, null, x, y, z, (at) -> { + }); CNG dg = depthStyle.getGenerator().createNoCache(rng, engine.getData()); CNG bw = baseWidthStyle.getGenerator().createNoCache(rng, engine.getData()); int highestWater = Math.max(waterHint, -1); boolean water = false; - if(highestWater == -1) - { - for(IrisPosition i : pos) - { + if (highestWater == -1) { + for (IrisPosition i : pos) { int rsurface = y == -1 ? engine.getComplex().getHeightStream().get(x, z).intValue() : y; int depth = (int) Math.round(dg.fitDouble(depthStyle.getMin(), depthStyle.getMax(), i.getX(), i.getZ())); int surface = (int) Math.round(rsurface - depth * 0.45); int yy = surface + depth; int th = engine.getHeight(x, z, true); - if(yy > th && th < engine.getDimension().getFluidHeight()) - { + if (yy > th && th < engine.getDimension().getFluidHeight()) { highestWater = Math.max(highestWater, yy); water = true; break; } } - } - - else - { + } else { water = true; } MatterCavern c = new MatterCavern(true, customBiome, water); - if(pos.size() < nodeThreshold) - { + if (pos.size() < nodeThreshold) { return; } - for(IrisPosition p : pos) - { + for (IrisPosition p : pos) { int rsurface = y == -1 ? engine.getComplex().getHeightStream().get(x, z).intValue() : y; int depth = (int) Math.round(dg.fitDouble(depthStyle.getMin(), depthStyle.getMax(), p.getX(), p.getZ())); int width = (int) Math.round(bw.fitDouble(baseWidthStyle.getMin(), baseWidthStyle.getMax(), p.getX(), p.getZ())); int surface = (int) Math.round(rsurface - depth * 0.45); - fork.doCarving(writer, rng, engine, p.getX(), rng.i(surface-depth, surface), p.getZ(), Math.max(highestWater, waterHint)); + fork.doCarving(writer, rng, engine, p.getX(), rng.i(surface - depth, surface), p.getZ(), Math.max(highestWater, waterHint)); - for(int i = surface + depth; i >= surface; i--) - { - if(i % ribThickness == 0) { + for (int i = surface + depth; i >= surface; i--) { + if (i % ribThickness == 0) { double v = width + ((((surface + depth) - i) * (angle / 360D))); - if(v <= 0.25) - { + if (v <= 0.25) { break; } - if(i <= ribThickness+2) - { + if (i <= ribThickness + 2) { break; } @@ -159,18 +150,15 @@ public class IrisRavine extends IrisRegistrant { } } - for(int i = surface - depth; i <= surface; i++) - { - if(i % ribThickness == 0) { + for (int i = surface - depth; i <= surface; i++) { + if (i % ribThickness == 0) { double v = width - ((((surface - depth) - i) * (angle / 360D))); - if(v <= 0.25) - { + if (v <= 0.25) { break; } - if(i <= ribThickness+2) - { + if (i <= ribThickness + 2) { break; } diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/Snippet.java b/src/main/java/com/volmit/iris/engine/object/annotations/Snippet.java index aec442b0b..bd0afc43c 100644 --- a/src/main/java/com/volmit/iris/engine/object/annotations/Snippet.java +++ b/src/main/java/com/volmit/iris/engine/object/annotations/Snippet.java @@ -21,7 +21,7 @@ package com.volmit.iris.engine.object.annotations; import java.lang.annotation.Retention; import java.lang.annotation.Target; -import static java.lang.annotation.ElementType.*; +import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.RUNTIME; @Retention(RUNTIME) diff --git a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java index 84e196154..76b1daacd 100644 --- a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java +++ b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java @@ -26,8 +26,8 @@ import com.volmit.iris.engine.data.chunk.TerrainChunk; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.EngineTarget; import com.volmit.iris.engine.framework.WrongEngineBroException; -import com.volmit.iris.engine.object.IrisWorld; import com.volmit.iris.engine.object.IrisDimension; +import com.volmit.iris.engine.object.IrisWorld; import com.volmit.iris.engine.object.StudioMode; import com.volmit.iris.engine.platform.studio.StudioGenerator; import com.volmit.iris.util.collection.KList; diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java b/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java index 1ba681705..d2b06d6bf 100644 --- a/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java @@ -69,7 +69,7 @@ public interface DecreeParameterHandler { /** * Should parse a String into the designated type. You can force it to not throw a whichexception * - * @param in The string to parse + * @param in The string to parse * @param force force an option instead of throwing decreewhich * @return The value extracted from the string, of the designated type * @throws DecreeParsingException Thrown when the parsing fails (ex: "oop" translated to an integer throws this) diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java b/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java index 6c1f1dc67..09648640b 100644 --- a/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java +++ b/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java @@ -59,11 +59,9 @@ public interface DecreeSystem extends CommandExecutor, TabCompleter { KList v = getRoot().tabComplete(enhanced, enhanced.toString(" ")); v.removeDuplicates(); - if(sender instanceof Player) - { - if(IrisSettings.get().getGeneral().isCommandSounds()) - { - ((Player)sender).playSound(((Player)sender).getLocation(), Sound.BLOCK_AMETHYST_BLOCK_CHIME, 0.25f, RNG.r.f(0.125f, 1.95f)); + if (sender instanceof Player) { + if (IrisSettings.get().getGeneral().isCommandSounds()) { + ((Player) sender).playSound(((Player) sender).getLocation(), Sound.BLOCK_AMETHYST_BLOCK_CHIME, 0.25f, RNG.r.f(0.125f, 1.95f)); } } @@ -79,26 +77,19 @@ public interface DecreeSystem extends CommandExecutor, TabCompleter { J.aBukkit(() -> { if (!call(new VolmitSender(sender), args)) { - if(IrisSettings.get().getGeneral().isCommandSounds()) - { - if(sender instanceof Player) - { - ((Player)sender).playSound(((Player)sender).getLocation(), Sound.BLOCK_AMETHYST_CLUSTER_BREAK, 0.77f, 0.25f); - ((Player)sender).playSound(((Player)sender).getLocation(), Sound.BLOCK_BEACON_DEACTIVATE, 0.2f, 0.45f); + if (IrisSettings.get().getGeneral().isCommandSounds()) { + if (sender instanceof Player) { + ((Player) sender).playSound(((Player) sender).getLocation(), Sound.BLOCK_AMETHYST_CLUSTER_BREAK, 0.77f, 0.25f); + ((Player) sender).playSound(((Player) sender).getLocation(), Sound.BLOCK_BEACON_DEACTIVATE, 0.2f, 0.45f); } } sender.sendMessage(C.RED + "Unknown Iris Command"); - } - - else - { - if(IrisSettings.get().getGeneral().isCommandSounds()) - { - if(sender instanceof Player) - { - ((Player)sender).playSound(((Player)sender).getLocation(), Sound.BLOCK_AMETHYST_CLUSTER_BREAK, 0.77f, 1.65f); - ((Player)sender).playSound(((Player)sender).getLocation(), Sound.BLOCK_RESPAWN_ANCHOR_CHARGE, 0.125f, 2.99f); + } else { + if (IrisSettings.get().getGeneral().isCommandSounds()) { + if (sender instanceof Player) { + ((Player) sender).playSound(((Player) sender).getLocation(), Sound.BLOCK_AMETHYST_CLUSTER_BREAK, 0.77f, 1.65f); + ((Player) sender).playSound(((Player) sender).getLocation(), Sound.BLOCK_RESPAWN_ANCHOR_CHARGE, 0.125f, 2.99f); } } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java index ae2164bf1..445f6db3b 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java @@ -65,21 +65,13 @@ public class BiomeHandler implements DecreeParameterHandler { if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Biome \"" + in + "\""); } else if (options.size() > 1) { - if(force) - { - try - { + if (force) { + try { return options.stream().filter((i) -> toString(i).equalsIgnoreCase(in)).collect(Collectors.toList()).get(0); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to filter which Biome \"" + in + "\""); } - } - - else - { + } else { throw new DecreeWhichException(); } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java index 372e3aa7a..0d3df912f 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java @@ -62,21 +62,13 @@ public class DimensionHandler implements DecreeParameterHandler { if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Dimension \"" + in + "\""); } else if (options.size() > 1) { - if(force) - { - try - { + if (force) { + try { return options.stream().filter((i) -> toString(i).equalsIgnoreCase(in)).collect(Collectors.toList()).get(0); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to filter which Biome \"" + in + "\""); } - } - - else - { + } else { throw new DecreeWhichException(); } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java index f7e56ad81..1526eaa66 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java @@ -82,21 +82,13 @@ public class EntityHandler implements DecreeParameterHandler { if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Entity \"" + in + "\""); } else if (options.size() > 1) { - if(force) - { - try - { + if (force) { + try { return options.stream().filter((i) -> toString(i).equalsIgnoreCase(in)).collect(Collectors.toList()).get(0); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to filter which Biome \"" + in + "\""); } - } - - else - { + } else { throw new DecreeWhichException(); } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java index 0974ea4d9..062047a1c 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java @@ -62,21 +62,13 @@ public class GeneratorHandler implements DecreeParameterHandler { if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Generator \"" + in + "\""); } else if (options.size() > 1) { - if(force) - { - try - { + if (force) { + try { return options.stream().filter((i) -> toString(i).equalsIgnoreCase(in)).collect(Collectors.toList()).get(0); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to filter which Biome \"" + in + "\""); } - } - - else - { + } else { throw new DecreeWhichException(); } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java index f9b139516..c2d499c09 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java @@ -46,21 +46,13 @@ public class PlayerHandler implements DecreeParameterHandler { if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Player \"" + in + "\""); } else if (options.size() > 1) { - if(force) - { - try - { + if (force) { + try { return options.stream().filter((i) -> toString(i).equalsIgnoreCase(in)).collect(Collectors.toList()).get(0); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to filter which Biome \"" + in + "\""); } - } - - else - { + } else { throw new DecreeWhichException(); } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java index abe6018b5..ea0482516 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java @@ -65,21 +65,13 @@ public class RegionHandler implements DecreeParameterHandler { if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Region \"" + in + "\""); } else if (options.size() > 1) { - if(force) - { - try - { + if (force) { + try { return options.stream().filter((i) -> toString(i).equalsIgnoreCase(in)).collect(Collectors.toList()).get(0); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to filter which Biome \"" + in + "\""); } - } - - else - { + } else { throw new DecreeWhichException(); } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java index 7c7ac365c..eef7beb57 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java @@ -62,21 +62,13 @@ public class ScriptHandler implements DecreeParameterHandler { if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Script \"" + in + "\""); } else if (options.size() > 1) { - if(force) - { - try - { + if (force) { + try { return options.stream().filter((i) -> toString(i).equalsIgnoreCase(in)).collect(Collectors.toList()).get(0); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to filter which Biome \"" + in + "\""); } - } - - else - { + } else { throw new DecreeWhichException(); } } diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java index 3c3bf898f..c3393c17f 100644 --- a/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java @@ -51,21 +51,13 @@ public class WorldHandler implements DecreeParameterHandler { if (options.isEmpty()) { throw new DecreeParsingException("Unable to find World \"" + in + "\""); } else if (options.size() > 1) { - if(force) - { - try - { + if (force) { + try { return options.stream().filter((i) -> toString(i).equalsIgnoreCase(in)).collect(Collectors.toList()).get(0); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to filter which Biome \"" + in + "\""); } - } - - else - { + } else { throw new DecreeWhichException(); } } diff --git a/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java b/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java index 9ac6aaa58..1fd2b4252 100644 --- a/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java @@ -56,21 +56,13 @@ public class ObjectHandler implements DecreeParameterHandler { if (options.isEmpty()) { throw new DecreeParsingException("Unable to find Object \"" + in + "\""); } else if (options.size() > 1) { - if(force) - { - try - { + if (force) { + try { return options.stream().filter((i) -> toString(i).equalsIgnoreCase(in)).collect(Collectors.toList()).get(0); - } - - catch(Throwable e) - { + } catch (Throwable e) { throw new DecreeParsingException("Unable to filter which Biome \"" + in + "\""); } - } - - else - { + } else { throw new DecreeWhichException(); } } diff --git a/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java b/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java index 668231064..d26595e9a 100644 --- a/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java +++ b/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java @@ -34,18 +34,18 @@ import com.volmit.iris.util.plugin.CommandDummy; import com.volmit.iris.util.plugin.VolmitSender; import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.J; -import com.volmit.iris.util.stream.utility.SemaphoreStream; import lombok.Data; import org.bukkit.Sound; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Objects; import java.util.UUID; -import java.util.concurrent.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; @Data public class VirtualDecreeCommand { @@ -105,17 +105,14 @@ public class VirtualDecreeCommand { private ChronoLatch cl = new ChronoLatch(1000); - public void cacheAll() - { + public void cacheAll() { VolmitSender sender = new VolmitSender(new CommandDummy()); - if(isNode()) - { + if (isNode()) { J.a(() -> sender.sendDecreeHelpNode(this)); } - for(VirtualDecreeCommand j : nodes) - { + for (VirtualDecreeCommand j : nodes) { j.cacheAll(); } } @@ -286,8 +283,7 @@ public class VirtualDecreeCommand { for (int ix = 0; ix < in.size(); ix++) { String i = in.get(ix); - if(i == null) - { + if (i == null) { continue; } @@ -337,8 +333,7 @@ public class VirtualDecreeCommand { Iris.debug("Found multiple results for " + key + "=" + value + " in " + getPath() + " using the handler " + param.getHandler().getClass().getSimpleName() + " with potential matches [" + validOptions.toString(",") + "]. Asking client to define one"); String update = pickValidOption(sender, validOptions, param.getHandler(), param.getName(), param.getType().getSimpleName()); - if(update == null) - { + if (update == null) { return null; } @@ -360,8 +355,7 @@ public class VirtualDecreeCommand { KList validOptions = par.getHandler().getPossibilities(i); String update = pickValidOption(sender, validOptions, par.getHandler(), par.getName(), par.getType().getSimpleName()); - if(update == null) - { + if (update == null) { return null; } @@ -403,15 +397,10 @@ public class VirtualDecreeCommand { sender.sendDecreeHelp(this); return true; - } - - else if(args.size() == 1) - { - for(String i : args) - { - if(i.startsWith("help=")) - { - sender.sendDecreeHelp(this, Integer.parseInt(i.split("\\Q=\\E")[1])-1); + } else if (args.size() == 1) { + for (String i : args) { + if (i.startsWith("help=")) { + sender.sendDecreeHelp(this, Integer.parseInt(i.split("\\Q=\\E")[1]) - 1); return true; } } @@ -452,8 +441,7 @@ public class VirtualDecreeCommand { KList validOptions = i.getHandler().getPossibilities(i.getParam().defaultValue()); String update = pickValidOption(sender, validOptions, i.getHandler(), i.getName(), i.getType().getSimpleName()); - if(update == null) - { + if (update == null) { return false; } @@ -530,17 +518,15 @@ public class VirtualDecreeCommand { String password = UUID.randomUUID().toString().replaceAll("\\Q-\\E", ""); int m = 0; - for(String i : validOptions.convert(handler::toStringForce)) - { - sender.sendMessage( "'>"+"- " + gradients[m%gradients.length] + i + ""); + for (String i : validOptions.convert(handler::toStringForce)) { + sender.sendMessage("'>" + "- " + gradients[m % gradients.length] + i + ""); m++; } CompletableFuture future = new CompletableFuture<>(); Iris.service(CommandSVC.class).post(password, future); - if(IrisSettings.get().getGeneral().isCommandSounds() && sender.isPlayer()) - { + if (IrisSettings.get().getGeneral().isCommandSounds() && sender.isPlayer()) { (sender.player()).playSound((sender.player()).getLocation(), Sound.BLOCK_AMETHYST_CLUSTER_BREAK, 0.77f, 0.65f); (sender.player()).playSound((sender.player()).getLocation(), Sound.BLOCK_BEACON_DEACTIVATE, 0.125f, 1.99f); } diff --git a/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java b/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java index c26d5ab67..bbd385c3e 100644 --- a/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java +++ b/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java @@ -20,7 +20,6 @@ package com.volmit.iris.util.io; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.function.Consumer3; -import com.volmit.iris.util.plugin.VolmitSender; import java.io.File; @@ -48,8 +47,7 @@ public class ReactiveFolder { if (checkCycle % 3 == 0 ? fw.checkModified() : fw.checkModifiedFast()) { for (File i : fw.getCreated()) { if (i.getName().endsWith(".iob") || i.getName().endsWith(".json") || i.getName().endsWith(".js")) { - if(i.getPath().contains(".iris")) - { + if (i.getPath().contains(".iris")) { continue; } @@ -60,8 +58,7 @@ public class ReactiveFolder { if (!modified) { for (File i : fw.getChanged()) { - if(i.getPath().contains(".iris")) - { + if (i.getPath().contains(".iris")) { continue; } @@ -74,8 +71,7 @@ public class ReactiveFolder { if (!modified) { for (File i : fw.getDeleted()) { - if(i.getPath().contains(".iris")) - { + if (i.getPath().contains(".iris")) { continue; } diff --git a/src/main/java/com/volmit/iris/util/matter/MatterMarker.java b/src/main/java/com/volmit/iris/util/matter/MatterMarker.java index 9ad23b685..bae34e822 100644 --- a/src/main/java/com/volmit/iris/util/matter/MatterMarker.java +++ b/src/main/java/com/volmit/iris/util/matter/MatterMarker.java @@ -18,7 +18,6 @@ package com.volmit.iris.util.matter; -import com.volmit.iris.util.matter.slices.MarkerMatter; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/volmit/iris/util/plugin/Chunks.java b/src/main/java/com/volmit/iris/util/plugin/Chunks.java index 5ba3b0dbc..60e26c0c6 100644 --- a/src/main/java/com/volmit/iris/util/plugin/Chunks.java +++ b/src/main/java/com/volmit/iris/util/plugin/Chunks.java @@ -23,31 +23,26 @@ import org.bukkit.World; import org.bukkit.entity.Player; public class Chunks { - public static boolean isSafe(World w, int x, int z) - { + public static boolean isSafe(World w, int x, int z) { return w.isChunkLoaded(x, z) - && w.isChunkLoaded(x+1, z) - && w.isChunkLoaded(x, z+1) - && w.isChunkLoaded(x-1, z) - && w.isChunkLoaded(x, z-1) - && w.isChunkLoaded(x-1, z-1) - && w.isChunkLoaded(x+1, z+1) - && w.isChunkLoaded(x+1, z-1) - && w.isChunkLoaded(x-1, z+1); + && w.isChunkLoaded(x + 1, z) + && w.isChunkLoaded(x, z + 1) + && w.isChunkLoaded(x - 1, z) + && w.isChunkLoaded(x, z - 1) + && w.isChunkLoaded(x - 1, z - 1) + && w.isChunkLoaded(x + 1, z + 1) + && w.isChunkLoaded(x + 1, z - 1) + && w.isChunkLoaded(x - 1, z + 1); } - public static boolean isSafe(Location l) - { + public static boolean isSafe(Location l) { return isSafe(l.getWorld(), l.getBlockX() >> 4, l.getBlockZ() >> 4); } public static boolean hasPlayersNearby(Location at) { - try{ + try { return !at.getWorld().getNearbyEntities(at, 32, 32, 32, (i) -> i instanceof Player).isEmpty(); - } - - catch(Throwable ignored) - { + } catch (Throwable ignored) { return false; } } diff --git a/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java b/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java index c5bce1585..5513c3c05 100644 --- a/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java +++ b/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java @@ -42,7 +42,6 @@ import org.bukkit.permissions.Permission; import org.bukkit.permissions.PermissionAttachment; import org.bukkit.permissions.PermissionAttachmentInfo; import org.bukkit.plugin.Plugin; -import org.bukkit.util.ChatPaginator; import java.time.Duration; import java.util.Set; @@ -251,8 +250,7 @@ public class VolmitSender implements CommandSender { } private Component createNoPrefixComponent(String message) { - if(!IrisSettings.get().getGeneral().canUseCustomColors(this)) - { + if (!IrisSettings.get().getGeneral().canUseCustomColors(this)) { String t = C.translateAlternateColorCodes('&', MiniMessage.get().stripTokens(message)); return MiniMessage.get().parse(t); } @@ -267,8 +265,7 @@ public class VolmitSender implements CommandSender { } private Component createComponent(String message) { - if(!IrisSettings.get().getGeneral().canUseCustomColors(this)) - { + if (!IrisSettings.get().getGeneral().canUseCustomColors(this)) { String t = C.translateAlternateColorCodes('&', MiniMessage.get().stripTokens(getTag() + message)); return MiniMessage.get().parse(t); } @@ -279,8 +276,7 @@ public class VolmitSender implements CommandSender { } private Component createComponentRaw(String message) { - if(!IrisSettings.get().getGeneral().canUseCustomColors(this)) - { + if (!IrisSettings.get().getGeneral().canUseCustomColors(this)) { String t = C.translateAlternateColorCodes('&', MiniMessage.get().stripTokens(getTag() + message)); return MiniMessage.get().parse(t); } @@ -315,8 +311,7 @@ public class VolmitSender implements CommandSender { @Override public void sendMessage(String message) { - if(s instanceof CommandDummy) - { + if (s instanceof CommandDummy) { return; } @@ -341,8 +336,7 @@ public class VolmitSender implements CommandSender { } public void sendMessageRaw(String message) { - if(s instanceof CommandDummy) - { + if (s instanceof CommandDummy) { return; } @@ -445,15 +439,13 @@ public class VolmitSender implements CommandSender { } - public static KList paginate(KList all, int linesPerPage, int page, AtomicBoolean hasNext) - { - int totalPages = (int) Math.ceil((double)all.size() / linesPerPage); + public static KList paginate(KList all, int linesPerPage, int page, AtomicBoolean hasNext) { + int totalPages = (int) Math.ceil((double) all.size() / linesPerPage); page = page < 0 ? 0 : page >= totalPages ? totalPages - 1 : page; - hasNext.set(page < totalPages-1); + hasNext.set(page < totalPages - 1); KList d = new KList<>(); - for(int i = linesPerPage * page; i < Math.min(all.size(), linesPerPage * (page + 1)); i++) - { + for (int i = linesPerPage * page; i < Math.min(all.size(), linesPerPage * (page + 1)); i++) { d.add(all.get(i)); } @@ -461,8 +453,7 @@ public class VolmitSender implements CommandSender { } public void sendDecreeHelp(VirtualDecreeCommand v, int page) { - if(!isPlayer()) - { + if (!isPlayer()) { for (VirtualDecreeCommand i : v.getNodes()) { sendDecreeHelpNode(i); } @@ -475,7 +466,7 @@ public class VolmitSender implements CommandSender { sendMessageRaw("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); if (v.getNodes().isNotEmpty()) { - sendHeader(v.getPath() + (page > 0 ? (" {" + (page+1) + "}") : "")); + sendHeader(v.getPath() + (page > 0 ? (" {" + (page + 1) + "}") : "")); if (isPlayer() && v.getParent() != null) { sendMessageRaw("Click to go back to <#3299bf>" + Form.capitalize(v.getParent().getName()) + " Help" + "'><#f58571>〈 Back"); } @@ -488,16 +479,14 @@ public class VolmitSender implements CommandSender { String s = ""; int l = 75 - (page > 0 ? 10 : 0) - (next.get() ? 10 : 0); - if(page > 0) - { + if (page > 0) { s += "Click to go back to page " + page + "'>〈 Page " + page + " "; } s += "" + Form.repeat(" ", l) + ""; - if(next.get()) - { - s += " Click to go to back to page " + (page+2) + "'>Page " + (page+2) + " ❭"; + if (next.get()) { + s += " Click to go to back to page " + (page + 2) + "'>Page " + (page + 2) + " ❭"; } sendMessageRaw(s); @@ -512,8 +501,7 @@ public class VolmitSender implements CommandSender { public void sendDecreeHelpNode(VirtualDecreeCommand i) { if (isPlayer() || s instanceof CommandDummy) { sendMessageRaw(helpCache.compute(i.getPath(), (k, v) -> { - if(v != null) - { + if (v != null) { return v; } From 64fbdff13d35d5afa9824e2050751b8fadcfddd4 Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 10:46:08 -0800 Subject: [PATCH 09/37] Iris seed --- .../volmit/iris/engine/object/IrisSeed.java | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/main/java/com/volmit/iris/engine/object/IrisSeed.java diff --git a/src/main/java/com/volmit/iris/engine/object/IrisSeed.java b/src/main/java/com/volmit/iris/engine/object/IrisSeed.java new file mode 100644 index 000000000..b67506b1f --- /dev/null +++ b/src/main/java/com/volmit/iris/engine/object/IrisSeed.java @@ -0,0 +1,49 @@ +/* + * Iris is a World Generator for Minecraft Bukkit Servers + * Copyright (c) 2021 Arcane Arts (Volmit Software) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.volmit.iris.engine.object; + +import com.volmit.iris.engine.object.annotations.Desc; +import com.volmit.iris.engine.object.annotations.Snippet; +import com.volmit.iris.util.math.RNG; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Snippet("color") +@Accessors(chain = true) +@NoArgsConstructor +@Desc("Represents a color") +@Data +public class IrisSeed { + @Desc("The seed to use") + private long seed = 1337; + + @Desc("To calculate a seed Iris passes in it's natural seed for the current feature, then mixes it with your seed. Setting this to true ignores the parent seed and always uses your exact seed ignoring the input of Iris feature seeds. You can use this to match seeds on other generators.") + private boolean ignoreNaturalSeedInput = false; + + public long getSeed(long seed) + { + return (seed * 47) + getSeed() + 29334667L; + } + + public RNG rng(long inseed) + { + return new RNG(getSeed(inseed)); + } +} From 6ac4a405b5d55353f312ad1210e84be0cb9ba31c Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 10:46:17 -0800 Subject: [PATCH 10/37] Noooope --- .../iris/engine/object/IrisInterpolator.java | 22 +++---------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java b/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java index 8d5e4b055..724b72225 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java @@ -18,13 +18,10 @@ package com.volmit.iris.engine.object; -import com.volmit.iris.core.loader.IrisRegistrant; import com.volmit.iris.engine.object.annotations.*; import com.volmit.iris.util.function.NoiseProvider; import com.volmit.iris.util.interpolation.InterpolationMethod; import com.volmit.iris.util.interpolation.IrisInterpolation; -import com.volmit.iris.util.json.JSONObject; -import com.volmit.iris.util.plugin.VolmitSender; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -36,7 +33,9 @@ import lombok.experimental.Accessors; @AllArgsConstructor @Desc("Configures rotation for iris") @Data -public class IrisInterpolator extends IrisRegistrant { +public class IrisInterpolator { + public static final IrisInterpolator DEFAULT = new IrisInterpolator(); + @Required @Desc("The interpolation method when two biomes use different heights but this same generator") private InterpolationMethod function = InterpolationMethod.BILINEAR_STARCAST_6; @@ -54,19 +53,4 @@ public class IrisInterpolator extends IrisRegistrant { public double interpolate(int x, int z, NoiseProvider provider) { return IrisInterpolation.getNoise(getFunction(), x, z, getHorizontalScale(), provider); } - - @Override - public String getFolderName() { - return "interpolators"; - } - - @Override - public String getTypeName() { - return "Interpolator"; - } - - @Override - public void scanForErrors(JSONObject p, VolmitSender sender) { - - } } From 9ad9f28f3394595423b0b454bf7a39fa94533b9a Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 12:21:20 -0800 Subject: [PATCH 11/37] Fix --- src/main/java/com/volmit/iris/engine/object/IrisCave.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCave.java b/src/main/java/com/volmit/iris/engine/object/IrisCave.java index 37de8a9e2..c84b49759 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisCave.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisCave.java @@ -65,7 +65,6 @@ public class IrisCave extends IrisRegistrant { return "Cave"; } - public void generate(MantleWriter writer, RNG rng, Engine engine, int x, int y, int z) { generate(writer, rng, engine, x, y, z, -1); } From e20fa7f3a2d23858cae9fb35e37ae3f1350a57df Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 12:28:33 -0800 Subject: [PATCH 12/37] Update angle maxs for ravines --- src/main/java/com/volmit/iris/engine/object/IrisRavine.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRavine.java b/src/main/java/com/volmit/iris/engine/object/IrisRavine.java index 03e4468d7..c250d8234 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisRavine.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisRavine.java @@ -62,12 +62,12 @@ public class IrisRavine extends IrisRegistrant { private IrisShapedGeneratorStyle baseWidthStyle = new IrisShapedGeneratorStyle(NoiseStyle.PERLIN, 3, 6); @MinNumber(1) - @MaxNumber(70) + @MaxNumber(100) @Desc("The angle at which the ravine widens as it gets closer to the surface") private double angle = 18; @MinNumber(1) - @MaxNumber(70) + @MaxNumber(100) @Desc("The angle at which the ravine widens as it gets closer to the surface") private double topAngle = 38; From 963d3de7094067f0a659b2872a795fff495bd1b1 Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 12:33:53 -0800 Subject: [PATCH 13/37] Support mantle cave biome getter --- .../volmit/iris/engine/framework/Engine.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/com/volmit/iris/engine/framework/Engine.java b/src/main/java/com/volmit/iris/engine/framework/Engine.java index 5b7812483..80a13fa11 100644 --- a/src/main/java/com/volmit/iris/engine/framework/Engine.java +++ b/src/main/java/com/volmit/iris/engine/framework/Engine.java @@ -184,6 +184,23 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat return getComplex().getRegionStream().get(x, z); } + @BlockCoordinates + default IrisBiome getCaveOrMantleBiome(int x, int y, int z) { + MatterCavern m = getMantle().getMantle().get(x, y, z, MatterCavern.class); + + if(m != null && m.getCustomBiome() != null && !m.getCustomBiome().isEmpty()) + { + IrisBiome biome = getData().getBiomeLoader().load(m.getCustomBiome()); + + if(biome != null) + { + return biome; + } + } + + return getCaveBiome(x, z); + } + @BlockCoordinates default IrisBiome getCaveBiome(int x, int z) { return getComplex().getCaveBiomeStream().get(x, z); From 98d024295e832aeb99a40fbde3227c322a4fe41e Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 12:53:19 -0800 Subject: [PATCH 14/37] f --- .../volmit/iris/core/service/BoardSVC.java | 151 +++++++++--------- 1 file changed, 75 insertions(+), 76 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/service/BoardSVC.java b/src/main/java/com/volmit/iris/core/service/BoardSVC.java index 6ed7a44fe..f43f2c1db 100644 --- a/src/main/java/com/volmit/iris/core/service/BoardSVC.java +++ b/src/main/java/com/volmit/iris/core/service/BoardSVC.java @@ -27,12 +27,14 @@ import com.volmit.iris.util.board.BoardProvider; import com.volmit.iris.util.board.BoardSettings; import com.volmit.iris.util.board.ScoreDirection; import com.volmit.iris.util.collection.KList; +import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.math.RollingSequence; import com.volmit.iris.util.plugin.IrisService; import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.J; +import lombok.Data; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.boss.BarColor; @@ -41,30 +43,23 @@ import org.bukkit.boss.BossBar; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerToggleSneakEvent; import java.util.List; public class BoardSVC implements IrisService, BoardProvider { - private BossBar energyBar; private com.volmit.iris.util.board.BoardManager manager; - private String mem = "..."; - public final RollingSequence tp = new RollingSequence(100); - private final ChronoLatch cl = new ChronoLatch(1000); - private final ChronoLatch ecl = new ChronoLatch(50); + private final KMap boards = new KMap<>(); @Override public void onEnable() { - manager = new com.volmit.iris.util.board.BoardManager(Iris.instance, BoardSettings.builder() - .boardProvider(this) - .scoreDirection(ScoreDirection.DOWN) - .build()); - energyBar = Bukkit.createBossBar("Spawner Energy " + 0, BarColor.BLUE, BarStyle.SOLID); + J.ar(this::tick, 20); } @Override public void onDisable() { manager.onDisable(); - energyBar.removeAll(); + boards.clear(); } @EventHandler @@ -72,19 +67,23 @@ public class BoardSVC implements IrisService, BoardProvider { J.s(() -> updatePlayer(e.getPlayer())); } - private boolean isIrisWorld(World w) { - return IrisToolbelt.isIrisWorld(w) && IrisToolbelt.access(w).isStudio(); + @EventHandler + public void on(PlayerToggleSneakEvent e) { + PlayerBoard b = boards.get(e.getPlayer()); + + if(b != null) + { + b.update(); + } } public void updatePlayer(Player p) { - if (isIrisWorld(p.getWorld())) { + if (IrisToolbelt.isIrisStudioWorld(p.getWorld())) { manager.remove(p); manager.setup(p); - energyBar.removePlayer(p); - energyBar.addPlayer(p); } else { manager.remove(p); - energyBar.removePlayer(p); + boards.remove(p); } } @@ -93,72 +92,72 @@ public class BoardSVC implements IrisService, BoardProvider { return C.GREEN + "Iris"; } + public void tick() + { + boards.forEach((k,v) -> v.update()); + } @Override public List getLines(Player player) { - KList v = new KList<>(); + PlayerBoard pb = boards.computeIfAbsent(player, PlayerBoard::new); + synchronized (pb.lines) + { + return pb.lines; + } + } - if (!isIrisWorld(player.getWorld())) { - return v; + @Data + public static class PlayerBoard + { + private final Player player; + private final KList lines; + + public PlayerBoard(Player player) + { + this.player = player; + this.lines = new KList<>(); + update(); } - Engine engine = IrisToolbelt.access(player.getWorld()).getEngine(); + public void update() { + synchronized (lines) + { + lines.clear(); - if (cl.flip()) { - mem = Form.memSize(0, 2); + if (!IrisToolbelt.isIrisStudioWorld(player.getWorld())) { + return; + } + + Engine engine = IrisToolbelt.access(player.getWorld()).getEngine(); + int x = player.getLocation().getBlockX(); + int y = player.getLocation().getBlockY(); + int z = player.getLocation().getBlockZ(); + KList f = new KList<>(); + f.add(engine.getMantle().forEachFeature(x, z)); + + lines.add("&7&m------------------"); + lines.add(C.GREEN + "Speed" + C.GRAY + ": " + Form.f(engine.getGeneratedPerSecond(), 0) + "/s " + Form.duration(1000D / engine.getGeneratedPerSecond(), 0)); + lines.add(C.AQUA + "Cache" + C.GRAY + ": " + Form.f(IrisData.cacheSize())); + lines.add(C.AQUA + "Mantle" + C.GRAY + ": " + engine.getMantle().getLoadedRegionCount()); + lines.add("&7&m------------------"); + lines.add(C.AQUA + "Region" + C.GRAY + ": " + engine.getRegion(x, z).getName()); + lines.add(C.AQUA + "Biome" + C.GRAY + ": " + engine.getBiomeOrMantle(x, y, z).getName()); + lines.add(C.AQUA + "Height" + C.GRAY + ": " + Math.round(engine.getHeight(x, z))); + lines.add(C.AQUA + "Slope" + C.GRAY + ": " + Form.f(engine.getComplex().getSlopeStream().get(x, z), 2)); + lines.add(C.AQUA + "Features" + C.GRAY + ": " + Form.f(f.size())); + + if (Iris.jobCount() > 0) { + lines.add("&7&m------------------"); + lines.add(C.LIGHT_PURPLE + "Tasks" + C.GRAY + ": " + Form.f(Iris.jobCount())); + } + + if (engine.getBlockUpdatesPerSecond() > 0) { + lines.add("&7&m------------------"); + lines.add(C.LIGHT_PURPLE + "BUD/s" + C.GRAY + ": " + Form.f(engine.getBlockUpdatesPerSecond())); + } + + lines.add("&7&m------------------"); + } } - - int x = player.getLocation().getBlockX(); - int y = player.getLocation().getBlockY(); - int z = player.getLocation().getBlockZ(); - - if (ecl.flip()) { - energyBar.setProgress(Math.min(1000D, engine.getWorldManager().getEnergy()) / 1000D); - energyBar.setTitle("Spawner Energy: " + Form.f((int) Math.min(1000D, engine.getWorldManager().getEnergy()))); - } - - int parallaxChunks = 0; - int parallaxRegions = 0; - long memoryGuess = 0; - int loadedObjects = 0; - - loadedObjects += engine.getData().getObjectLoader().getSize(); - memoryGuess += engine.getData().getObjectLoader().getTotalStorage() * 225L; - memoryGuess += parallaxChunks * 3500L; - memoryGuess += parallaxRegions * 1700000L; - - tp.put(engine.getGeneratedPerSecond()); - - - v.add("&7&m------------------"); - v.add(C.GREEN + "Speed" + C.GRAY + ": " + Form.f(tp.getAverage(), 0) + "/s " + Form.duration(1000D / engine.getGeneratedPerSecond(), 0)); - v.add(C.GREEN + "Memory Use" + C.GRAY + ": ~" + Form.memSize(memoryGuess, 0)); - - if (engine != null) { - v.add("&7&m------------------"); - KList f = new KList<>(); - f.add(engine.getMantle().forEachFeature(x, z)); - v.add(C.AQUA + "Region" + C.GRAY + ": " + engine.getRegion(x, z).getName()); - v.add(C.AQUA + "Biome" + C.GRAY + ": " + engine.getBiome(x, y, z).getName()); - v.add(C.AQUA + "Height" + C.GRAY + ": " + Math.round(engine.getHeight(x, z))); - v.add(C.AQUA + "Slope" + C.GRAY + ": " + Form.f(engine.getComplex().getSlopeStream().get(x, z), 2)); - v.add(C.AQUA + "Features" + C.GRAY + ": " + Form.f(f.size())); - v.add(C.AQUA + "Cache" + C.GRAY + ": " + Form.f(IrisData.cacheSize())); - v.add(C.AQUA + "Sat" + C.GRAY + ": " + Form.f(engine.getWorldManager().getEntityCount()) + "e / " + Form.f(engine.getWorldManager().getChunkCount()) + "c (" + Form.pc(engine.getWorldManager().getEntitySaturation(), 0) + ")"); - } - - if (Iris.jobCount() > 0) { - v.add("&7&m------------------"); - v.add(C.LIGHT_PURPLE + "Tasks" + C.GRAY + ": " + Form.f(Iris.jobCount())); - } - - if (engine.getBlockUpdatesPerSecond() > 0) { - v.add("&7&m------------------"); - v.add(C.LIGHT_PURPLE + "BUD/s" + C.GRAY + ": " + Form.f(engine.getBlockUpdatesPerSecond())); - } - - v.add("&7&m------------------"); - - return v; } } From f867c0f8a1a389431746f377b7aa6f65beac0b3f Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 12:53:19 -0800 Subject: [PATCH 15/37] Revert "f" This reverts commit 98d024295e832aeb99a40fbde3227c322a4fe41e. --- .../volmit/iris/core/service/BoardSVC.java | 151 +++++++++--------- 1 file changed, 76 insertions(+), 75 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/service/BoardSVC.java b/src/main/java/com/volmit/iris/core/service/BoardSVC.java index f43f2c1db..6ed7a44fe 100644 --- a/src/main/java/com/volmit/iris/core/service/BoardSVC.java +++ b/src/main/java/com/volmit/iris/core/service/BoardSVC.java @@ -27,14 +27,12 @@ import com.volmit.iris.util.board.BoardProvider; import com.volmit.iris.util.board.BoardSettings; import com.volmit.iris.util.board.ScoreDirection; import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.math.RollingSequence; import com.volmit.iris.util.plugin.IrisService; import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.J; -import lombok.Data; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.boss.BarColor; @@ -43,23 +41,30 @@ import org.bukkit.boss.BossBar; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerChangedWorldEvent; -import org.bukkit.event.player.PlayerToggleSneakEvent; import java.util.List; public class BoardSVC implements IrisService, BoardProvider { + private BossBar energyBar; private com.volmit.iris.util.board.BoardManager manager; - private final KMap boards = new KMap<>(); + private String mem = "..."; + public final RollingSequence tp = new RollingSequence(100); + private final ChronoLatch cl = new ChronoLatch(1000); + private final ChronoLatch ecl = new ChronoLatch(50); @Override public void onEnable() { - J.ar(this::tick, 20); + manager = new com.volmit.iris.util.board.BoardManager(Iris.instance, BoardSettings.builder() + .boardProvider(this) + .scoreDirection(ScoreDirection.DOWN) + .build()); + energyBar = Bukkit.createBossBar("Spawner Energy " + 0, BarColor.BLUE, BarStyle.SOLID); } @Override public void onDisable() { manager.onDisable(); - boards.clear(); + energyBar.removeAll(); } @EventHandler @@ -67,23 +72,19 @@ public class BoardSVC implements IrisService, BoardProvider { J.s(() -> updatePlayer(e.getPlayer())); } - @EventHandler - public void on(PlayerToggleSneakEvent e) { - PlayerBoard b = boards.get(e.getPlayer()); - - if(b != null) - { - b.update(); - } + private boolean isIrisWorld(World w) { + return IrisToolbelt.isIrisWorld(w) && IrisToolbelt.access(w).isStudio(); } public void updatePlayer(Player p) { - if (IrisToolbelt.isIrisStudioWorld(p.getWorld())) { + if (isIrisWorld(p.getWorld())) { manager.remove(p); manager.setup(p); + energyBar.removePlayer(p); + energyBar.addPlayer(p); } else { manager.remove(p); - boards.remove(p); + energyBar.removePlayer(p); } } @@ -92,72 +93,72 @@ public class BoardSVC implements IrisService, BoardProvider { return C.GREEN + "Iris"; } - public void tick() - { - boards.forEach((k,v) -> v.update()); - } @Override public List getLines(Player player) { - PlayerBoard pb = boards.computeIfAbsent(player, PlayerBoard::new); - synchronized (pb.lines) - { - return pb.lines; - } - } + KList v = new KList<>(); - @Data - public static class PlayerBoard - { - private final Player player; - private final KList lines; - - public PlayerBoard(Player player) - { - this.player = player; - this.lines = new KList<>(); - update(); + if (!isIrisWorld(player.getWorld())) { + return v; } - public void update() { - synchronized (lines) - { - lines.clear(); + Engine engine = IrisToolbelt.access(player.getWorld()).getEngine(); - if (!IrisToolbelt.isIrisStudioWorld(player.getWorld())) { - return; - } - - Engine engine = IrisToolbelt.access(player.getWorld()).getEngine(); - int x = player.getLocation().getBlockX(); - int y = player.getLocation().getBlockY(); - int z = player.getLocation().getBlockZ(); - KList f = new KList<>(); - f.add(engine.getMantle().forEachFeature(x, z)); - - lines.add("&7&m------------------"); - lines.add(C.GREEN + "Speed" + C.GRAY + ": " + Form.f(engine.getGeneratedPerSecond(), 0) + "/s " + Form.duration(1000D / engine.getGeneratedPerSecond(), 0)); - lines.add(C.AQUA + "Cache" + C.GRAY + ": " + Form.f(IrisData.cacheSize())); - lines.add(C.AQUA + "Mantle" + C.GRAY + ": " + engine.getMantle().getLoadedRegionCount()); - lines.add("&7&m------------------"); - lines.add(C.AQUA + "Region" + C.GRAY + ": " + engine.getRegion(x, z).getName()); - lines.add(C.AQUA + "Biome" + C.GRAY + ": " + engine.getBiomeOrMantle(x, y, z).getName()); - lines.add(C.AQUA + "Height" + C.GRAY + ": " + Math.round(engine.getHeight(x, z))); - lines.add(C.AQUA + "Slope" + C.GRAY + ": " + Form.f(engine.getComplex().getSlopeStream().get(x, z), 2)); - lines.add(C.AQUA + "Features" + C.GRAY + ": " + Form.f(f.size())); - - if (Iris.jobCount() > 0) { - lines.add("&7&m------------------"); - lines.add(C.LIGHT_PURPLE + "Tasks" + C.GRAY + ": " + Form.f(Iris.jobCount())); - } - - if (engine.getBlockUpdatesPerSecond() > 0) { - lines.add("&7&m------------------"); - lines.add(C.LIGHT_PURPLE + "BUD/s" + C.GRAY + ": " + Form.f(engine.getBlockUpdatesPerSecond())); - } - - lines.add("&7&m------------------"); - } + if (cl.flip()) { + mem = Form.memSize(0, 2); } + + int x = player.getLocation().getBlockX(); + int y = player.getLocation().getBlockY(); + int z = player.getLocation().getBlockZ(); + + if (ecl.flip()) { + energyBar.setProgress(Math.min(1000D, engine.getWorldManager().getEnergy()) / 1000D); + energyBar.setTitle("Spawner Energy: " + Form.f((int) Math.min(1000D, engine.getWorldManager().getEnergy()))); + } + + int parallaxChunks = 0; + int parallaxRegions = 0; + long memoryGuess = 0; + int loadedObjects = 0; + + loadedObjects += engine.getData().getObjectLoader().getSize(); + memoryGuess += engine.getData().getObjectLoader().getTotalStorage() * 225L; + memoryGuess += parallaxChunks * 3500L; + memoryGuess += parallaxRegions * 1700000L; + + tp.put(engine.getGeneratedPerSecond()); + + + v.add("&7&m------------------"); + v.add(C.GREEN + "Speed" + C.GRAY + ": " + Form.f(tp.getAverage(), 0) + "/s " + Form.duration(1000D / engine.getGeneratedPerSecond(), 0)); + v.add(C.GREEN + "Memory Use" + C.GRAY + ": ~" + Form.memSize(memoryGuess, 0)); + + if (engine != null) { + v.add("&7&m------------------"); + KList f = new KList<>(); + f.add(engine.getMantle().forEachFeature(x, z)); + v.add(C.AQUA + "Region" + C.GRAY + ": " + engine.getRegion(x, z).getName()); + v.add(C.AQUA + "Biome" + C.GRAY + ": " + engine.getBiome(x, y, z).getName()); + v.add(C.AQUA + "Height" + C.GRAY + ": " + Math.round(engine.getHeight(x, z))); + v.add(C.AQUA + "Slope" + C.GRAY + ": " + Form.f(engine.getComplex().getSlopeStream().get(x, z), 2)); + v.add(C.AQUA + "Features" + C.GRAY + ": " + Form.f(f.size())); + v.add(C.AQUA + "Cache" + C.GRAY + ": " + Form.f(IrisData.cacheSize())); + v.add(C.AQUA + "Sat" + C.GRAY + ": " + Form.f(engine.getWorldManager().getEntityCount()) + "e / " + Form.f(engine.getWorldManager().getChunkCount()) + "c (" + Form.pc(engine.getWorldManager().getEntitySaturation(), 0) + ")"); + } + + if (Iris.jobCount() > 0) { + v.add("&7&m------------------"); + v.add(C.LIGHT_PURPLE + "Tasks" + C.GRAY + ": " + Form.f(Iris.jobCount())); + } + + if (engine.getBlockUpdatesPerSecond() > 0) { + v.add("&7&m------------------"); + v.add(C.LIGHT_PURPLE + "BUD/s" + C.GRAY + ": " + Form.f(engine.getBlockUpdatesPerSecond())); + } + + v.add("&7&m------------------"); + + return v; } } From c74d05a47b0030a0528fe0da085428e9188d5c17 Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 12:53:19 -0800 Subject: [PATCH 16/37] Revert "Revert "f"" This reverts commit f867c0f8a1a389431746f377b7aa6f65beac0b3f. --- .../volmit/iris/core/service/BoardSVC.java | 151 +++++++++--------- 1 file changed, 75 insertions(+), 76 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/service/BoardSVC.java b/src/main/java/com/volmit/iris/core/service/BoardSVC.java index 6ed7a44fe..f43f2c1db 100644 --- a/src/main/java/com/volmit/iris/core/service/BoardSVC.java +++ b/src/main/java/com/volmit/iris/core/service/BoardSVC.java @@ -27,12 +27,14 @@ import com.volmit.iris.util.board.BoardProvider; import com.volmit.iris.util.board.BoardSettings; import com.volmit.iris.util.board.ScoreDirection; import com.volmit.iris.util.collection.KList; +import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.math.RollingSequence; import com.volmit.iris.util.plugin.IrisService; import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.J; +import lombok.Data; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.boss.BarColor; @@ -41,30 +43,23 @@ import org.bukkit.boss.BossBar; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerToggleSneakEvent; import java.util.List; public class BoardSVC implements IrisService, BoardProvider { - private BossBar energyBar; private com.volmit.iris.util.board.BoardManager manager; - private String mem = "..."; - public final RollingSequence tp = new RollingSequence(100); - private final ChronoLatch cl = new ChronoLatch(1000); - private final ChronoLatch ecl = new ChronoLatch(50); + private final KMap boards = new KMap<>(); @Override public void onEnable() { - manager = new com.volmit.iris.util.board.BoardManager(Iris.instance, BoardSettings.builder() - .boardProvider(this) - .scoreDirection(ScoreDirection.DOWN) - .build()); - energyBar = Bukkit.createBossBar("Spawner Energy " + 0, BarColor.BLUE, BarStyle.SOLID); + J.ar(this::tick, 20); } @Override public void onDisable() { manager.onDisable(); - energyBar.removeAll(); + boards.clear(); } @EventHandler @@ -72,19 +67,23 @@ public class BoardSVC implements IrisService, BoardProvider { J.s(() -> updatePlayer(e.getPlayer())); } - private boolean isIrisWorld(World w) { - return IrisToolbelt.isIrisWorld(w) && IrisToolbelt.access(w).isStudio(); + @EventHandler + public void on(PlayerToggleSneakEvent e) { + PlayerBoard b = boards.get(e.getPlayer()); + + if(b != null) + { + b.update(); + } } public void updatePlayer(Player p) { - if (isIrisWorld(p.getWorld())) { + if (IrisToolbelt.isIrisStudioWorld(p.getWorld())) { manager.remove(p); manager.setup(p); - energyBar.removePlayer(p); - energyBar.addPlayer(p); } else { manager.remove(p); - energyBar.removePlayer(p); + boards.remove(p); } } @@ -93,72 +92,72 @@ public class BoardSVC implements IrisService, BoardProvider { return C.GREEN + "Iris"; } + public void tick() + { + boards.forEach((k,v) -> v.update()); + } @Override public List getLines(Player player) { - KList v = new KList<>(); + PlayerBoard pb = boards.computeIfAbsent(player, PlayerBoard::new); + synchronized (pb.lines) + { + return pb.lines; + } + } - if (!isIrisWorld(player.getWorld())) { - return v; + @Data + public static class PlayerBoard + { + private final Player player; + private final KList lines; + + public PlayerBoard(Player player) + { + this.player = player; + this.lines = new KList<>(); + update(); } - Engine engine = IrisToolbelt.access(player.getWorld()).getEngine(); + public void update() { + synchronized (lines) + { + lines.clear(); - if (cl.flip()) { - mem = Form.memSize(0, 2); + if (!IrisToolbelt.isIrisStudioWorld(player.getWorld())) { + return; + } + + Engine engine = IrisToolbelt.access(player.getWorld()).getEngine(); + int x = player.getLocation().getBlockX(); + int y = player.getLocation().getBlockY(); + int z = player.getLocation().getBlockZ(); + KList f = new KList<>(); + f.add(engine.getMantle().forEachFeature(x, z)); + + lines.add("&7&m------------------"); + lines.add(C.GREEN + "Speed" + C.GRAY + ": " + Form.f(engine.getGeneratedPerSecond(), 0) + "/s " + Form.duration(1000D / engine.getGeneratedPerSecond(), 0)); + lines.add(C.AQUA + "Cache" + C.GRAY + ": " + Form.f(IrisData.cacheSize())); + lines.add(C.AQUA + "Mantle" + C.GRAY + ": " + engine.getMantle().getLoadedRegionCount()); + lines.add("&7&m------------------"); + lines.add(C.AQUA + "Region" + C.GRAY + ": " + engine.getRegion(x, z).getName()); + lines.add(C.AQUA + "Biome" + C.GRAY + ": " + engine.getBiomeOrMantle(x, y, z).getName()); + lines.add(C.AQUA + "Height" + C.GRAY + ": " + Math.round(engine.getHeight(x, z))); + lines.add(C.AQUA + "Slope" + C.GRAY + ": " + Form.f(engine.getComplex().getSlopeStream().get(x, z), 2)); + lines.add(C.AQUA + "Features" + C.GRAY + ": " + Form.f(f.size())); + + if (Iris.jobCount() > 0) { + lines.add("&7&m------------------"); + lines.add(C.LIGHT_PURPLE + "Tasks" + C.GRAY + ": " + Form.f(Iris.jobCount())); + } + + if (engine.getBlockUpdatesPerSecond() > 0) { + lines.add("&7&m------------------"); + lines.add(C.LIGHT_PURPLE + "BUD/s" + C.GRAY + ": " + Form.f(engine.getBlockUpdatesPerSecond())); + } + + lines.add("&7&m------------------"); + } } - - int x = player.getLocation().getBlockX(); - int y = player.getLocation().getBlockY(); - int z = player.getLocation().getBlockZ(); - - if (ecl.flip()) { - energyBar.setProgress(Math.min(1000D, engine.getWorldManager().getEnergy()) / 1000D); - energyBar.setTitle("Spawner Energy: " + Form.f((int) Math.min(1000D, engine.getWorldManager().getEnergy()))); - } - - int parallaxChunks = 0; - int parallaxRegions = 0; - long memoryGuess = 0; - int loadedObjects = 0; - - loadedObjects += engine.getData().getObjectLoader().getSize(); - memoryGuess += engine.getData().getObjectLoader().getTotalStorage() * 225L; - memoryGuess += parallaxChunks * 3500L; - memoryGuess += parallaxRegions * 1700000L; - - tp.put(engine.getGeneratedPerSecond()); - - - v.add("&7&m------------------"); - v.add(C.GREEN + "Speed" + C.GRAY + ": " + Form.f(tp.getAverage(), 0) + "/s " + Form.duration(1000D / engine.getGeneratedPerSecond(), 0)); - v.add(C.GREEN + "Memory Use" + C.GRAY + ": ~" + Form.memSize(memoryGuess, 0)); - - if (engine != null) { - v.add("&7&m------------------"); - KList f = new KList<>(); - f.add(engine.getMantle().forEachFeature(x, z)); - v.add(C.AQUA + "Region" + C.GRAY + ": " + engine.getRegion(x, z).getName()); - v.add(C.AQUA + "Biome" + C.GRAY + ": " + engine.getBiome(x, y, z).getName()); - v.add(C.AQUA + "Height" + C.GRAY + ": " + Math.round(engine.getHeight(x, z))); - v.add(C.AQUA + "Slope" + C.GRAY + ": " + Form.f(engine.getComplex().getSlopeStream().get(x, z), 2)); - v.add(C.AQUA + "Features" + C.GRAY + ": " + Form.f(f.size())); - v.add(C.AQUA + "Cache" + C.GRAY + ": " + Form.f(IrisData.cacheSize())); - v.add(C.AQUA + "Sat" + C.GRAY + ": " + Form.f(engine.getWorldManager().getEntityCount()) + "e / " + Form.f(engine.getWorldManager().getChunkCount()) + "c (" + Form.pc(engine.getWorldManager().getEntitySaturation(), 0) + ")"); - } - - if (Iris.jobCount() > 0) { - v.add("&7&m------------------"); - v.add(C.LIGHT_PURPLE + "Tasks" + C.GRAY + ": " + Form.f(Iris.jobCount())); - } - - if (engine.getBlockUpdatesPerSecond() > 0) { - v.add("&7&m------------------"); - v.add(C.LIGHT_PURPLE + "BUD/s" + C.GRAY + ": " + Form.f(engine.getBlockUpdatesPerSecond())); - } - - v.add("&7&m------------------"); - - return v; } } From f93c158caa9824a17b35371d75df15415c6125fb Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 13:05:18 -0800 Subject: [PATCH 17/37] Fix board service --- .../volmit/iris/core/service/BoardSVC.java | 34 +++++++------------ 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/service/BoardSVC.java b/src/main/java/com/volmit/iris/core/service/BoardSVC.java index f43f2c1db..755e91d84 100644 --- a/src/main/java/com/volmit/iris/core/service/BoardSVC.java +++ b/src/main/java/com/volmit/iris/core/service/BoardSVC.java @@ -23,6 +23,7 @@ import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.core.tools.IrisToolbelt; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.object.IrisFeaturePositional; +import com.volmit.iris.util.board.BoardManager; import com.volmit.iris.util.board.BoardProvider; import com.volmit.iris.util.board.BoardSettings; import com.volmit.iris.util.board.ScoreDirection; @@ -35,6 +36,7 @@ import com.volmit.iris.util.plugin.IrisService; import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.J; import lombok.Data; +import net.minecraft.server.dedicated.ThreadWatchdog; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.boss.BarColor; @@ -43,6 +45,7 @@ import org.bukkit.boss.BossBar; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerChangedWorldEvent; +import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerToggleSneakEvent; import java.util.List; @@ -54,6 +57,10 @@ public class BoardSVC implements IrisService, BoardProvider { @Override public void onEnable() { J.ar(this::tick, 20); + manager = new BoardManager(Iris.instance, BoardSettings.builder() + .boardProvider(this) + .scoreDirection(ScoreDirection.DOWN) + .build()); } @Override @@ -68,13 +75,8 @@ public class BoardSVC implements IrisService, BoardProvider { } @EventHandler - public void on(PlayerToggleSneakEvent e) { - PlayerBoard b = boards.get(e.getPlayer()); - - if(b != null) - { - b.update(); - } + public void on(PlayerJoinEvent e) { + J.s(() -> updatePlayer(e.getPlayer())); } public void updatePlayer(Player p) { @@ -135,28 +137,18 @@ public class BoardSVC implements IrisService, BoardProvider { KList f = new KList<>(); f.add(engine.getMantle().forEachFeature(x, z)); - lines.add("&7&m------------------"); + lines.add("&7&m "); lines.add(C.GREEN + "Speed" + C.GRAY + ": " + Form.f(engine.getGeneratedPerSecond(), 0) + "/s " + Form.duration(1000D / engine.getGeneratedPerSecond(), 0)); lines.add(C.AQUA + "Cache" + C.GRAY + ": " + Form.f(IrisData.cacheSize())); lines.add(C.AQUA + "Mantle" + C.GRAY + ": " + engine.getMantle().getLoadedRegionCount()); - lines.add("&7&m------------------"); + lines.add("&7&m "); lines.add(C.AQUA + "Region" + C.GRAY + ": " + engine.getRegion(x, z).getName()); lines.add(C.AQUA + "Biome" + C.GRAY + ": " + engine.getBiomeOrMantle(x, y, z).getName()); lines.add(C.AQUA + "Height" + C.GRAY + ": " + Math.round(engine.getHeight(x, z))); lines.add(C.AQUA + "Slope" + C.GRAY + ": " + Form.f(engine.getComplex().getSlopeStream().get(x, z), 2)); lines.add(C.AQUA + "Features" + C.GRAY + ": " + Form.f(f.size())); - - if (Iris.jobCount() > 0) { - lines.add("&7&m------------------"); - lines.add(C.LIGHT_PURPLE + "Tasks" + C.GRAY + ": " + Form.f(Iris.jobCount())); - } - - if (engine.getBlockUpdatesPerSecond() > 0) { - lines.add("&7&m------------------"); - lines.add(C.LIGHT_PURPLE + "BUD/s" + C.GRAY + ": " + Form.f(engine.getBlockUpdatesPerSecond())); - } - - lines.add("&7&m------------------"); + lines.add(C.AQUA + "BUD/s" + C.GRAY + ": " + Form.f(engine.getBlockUpdatesPerSecond())); + lines.add("&7&m "); } } } From 67711bcb0ddea4278351b3bfe2b15eef939f0e75 Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 13:05:36 -0800 Subject: [PATCH 18/37] Fix eb & biome context --- .../volmit/iris/core/commands/CommandStudio.java | 10 +++++++++- .../com/volmit/iris/engine/framework/Engine.java | 13 +++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/volmit/iris/core/commands/CommandStudio.java b/src/main/java/com/volmit/iris/core/commands/CommandStudio.java index ff7885728..72891f843 100644 --- a/src/main/java/com/volmit/iris/core/commands/CommandStudio.java +++ b/src/main/java/com/volmit/iris/core/commands/CommandStudio.java @@ -267,9 +267,17 @@ public class CommandStudio implements DecreeExecutor { @Param(contextual = true, description = "The biome to edit") IrisBiome biome ) { - if (noStudio()) return; + if (noStudio()) { + return; + } try { + if(biome.getLoadFile() == null) + { + sender().sendMessage(C.GOLD + "Cannot find the file for the biome you are in! Perhaps it was not loaded directly from a file?"); + return; + } + Desktop.getDesktop().open(biome.getLoadFile()); } catch (Throwable e) { Iris.reportError(e); diff --git a/src/main/java/com/volmit/iris/engine/framework/Engine.java b/src/main/java/com/volmit/iris/engine/framework/Engine.java index 80a13fa11..2fc33b23a 100644 --- a/src/main/java/com/volmit/iris/engine/framework/Engine.java +++ b/src/main/java/com/volmit/iris/engine/framework/Engine.java @@ -678,6 +678,14 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat return getSurfaceBiome(x, z); } + default IrisBiome getBiomeOrMantle(int x, int y, int z) { + if (y <= getHeight(x, z) - 2) { + return getCaveOrMantleBiome(x, y, z); + } + + return getSurfaceBiome(x, z); + } + default String getObjectPlacementKey(int x, int y, int z) { PlacedObject o = getObjectPlacement(x, y, z); @@ -718,4 +726,9 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat } int getCacheID(); + + default IrisBiome getBiomeOrMantle(Location l) + { + return getBiomeOrMantle(l.getBlockX(), l.getBlockY(), l.getBlockZ()); + } } From aaffeb9fac1f720be9d8894d1c9e2128dacca4e4 Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 13:07:27 -0800 Subject: [PATCH 19/37] Studio world checker --- src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java b/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java index 7ec267ae7..4892583c1 100644 --- a/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java +++ b/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java @@ -90,6 +90,10 @@ public class IrisToolbelt { return world.getGenerator() instanceof PlatformChunkGenerator; } + public static boolean isIrisStudioWorld(World world) { + return isIrisWorld(world) && access(world).isStudio(); + } + /** * Get the Iris generator for the given world * From 7a188af00248d2f92447cf9ecb2f06049aa95a3b Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 13:07:49 -0800 Subject: [PATCH 20/37] Fixes --- .../java/com/volmit/iris/engine/mantle/EngineMantle.java | 5 +++++ src/main/java/com/volmit/iris/util/board/BoardManager.java | 2 +- .../volmit/iris/util/decree/context/BiomeContextHandler.java | 2 +- src/main/java/com/volmit/iris/util/mantle/Mantle.java | 4 ++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java index 051578677..ff93cb2ef 100644 --- a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java +++ b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java @@ -312,4 +312,9 @@ public interface EngineMantle extends IObjectPlacer { default boolean dequeueRegenerate(int x, int z) { return false;// TODO: } + + default int getLoadedRegionCount() + { + return getMantle().getLoadedRegionCount(); + } } diff --git a/src/main/java/com/volmit/iris/util/board/BoardManager.java b/src/main/java/com/volmit/iris/util/board/BoardManager.java index d4d55aaab..7f3fbdb29 100644 --- a/src/main/java/com/volmit/iris/util/board/BoardManager.java +++ b/src/main/java/com/volmit/iris/util/board/BoardManager.java @@ -48,7 +48,7 @@ public class BoardManager { this.plugin = plugin; this.boardSettings = boardSettings; this.scoreboards = new ConcurrentHashMap<>(); - this.updateTask = new BoardUpdateTask(this).runTaskTimer(plugin, 2L, 2L); + this.updateTask = new BoardUpdateTask(this).runTaskTimer(plugin, 2L, 20L); plugin.getServer().getOnlinePlayers().forEach(this::setup); } diff --git a/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java b/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java index c011c47d2..619500ac9 100644 --- a/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java +++ b/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java @@ -32,7 +32,7 @@ public class BiomeContextHandler implements DecreeContextHandler { if (sender.isPlayer() && IrisToolbelt.isIrisWorld(sender.player().getWorld()) && IrisToolbelt.access(sender.player().getWorld()).getEngine() != null) { - return IrisToolbelt.access(sender.player().getWorld()).getEngine().getBiome(sender.player().getLocation()); + return IrisToolbelt.access(sender.player().getWorld()).getEngine().getBiomeOrMantle(sender.player().getLocation()); } return null; diff --git a/src/main/java/com/volmit/iris/util/mantle/Mantle.java b/src/main/java/com/volmit/iris/util/mantle/Mantle.java index bc69b1503..1b4be5b1f 100644 --- a/src/main/java/com/volmit/iris/util/mantle/Mantle.java +++ b/src/main/java/com/volmit/iris/util/mantle/Mantle.java @@ -502,4 +502,8 @@ public class Mantle { public void deleteChunkSlice(int x, int z, Class c) { getChunk(x, z).deleteSlices(c); } + + public int getLoadedRegionCount() { + return loadedRegions.size(); + } } From 8e873ccd00e8de06006e83f266f7e118a4b2da37 Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 13:09:45 -0800 Subject: [PATCH 21/37] Cleanup --- .../iris/core/commands/CommandStudio.java | 3 +-- .../volmit/iris/core/service/BoardSVC.java | 26 +++++-------------- .../volmit/iris/engine/framework/Engine.java | 9 +++---- .../iris/engine/mantle/EngineMantle.java | 3 +-- .../volmit/iris/engine/object/IrisSeed.java | 6 ++--- 5 files changed, 13 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/commands/CommandStudio.java b/src/main/java/com/volmit/iris/core/commands/CommandStudio.java index 72891f843..aa4ae0645 100644 --- a/src/main/java/com/volmit/iris/core/commands/CommandStudio.java +++ b/src/main/java/com/volmit/iris/core/commands/CommandStudio.java @@ -272,8 +272,7 @@ public class CommandStudio implements DecreeExecutor { } try { - if(biome.getLoadFile() == null) - { + if (biome.getLoadFile() == null) { sender().sendMessage(C.GOLD + "Cannot find the file for the biome you are in! Perhaps it was not loaded directly from a file?"); return; } diff --git a/src/main/java/com/volmit/iris/core/service/BoardSVC.java b/src/main/java/com/volmit/iris/core/service/BoardSVC.java index 755e91d84..3308c3da6 100644 --- a/src/main/java/com/volmit/iris/core/service/BoardSVC.java +++ b/src/main/java/com/volmit/iris/core/service/BoardSVC.java @@ -31,22 +31,13 @@ import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.RollingSequence; import com.volmit.iris.util.plugin.IrisService; -import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.J; import lombok.Data; -import net.minecraft.server.dedicated.ThreadWatchdog; -import org.bukkit.Bukkit; -import org.bukkit.World; -import org.bukkit.boss.BarColor; -import org.bukkit.boss.BarStyle; -import org.bukkit.boss.BossBar; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerToggleSneakEvent; import java.util.List; @@ -94,36 +85,31 @@ public class BoardSVC implements IrisService, BoardProvider { return C.GREEN + "Iris"; } - public void tick() - { - boards.forEach((k,v) -> v.update()); + public void tick() { + boards.forEach((k, v) -> v.update()); } @Override public List getLines(Player player) { PlayerBoard pb = boards.computeIfAbsent(player, PlayerBoard::new); - synchronized (pb.lines) - { + synchronized (pb.lines) { return pb.lines; } } @Data - public static class PlayerBoard - { + public static class PlayerBoard { private final Player player; private final KList lines; - public PlayerBoard(Player player) - { + public PlayerBoard(Player player) { this.player = player; this.lines = new KList<>(); update(); } public void update() { - synchronized (lines) - { + synchronized (lines) { lines.clear(); if (!IrisToolbelt.isIrisStudioWorld(player.getWorld())) { diff --git a/src/main/java/com/volmit/iris/engine/framework/Engine.java b/src/main/java/com/volmit/iris/engine/framework/Engine.java index 2fc33b23a..4185dff3e 100644 --- a/src/main/java/com/volmit/iris/engine/framework/Engine.java +++ b/src/main/java/com/volmit/iris/engine/framework/Engine.java @@ -188,12 +188,10 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat default IrisBiome getCaveOrMantleBiome(int x, int y, int z) { MatterCavern m = getMantle().getMantle().get(x, y, z, MatterCavern.class); - if(m != null && m.getCustomBiome() != null && !m.getCustomBiome().isEmpty()) - { + if (m != null && m.getCustomBiome() != null && !m.getCustomBiome().isEmpty()) { IrisBiome biome = getData().getBiomeLoader().load(m.getCustomBiome()); - if(biome != null) - { + if (biome != null) { return biome; } } @@ -727,8 +725,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat int getCacheID(); - default IrisBiome getBiomeOrMantle(Location l) - { + default IrisBiome getBiomeOrMantle(Location l) { return getBiomeOrMantle(l.getBlockX(), l.getBlockY(), l.getBlockZ()); } } diff --git a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java index ff93cb2ef..936520b9c 100644 --- a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java +++ b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java @@ -313,8 +313,7 @@ public interface EngineMantle extends IObjectPlacer { return false;// TODO: } - default int getLoadedRegionCount() - { + default int getLoadedRegionCount() { return getMantle().getLoadedRegionCount(); } } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisSeed.java b/src/main/java/com/volmit/iris/engine/object/IrisSeed.java index b67506b1f..947f0c154 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisSeed.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisSeed.java @@ -37,13 +37,11 @@ public class IrisSeed { @Desc("To calculate a seed Iris passes in it's natural seed for the current feature, then mixes it with your seed. Setting this to true ignores the parent seed and always uses your exact seed ignoring the input of Iris feature seeds. You can use this to match seeds on other generators.") private boolean ignoreNaturalSeedInput = false; - public long getSeed(long seed) - { + public long getSeed(long seed) { return (seed * 47) + getSeed() + 29334667L; } - public RNG rng(long inseed) - { + public RNG rng(long inseed) { return new RNG(getSeed(inseed)); } } From 93936a749873c2999d21143099998ab4f8bb598f Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 13:26:30 -0800 Subject: [PATCH 22/37] Lava impl --- .../volmit/iris/engine/object/IrisCave.java | 28 +++++++++++++------ .../volmit/iris/engine/object/IrisRavine.java | 20 ++++++++++--- .../volmit/iris/util/matter/MatterCavern.java | 17 ++++++++++- .../iris/util/matter/slices/CavernMatter.java | 10 +++---- 4 files changed, 56 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCave.java b/src/main/java/com/volmit/iris/engine/object/IrisCave.java index c84b49759..7455901a4 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisCave.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisCave.java @@ -55,6 +55,9 @@ public class IrisCave extends IrisRegistrant { @Desc("Limit the worm from ever getting higher or lower than this range") private IrisRange verticalRange = new IrisRange(3, 255); + @Desc("To fill this cave with lava, set the lava level to a height from the bottom most point of the cave.") + private int lavaLevel = -1; + @Override public String getFolderName() { return "caves"; @@ -72,12 +75,10 @@ public class IrisCave extends IrisRegistrant { public void generate(MantleWriter writer, RNG rng, Engine engine, int x, int y, int z, int waterHint) { double girth = getWorm().getGirth().get(rng, x, z, engine.getData()); - KList points = getWorm().generate(rng, engine.getData(), writer, verticalRange, x, y, z, - (at) -> { - }); + KList points = getWorm().generate(rng, engine.getData(), writer, verticalRange, x, y, z, (at) -> {}); int highestWater = Math.max(waterHint, -1); - boolean water = false; - + int lowestPoint = Integer.MAX_VALUE; + if (highestWater == -1) { for (IrisPosition i : points) { double yy = i.getY() + girth; @@ -85,12 +86,17 @@ public class IrisCave extends IrisRegistrant { if (yy > th && th < engine.getDimension().getFluidHeight()) { highestWater = Math.max(highestWater, (int) yy); - water = true; break; } } - } else { - water = true; + } + + if(lavaLevel >= 0) + { + for(IrisPosition i : points) + { + lowestPoint = Math.min(i.getY(), lowestPoint); + } } int h = Math.min(Math.max(highestWater, waterHint), engine.getDimension().getFluidHeight()); @@ -99,9 +105,13 @@ public class IrisCave extends IrisRegistrant { fork.doCarving(writer, rng, engine, i.getX(), i.getY(), i.getZ(), h); } + MatterCavern c = new MatterCavern(true, customBiome, (byte) 0); + MatterCavern w = h >= 0 ? new MatterCavern(true, customBiome, (byte) 1) : null; + MatterCavern l = lavaLevel >= 0 ? new MatterCavern(true, customBiome, (byte) 2) : null; + int flp = lowestPoint; writer.setLineConsumer(points, girth, true, - (xf, yf, zf) -> new MatterCavern(true, customBiome, yf <= h)); + (xf, yf, zf) -> (lavaLevel + flp >= yf) ? l : (yf <= h ? w : c)); } @Override diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRavine.java b/src/main/java/com/volmit/iris/engine/object/IrisRavine.java index c250d8234..6d9bb2b93 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisRavine.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisRavine.java @@ -71,6 +71,9 @@ public class IrisRavine extends IrisRegistrant { @Desc("The angle at which the ravine widens as it gets closer to the surface") private double topAngle = 38; + @Desc("To fill this cave with lava, set the lava level to a height from the bottom most point of the cave.") + private int lavaLevel = -1; + @Desc("How many worm nodes must be placed to actually generate a ravine? Higher reduces the chances but also reduces ravine 'holes'") private int nodeThreshold = 5; @@ -94,13 +97,21 @@ public class IrisRavine extends IrisRegistrant { } public void generate(MantleWriter writer, RNG rng, Engine engine, int x, int y, int z, int waterHint) { - KList pos = getWorm().generate(rng, engine.getData(), writer, null, x, y, z, (at) -> { }); CNG dg = depthStyle.getGenerator().createNoCache(rng, engine.getData()); CNG bw = baseWidthStyle.getGenerator().createNoCache(rng, engine.getData()); int highestWater = Math.max(waterHint, -1); boolean water = false; + int lowestPoint = Integer.MAX_VALUE; + + if(lavaLevel >= 0) + { + for(IrisPosition i : pos) + { + lowestPoint = Math.min(i.getY(), lowestPoint); + } + } if (highestWater == -1) { for (IrisPosition i : pos) { @@ -120,7 +131,8 @@ public class IrisRavine extends IrisRegistrant { water = true; } - MatterCavern c = new MatterCavern(true, customBiome, water); + MatterCavern c = new MatterCavern(true, customBiome, (byte) (water ? 1 : 0)); + MatterCavern l = lavaLevel >= 0 ? new MatterCavern(true, customBiome, (byte) 2) : null; if (pos.size() < nodeThreshold) { return; @@ -146,7 +158,7 @@ public class IrisRavine extends IrisRegistrant { break; } - writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, c); + writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, (lavaLevel + lowestPoint) >= i ? l : c); } } @@ -162,7 +174,7 @@ public class IrisRavine extends IrisRegistrant { break; } - writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, c); + writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, (lavaLevel + lowestPoint) >= i ? l : c); } } } diff --git a/src/main/java/com/volmit/iris/util/matter/MatterCavern.java b/src/main/java/com/volmit/iris/util/matter/MatterCavern.java index 9c6bf70a3..601339913 100644 --- a/src/main/java/com/volmit/iris/util/matter/MatterCavern.java +++ b/src/main/java/com/volmit/iris/util/matter/MatterCavern.java @@ -26,5 +26,20 @@ import lombok.Data; public class MatterCavern { private final boolean cavern; private final String customBiome; - private final boolean water; + private final byte liquid; // 0 none 1 water 2 lava + + public boolean isAir() + { + return liquid == 0; + } + + public boolean isWater() + { + return liquid == 1; + } + + public boolean isLava() + { + return liquid == 2; + } } diff --git a/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java index 88331e5f7..612df6ed6 100644 --- a/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java +++ b/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java @@ -27,8 +27,8 @@ import java.io.IOException; @Sliced public class CavernMatter extends RawMatter { - public static MatterCavern get(String customBiome, boolean underwater) { - return new MatterCavern(true, customBiome, underwater); + public static MatterCavern get(String customBiome, int liquid) { + return new MatterCavern(true, customBiome, (byte) liquid); } public CavernMatter() { @@ -42,16 +42,16 @@ public class CavernMatter extends RawMatter { @Override public void writeNode(MatterCavern b, DataOutputStream dos) throws IOException { dos.writeBoolean(b.isCavern()); - dos.writeBoolean(b.isWater()); dos.writeUTF(b.getCustomBiome()); + dos.writeByte(b.getLiquid()); } @Override public MatterCavern readNode(DataInputStream din) throws IOException { boolean b = din.readBoolean(); - boolean w = din.readBoolean(); String v = din.readUTF(); + byte l = din.readByte(); - return new MatterCavern(b, v, w); + return new MatterCavern(b, v, l); } } From 3d0eca9432efd50e867879e0f026ac533471550b Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 13:50:14 -0800 Subject: [PATCH 23/37] Fix anchoring point on lava carving --- .../volmit/iris/engine/modifier/IrisCarveModifier.java | 6 +++++- .../java/com/volmit/iris/engine/object/IrisCave.java | 10 +++++----- .../com/volmit/iris/engine/object/IrisElipsoid.java | 2 +- .../com/volmit/iris/engine/object/IrisPyramid.java | 2 +- .../java/com/volmit/iris/engine/object/IrisRavine.java | 6 +++--- .../iris/engine/object/IrisShapedGeneratorStyle.java | 4 ++++ .../java/com/volmit/iris/engine/object/IrisSphere.java | 2 +- .../com/volmit/iris/engine/object/IrisStyledRange.java | 4 ++++ 8 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java b/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java index f5b56a4bc..d83f5c5cc 100644 --- a/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java +++ b/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java @@ -47,6 +47,7 @@ public class IrisCarveModifier extends EngineAssignedModifier { private final RNG rng; private final BlockData AIR = Material.CAVE_AIR.createBlockData(); private final BlockData WATER = Material.WATER.createBlockData(); + private final BlockData LAVA = Material.LAVA.createBlockData(); public IrisCarveModifier(Engine engine) { super(engine, "Carve"); @@ -102,7 +103,10 @@ public class IrisCarveModifier extends EngineAssignedModifier { if (c.isWater()) { output.set(rx, yy, rz, WATER); - } else { + } else if(c.isLava()) { + output.set(rx, yy, rz, LAVA); + } + else { output.set(rx, yy, rz, AIR); } }; diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCave.java b/src/main/java/com/volmit/iris/engine/object/IrisCave.java index 7455901a4..6c1733907 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisCave.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisCave.java @@ -78,7 +78,7 @@ public class IrisCave extends IrisRegistrant { KList points = getWorm().generate(rng, engine.getData(), writer, verticalRange, x, y, z, (at) -> {}); int highestWater = Math.max(waterHint, -1); int lowestPoint = Integer.MAX_VALUE; - + if (highestWater == -1) { for (IrisPosition i : points) { double yy = i.getY() + girth; @@ -106,12 +106,12 @@ public class IrisCave extends IrisRegistrant { } MatterCavern c = new MatterCavern(true, customBiome, (byte) 0); - MatterCavern w = h >= 0 ? new MatterCavern(true, customBiome, (byte) 1) : null; - MatterCavern l = lavaLevel >= 0 ? new MatterCavern(true, customBiome, (byte) 2) : null; - int flp = lowestPoint; + MatterCavern w = new MatterCavern(true, customBiome, (byte) 1); + MatterCavern l = new MatterCavern(true, customBiome, (byte) 2); + int flp = lowestPoint - worm.getGirth().getMid(); writer.setLineConsumer(points, girth, true, - (xf, yf, zf) -> (lavaLevel + flp >= yf) ? l : (yf <= h ? w : c)); + (xf, yf, zf) -> (lavaLevel + flp >= yf && lavaLevel >= 0) ? l : (yf <= h ? w : c)); } @Override diff --git a/src/main/java/com/volmit/iris/engine/object/IrisElipsoid.java b/src/main/java/com/volmit/iris/engine/object/IrisElipsoid.java index 644a9dfcb..b15b6cf8c 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisElipsoid.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisElipsoid.java @@ -55,7 +55,7 @@ public class IrisElipsoid implements IRare { writer.setElipsoid(x, y, z, xRadius.get(rng, z, y, engine.getData()), yRadius.get(rng, x, z, engine.getData()), - zRadius.get(rng, y, x, engine.getData()), true, matterNodeCache.aquire(() -> CavernMatter.get(getCustomBiome(), false))); + zRadius.get(rng, y, x, engine.getData()), true, matterNodeCache.aquire(() -> CavernMatter.get(getCustomBiome(), 0))); } public double maxSize() { diff --git a/src/main/java/com/volmit/iris/engine/object/IrisPyramid.java b/src/main/java/com/volmit/iris/engine/object/IrisPyramid.java index 03ea93d75..8e6d23db9 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisPyramid.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisPyramid.java @@ -46,7 +46,7 @@ public class IrisPyramid implements IRare { private transient final AtomicCache matterNodeCache = new AtomicCache<>(); public void generate(RNG rng, Engine engine, MantleWriter writer, int x, int y, int z) { - writer.setPyramid(x, y, z, matterNodeCache.aquire(() -> CavernMatter.get(getCustomBiome(), false)), + writer.setPyramid(x, y, z, matterNodeCache.aquire(() -> CavernMatter.get(getCustomBiome(), 0)), (int) baseWidth.get(rng, z, y, engine.getData()), true); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRavine.java b/src/main/java/com/volmit/iris/engine/object/IrisRavine.java index 6d9bb2b93..2665dafa7 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisRavine.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisRavine.java @@ -132,7 +132,7 @@ public class IrisRavine extends IrisRegistrant { } MatterCavern c = new MatterCavern(true, customBiome, (byte) (water ? 1 : 0)); - MatterCavern l = lavaLevel >= 0 ? new MatterCavern(true, customBiome, (byte) 2) : null; + MatterCavern l = new MatterCavern(true, customBiome, (byte) 2); if (pos.size() < nodeThreshold) { return; @@ -158,7 +158,7 @@ public class IrisRavine extends IrisRegistrant { break; } - writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, (lavaLevel + lowestPoint) >= i ? l : c); + writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, ((lavaLevel + (lowestPoint - depthStyle.getMid())) >= i) && lavaLevel >= 0 ? l : c); } } @@ -174,7 +174,7 @@ public class IrisRavine extends IrisRegistrant { break; } - writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, (lavaLevel + lowestPoint) >= i ? l : c); + writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, ((lavaLevel + (lowestPoint - depthStyle.getMid())) >= i) && lavaLevel >= 0 ? l : c); } } } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisShapedGeneratorStyle.java b/src/main/java/com/volmit/iris/engine/object/IrisShapedGeneratorStyle.java index 6f3244963..ad4deb88d 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisShapedGeneratorStyle.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisShapedGeneratorStyle.java @@ -66,4 +66,8 @@ public class IrisShapedGeneratorStyle { public boolean isFlat() { return min == max || getGenerator().isFlat(); } + + public int getMid() { + return (getMax() + getMin()) / 2; + } } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisSphere.java b/src/main/java/com/volmit/iris/engine/object/IrisSphere.java index 6c24344d5..8bc0ac611 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisSphere.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisSphere.java @@ -46,7 +46,7 @@ public class IrisSphere implements IRare { private transient final AtomicCache matterNodeCache = new AtomicCache<>(); public void generate(RNG rng, Engine engine, MantleWriter writer, int x, int y, int z) { - writer.setSphere(x, y, z, radius.get(rng, z, y, engine.getData()), true, matterNodeCache.aquire(() -> CavernMatter.get(getCustomBiome(), false))); + writer.setSphere(x, y, z, radius.get(rng, z, y, engine.getData()), true, matterNodeCache.aquire(() -> CavernMatter.get(getCustomBiome(), 0))); } public double maxSize() { diff --git a/src/main/java/com/volmit/iris/engine/object/IrisStyledRange.java b/src/main/java/com/volmit/iris/engine/object/IrisStyledRange.java index 1fa826107..1a2e2c8bf 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisStyledRange.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisStyledRange.java @@ -65,4 +65,8 @@ public class IrisStyledRange { public boolean isFlat() { return getMax() == getMin() || style.isFlat(); } + + public int getMid() { + return (int) ((getMax() + getMin()) / 2); + } } From 1aee758f877a3ce76d3b364f252750c9b6b79a57 Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 13:52:07 -0800 Subject: [PATCH 24/37] Fix center stronghold --- .../java/com/volmit/iris/engine/object/IrisDimension.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/volmit/iris/engine/object/IrisDimension.java b/src/main/java/com/volmit/iris/engine/object/IrisDimension.java index e916609eb..ae86f33bb 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisDimension.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisDimension.java @@ -284,7 +284,7 @@ public class IrisDimension extends IrisRegistrant { int jump = strongholdJumpDistance; RNG rng = new RNG((seed * 223) + 12945); - for (int i = 0; i < maxStrongholds; i++) { + for (int i = 0; i < maxStrongholds+1; i++) { int m = i + 1; pos.add(new Position2( (int) ((rng.i(jump * i) + (jump * i)) * (rng.b() ? -1D : 1D)), @@ -292,6 +292,8 @@ public class IrisDimension extends IrisRegistrant { )); } + pos.remove(0); + return pos; }); } From ef083196708ad469903b1944f62089df0a270532 Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 15:17:00 -0800 Subject: [PATCH 25/37] Disable cave lava for now --- .../volmit/iris/engine/object/IrisCave.java | 17 ++--------- .../iris/engine/object/IrisDimension.java | 2 +- .../volmit/iris/engine/object/IrisRavine.java | 30 ++++++++++++------- 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCave.java b/src/main/java/com/volmit/iris/engine/object/IrisCave.java index 6c1733907..21d982853 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisCave.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisCave.java @@ -18,6 +18,7 @@ package com.volmit.iris.engine.object; +import com.volmit.iris.Iris; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.core.loader.IrisRegistrant; import com.volmit.iris.engine.framework.Engine; @@ -55,9 +56,6 @@ public class IrisCave extends IrisRegistrant { @Desc("Limit the worm from ever getting higher or lower than this range") private IrisRange verticalRange = new IrisRange(3, 255); - @Desc("To fill this cave with lava, set the lava level to a height from the bottom most point of the cave.") - private int lavaLevel = -1; - @Override public String getFolderName() { return "caves"; @@ -77,7 +75,6 @@ public class IrisCave extends IrisRegistrant { double girth = getWorm().getGirth().get(rng, x, z, engine.getData()); KList points = getWorm().generate(rng, engine.getData(), writer, verticalRange, x, y, z, (at) -> {}); int highestWater = Math.max(waterHint, -1); - int lowestPoint = Integer.MAX_VALUE; if (highestWater == -1) { for (IrisPosition i : points) { @@ -91,13 +88,6 @@ public class IrisCave extends IrisRegistrant { } } - if(lavaLevel >= 0) - { - for(IrisPosition i : points) - { - lowestPoint = Math.min(i.getY(), lowestPoint); - } - } int h = Math.min(Math.max(highestWater, waterHint), engine.getDimension().getFluidHeight()); @@ -107,11 +97,10 @@ public class IrisCave extends IrisRegistrant { MatterCavern c = new MatterCavern(true, customBiome, (byte) 0); MatterCavern w = new MatterCavern(true, customBiome, (byte) 1); - MatterCavern l = new MatterCavern(true, customBiome, (byte) 2); - int flp = lowestPoint - worm.getGirth().getMid(); + writer.setLineConsumer(points, girth, true, - (xf, yf, zf) -> (lavaLevel + flp >= yf && lavaLevel >= 0) ? l : (yf <= h ? w : c)); + (xf, yf, zf) -> yf <= h ? w : c); } @Override diff --git a/src/main/java/com/volmit/iris/engine/object/IrisDimension.java b/src/main/java/com/volmit/iris/engine/object/IrisDimension.java index ae86f33bb..1d44b9c12 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisDimension.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisDimension.java @@ -293,7 +293,7 @@ public class IrisDimension extends IrisRegistrant { } pos.remove(0); - + return pos; }); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRavine.java b/src/main/java/com/volmit/iris/engine/object/IrisRavine.java index 2665dafa7..d6f79ea42 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisRavine.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisRavine.java @@ -18,6 +18,7 @@ package com.volmit.iris.engine.object; +import com.volmit.iris.Iris; import com.volmit.iris.core.loader.IrisData; import com.volmit.iris.core.loader.IrisRegistrant; import com.volmit.iris.engine.framework.Engine; @@ -103,15 +104,6 @@ public class IrisRavine extends IrisRegistrant { CNG bw = baseWidthStyle.getGenerator().createNoCache(rng, engine.getData()); int highestWater = Math.max(waterHint, -1); boolean water = false; - int lowestPoint = Integer.MAX_VALUE; - - if(lavaLevel >= 0) - { - for(IrisPosition i : pos) - { - lowestPoint = Math.min(i.getY(), lowestPoint); - } - } if (highestWater == -1) { for (IrisPosition i : pos) { @@ -158,7 +150,15 @@ public class IrisRavine extends IrisRegistrant { break; } - writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, ((lavaLevel + (lowestPoint - depthStyle.getMid())) >= i) && lavaLevel >= 0 ? l : c); + if(lavaLevel >= 0 && i <= lavaLevel + (surface - depthStyle.getMid())) + { + writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, l); + } + + else + { + writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, c); + } } } @@ -174,7 +174,15 @@ public class IrisRavine extends IrisRegistrant { break; } - writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, ((lavaLevel + (lowestPoint - depthStyle.getMid())) >= i) && lavaLevel >= 0 ? l : c); + if(lavaLevel >= 0 && i <= lavaLevel + (surface - depthStyle.getMid())) + { + writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, l); + } + + else + { + writer.setElipsoid(p.getX(), i, p.getZ(), v, ribThickness, v, true, c); + } } } } From 6895c0b3927f005820ea9dc7f76717130cefa281 Mon Sep 17 00:00:00 2001 From: DanLT Date: Wed, 1 Sep 2021 15:22:31 -0800 Subject: [PATCH 26/37] V+ --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 2beb9f325..76fa8f94e 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ plugins { } group 'com.volmit.iris' -version '1.8' +version '1.8.1' def apiVersion = '1.17' def name = getRootProject().getName() // Defined in settings.gradle def main = 'com.volmit.iris.Iris' From bac66dfbf9c1a87aaaf8193d103859675d726e4e Mon Sep 17 00:00:00 2001 From: DanLT Date: Thu, 2 Sep 2021 11:54:06 -0800 Subject: [PATCH 27/37] Fix issues with ores spawning problems --- .../java/com/volmit/iris/engine/IrisEngine.java | 2 +- .../iris/engine/modifier/IrisDepositModifier.java | 15 ++------------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/IrisEngine.java b/src/main/java/com/volmit/iris/engine/IrisEngine.java index af67b09a7..ca721aa71 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngine.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngine.java @@ -428,9 +428,9 @@ public class IrisEngine implements Engine { getTerrainActuator().actuate(x, z, blocks, multicore); getBiomeActuator().actuate(x, z, vbiomes, multicore); getDecorantActuator().actuate(x, z, blocks, multicore); - getDepositModifier().modify(x, z, blocks, multicore); getCaveModifier().modify(x >> 4, z >> 4, blocks, multicore); getPostModifier().modify(x, z, blocks, multicore); + getDepositModifier().modify(x, z, blocks, multicore); getMantle().insertMatter(x >> 4, z >> 4, BlockData.class, blocks, multicore); } getMetrics().getTotal().put(p.getMilliseconds()); diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java b/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java index c8a90e62c..ca8fa9a80 100644 --- a/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java +++ b/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java @@ -120,19 +120,8 @@ public class IrisDepositModifier extends EngineAssignedModifier { continue; } - boolean allow = false; - - BlockData b = data.get(nx, ny, nz); - if (b != null) { - for (BlockData f : getDimension().getRockPalette().getBlockData(getData())) { - if (f.getMaterial().equals(b.getMaterial())) { - allow = true; - break; - } - } - } - - if (allow) { + if(!getEngine().getMantle().isCarved((cx << 4) + nx, ny, (cz << 4) + nz)) + { data.set(nx, ny, nz, clump.getBlocks().get(j)); } } From 923a42e9a3cd7d72328edbaa5f7c22abdc9fc0ed Mon Sep 17 00:00:00 2001 From: DanLT Date: Thu, 2 Sep 2021 11:59:12 -0800 Subject: [PATCH 28/37] Stop hotloading production worlds --- .../engine/platform/BukkitChunkGenerator.java | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java index 1e8421899..54c69c081 100644 --- a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java +++ b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java @@ -93,7 +93,7 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun this.dimensionKey = dimensionKey; this.folder = new ReactiveFolder(dataLocation, (_a, _b, _c) -> hotload()); setupEngine(); - this.hotloader = new Looper() { + this.hotloader = studio ? new Looper() { @Override protected long loop() { if (hotloadChecker.flip()) { @@ -102,10 +102,14 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun return 250; } - }; - hotloader.setPriority(Thread.MIN_PRIORITY); - hotloader.start(); - hotloader.setName(getTarget().getWorld().name() + " Hotloader"); + } : null; + + if(studio) + { + hotloader.setPriority(Thread.MIN_PRIORITY); + hotloader.start(); + hotloader.setName(getTarget().getWorld().name() + " Hotloader"); + } } private void setupEngine() { @@ -232,7 +236,11 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun @Override public void close() { withExclusiveControl(() -> { - hotloader.interrupt(); + if(isStudio()) + { + hotloader.interrupt(); + } + getEngine().close(); }); } @@ -244,6 +252,11 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun @Override public void hotload() { + if(!isStudio()) + { + return; + } + withExclusiveControl(() -> getEngine().hotload()); } From 17e74d9ed2fb1f72976a97a58bd35173b8d10819 Mon Sep 17 00:00:00 2001 From: CocoTheOwner Date: Thu, 2 Sep 2021 22:31:10 +0200 Subject: [PATCH 29/37] Cancel locate --- .../java/com/volmit/iris/core/service/CommandSVC.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/volmit/iris/core/service/CommandSVC.java b/src/main/java/com/volmit/iris/core/service/CommandSVC.java index 2de28725d..4c1838ba2 100644 --- a/src/main/java/com/volmit/iris/core/service/CommandSVC.java +++ b/src/main/java/com/volmit/iris/core/service/CommandSVC.java @@ -20,11 +20,14 @@ package com.volmit.iris.core.service; import com.volmit.iris.Iris; import com.volmit.iris.core.commands.CommandIris; +import com.volmit.iris.core.tools.IrisToolbelt; import com.volmit.iris.engine.data.cache.AtomicCache; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.decree.DecreeSystem; import com.volmit.iris.util.decree.virtual.VirtualDecreeCommand; +import com.volmit.iris.util.format.C; import com.volmit.iris.util.plugin.IrisService; +import com.volmit.iris.util.plugin.VolmitSender; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerCommandPreprocessEvent; @@ -56,8 +59,14 @@ public class CommandSVC implements IrisService, DecreeSystem { if (future != null) { future.complete(args[2]); e.setCancelled(true); + return; } } + + if ((msg.startsWith("locate ") || msg.startsWith("locatebiome ")) && IrisToolbelt.isIrisWorld(e.getPlayer().getWorld())){ + new VolmitSender(e.getPlayer()).sendMessage(C.RED + "Locating biomes & objects is disabled in Iris Worlds. Use /iris studio goto "); + e.setCancelled(true); + } } @Override From 747e2e2e27a950e9a536e20bd860c1c35b09966f Mon Sep 17 00:00:00 2001 From: DanLT Date: Fri, 3 Sep 2021 11:20:45 -0800 Subject: [PATCH 30/37] V+ --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 76fa8f94e..55d15e97b 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ plugins { } group 'com.volmit.iris' -version '1.8.1' +version '1.8.2' def apiVersion = '1.17' def name = getRootProject().getName() // Defined in settings.gradle def main = 'com.volmit.iris.Iris' From 60ed93e13b585d207110b30fa794820401af13e9 Mon Sep 17 00:00:00 2001 From: DanLT Date: Fri, 3 Sep 2021 11:22:59 -0800 Subject: [PATCH 31/37] Convert ores to deepslate / nondeepslate depending on src fixes #593 --- .../engine/modifier/IrisDepositModifier.java | 3 +- .../java/com/volmit/iris/util/data/B.java | 82 ++++++++++++++++++- 2 files changed, 81 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java b/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java index ca8fa9a80..980ed1a34 100644 --- a/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java +++ b/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java @@ -24,6 +24,7 @@ import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisDepositGenerator; import com.volmit.iris.engine.object.IrisObject; import com.volmit.iris.engine.object.IrisRegion; +import com.volmit.iris.util.data.B; import com.volmit.iris.util.data.HeightMap; import com.volmit.iris.util.hunk.Hunk; import com.volmit.iris.util.math.RNG; @@ -122,7 +123,7 @@ public class IrisDepositModifier extends EngineAssignedModifier { if(!getEngine().getMantle().isCarved((cx << 4) + nx, ny, (cz << 4) + nz)) { - data.set(nx, ny, nz, clump.getBlocks().get(j)); + data.set(nx, ny, nz, B.toDeepSlateOre(data.get(nx, ny, nz), clump.getBlocks().get(j))); } } } diff --git a/src/main/java/com/volmit/iris/util/data/B.java b/src/main/java/com/volmit/iris/util/data/B.java index 0730ef792..d5d99a6a1 100644 --- a/src/main/java/com/volmit/iris/util/data/B.java +++ b/src/main/java/com/volmit/iris/util/data/B.java @@ -22,9 +22,8 @@ import com.volmit.iris.Iris; import com.volmit.iris.core.IrisSettings; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.scheduling.ChronoLatch; -import it.unimi.dsi.fastutil.ints.IntOpenHashSet; -import it.unimi.dsi.fastutil.ints.IntSet; -import it.unimi.dsi.fastutil.ints.IntSets; +import it.unimi.dsi.fastutil.ints.*; +import net.minecraft.world.level.levelgen.OreVeinifier; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.data.BlockData; @@ -43,6 +42,9 @@ public class B { private static final Material AIR_MATERIAL = Material.AIR; private static final BlockData AIR = AIR_MATERIAL.createBlockData(); private static final IntSet foliageCache = buildFoliageCache(); + private static final IntSet deepslateCache = buildDeepslateCache(); + private static final Int2IntMap normal2DeepslateCache = buildNormal2DeepslateCache(); + private static final Int2IntMap deepslate2NormalCache = buildNormal2DeepslateCache(); private static final IntSet decorantCache = buildDecorantCache(); private static final IntSet storageCache = buildStorageCache(); private static final IntSet storageChestCache = buildStorageChestCache(); @@ -84,6 +86,54 @@ public class B { return IntSets.unmodifiable(b); } + private static IntSet buildDeepslateCache() { + IntSet b = new IntOpenHashSet(); + Arrays.stream(new Material[]{ + DEEPSLATE, + DEEPSLATE_BRICKS, + DEEPSLATE_BRICK_SLAB, + DEEPSLATE_BRICK_STAIRS, + DEEPSLATE_BRICK_WALL, + DEEPSLATE_TILE_SLAB, + DEEPSLATE_TILES, + DEEPSLATE_TILE_STAIRS, + DEEPSLATE_TILE_WALL, + CRACKED_DEEPSLATE_TILES + }).forEach((i) -> b.add(i.ordinal())); + + return IntSets.unmodifiable(b); + } + + private static Int2IntMap buildNormal2DeepslateCache() { + Int2IntMap b = new Int2IntOpenHashMap(); + + b.put(COAL_ORE.ordinal(), DEEPSLATE_COAL_ORE.ordinal()); + b.put(EMERALD_ORE.ordinal(), DEEPSLATE_EMERALD_ORE.ordinal()); + b.put(DIAMOND_ORE.ordinal(), DEEPSLATE_DIAMOND_ORE.ordinal()); + b.put(COPPER_ORE.ordinal(), DEEPSLATE_COPPER_ORE.ordinal()); + b.put(GOLD_ORE.ordinal(), DEEPSLATE_GOLD_ORE.ordinal()); + b.put(IRON_ORE.ordinal(), DEEPSLATE_IRON_ORE.ordinal()); + b.put(LAPIS_ORE.ordinal(), DEEPSLATE_LAPIS_ORE.ordinal()); + b.put(REDSTONE_ORE.ordinal(), DEEPSLATE_REDSTONE_ORE.ordinal()); + + return b; + } + + private static Int2IntMap buildDeepslate2NormalCache() { + Int2IntMap b = new Int2IntOpenHashMap(); + + b.put(DEEPSLATE_COAL_ORE.ordinal(), COAL_ORE.ordinal()); + b.put(DEEPSLATE_EMERALD_ORE.ordinal(), EMERALD_ORE.ordinal()); + b.put(DEEPSLATE_DIAMOND_ORE.ordinal(), DIAMOND_ORE.ordinal()); + b.put(DEEPSLATE_COPPER_ORE.ordinal(), COPPER_ORE.ordinal()); + b.put(DEEPSLATE_GOLD_ORE.ordinal(), GOLD_ORE.ordinal()); + b.put(DEEPSLATE_IRON_ORE.ordinal(), IRON_ORE.ordinal()); + b.put(DEEPSLATE_LAPIS_ORE.ordinal(), LAPIS_ORE.ordinal()); + b.put(DEEPSLATE_REDSTONE_ORE.ordinal(), REDSTONE_ORE.ordinal()); + + return b; + } + private static IntSet buildDecorantCache() { IntSet b = new IntOpenHashSet(); Arrays.stream(new Material[]{ @@ -216,6 +266,32 @@ public class B { return IntSets.unmodifiable(b); } + public static BlockData toDeepSlateOre(BlockData block, BlockData ore) { + int key = ore.getMaterial().ordinal(); + + if(isDeepSlate(block)) + { + if(normal2DeepslateCache.containsKey(key)) + { + return Material.values()[normal2DeepslateCache.get(key)].createBlockData(); + } + } + + else + { + if(deepslate2NormalCache.containsKey(key)) + { + return Material.values()[deepslate2NormalCache.get(key)].createBlockData(); + } + } + + return ore; + } + + public static boolean isDeepSlate(BlockData blockData) { + return deepslateCache.contains(blockData.getMaterial().ordinal()); + } + public static boolean isOre(BlockData blockData) { return blockData.getMaterial().name().endsWith("_ORE"); } From d25299e1ba2d5596cfb312ecf7bd3b403122f353 Mon Sep 17 00:00:00 2001 From: DanLT Date: Fri, 3 Sep 2021 11:29:44 -0800 Subject: [PATCH 32/37] Stop walls from placing above surface fixes #590 --- .../java/com/volmit/iris/engine/modifier/IrisCarveModifier.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java b/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java index d83f5c5cc..7e4050790 100644 --- a/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java +++ b/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java @@ -122,7 +122,7 @@ public class IrisCarveModifier extends EngineAssignedModifier { biome.setInferredType(InferredType.CAVE); BlockData d = biome.getWall().get(rng, i.getX() + (x << 4), i.getY(), i.getZ() + (z << 4), getData()); - if (d != null && B.isSolid(output.get(i.getX(), i.getY(), i.getZ()))) { + if (d != null && B.isSolid(output.get(i.getX(), i.getY(), i.getZ())) && i.getY() <= getComplex().getHeightStream().get(i.getX() + (x << 4), i.getZ() + (z << 4))) { output.set(i.getX(), i.getY(), i.getZ(), d); } } From 075882b7b009eddaad1c2fb932f8ab65a84aa6df Mon Sep 17 00:00:00 2001 From: DanLT Date: Fri, 3 Sep 2021 11:34:09 -0800 Subject: [PATCH 33/37] Fix initial exceptions --- .../java/com/volmit/iris/core/loader/ResourceLoader.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java b/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java index 78b1ab5fc..31c0e29af 100644 --- a/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java +++ b/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java @@ -291,6 +291,14 @@ public class ResourceLoader { lock.unlock(); + if(folderCache == null) + { + synchronized (this) + { + return getFolderCache(); + } + } + return folderCache; } From 76bf7642628bc0e83a7d89ea7735bb4246931bee Mon Sep 17 00:00:00 2001 From: DanLT Date: Fri, 3 Sep 2021 11:39:40 -0800 Subject: [PATCH 34/37] Fix deepslate ores in zones --- .../volmit/iris/engine/modifier/IrisCarveModifier.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java b/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java index 7e4050790..8b9b8129e 100644 --- a/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java +++ b/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java @@ -233,15 +233,19 @@ public class IrisCarveModifier extends EngineAssignedModifier { break; } - if (!B.isSolid(output.get(rx, zone.ceiling + i + 1, rz))) { + BlockData b = blocks.get(i); + BlockData up = output.get(rx, zone.ceiling + i + 1, rz); + + if (!B.isSolid(up)) { continue; } - if (B.isOre(output.get(rx, zone.ceiling + i + 1, rz))) { + if (B.isOre(up)) { + output.set(rx, zone.ceiling + i + 1, rz, B.toDeepSlateOre(up, b)); continue; } - output.set(rx, zone.ceiling + i + 1, rz, blocks.get(i)); + output.set(rx, zone.ceiling + i + 1, rz, b); } } From 548ed4a1f03cdad17129a9c01b89e9412d77a3e4 Mon Sep 17 00:00:00 2001 From: DanLT Date: Fri, 3 Sep 2021 11:47:09 -0800 Subject: [PATCH 35/37] Cache nodes single core --- src/main/java/com/volmit/iris/core/service/CommandSVC.java | 3 ++- .../volmit/iris/util/decree/virtual/VirtualDecreeCommand.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/service/CommandSVC.java b/src/main/java/com/volmit/iris/core/service/CommandSVC.java index 4c1838ba2..898093798 100644 --- a/src/main/java/com/volmit/iris/core/service/CommandSVC.java +++ b/src/main/java/com/volmit/iris/core/service/CommandSVC.java @@ -28,6 +28,7 @@ import com.volmit.iris.util.decree.virtual.VirtualDecreeCommand; import com.volmit.iris.util.format.C; import com.volmit.iris.util.plugin.IrisService; import com.volmit.iris.util.plugin.VolmitSender; +import com.volmit.iris.util.scheduling.J; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerCommandPreprocessEvent; @@ -40,7 +41,7 @@ public class CommandSVC implements IrisService, DecreeSystem { @Override public void onEnable() { Iris.instance.getCommand("iris").setExecutor(this); - getRoot().cacheAll(); + J.a(() -> getRoot().cacheAll()); } @Override diff --git a/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java b/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java index d26595e9a..b44777f26 100644 --- a/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java +++ b/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java @@ -109,7 +109,7 @@ public class VirtualDecreeCommand { VolmitSender sender = new VolmitSender(new CommandDummy()); if (isNode()) { - J.a(() -> sender.sendDecreeHelpNode(this)); + sender.sendDecreeHelpNode(this); } for (VirtualDecreeCommand j : nodes) { From 773f24238fc48cbac984ddd7edcd8412e56816d6 Mon Sep 17 00:00:00 2001 From: DanLT Date: Fri, 3 Sep 2021 11:56:50 -0800 Subject: [PATCH 36/37] Fix decorant cave issues fixes #586 --- .../volmit/iris/engine/modifier/IrisCarveModifier.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java b/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java index 8b9b8129e..d622e1df0 100644 --- a/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java +++ b/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java @@ -171,6 +171,16 @@ public class IrisCarveModifier extends EngineAssignedModifier { int thickness = zone.airThickness(); String customBiome = ""; + if(B.isDecorant(output.get(rx, zone.ceiling+1, rz))) + { + output.set(rx, zone.ceiling+1, rz, AIR); + } + + if(B.isDecorant(output.get(rx, zone.ceiling, rz))) + { + output.set(rx, zone.ceiling, rz, AIR); + } + if (M.r(1D / 16D)) { mantle.set(xx, zone.ceiling, zz, MarkerMatter.CAVE_CEILING); } From 69255a938bd8f6042ee12ce432f704f41ee73381 Mon Sep 17 00:00:00 2001 From: DanLT Date: Fri, 3 Sep 2021 17:39:50 -0800 Subject: [PATCH 37/37] f --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 55d15e97b..481d1622c 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ plugins { } group 'com.volmit.iris' -version '1.8.2' +version '1.8.3' def apiVersion = '1.17' def name = getRootProject().getName() // Defined in settings.gradle def main = 'com.volmit.iris.Iris'