diff --git a/src/main/java/ninja/bytecode/iris/Iris.java b/src/main/java/ninja/bytecode/iris/Iris.java index b138a297b..eaf1a093d 100644 --- a/src/main/java/ninja/bytecode/iris/Iris.java +++ b/src/main/java/ninja/bytecode/iris/Iris.java @@ -9,12 +9,14 @@ import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.FluidCollisionMode; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.World; import org.bukkit.WorldCreator; +import org.bukkit.block.data.BlockData; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -30,6 +32,7 @@ import ninja.bytecode.iris.object.IrisBiome; import ninja.bytecode.iris.object.IrisDimension; import ninja.bytecode.iris.object.IrisObject; import ninja.bytecode.iris.util.BiomeResult; +import ninja.bytecode.iris.util.BlockDataTools; import ninja.bytecode.iris.util.BoardManager; import ninja.bytecode.iris.util.BoardProvider; import ninja.bytecode.iris.util.BoardSettings; @@ -105,7 +108,7 @@ public class Iris extends JavaPlugin implements BoardProvider lines.add(ChatColor.GREEN + "Biome" + ChatColor.GRAY + ": " + b.getName()); lines.add(ChatColor.GREEN + "File" + ChatColor.GRAY + ": " + b.getLoadKey() + ".json"); } - + lines.add("&7&m-----------------"); } @@ -139,6 +142,7 @@ public class Iris extends JavaPlugin implements BoardProvider if(args.length == 0) { imsg(sender, "/iris dev [dimension] - Create a new dev world"); + imsg(sender, "/iris what - Data about items & blocks"); imsg(sender, "/iris wand [?] - Get a wand / help"); imsg(sender, "/iris save - Save object"); imsg(sender, "/iris load - Load & place object"); @@ -146,6 +150,47 @@ public class Iris extends JavaPlugin implements BoardProvider if(args.length >= 1) { + if(args[0].equalsIgnoreCase("what")) + { + if(args.length != 2) + { + imsg(sender, "/iris what - Data about items & blocks"); + return true; + } + + BlockData bd = null; + + try + { + if(args[1].toLowerCase().startsWith("h")) + { + bd = BlockDataTools.getBlockData(((Player) sender).getInventory().getItemInMainHand().getType().name()); + } + + else + { + bd = ((Player) sender).getTargetBlockExact(128, FluidCollisionMode.NEVER).getBlockData(); + } + + } + + catch(Throwable e) + { + + } + + if(bd == null) + { + imsg(sender, "No data found."); + return true; + } + + imsg(sender, "Material: " + ChatColor.GREEN + bd.getMaterial().name()); + imsg(sender, "Full: " + ChatColor.WHITE + bd.getAsString(true)); + + return true; + } + if(args[0].equalsIgnoreCase("wand")) { if(args.length == 1) diff --git a/src/main/java/ninja/bytecode/iris/generator/BiomeChunkGenerator.java b/src/main/java/ninja/bytecode/iris/generator/BiomeChunkGenerator.java index b7043c70b..f93dfda5f 100644 --- a/src/main/java/ninja/bytecode/iris/generator/BiomeChunkGenerator.java +++ b/src/main/java/ninja/bytecode/iris/generator/BiomeChunkGenerator.java @@ -14,6 +14,7 @@ import ninja.bytecode.iris.object.IrisGenerator; import ninja.bytecode.iris.object.IrisRegion; import ninja.bytecode.iris.util.BiomeResult; import ninja.bytecode.iris.util.CNG; +import ninja.bytecode.iris.util.ChronoLatch; import ninja.bytecode.iris.util.ChunkPosition; import ninja.bytecode.iris.util.IrisInterpolation; import ninja.bytecode.iris.util.RNG; @@ -30,6 +31,7 @@ public abstract class BiomeChunkGenerator extends DimensionChunkGenerator protected GenLayerBiome glBiome; protected CNG masterFracture; protected KMap biomeHitCache; + protected ChronoLatch cwarn = new ChronoLatch(1000); public BiomeChunkGenerator(String dimensionName) { @@ -88,7 +90,7 @@ public abstract class BiomeChunkGenerator extends DimensionChunkGenerator { if(i.getGenerator().equals(gen.getLoadKey())) { - return i.getMin(); + return i.getMax(); } } @@ -103,7 +105,7 @@ public abstract class BiomeChunkGenerator extends DimensionChunkGenerator { if(i.getGenerator().equals(gen.getLoadKey())) { - return i.getMax(); + return i.getMin(); } } diff --git a/src/main/java/ninja/bytecode/iris/generator/TerrainChunkGenerator.java b/src/main/java/ninja/bytecode/iris/generator/TerrainChunkGenerator.java index da127d0a7..cc0413bde 100644 --- a/src/main/java/ninja/bytecode/iris/generator/TerrainChunkGenerator.java +++ b/src/main/java/ninja/bytecode/iris/generator/TerrainChunkGenerator.java @@ -3,8 +3,8 @@ package ninja.bytecode.iris.generator; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.data.Bisected; -import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Bisected.Half; +import org.bukkit.block.data.BlockData; import lombok.Data; import lombok.EqualsAndHashCode; @@ -129,8 +129,8 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator return glBiome.generateLandData(wx, wz, region); } - // Stop oceans from spawning on mountains - if(current.isShore() && height <= getDimension().getFluidHeight()) + // Stop land & shore from spawning underwater + if(current.isShore() || current.isLand() && height <= getDimension().getFluidHeight()) { return glBiome.generateSeaData(wx, wz, region); } diff --git a/src/main/java/ninja/bytecode/iris/layer/GenLayerBiome.java b/src/main/java/ninja/bytecode/iris/layer/GenLayerBiome.java index 0328b0365..187ce5241 100644 --- a/src/main/java/ninja/bytecode/iris/layer/GenLayerBiome.java +++ b/src/main/java/ninja/bytecode/iris/layer/GenLayerBiome.java @@ -31,7 +31,7 @@ public class GenLayerBiome extends GenLayer public IrisRegion getRegion(double bx, double bz) { - region.setShuffle(32); + region.setShuffle(8); region.setCellScale(0.33 / iris.getDimension().getRegionZoom()); double x = bx / iris.getDimension().getBiomeZoom(); double z = bz / iris.getDimension().getBiomeZoom(); @@ -45,14 +45,18 @@ public class GenLayerBiome extends GenLayer return generateRegionData(bx, bz, getRegion(bx, bz)); } - public BiomeResult generateRegionData(double bx, double bz, IrisRegion regionData) + public boolean isSea(double bx, double bz, IrisRegion regionData) { - bridge.setShuffle(32); + bridge.setShuffle(0); bridge.setCellScale(0.33 / iris.getDimension().getContinentZoom()); double x = bx / iris.getDimension().getBiomeZoom(); double z = bz / iris.getDimension().getBiomeZoom(); + return bridge.getIndex(x, z, 5) == 1; + } - if(bridge.getIndex(x, z, 5) == 1) + public BiomeResult generateRegionData(double bx, double bz, IrisRegion regionData) + { + if(isSea(bx, bz, regionData)) { return generateSeaData(bx, bz, regionData); } @@ -75,21 +79,21 @@ public class GenLayerBiome extends GenLayer public BiomeResult generateSeaData(double bx, double bz, IrisRegion regionData) { - sea.setShuffle(32); + sea.setShuffle(42); sea.setCellScale(0.56 / iris.getDimension().getSeaZoom()); return generateBiomeData(bx, bz, regionData, sea, regionData.getSeaBiomes(), InferredType.SEA); } public BiomeResult generateLandData(double bx, double bz, IrisRegion regionData) { - land.setShuffle(32); + land.setShuffle(12); land.setCellScale(0.6 / iris.getDimension().getLandZoom()); return generateBiomeData(bx, bz, regionData, land, regionData.getLandBiomes(), InferredType.LAND); } public BiomeResult generateShoreData(double bx, double bz, IrisRegion regionData) { - shore.setShuffle(32); + shore.setShuffle(4); shore.setCellScale(0.8 / iris.getDimension().getShoreZoom()); return generateBiomeData(bx, bz, regionData, shore, regionData.getShoreBiomes(), InferredType.SHORE); } diff --git a/src/main/java/ninja/bytecode/iris/object/IrisBiomeGeneratorLink.java b/src/main/java/ninja/bytecode/iris/object/IrisBiomeGeneratorLink.java index 014c2e915..1d62dcff2 100644 --- a/src/main/java/ninja/bytecode/iris/object/IrisBiomeGeneratorLink.java +++ b/src/main/java/ninja/bytecode/iris/object/IrisBiomeGeneratorLink.java @@ -1,7 +1,6 @@ package ninja.bytecode.iris.object; import lombok.Data; -import net.md_5.bungee.api.ChatColor; import ninja.bytecode.iris.Iris; import ninja.bytecode.iris.util.IrisInterpolation; @@ -28,8 +27,6 @@ public class IrisBiomeGeneratorLink { gen = new IrisGenerator(); } - - Iris.success("Registered Generator " + ChatColor.WHITE + gen.getLoadKey()); } return gen; diff --git a/src/main/java/ninja/bytecode/iris/object/IrisDimension.java b/src/main/java/ninja/bytecode/iris/object/IrisDimension.java index 2a165f786..28af2b774 100644 --- a/src/main/java/ninja/bytecode/iris/object/IrisDimension.java +++ b/src/main/java/ninja/bytecode/iris/object/IrisDimension.java @@ -19,7 +19,7 @@ public class IrisDimension extends IrisRegistrant private double interpolationSurfaceScale = 4; private Environment environment = Environment.NORMAL; private KList regions = new KList<>(); - private int fluidHeight = 127; + private int fluidHeight = 63; private double biomeZoom = 5D; private double terrainZoom = 2D; private double dimensionAngleDeg = 0;