From f3d87f09d7620c062f2a40d332052fd7ed48cfdd Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Sat, 1 Aug 2020 08:46:52 -0400 Subject: [PATCH] Total rotation support --- src/main/java/com/volmit/iris/Iris.java | 21 ++- .../java/com/volmit/iris/ProjectManager.java | 4 +- .../iris/{wand => }/WandController.java | 3 +- .../com/volmit/iris/command/CommandIris.java | 6 +- .../volmit/iris/command/CommandIrisGoto.java | 6 +- .../iris/command/CommandIrisMetrics.java | 6 +- .../iris/command/CommandIrisObject.java | 6 +- .../command/CommandIrisObjectContract.java | 6 +- .../iris/command/CommandIrisObjectExpand.java | 6 +- .../iris/command/CommandIrisObjectP1.java | 6 +- .../iris/command/CommandIrisObjectP2.java | 6 +- .../iris/command/CommandIrisObjectPaste.java | 6 +- .../iris/command/CommandIrisObjectSave.java | 12 +- .../iris/command/CommandIrisObjectShift.java | 6 +- .../iris/command/CommandIrisObjectWand.java | 6 +- .../iris/command/CommandIrisObjectXAY.java | 6 +- .../iris/command/CommandIrisObjectXPY.java | 6 +- .../iris/command/CommandIrisStudio.java | 6 +- .../iris/command/CommandIrisStudioClose.java | 4 +- .../iris/command/CommandIrisStudioCreate.java | 10 +- .../iris/command/CommandIrisStudioList.java | 4 +- .../iris/command/CommandIrisStudioOpen.java | 4 +- .../command/CommandIrisStudioPackage.java | 4 +- .../volmit/iris/command/CommandIrisWhat.java | 8 +- .../iris/command/CommandIrisWhatBlock.java | 4 +- .../iris/command/CommandIrisWhatHand.java | 4 +- .../volmit/iris/command/CommandIrisWorld.java | 6 +- .../volmit/iris/command/PermissionIris.java | 4 +- .../iris/command/PermissionIrisStudio.java | 2 +- .../BiomeChunkGenerator.java | 0 .../CeilingChunkGenerator.java | 0 .../ContextualChunkGenerator.java | 0 .../DimensionChunkGenerator.java | 0 .../IrisChunkGenerator.java | 0 .../ParallaxChunkGenerator.java | 0 .../ParallelChunkGenerator.java | 0 .../PostBlockChunkGenerator.java | 0 .../TerrainChunkGenerator.java | 0 .../atomics/AtomicRegionData.java | 0 .../{object => gen}/atomics/AtomicSliver.java | 0 .../atomics/AtomicSliverMap.java | 0 .../atomics/AtomicWorldData.java | 0 .../{object => gen}/atomics/MasterLock.java | 0 .../{ => gen}/layer/BiomeDataProvider.java | 0 .../iris/{ => gen}/layer/GenLayerBiome.java | 0 .../iris/{ => gen}/layer/GenLayerCarve.java | 0 .../iris/{ => gen}/layer/GenLayerCave.java | 0 .../volmit/iris/{layer => gen}/post/Post.java | 0 .../post/PostFloatingNibDeleter.java | 0 .../{layer => gen}/post/PostNibSmoother.java | 0 .../post/PostPotholeFiller.java | 0 .../iris/{layer => gen}/post/PostSlabber.java | 0 .../{layer => gen}/post/PostWallPatcher.java | 0 .../{layer => gen}/post/PostWaterlogger.java | 0 .../iris/object/IrisAxisRotationClamp.java | 11 +- .../iris/object/IrisDepositGenerator.java | 2 +- .../com/volmit/iris/object/IrisDimension.java | 2 +- .../com/volmit/iris/object/IrisObject.java | 9 +- .../iris/object/IrisObjectRotation.java | 136 ++++++++++++++++-- .../volmit/iris/tetris/TetrisGenerator.java | 44 ------ .../com/volmit/iris/tetris/TetrisObject.java | 20 --- .../com/volmit/iris/util/BlockDataTools.java | 34 +++++ .../iris/{command => }/util/Command.java | 0 .../iris/{command => }/util/Control.java | 0 .../iris/{command => }/util/Controller.java | 0 .../java/com/volmit/iris/util/GenLayer.java | 2 +- .../iris/{command => }/util/ICommand.java | 0 .../iris/{command => }/util/IController.java | 0 .../iris/{command => }/util/Instance.java | 0 .../volmit/iris/util/IrisPostBlockFilter.java | 4 +- .../{command => }/util/MortarCommand.java | 0 .../{command => }/util/MortarPermission.java | 0 .../iris/{command => }/util/MortarPlugin.java | 0 .../iris/{command => }/util/MortarSender.java | 0 .../iris/{command => }/util/Permission.java | 0 .../{command => }/util/RouterCommand.java | 0 .../{command => }/util/VirtualCommand.java | 0 77 files changed, 264 insertions(+), 178 deletions(-) rename src/main/java/com/volmit/iris/{wand => }/WandController.java (99%) rename src/main/java/com/volmit/iris/{generator => gen}/BiomeChunkGenerator.java (100%) rename src/main/java/com/volmit/iris/{generator => gen}/CeilingChunkGenerator.java (100%) rename src/main/java/com/volmit/iris/{generator => gen}/ContextualChunkGenerator.java (100%) rename src/main/java/com/volmit/iris/{generator => gen}/DimensionChunkGenerator.java (100%) rename src/main/java/com/volmit/iris/{generator => gen}/IrisChunkGenerator.java (100%) rename src/main/java/com/volmit/iris/{generator => gen}/ParallaxChunkGenerator.java (100%) rename src/main/java/com/volmit/iris/{generator => gen}/ParallelChunkGenerator.java (100%) rename src/main/java/com/volmit/iris/{generator => gen}/PostBlockChunkGenerator.java (100%) rename src/main/java/com/volmit/iris/{generator => gen}/TerrainChunkGenerator.java (100%) rename src/main/java/com/volmit/iris/{object => gen}/atomics/AtomicRegionData.java (100%) rename src/main/java/com/volmit/iris/{object => gen}/atomics/AtomicSliver.java (100%) rename src/main/java/com/volmit/iris/{object => gen}/atomics/AtomicSliverMap.java (100%) rename src/main/java/com/volmit/iris/{object => gen}/atomics/AtomicWorldData.java (100%) rename src/main/java/com/volmit/iris/{object => gen}/atomics/MasterLock.java (100%) rename src/main/java/com/volmit/iris/{ => gen}/layer/BiomeDataProvider.java (100%) rename src/main/java/com/volmit/iris/{ => gen}/layer/GenLayerBiome.java (100%) rename src/main/java/com/volmit/iris/{ => gen}/layer/GenLayerCarve.java (100%) rename src/main/java/com/volmit/iris/{ => gen}/layer/GenLayerCave.java (100%) rename src/main/java/com/volmit/iris/{layer => gen}/post/Post.java (100%) rename src/main/java/com/volmit/iris/{layer => gen}/post/PostFloatingNibDeleter.java (100%) rename src/main/java/com/volmit/iris/{layer => gen}/post/PostNibSmoother.java (100%) rename src/main/java/com/volmit/iris/{layer => gen}/post/PostPotholeFiller.java (100%) rename src/main/java/com/volmit/iris/{layer => gen}/post/PostSlabber.java (100%) rename src/main/java/com/volmit/iris/{layer => gen}/post/PostWallPatcher.java (100%) rename src/main/java/com/volmit/iris/{layer => gen}/post/PostWaterlogger.java (100%) delete mode 100644 src/main/java/com/volmit/iris/tetris/TetrisGenerator.java delete mode 100644 src/main/java/com/volmit/iris/tetris/TetrisObject.java rename src/main/java/com/volmit/iris/{command => }/util/Command.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/Control.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/Controller.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/ICommand.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/IController.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/Instance.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/MortarCommand.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/MortarPermission.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/MortarPlugin.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/MortarSender.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/Permission.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/RouterCommand.java (100%) rename src/main/java/com/volmit/iris/{command => }/util/VirtualCommand.java (100%) diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index f66a757ab..1eaa468e3 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -18,15 +18,13 @@ import org.bukkit.plugin.Plugin; import com.google.gson.Gson; import com.volmit.iris.command.CommandIris; import com.volmit.iris.command.PermissionIris; -import com.volmit.iris.command.util.MortarPlugin; -import com.volmit.iris.command.util.Permission; -import com.volmit.iris.generator.IrisChunkGenerator; -import com.volmit.iris.layer.post.PostFloatingNibDeleter; -import com.volmit.iris.layer.post.PostNibSmoother; -import com.volmit.iris.layer.post.PostPotholeFiller; -import com.volmit.iris.layer.post.PostSlabber; -import com.volmit.iris.layer.post.PostWallPatcher; -import com.volmit.iris.layer.post.PostWaterlogger; +import com.volmit.iris.gen.IrisChunkGenerator; +import com.volmit.iris.gen.post.PostFloatingNibDeleter; +import com.volmit.iris.gen.post.PostNibSmoother; +import com.volmit.iris.gen.post.PostPotholeFiller; +import com.volmit.iris.gen.post.PostSlabber; +import com.volmit.iris.gen.post.PostWallPatcher; +import com.volmit.iris.gen.post.PostWaterlogger; import com.volmit.iris.object.IrisBiome; import com.volmit.iris.util.BiomeResult; import com.volmit.iris.util.BoardManager; @@ -45,9 +43,10 @@ import com.volmit.iris.util.JSONObject; import com.volmit.iris.util.JarScanner; import com.volmit.iris.util.KList; import com.volmit.iris.util.KMap; +import com.volmit.iris.util.MortarPlugin; +import com.volmit.iris.util.Permission; import com.volmit.iris.util.RollingSequence; import com.volmit.iris.util.ScoreDirection; -import com.volmit.iris.wand.WandController; public class Iris extends MortarPlugin implements BoardProvider { @@ -70,7 +69,7 @@ public class Iris extends MortarPlugin implements BoardProvider @Permission public static PermissionIris perm; - @com.volmit.iris.command.util.Command + @com.volmit.iris.util.Command public CommandIris commandIris; public Iris() diff --git a/src/main/java/com/volmit/iris/ProjectManager.java b/src/main/java/com/volmit/iris/ProjectManager.java index 50d8cb264..d54b00ca8 100644 --- a/src/main/java/com/volmit/iris/ProjectManager.java +++ b/src/main/java/com/volmit/iris/ProjectManager.java @@ -11,12 +11,12 @@ import org.bukkit.World; import org.bukkit.WorldCreator; import org.bukkit.WorldType; -import com.volmit.iris.command.util.MortarSender; -import com.volmit.iris.generator.IrisChunkGenerator; +import com.volmit.iris.gen.IrisChunkGenerator; import com.volmit.iris.object.IrisDimension; import com.volmit.iris.util.Form; import com.volmit.iris.util.IO; import com.volmit.iris.util.J; +import com.volmit.iris.util.MortarSender; import com.volmit.iris.util.O; import lombok.Data; diff --git a/src/main/java/com/volmit/iris/wand/WandController.java b/src/main/java/com/volmit/iris/WandController.java similarity index 99% rename from src/main/java/com/volmit/iris/wand/WandController.java rename to src/main/java/com/volmit/iris/WandController.java index 15612e2e0..466074d46 100644 --- a/src/main/java/com/volmit/iris/wand/WandController.java +++ b/src/main/java/com/volmit/iris/WandController.java @@ -1,4 +1,4 @@ -package com.volmit.iris.wand; +package com.volmit.iris; import java.awt.Color; import java.util.Iterator; @@ -23,7 +23,6 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.util.BlockVector; import org.bukkit.util.Vector; -import com.volmit.iris.Iris; import com.volmit.iris.object.IrisObject; import com.volmit.iris.util.Cuboid; import com.volmit.iris.util.KList; diff --git a/src/main/java/com/volmit/iris/command/CommandIris.java b/src/main/java/com/volmit/iris/command/CommandIris.java index 264c31ec2..5fd97adf2 100644 --- a/src/main/java/com/volmit/iris/command/CommandIris.java +++ b/src/main/java/com/volmit/iris/command/CommandIris.java @@ -1,9 +1,9 @@ package com.volmit.iris.command; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.Command; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.util.Command; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIris extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisGoto.java b/src/main/java/com/volmit/iris/command/CommandIrisGoto.java index 72407a6b3..fe5d3a6ca 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisGoto.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisGoto.java @@ -5,10 +5,10 @@ import org.bukkit.World; import org.bukkit.entity.Player; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; -import com.volmit.iris.generator.IrisChunkGenerator; +import com.volmit.iris.gen.IrisChunkGenerator; import com.volmit.iris.object.IrisBiome; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; import com.volmit.iris.util.RNG; public class CommandIrisGoto extends MortarCommand diff --git a/src/main/java/com/volmit/iris/command/CommandIrisMetrics.java b/src/main/java/com/volmit/iris/command/CommandIrisMetrics.java index cbcdf86c9..ffec3ec36 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisMetrics.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisMetrics.java @@ -6,10 +6,10 @@ import org.bukkit.entity.Player; import com.volmit.iris.Iris; import com.volmit.iris.IrisMetrics; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; -import com.volmit.iris.generator.IrisChunkGenerator; +import com.volmit.iris.gen.IrisChunkGenerator; import com.volmit.iris.util.Form; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisMetrics extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisObject.java b/src/main/java/com/volmit/iris/command/CommandIrisObject.java index 46f555c62..3036cd82e 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisObject.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisObject.java @@ -1,9 +1,9 @@ package com.volmit.iris.command; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.Command; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.util.Command; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisObject extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisObjectContract.java b/src/main/java/com/volmit/iris/command/CommandIrisObjectContract.java index 4c2e86df5..68337eb77 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisObjectContract.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisObjectContract.java @@ -5,11 +5,11 @@ import org.bukkit.Sound; import org.bukkit.entity.Player; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.WandController; import com.volmit.iris.util.Cuboid; import com.volmit.iris.util.Direction; -import com.volmit.iris.wand.WandController; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisObjectContract extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisObjectExpand.java b/src/main/java/com/volmit/iris/command/CommandIrisObjectExpand.java index 4e7e7a841..a705caffc 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisObjectExpand.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisObjectExpand.java @@ -5,11 +5,11 @@ import org.bukkit.Sound; import org.bukkit.entity.Player; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.WandController; import com.volmit.iris.util.Cuboid; import com.volmit.iris.util.Direction; -import com.volmit.iris.wand.WandController; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisObjectExpand extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisObjectP1.java b/src/main/java/com/volmit/iris/command/CommandIrisObjectP1.java index 6f0b8bec1..0356a4788 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisObjectP1.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisObjectP1.java @@ -8,9 +8,9 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; -import com.volmit.iris.wand.WandController; +import com.volmit.iris.WandController; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisObjectP1 extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisObjectP2.java b/src/main/java/com/volmit/iris/command/CommandIrisObjectP2.java index b579ba0d5..69a957d8e 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisObjectP2.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisObjectP2.java @@ -8,9 +8,9 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; -import com.volmit.iris.wand.WandController; +import com.volmit.iris.WandController; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisObjectP2 extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisObjectPaste.java b/src/main/java/com/volmit/iris/command/CommandIrisObjectPaste.java index ca0397e9b..137908d40 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisObjectPaste.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisObjectPaste.java @@ -11,10 +11,10 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.WandController; import com.volmit.iris.object.IrisObject; -import com.volmit.iris.wand.WandController; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisObjectPaste extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisObjectSave.java b/src/main/java/com/volmit/iris/command/CommandIrisObjectSave.java index b9bab497c..781f7a6c0 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisObjectSave.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisObjectSave.java @@ -8,10 +8,10 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.WandController; import com.volmit.iris.object.IrisObject; -import com.volmit.iris.wand.WandController; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisObjectSave extends MortarCommand { @@ -38,14 +38,14 @@ public class CommandIrisObjectSave extends MortarCommand try { - o.write(new File(Iris.instance.getDataFolder(), "objects/" + args[1] + ".iob")); - sender.sendMessage("Saved " + "objects/" + args[1] + ".iob"); + o.write(new File(Iris.instance.getDataFolder(), "objects/" + args[0] + ".iob")); + sender.sendMessage("Saved " + "objects/" + args[0] + ".iob"); p.getWorld().playSound(p.getLocation(), Sound.BLOCK_ENCHANTMENT_TABLE_USE, 1f, 1.5f); } catch(IOException e) { - sender.sendMessage("Failed to save " + "objects/" + args[1] + ".iob. Are you holding your wand?"); + sender.sendMessage("Failed to save " + "objects/" + args[0] + ".iob. Are you holding your wand?"); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/command/CommandIrisObjectShift.java b/src/main/java/com/volmit/iris/command/CommandIrisObjectShift.java index 42ce35c95..9840bd1e3 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisObjectShift.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisObjectShift.java @@ -5,11 +5,11 @@ import org.bukkit.Sound; import org.bukkit.entity.Player; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.WandController; import com.volmit.iris.util.Cuboid; import com.volmit.iris.util.Direction; -import com.volmit.iris.wand.WandController; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisObjectShift extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisObjectWand.java b/src/main/java/com/volmit/iris/command/CommandIrisObjectWand.java index 9547ad72f..2b3731db2 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisObjectWand.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisObjectWand.java @@ -3,9 +3,9 @@ package com.volmit.iris.command; import org.bukkit.Sound; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; -import com.volmit.iris.wand.WandController; +import com.volmit.iris.WandController; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisObjectWand extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisObjectXAY.java b/src/main/java/com/volmit/iris/command/CommandIrisObjectXAY.java index 1a679b010..413b184a4 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisObjectXAY.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisObjectXAY.java @@ -7,11 +7,11 @@ import org.bukkit.entity.Player; import org.bukkit.util.Vector; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.WandController; import com.volmit.iris.util.Cuboid; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; import com.volmit.iris.util.Cuboid.CuboidDirection; -import com.volmit.iris.wand.WandController; public class CommandIrisObjectXAY extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisObjectXPY.java b/src/main/java/com/volmit/iris/command/CommandIrisObjectXPY.java index 7d0ad43e3..86efe0f7a 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisObjectXPY.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisObjectXPY.java @@ -7,11 +7,11 @@ import org.bukkit.entity.Player; import org.bukkit.util.Vector; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.WandController; import com.volmit.iris.util.Cuboid; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; import com.volmit.iris.util.Cuboid.CuboidDirection; -import com.volmit.iris.wand.WandController; public class CommandIrisObjectXPY extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisStudio.java b/src/main/java/com/volmit/iris/command/CommandIrisStudio.java index 6e0786e2d..ef01fdf12 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisStudio.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisStudio.java @@ -1,9 +1,9 @@ package com.volmit.iris.command; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.Command; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.util.Command; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisStudio extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisStudioClose.java b/src/main/java/com/volmit/iris/command/CommandIrisStudioClose.java index e2e37607c..bdfcde69d 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisStudioClose.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisStudioClose.java @@ -5,8 +5,8 @@ import org.bukkit.World; import org.bukkit.entity.Player; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisStudioClose extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisStudioCreate.java b/src/main/java/com/volmit/iris/command/CommandIrisStudioCreate.java index 9a2c820ec..825915dd9 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisStudioCreate.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisStudioCreate.java @@ -4,8 +4,6 @@ import java.io.IOException; import com.google.gson.Gson; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; import com.volmit.iris.object.InterpolationMethod; import com.volmit.iris.object.IrisBiome; import com.volmit.iris.object.IrisBiomeGeneratorLink; @@ -17,6 +15,8 @@ import com.volmit.iris.util.Form; import com.volmit.iris.util.IO; import com.volmit.iris.util.JSONException; import com.volmit.iris.util.JSONObject; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; import net.md_5.bungee.api.ChatColor; @@ -43,6 +43,12 @@ public class CommandIrisStudioCreate extends MortarCommand IrisDimension dimension = new IrisDimension(); dimension.setLoadKey(args[0]); dimension.setName(Form.capitalizeWords(args[0].replaceAll("\\Q-\\E", " "))); + + if(Iris.instance.getDataFile("packs", dimension.getLoadKey(), "dimensions", dimension.getLoadKey() + ".json").exists()) + { + sender.sendMessage("Project Already Exists! Open it instead!"); + return true; + } sender.sendMessage("Creating New Project \"" + dimension.getName() + "\"..."); IrisRegion exampleRegion = new IrisRegion(); exampleRegion.setName("Example Region"); diff --git a/src/main/java/com/volmit/iris/command/CommandIrisStudioList.java b/src/main/java/com/volmit/iris/command/CommandIrisStudioList.java index 1afbf9d32..aedf86517 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisStudioList.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisStudioList.java @@ -3,9 +3,9 @@ package com.volmit.iris.command; import java.io.File; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; import com.volmit.iris.object.IrisDimension; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisStudioList extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisStudioOpen.java b/src/main/java/com/volmit/iris/command/CommandIrisStudioOpen.java index 6d36f08d7..81a6ec779 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisStudioOpen.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisStudioOpen.java @@ -1,8 +1,8 @@ package com.volmit.iris.command; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisStudioOpen extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisStudioPackage.java b/src/main/java/com/volmit/iris/command/CommandIrisStudioPackage.java index c6abdb87d..79a504ea8 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisStudioPackage.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisStudioPackage.java @@ -7,8 +7,6 @@ import org.zeroturnaround.zip.ZipUtil; import com.google.gson.Gson; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; import com.volmit.iris.object.IrisBiome; import com.volmit.iris.object.IrisDimension; import com.volmit.iris.object.IrisGenerator; @@ -20,6 +18,8 @@ import com.volmit.iris.util.JSONObject; import com.volmit.iris.util.KList; import com.volmit.iris.util.KMap; import com.volmit.iris.util.KSet; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisStudioPackage extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisWhat.java b/src/main/java/com/volmit/iris/command/CommandIrisWhat.java index 359a3a702..67a6eaae5 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisWhat.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisWhat.java @@ -6,11 +6,11 @@ import org.bukkit.entity.Player; import com.volmit.iris.Iris; import com.volmit.iris.IrisMetrics; -import com.volmit.iris.command.util.Command; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; -import com.volmit.iris.generator.IrisChunkGenerator; +import com.volmit.iris.gen.IrisChunkGenerator; +import com.volmit.iris.util.Command; import com.volmit.iris.util.Form; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisWhat extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisWhatBlock.java b/src/main/java/com/volmit/iris/command/CommandIrisWhatBlock.java index 7b0e76c0c..e0e3bc876 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisWhatBlock.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisWhatBlock.java @@ -6,8 +6,8 @@ import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisWhatBlock extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisWhatHand.java b/src/main/java/com/volmit/iris/command/CommandIrisWhatHand.java index bbc67d2ba..b6f0e11ee 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisWhatHand.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisWhatHand.java @@ -6,8 +6,8 @@ import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisWhatHand extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/CommandIrisWorld.java b/src/main/java/com/volmit/iris/command/CommandIrisWorld.java index 58c86d97d..b70d1080e 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisWorld.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisWorld.java @@ -1,9 +1,9 @@ package com.volmit.iris.command; import com.volmit.iris.Iris; -import com.volmit.iris.command.util.Command; -import com.volmit.iris.command.util.MortarCommand; -import com.volmit.iris.command.util.MortarSender; +import com.volmit.iris.util.Command; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; public class CommandIrisWorld extends MortarCommand { diff --git a/src/main/java/com/volmit/iris/command/PermissionIris.java b/src/main/java/com/volmit/iris/command/PermissionIris.java index a522aae97..a4427f4e1 100644 --- a/src/main/java/com/volmit/iris/command/PermissionIris.java +++ b/src/main/java/com/volmit/iris/command/PermissionIris.java @@ -1,7 +1,7 @@ package com.volmit.iris.command; -import com.volmit.iris.command.util.MortarPermission; -import com.volmit.iris.command.util.Permission; +import com.volmit.iris.util.MortarPermission; +import com.volmit.iris.util.Permission; public class PermissionIris extends MortarPermission { diff --git a/src/main/java/com/volmit/iris/command/PermissionIrisStudio.java b/src/main/java/com/volmit/iris/command/PermissionIrisStudio.java index d76e2872c..75ea7438c 100644 --- a/src/main/java/com/volmit/iris/command/PermissionIrisStudio.java +++ b/src/main/java/com/volmit/iris/command/PermissionIrisStudio.java @@ -1,6 +1,6 @@ package com.volmit.iris.command; -import com.volmit.iris.command.util.MortarPermission; +import com.volmit.iris.util.MortarPermission; public class PermissionIrisStudio extends MortarPermission { diff --git a/src/main/java/com/volmit/iris/generator/BiomeChunkGenerator.java b/src/main/java/com/volmit/iris/gen/BiomeChunkGenerator.java similarity index 100% rename from src/main/java/com/volmit/iris/generator/BiomeChunkGenerator.java rename to src/main/java/com/volmit/iris/gen/BiomeChunkGenerator.java diff --git a/src/main/java/com/volmit/iris/generator/CeilingChunkGenerator.java b/src/main/java/com/volmit/iris/gen/CeilingChunkGenerator.java similarity index 100% rename from src/main/java/com/volmit/iris/generator/CeilingChunkGenerator.java rename to src/main/java/com/volmit/iris/gen/CeilingChunkGenerator.java diff --git a/src/main/java/com/volmit/iris/generator/ContextualChunkGenerator.java b/src/main/java/com/volmit/iris/gen/ContextualChunkGenerator.java similarity index 100% rename from src/main/java/com/volmit/iris/generator/ContextualChunkGenerator.java rename to src/main/java/com/volmit/iris/gen/ContextualChunkGenerator.java diff --git a/src/main/java/com/volmit/iris/generator/DimensionChunkGenerator.java b/src/main/java/com/volmit/iris/gen/DimensionChunkGenerator.java similarity index 100% rename from src/main/java/com/volmit/iris/generator/DimensionChunkGenerator.java rename to src/main/java/com/volmit/iris/gen/DimensionChunkGenerator.java diff --git a/src/main/java/com/volmit/iris/generator/IrisChunkGenerator.java b/src/main/java/com/volmit/iris/gen/IrisChunkGenerator.java similarity index 100% rename from src/main/java/com/volmit/iris/generator/IrisChunkGenerator.java rename to src/main/java/com/volmit/iris/gen/IrisChunkGenerator.java diff --git a/src/main/java/com/volmit/iris/generator/ParallaxChunkGenerator.java b/src/main/java/com/volmit/iris/gen/ParallaxChunkGenerator.java similarity index 100% rename from src/main/java/com/volmit/iris/generator/ParallaxChunkGenerator.java rename to src/main/java/com/volmit/iris/gen/ParallaxChunkGenerator.java diff --git a/src/main/java/com/volmit/iris/generator/ParallelChunkGenerator.java b/src/main/java/com/volmit/iris/gen/ParallelChunkGenerator.java similarity index 100% rename from src/main/java/com/volmit/iris/generator/ParallelChunkGenerator.java rename to src/main/java/com/volmit/iris/gen/ParallelChunkGenerator.java diff --git a/src/main/java/com/volmit/iris/generator/PostBlockChunkGenerator.java b/src/main/java/com/volmit/iris/gen/PostBlockChunkGenerator.java similarity index 100% rename from src/main/java/com/volmit/iris/generator/PostBlockChunkGenerator.java rename to src/main/java/com/volmit/iris/gen/PostBlockChunkGenerator.java diff --git a/src/main/java/com/volmit/iris/generator/TerrainChunkGenerator.java b/src/main/java/com/volmit/iris/gen/TerrainChunkGenerator.java similarity index 100% rename from src/main/java/com/volmit/iris/generator/TerrainChunkGenerator.java rename to src/main/java/com/volmit/iris/gen/TerrainChunkGenerator.java diff --git a/src/main/java/com/volmit/iris/object/atomics/AtomicRegionData.java b/src/main/java/com/volmit/iris/gen/atomics/AtomicRegionData.java similarity index 100% rename from src/main/java/com/volmit/iris/object/atomics/AtomicRegionData.java rename to src/main/java/com/volmit/iris/gen/atomics/AtomicRegionData.java diff --git a/src/main/java/com/volmit/iris/object/atomics/AtomicSliver.java b/src/main/java/com/volmit/iris/gen/atomics/AtomicSliver.java similarity index 100% rename from src/main/java/com/volmit/iris/object/atomics/AtomicSliver.java rename to src/main/java/com/volmit/iris/gen/atomics/AtomicSliver.java diff --git a/src/main/java/com/volmit/iris/object/atomics/AtomicSliverMap.java b/src/main/java/com/volmit/iris/gen/atomics/AtomicSliverMap.java similarity index 100% rename from src/main/java/com/volmit/iris/object/atomics/AtomicSliverMap.java rename to src/main/java/com/volmit/iris/gen/atomics/AtomicSliverMap.java diff --git a/src/main/java/com/volmit/iris/object/atomics/AtomicWorldData.java b/src/main/java/com/volmit/iris/gen/atomics/AtomicWorldData.java similarity index 100% rename from src/main/java/com/volmit/iris/object/atomics/AtomicWorldData.java rename to src/main/java/com/volmit/iris/gen/atomics/AtomicWorldData.java diff --git a/src/main/java/com/volmit/iris/object/atomics/MasterLock.java b/src/main/java/com/volmit/iris/gen/atomics/MasterLock.java similarity index 100% rename from src/main/java/com/volmit/iris/object/atomics/MasterLock.java rename to src/main/java/com/volmit/iris/gen/atomics/MasterLock.java diff --git a/src/main/java/com/volmit/iris/layer/BiomeDataProvider.java b/src/main/java/com/volmit/iris/gen/layer/BiomeDataProvider.java similarity index 100% rename from src/main/java/com/volmit/iris/layer/BiomeDataProvider.java rename to src/main/java/com/volmit/iris/gen/layer/BiomeDataProvider.java diff --git a/src/main/java/com/volmit/iris/layer/GenLayerBiome.java b/src/main/java/com/volmit/iris/gen/layer/GenLayerBiome.java similarity index 100% rename from src/main/java/com/volmit/iris/layer/GenLayerBiome.java rename to src/main/java/com/volmit/iris/gen/layer/GenLayerBiome.java diff --git a/src/main/java/com/volmit/iris/layer/GenLayerCarve.java b/src/main/java/com/volmit/iris/gen/layer/GenLayerCarve.java similarity index 100% rename from src/main/java/com/volmit/iris/layer/GenLayerCarve.java rename to src/main/java/com/volmit/iris/gen/layer/GenLayerCarve.java diff --git a/src/main/java/com/volmit/iris/layer/GenLayerCave.java b/src/main/java/com/volmit/iris/gen/layer/GenLayerCave.java similarity index 100% rename from src/main/java/com/volmit/iris/layer/GenLayerCave.java rename to src/main/java/com/volmit/iris/gen/layer/GenLayerCave.java diff --git a/src/main/java/com/volmit/iris/layer/post/Post.java b/src/main/java/com/volmit/iris/gen/post/Post.java similarity index 100% rename from src/main/java/com/volmit/iris/layer/post/Post.java rename to src/main/java/com/volmit/iris/gen/post/Post.java diff --git a/src/main/java/com/volmit/iris/layer/post/PostFloatingNibDeleter.java b/src/main/java/com/volmit/iris/gen/post/PostFloatingNibDeleter.java similarity index 100% rename from src/main/java/com/volmit/iris/layer/post/PostFloatingNibDeleter.java rename to src/main/java/com/volmit/iris/gen/post/PostFloatingNibDeleter.java diff --git a/src/main/java/com/volmit/iris/layer/post/PostNibSmoother.java b/src/main/java/com/volmit/iris/gen/post/PostNibSmoother.java similarity index 100% rename from src/main/java/com/volmit/iris/layer/post/PostNibSmoother.java rename to src/main/java/com/volmit/iris/gen/post/PostNibSmoother.java diff --git a/src/main/java/com/volmit/iris/layer/post/PostPotholeFiller.java b/src/main/java/com/volmit/iris/gen/post/PostPotholeFiller.java similarity index 100% rename from src/main/java/com/volmit/iris/layer/post/PostPotholeFiller.java rename to src/main/java/com/volmit/iris/gen/post/PostPotholeFiller.java diff --git a/src/main/java/com/volmit/iris/layer/post/PostSlabber.java b/src/main/java/com/volmit/iris/gen/post/PostSlabber.java similarity index 100% rename from src/main/java/com/volmit/iris/layer/post/PostSlabber.java rename to src/main/java/com/volmit/iris/gen/post/PostSlabber.java diff --git a/src/main/java/com/volmit/iris/layer/post/PostWallPatcher.java b/src/main/java/com/volmit/iris/gen/post/PostWallPatcher.java similarity index 100% rename from src/main/java/com/volmit/iris/layer/post/PostWallPatcher.java rename to src/main/java/com/volmit/iris/gen/post/PostWallPatcher.java diff --git a/src/main/java/com/volmit/iris/layer/post/PostWaterlogger.java b/src/main/java/com/volmit/iris/gen/post/PostWaterlogger.java similarity index 100% rename from src/main/java/com/volmit/iris/layer/post/PostWaterlogger.java rename to src/main/java/com/volmit/iris/gen/post/PostWaterlogger.java diff --git a/src/main/java/com/volmit/iris/object/IrisAxisRotationClamp.java b/src/main/java/com/volmit/iris/object/IrisAxisRotationClamp.java index 8fdda7d76..11608b33c 100644 --- a/src/main/java/com/volmit/iris/object/IrisAxisRotationClamp.java +++ b/src/main/java/com/volmit/iris/object/IrisAxisRotationClamp.java @@ -2,6 +2,7 @@ package com.volmit.iris.object; import com.volmit.iris.util.Desc; import com.volmit.iris.util.DontObfuscate; +import com.volmit.iris.util.M; import lombok.Data; @@ -47,10 +48,14 @@ public class IrisAxisRotationClamp { if(isUnlimited()) { - return Math.toRadians((rng * interval) % 360D); + if(interval < 1) + { + interval = 1; + } + + return Math.toRadians(((double) interval * (Math.ceil(Math.abs((rng % 360D) / (double) interval)))) % 360D); } - double deg = min + (rng * interval) % (Math.abs(max - min) / 360D); - return Math.toRadians(deg); + return Math.toRadians(M.clip(((double) interval * (Math.ceil(Math.abs((rng % 360D) / (double) interval)))) % 360D, Math.min(min, max), Math.max(min, max))); } } diff --git a/src/main/java/com/volmit/iris/object/IrisDepositGenerator.java b/src/main/java/com/volmit/iris/object/IrisDepositGenerator.java index b7399ad02..bd4303186 100644 --- a/src/main/java/com/volmit/iris/object/IrisDepositGenerator.java +++ b/src/main/java/com/volmit/iris/object/IrisDepositGenerator.java @@ -7,7 +7,7 @@ import org.bukkit.block.data.BlockData; import org.bukkit.generator.ChunkGenerator.ChunkData; import org.bukkit.util.BlockVector; -import com.volmit.iris.generator.TerrainChunkGenerator; +import com.volmit.iris.gen.TerrainChunkGenerator; import com.volmit.iris.util.BlockDataTools; import com.volmit.iris.util.Desc; import com.volmit.iris.util.DontObfuscate; diff --git a/src/main/java/com/volmit/iris/object/IrisDimension.java b/src/main/java/com/volmit/iris/object/IrisDimension.java index f58d70bf6..f0cf79f1d 100644 --- a/src/main/java/com/volmit/iris/object/IrisDimension.java +++ b/src/main/java/com/volmit/iris/object/IrisDimension.java @@ -7,7 +7,7 @@ import org.bukkit.block.data.BlockData; import org.bukkit.util.BlockVector; import com.volmit.iris.Iris; -import com.volmit.iris.generator.PostBlockChunkGenerator; +import com.volmit.iris.gen.PostBlockChunkGenerator; import com.volmit.iris.util.BlockDataTools; import com.volmit.iris.util.CNG; import com.volmit.iris.util.ChunkPosition; diff --git a/src/main/java/com/volmit/iris/object/IrisObject.java b/src/main/java/com/volmit/iris/object/IrisObject.java index c010f7b01..d7c157eb8 100644 --- a/src/main/java/com/volmit/iris/object/IrisObject.java +++ b/src/main/java/com/volmit/iris/object/IrisObject.java @@ -127,12 +127,10 @@ public class IrisObject extends IrisRegistrant public void place(int x, int yv, int z, IObjectPlacer placer, IrisObjectPlacement config, RNG rng) { - boolean yf = rng.nextBoolean(); - boolean xf = rng.nextBoolean(); int spinx = rng.imax() / 1000; int spiny = rng.imax() / 1000; int spinz = rng.imax() / 1000; - int y = yv < 0 ? placer.getHighest(x, z, config.isUnderwater()) + config.getRotation().rotate(new BlockVector(0, getCenter().getBlockY(), 0), yf, xf, spinx, spiny, spinz).getBlockY() : yv; + int y = yv < 0 ? placer.getHighest(x, z, config.isUnderwater()) + config.getRotation().rotate(new BlockVector(0, getCenter().getBlockY(), 0), spinx, spiny, spinz).getBlockY() : yv; KMap heightmap = config.getSnow() > 0 ? new KMap<>() : null; if(yv < 0) @@ -146,9 +144,9 @@ public class IrisObject extends IrisRegistrant for(BlockVector g : blocks.keySet()) { BlockVector i = g.clone(); - i = config.getRotation().rotate(i.clone(), yf, xf, spinx, spiny, spinz).clone(); + i = config.getRotation().rotate(i.clone(), spinx, spiny, spinz).clone(); i = config.getTranslate().translate(i.clone()).clone(); - BlockData data = blocks.get(g); + BlockData data = blocks.get(g).clone(); if(placer.isPreventingDecay() && data instanceof Leaves && !((Leaves) data).isPersistent()) { @@ -163,6 +161,7 @@ public class IrisObject extends IrisRegistrant } } + data = config.getRotation().rotate(data, spinx, spiny, spinz); int xx = x + (int) Math.round(i.getX()); int yy = y + (int) Math.round(i.getY()); int zz = z + (int) Math.round(i.getZ()); diff --git a/src/main/java/com/volmit/iris/object/IrisObjectRotation.java b/src/main/java/com/volmit/iris/object/IrisObjectRotation.java index d014d1f91..3f4240eda 100644 --- a/src/main/java/com/volmit/iris/object/IrisObjectRotation.java +++ b/src/main/java/com/volmit/iris/object/IrisObjectRotation.java @@ -1,9 +1,17 @@ package com.volmit.iris.object; +import java.util.List; + +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Directional; +import org.bukkit.block.data.MultipleFacing; +import org.bukkit.block.data.Rotatable; import org.bukkit.util.BlockVector; import com.volmit.iris.util.Desc; import com.volmit.iris.util.DontObfuscate; +import com.volmit.iris.util.KList; import lombok.Data; @@ -14,7 +22,7 @@ public class IrisObjectRotation @DontObfuscate @Desc("If this rotator is enabled or not") private boolean enabled = true; - + @DontObfuscate @Desc("The x axis rotation") private IrisAxisRotationClamp xAxis = new IrisAxisRotationClamp(); @@ -62,7 +70,117 @@ public class IrisObjectRotation return clamp.getRadians(spin); } - public BlockVector rotate(BlockVector b, boolean yf, boolean xf, int spinx, int spiny, int spinz) + public BlockFace getFace(BlockVector v) + { + int x = (int) Math.round(v.getX()); + int y = (int) Math.round(v.getY()); + int z = (int) Math.round(v.getZ()); + + if(x == 0 && z == -1) + { + return BlockFace.NORTH; + } + + if(x == 0 && z == 1) + { + return BlockFace.SOUTH; + } + + if(x == 1 && z == 0) + { + return BlockFace.EAST; + } + + if(x == -1 && z == 0) + { + return BlockFace.WEST; + } + + if(y > 0) + { + return BlockFace.UP; + } + + if(y < 0) + { + return BlockFace.DOWN; + } + + return BlockFace.SOUTH; + } + + public BlockData rotate(BlockData d, int spinxx, int spinyy, int spinzz) + { + int spinx = (int) (90D * (Math.ceil(Math.abs((spinxx % 360D) / 90D)))); + int spiny = (int) (90D * (Math.ceil(Math.abs((spinyy % 360D) / 90D)))); + int spinz = (int) (90D * (Math.ceil(Math.abs((spinzz % 360D) / 90D)))); + + if(!canRotate()) + { + return d; + } + + if(d instanceof Directional) + { + Directional g = ((Directional) d); + BlockFace f = g.getFacing(); + BlockVector bv = new BlockVector(f.getModX(), f.getModY(), f.getModZ()); + bv = rotate(bv.clone(), spinx, spiny, spinz); + BlockFace t = getFace(bv); + + if(g.getFaces().contains(t)) + { + g.setFacing(t); + } + + else if(!g.getMaterial().isSolid()) + { + d = null; + } + } + + else if(d instanceof Rotatable) + { + Rotatable g = ((Rotatable) d); + BlockFace f = g.getRotation(); + BlockVector bv = new BlockVector(f.getModX(), f.getModY(), f.getModZ()); + bv = rotate(bv.clone(), spinx, spiny, spinz); + BlockFace t = getFace(bv); + g.setRotation(t); + } + + else if(d instanceof MultipleFacing) + { + List faces = new KList<>(); + MultipleFacing g = (MultipleFacing) d; + + for(BlockFace i : g.getFaces()) + { + BlockVector bv = new BlockVector(i.getModX(), i.getModY(), i.getModZ()); + bv = rotate(bv.clone(), spinx, spiny, spinz); + BlockFace r = getFace(bv); + + if(g.getAllowedFaces().contains(r)) + { + faces.add(r); + } + } + + for(BlockFace i : g.getFaces()) + { + g.setFace(i, false); + } + + for(BlockFace i : faces) + { + g.setFace(i, true); + } + } + + return d; + } + + public BlockVector rotate(BlockVector b, int spinx, int spiny, int spinz) { if(!canRotate()) { @@ -71,12 +189,7 @@ public class IrisObjectRotation BlockVector v = b.clone(); - if(yf && canRotateY()) - { - v.rotateAroundY(getYRotation(spiny)); - } - - if(xf && canRotateX()) + if(canRotateX()) { v.rotateAroundX(getXRotation(spinx)); } @@ -86,12 +199,7 @@ public class IrisObjectRotation v.rotateAroundZ(getZRotation(spinz)); } - if(!xf && canRotateX()) - { - v.rotateAroundX(getXRotation(spinx)); - } - - if(!yf && canRotateY()) + if(canRotateY()) { v.rotateAroundY(getYRotation(spiny)); } diff --git a/src/main/java/com/volmit/iris/tetris/TetrisGenerator.java b/src/main/java/com/volmit/iris/tetris/TetrisGenerator.java deleted file mode 100644 index 0f54d09d8..000000000 --- a/src/main/java/com/volmit/iris/tetris/TetrisGenerator.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.volmit.iris.tetris; - -import lombok.Data; - -@Data -public class TetrisGenerator -{ - private int gridSize; - - public int getGrid(int block) - { - return (int) Math.floor((double) block / (double) gridSize); - } - - public int getCenterFromGrid(int grid) - { - return (grid * gridSize) + (gridSize / 2); - } - - public int getCenterFromBlock(int block) - { - return getCenterFromGrid(getGrid(block)); - } - - public int getMinFromGrid(int grid) - { - return (grid * gridSize); - } - - public int getMinFromBlock(int block) - { - return getMinFromGrid(getGrid(block)); - } - - public int getMaxFromGrid(int grid) - { - return ((grid + 1) * gridSize) - 1; - } - - public int getMaxFromBlock(int block) - { - return getMaxFromGrid(getGrid(block)); - } -} diff --git a/src/main/java/com/volmit/iris/tetris/TetrisObject.java b/src/main/java/com/volmit/iris/tetris/TetrisObject.java deleted file mode 100644 index 1edd3687a..000000000 --- a/src/main/java/com/volmit/iris/tetris/TetrisObject.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.volmit.iris.tetris; - -import com.volmit.iris.util.BlockPosition; -import com.volmit.iris.util.KMap; - -import lombok.Data; - -@Data -public class TetrisObject -{ - private int x; - private int y; - private int z; - private KMap holes; - - public TetrisObject(int x, int y, int z) - { - holes = new KMap<>(); - } -} diff --git a/src/main/java/com/volmit/iris/util/BlockDataTools.java b/src/main/java/com/volmit/iris/util/BlockDataTools.java index ecf54081e..5af7a2c0a 100644 --- a/src/main/java/com/volmit/iris/util/BlockDataTools.java +++ b/src/main/java/com/volmit/iris/util/BlockDataTools.java @@ -77,4 +77,38 @@ public class BlockDataTools return null; } + + public static boolean canPlaceOnto(Material mat, Material onto) + { + if(onto.equals(Material.GRASS_BLOCK) && mat.equals(Material.DEAD_BUSH)) + { + return false; + } + + if(onto.equals(Material.GRASS_PATH)) + { + if(!mat.isSolid()) + { + return false; + } + } + + if(onto.equals(Material.STONE) || onto.equals(Material.GRAVEL) || onto.equals(Material.GRAVEL) || onto.equals(Material.ANDESITE) || onto.equals(Material.GRANITE) || onto.equals(Material.DIORITE) || onto.equals(Material.BLACKSTONE) || onto.equals(Material.BASALT)) + { + if(mat.equals(Material.POPPY) || mat.equals(Material.DANDELION) || mat.equals(Material.CORNFLOWER) || mat.equals(Material.ORANGE_TULIP) || mat.equals(Material.PINK_TULIP) || mat.equals(Material.RED_TULIP) || mat.equals(Material.WHITE_TULIP) || mat.equals(Material.FERN) || mat.equals(Material.LARGE_FERN) || mat.equals(Material.GRASS) || mat.equals(Material.TALL_GRASS)) + { + return false; + } + } + + if(onto.equals(Material.ACACIA_LEAVES) || onto.equals(Material.BIRCH_LEAVES) || onto.equals(Material.DARK_OAK_LEAVES) || onto.equals(Material.JUNGLE_LEAVES) || onto.equals(Material.OAK_LEAVES) || onto.equals(Material.SPRUCE_LEAVES)) + { + if(!mat.isSolid()) + { + return false; + } + } + + return true; + } } diff --git a/src/main/java/com/volmit/iris/command/util/Command.java b/src/main/java/com/volmit/iris/util/Command.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/Command.java rename to src/main/java/com/volmit/iris/util/Command.java diff --git a/src/main/java/com/volmit/iris/command/util/Control.java b/src/main/java/com/volmit/iris/util/Control.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/Control.java rename to src/main/java/com/volmit/iris/util/Control.java diff --git a/src/main/java/com/volmit/iris/command/util/Controller.java b/src/main/java/com/volmit/iris/util/Controller.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/Controller.java rename to src/main/java/com/volmit/iris/util/Controller.java diff --git a/src/main/java/com/volmit/iris/util/GenLayer.java b/src/main/java/com/volmit/iris/util/GenLayer.java index 0d8f2b0b0..042111426 100644 --- a/src/main/java/com/volmit/iris/util/GenLayer.java +++ b/src/main/java/com/volmit/iris/util/GenLayer.java @@ -1,6 +1,6 @@ package com.volmit.iris.util; -import com.volmit.iris.generator.DimensionChunkGenerator; +import com.volmit.iris.gen.DimensionChunkGenerator; public abstract class GenLayer { diff --git a/src/main/java/com/volmit/iris/command/util/ICommand.java b/src/main/java/com/volmit/iris/util/ICommand.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/ICommand.java rename to src/main/java/com/volmit/iris/util/ICommand.java diff --git a/src/main/java/com/volmit/iris/command/util/IController.java b/src/main/java/com/volmit/iris/util/IController.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/IController.java rename to src/main/java/com/volmit/iris/util/IController.java diff --git a/src/main/java/com/volmit/iris/command/util/Instance.java b/src/main/java/com/volmit/iris/util/Instance.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/Instance.java rename to src/main/java/com/volmit/iris/util/Instance.java diff --git a/src/main/java/com/volmit/iris/util/IrisPostBlockFilter.java b/src/main/java/com/volmit/iris/util/IrisPostBlockFilter.java index fb9e8f360..2a49b5306 100644 --- a/src/main/java/com/volmit/iris/util/IrisPostBlockFilter.java +++ b/src/main/java/com/volmit/iris/util/IrisPostBlockFilter.java @@ -6,8 +6,8 @@ import org.bukkit.block.data.Levelled; import org.bukkit.block.data.Waterlogged; import org.bukkit.block.data.type.Slab; -import com.volmit.iris.generator.PostBlockChunkGenerator; -import com.volmit.iris.layer.post.Post; +import com.volmit.iris.gen.PostBlockChunkGenerator; +import com.volmit.iris.gen.post.Post; import lombok.Data; diff --git a/src/main/java/com/volmit/iris/command/util/MortarCommand.java b/src/main/java/com/volmit/iris/util/MortarCommand.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/MortarCommand.java rename to src/main/java/com/volmit/iris/util/MortarCommand.java diff --git a/src/main/java/com/volmit/iris/command/util/MortarPermission.java b/src/main/java/com/volmit/iris/util/MortarPermission.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/MortarPermission.java rename to src/main/java/com/volmit/iris/util/MortarPermission.java diff --git a/src/main/java/com/volmit/iris/command/util/MortarPlugin.java b/src/main/java/com/volmit/iris/util/MortarPlugin.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/MortarPlugin.java rename to src/main/java/com/volmit/iris/util/MortarPlugin.java diff --git a/src/main/java/com/volmit/iris/command/util/MortarSender.java b/src/main/java/com/volmit/iris/util/MortarSender.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/MortarSender.java rename to src/main/java/com/volmit/iris/util/MortarSender.java diff --git a/src/main/java/com/volmit/iris/command/util/Permission.java b/src/main/java/com/volmit/iris/util/Permission.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/Permission.java rename to src/main/java/com/volmit/iris/util/Permission.java diff --git a/src/main/java/com/volmit/iris/command/util/RouterCommand.java b/src/main/java/com/volmit/iris/util/RouterCommand.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/RouterCommand.java rename to src/main/java/com/volmit/iris/util/RouterCommand.java diff --git a/src/main/java/com/volmit/iris/command/util/VirtualCommand.java b/src/main/java/com/volmit/iris/util/VirtualCommand.java similarity index 100% rename from src/main/java/com/volmit/iris/command/util/VirtualCommand.java rename to src/main/java/com/volmit/iris/util/VirtualCommand.java