This commit is contained in:
Daniel Mills 2020-07-18 07:28:43 -04:00
parent 27ce6ad5ba
commit 5b8d812fc8
6 changed files with 65 additions and 17 deletions

View File

@ -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 <look/hand> - Data about items & blocks");
imsg(sender, "/iris wand [?] - Get a wand / help");
imsg(sender, "/iris save <name> - Save object");
imsg(sender, "/iris load <name> - 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 <look/hand> - 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)

View File

@ -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<ChunkPosition, BiomeResult> 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();
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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;

View File

@ -19,7 +19,7 @@ public class IrisDimension extends IrisRegistrant
private double interpolationSurfaceScale = 4;
private Environment environment = Environment.NORMAL;
private KList<String> regions = new KList<>();
private int fluidHeight = 127;
private int fluidHeight = 63;
private double biomeZoom = 5D;
private double terrainZoom = 2D;
private double dimensionAngleDeg = 0;