This commit is contained in:
Daniel Mills 2020-08-01 09:57:42 -04:00
parent f3d87f09d7
commit d679660e8a
40 changed files with 134 additions and 113 deletions

View File

@ -1,11 +1,11 @@
package com.volmit.iris.generator;
package com.volmit.iris.gen;
import java.util.concurrent.locks.ReentrantLock;
import org.bukkit.World;
import com.volmit.iris.Iris;
import com.volmit.iris.layer.GenLayerBiome;
import com.volmit.iris.gen.layer.GenLayerBiome;
import com.volmit.iris.object.InferredType;
import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.object.IrisBiomeGeneratorLink;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.generator;
package com.volmit.iris.gen;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
@ -8,7 +8,7 @@ import com.volmit.iris.object.IrisDimension;
import com.volmit.iris.util.InvertedBiomeGrid;
import com.volmit.iris.util.RNG;
public abstract class CeilingChunkGenerator extends PostBlockChunkGenerator
public abstract class CeilingChunkGenerator extends LitChunkGenerator
{
protected boolean generatingCeiling = false;
protected boolean ceilingCached = false;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.generator;
package com.volmit.iris.gen;
import java.util.List;
import java.util.Random;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.generator;
package com.volmit.iris.gen;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
@ -21,11 +21,18 @@ public abstract class DimensionChunkGenerator extends ContextualChunkGenerator
protected static final BlockData AIR = Material.AIR.createBlockData();
protected static final BlockData CAVE_AIR = Material.CAVE_AIR.createBlockData();
protected static final BlockData BEDROCK = Material.BEDROCK.createBlockData();
protected LitChunkGenerator thisLight;
public DimensionChunkGenerator(String dimensionName)
{
super();
this.dimensionName = dimensionName;
thisLight = (LitChunkGenerator) this;
}
protected void lit(int x, int y, int z, BlockData d)
{
thisLight.queueLight(x, y, z, d);
}
public IrisDimension getDimension()

View File

@ -1,4 +1,4 @@
package com.volmit.iris.generator;
package com.volmit.iris.gen;
import java.io.IOException;
import java.lang.reflect.Method;
@ -10,9 +10,9 @@ import org.bukkit.entity.Player;
import com.volmit.iris.Iris;
import com.volmit.iris.IrisContext;
import com.volmit.iris.gen.atomics.AtomicRegionData;
import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.object.IrisRegion;
import com.volmit.iris.object.atomics.AtomicRegionData;
import com.volmit.iris.util.BiomeResult;
import com.volmit.iris.util.CNG;
import com.volmit.iris.util.KMap;
@ -119,7 +119,7 @@ public class IrisChunkGenerator extends CeilingChunkGenerator implements IrisCon
@Override
protected void onChunkLoaded(Chunk c)
{
super.onChunkLoaded(c);
}
@Override

View File

@ -0,0 +1,46 @@
package com.volmit.iris.gen;
import org.bukkit.Chunk;
import org.bukkit.block.Block;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.Iris;
import com.volmit.iris.util.BlockDataTools;
import com.volmit.iris.util.BlockPosition;
import com.volmit.iris.util.KList;
public abstract class LitChunkGenerator extends PostBlockChunkGenerator
{
private KList<BlockPosition> lit;
public LitChunkGenerator(String dimensionName, int threads)
{
super(dimensionName, threads);
lit = new KList<>();
}
protected void queueLight(int x, int y, int z, BlockData d)
{
if(BlockDataTools.isLit(d))
{
lit.add(new BlockPosition(x, y, z));
}
}
@Override
protected void onChunkLoaded(Chunk c)
{
for(BlockPosition i : lit.copy())
{
if(i.getChunkX() == c.getX() && i.getChunkZ() == c.getZ())
{
Block b = getWorld().getBlockAt(i.getX(), i.getY(), i.getZ());
// BlockData d = b.getBlockData();
b.getState().update(true, true);
lit.remove(i);
}
}
Iris.info("Lit: " + lit.size());
}
}

View File

@ -1,4 +1,4 @@
package com.volmit.iris.generator;
package com.volmit.iris.gen;
import java.io.IOException;
import java.util.concurrent.locks.ReentrantLock;
@ -7,13 +7,13 @@ import org.bukkit.World;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.Iris;
import com.volmit.iris.gen.atomics.AtomicSliver;
import com.volmit.iris.gen.atomics.AtomicSliverMap;
import com.volmit.iris.gen.atomics.AtomicWorldData;
import com.volmit.iris.gen.atomics.MasterLock;
import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.object.IrisBiomeMutation;
import com.volmit.iris.object.IrisObjectPlacement;
import com.volmit.iris.object.atomics.AtomicSliver;
import com.volmit.iris.object.atomics.AtomicSliverMap;
import com.volmit.iris.object.atomics.AtomicWorldData;
import com.volmit.iris.object.atomics.MasterLock;
import com.volmit.iris.util.BiomeMap;
import com.volmit.iris.util.CaveResult;
import com.volmit.iris.util.ChunkPosition;

View File

@ -1,12 +1,12 @@
package com.volmit.iris.generator;
package com.volmit.iris.gen;
import java.util.concurrent.locks.ReentrantLock;
import org.bukkit.World;
import com.volmit.iris.Iris;
import com.volmit.iris.object.atomics.AtomicSliver;
import com.volmit.iris.object.atomics.AtomicSliverMap;
import com.volmit.iris.gen.atomics.AtomicSliver;
import com.volmit.iris.gen.atomics.AtomicSliverMap;
import com.volmit.iris.util.BiomeMap;
import com.volmit.iris.util.GroupedExecutor;
import com.volmit.iris.util.HeightMap;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.generator;
package com.volmit.iris.gen;
import java.util.concurrent.locks.ReentrantLock;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.generator;
package com.volmit.iris.gen;
import java.util.concurrent.locks.ReentrantLock;
@ -9,15 +9,15 @@ import org.bukkit.block.data.Bisected.Half;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.Iris;
import com.volmit.iris.layer.GenLayerCarve;
import com.volmit.iris.layer.GenLayerCave;
import com.volmit.iris.gen.atomics.AtomicSliver;
import com.volmit.iris.gen.layer.GenLayerCarve;
import com.volmit.iris.gen.layer.GenLayerCave;
import com.volmit.iris.object.DecorationPart;
import com.volmit.iris.object.InferredType;
import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.object.IrisBiomeDecorator;
import com.volmit.iris.object.IrisDepositGenerator;
import com.volmit.iris.object.IrisRegion;
import com.volmit.iris.object.atomics.AtomicSliver;
import com.volmit.iris.util.BiomeMap;
import com.volmit.iris.util.BiomeResult;
import com.volmit.iris.util.BlockDataTools;
@ -188,6 +188,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
}
sliver.set(k, block);
lit(rx, k, rz, block);
highestPlaced = Math.max(highestPlaced, k);
if(!cavernSurface && (k == height && block.getMaterial().isSolid() && k < fluidHeight))
@ -281,40 +282,6 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
}
}
protected boolean canPlace(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;
}
private void decorateLand(IrisBiome biome, AtomicSliver sliver, double wx, int k, double wz, int rx, int rz, BlockData block)
{
if(!getDimension().isDecorate())
@ -335,7 +302,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
if(d != null)
{
if(!canPlace(d.getMaterial(), block.getMaterial()))
if(!BlockDataTools.canPlaceOnto(d.getMaterial(), block.getMaterial()))
{
continue;
}
@ -396,7 +363,7 @@ public abstract class TerrainChunkGenerator extends ParallelChunkGenerator
if(d != null)
{
if(!canPlace(d.getMaterial(), block.getMaterial()))
if(!BlockDataTools.canPlaceOnto(d.getMaterial(), block.getMaterial()))
{
continue;
}

View File

@ -1,4 +1,4 @@
package com.volmit.iris.object.atomics;
package com.volmit.iris.gen.atomics;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.object.atomics;
package com.volmit.iris.gen.atomics;
import java.io.DataInputStream;
import java.io.DataOutputStream;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.object.atomics;
package com.volmit.iris.gen.atomics;
import java.io.DataInputStream;
import java.io.DataOutputStream;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.object.atomics;
package com.volmit.iris.gen.atomics;
import java.io.File;
import java.io.FileInputStream;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.object.atomics;
package com.volmit.iris.gen.atomics;
import java.util.concurrent.locks.ReentrantLock;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.layer;
package com.volmit.iris.gen.layer;
import com.volmit.iris.object.InferredType;
import com.volmit.iris.object.IrisRegion;

View File

@ -1,7 +1,7 @@
package com.volmit.iris.layer;
package com.volmit.iris.gen.layer;
import com.volmit.iris.Iris;
import com.volmit.iris.generator.DimensionChunkGenerator;
import com.volmit.iris.gen.DimensionChunkGenerator;
import com.volmit.iris.object.InferredType;
import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.object.IrisRegion;

View File

@ -1,6 +1,6 @@
package com.volmit.iris.layer;
package com.volmit.iris.gen.layer;
import com.volmit.iris.generator.DimensionChunkGenerator;
import com.volmit.iris.gen.DimensionChunkGenerator;
import com.volmit.iris.util.CellGenerator;
import com.volmit.iris.util.GenLayer;
import com.volmit.iris.util.IrisInterpolation;

View File

@ -1,10 +1,10 @@
package com.volmit.iris.layer;
package com.volmit.iris.gen.layer;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.generator.DimensionChunkGenerator;
import com.volmit.iris.object.atomics.AtomicSliver;
import com.volmit.iris.gen.DimensionChunkGenerator;
import com.volmit.iris.gen.atomics.AtomicSliver;
import com.volmit.iris.util.BlockDataTools;
import com.volmit.iris.util.CNG;
import com.volmit.iris.util.CaveResult;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.layer.post;
package com.volmit.iris.gen.post;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

View File

@ -1,8 +1,8 @@
package com.volmit.iris.layer.post;
package com.volmit.iris.gen.post;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.generator.PostBlockChunkGenerator;
import com.volmit.iris.gen.PostBlockChunkGenerator;
import com.volmit.iris.util.BlockDataTools;
import com.volmit.iris.util.IrisPostBlockFilter;

View File

@ -1,9 +1,9 @@
package com.volmit.iris.layer.post;
package com.volmit.iris.gen.post;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.generator.PostBlockChunkGenerator;
import com.volmit.iris.gen.PostBlockChunkGenerator;
import com.volmit.iris.util.IrisPostBlockFilter;
@Post("nib-smoother")

View File

@ -1,6 +1,6 @@
package com.volmit.iris.layer.post;
package com.volmit.iris.gen.post;
import com.volmit.iris.generator.PostBlockChunkGenerator;
import com.volmit.iris.gen.PostBlockChunkGenerator;
import com.volmit.iris.util.IrisPostBlockFilter;
@Post("pothole-filler")

View File

@ -1,9 +1,9 @@
package com.volmit.iris.layer.post;
package com.volmit.iris.gen.post;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.generator.PostBlockChunkGenerator;
import com.volmit.iris.gen.PostBlockChunkGenerator;
import com.volmit.iris.util.IrisPostBlockFilter;
import com.volmit.iris.util.RNG;

View File

@ -1,9 +1,9 @@
package com.volmit.iris.layer.post;
package com.volmit.iris.gen.post;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import com.volmit.iris.generator.PostBlockChunkGenerator;
import com.volmit.iris.gen.PostBlockChunkGenerator;
import com.volmit.iris.object.IrisBiome;
import com.volmit.iris.util.IrisPostBlockFilter;
import com.volmit.iris.util.RNG;

View File

@ -1,10 +1,10 @@
package com.volmit.iris.layer.post;
package com.volmit.iris.gen.post;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.Waterlogged;
import com.volmit.iris.generator.PostBlockChunkGenerator;
import com.volmit.iris.gen.PostBlockChunkGenerator;
import com.volmit.iris.util.BlockDataTools;
import com.volmit.iris.util.IrisPostBlockFilter;

View File

@ -78,6 +78,21 @@ public class BlockDataTools
return null;
}
public static boolean isLit(BlockData mat)
{
return isLit(mat.getMaterial());
}
public static boolean isLit(Material mat)
{
if(mat.equals(Material.GLOWSTONE) || mat.equals(Material.TORCH) || mat.equals(Material.REDSTONE_TORCH) || mat.equals(Material.SOUL_TORCH) || mat.equals(Material.REDSTONE_WALL_TORCH) || mat.equals(Material.WALL_TORCH) || mat.equals(Material.SOUL_WALL_TORCH) || mat.equals(Material.LANTERN) || mat.equals(Material.JACK_O_LANTERN) || mat.equals(Material.REDSTONE_LAMP) || mat.equals(Material.MAGMA_BLOCK) || mat.equals(Material.SEA_LANTERN) || mat.equals(Material.SOUL_LANTERN) || mat.equals(Material.FIRE) || mat.equals(Material.SOUL_FIRE) || mat.equals(Material.SEA_PICKLE) || mat.equals(Material.BREWING_STAND) || mat.equals(Material.REDSTONE_ORE))
{
return true;
}
return false;
}
public static boolean canPlaceOnto(Material mat, Material onto)
{
if(onto.equals(Material.GRASS_BLOCK) && mat.equals(Material.DEAD_BUSH))

View File

@ -1,4 +1,4 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import com.volmit.iris.Iris;

View File

@ -1,6 +1,4 @@
package com.volmit.iris.command.util;
import com.volmit.iris.util.KList;
package com.volmit.iris.util;
/**
* Represents a pawn command

View File

@ -1,4 +1,4 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import org.bukkit.event.Listener;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

View File

@ -1,12 +1,10 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import org.bukkit.ChatColor;
import com.volmit.iris.util.KList;
/**
* Represents a pawn command
*

View File

@ -1,4 +1,4 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
@ -6,8 +6,6 @@ import java.lang.reflect.Modifier;
import org.bukkit.command.CommandSender;
import com.volmit.iris.util.KList;
public abstract class MortarPermission
{
private MortarPermission parent;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import java.io.File;
import java.io.IOException;
@ -22,11 +22,6 @@ import org.bukkit.permissions.PermissionDefault;
import org.bukkit.plugin.java.JavaPlugin;
import com.volmit.iris.Iris;
import com.volmit.iris.util.IO;
import com.volmit.iris.util.J;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.KMap;
import com.volmit.iris.util.M;
public abstract class MortarPlugin extends JavaPlugin implements Listener
{
@ -419,13 +414,13 @@ public abstract class MortarPlugin extends JavaPlugin implements Listener
for(Field i : getClass().getDeclaredFields())
{
if(i.isAnnotationPresent(com.volmit.iris.command.util.Command.class))
if(i.isAnnotationPresent(com.volmit.iris.util.Command.class))
{
try
{
i.setAccessible(true);
MortarCommand pc = (MortarCommand) i.getType().getConstructor().newInstance();
com.volmit.iris.command.util.Command c = i.getAnnotation(com.volmit.iris.command.util.Command.class);
com.volmit.iris.util.Command c = i.getAnnotation(com.volmit.iris.util.Command.class);
registerCommand(pc, c.value());
commandCache.add(pc);
v("Registered Commands /" + pc.getNode() + " (" + i.getName() + ")");

View File

@ -1,4 +1,4 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import java.util.Set;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;

View File

@ -1,4 +1,4 @@
package com.volmit.iris.command.util;
package com.volmit.iris.util;
import java.lang.reflect.Field;
@ -7,9 +7,6 @@ import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import com.volmit.iris.Iris;
import com.volmit.iris.util.KList;
import com.volmit.iris.util.KMap;
import com.volmit.iris.util.V;
/**
* Represents a virtual command. A chain of iterative processing through