This commit is contained in:
Daniel Mills 2020-02-01 20:56:34 -05:00
parent 6373478d13
commit e385e3cec8
4 changed files with 18 additions and 39 deletions

View File

@ -3,7 +3,9 @@ package ninja.bytecode.iris;
import java.io.File; import java.io.File;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
@ -16,7 +18,6 @@ import mortar.api.sched.S;
import mortar.bukkit.command.Command; import mortar.bukkit.command.Command;
import mortar.bukkit.plugin.Control; import mortar.bukkit.plugin.Control;
import mortar.bukkit.plugin.MortarPlugin; import mortar.bukkit.plugin.MortarPlugin;
import mortar.util.reflection.V;
import mortar.util.text.C; import mortar.util.text.C;
import ninja.bytecode.iris.command.CommandIris; import ninja.bytecode.iris.command.CommandIris;
import ninja.bytecode.iris.controller.ExecutionController; import ninja.bytecode.iris.controller.ExecutionController;
@ -25,6 +26,8 @@ import ninja.bytecode.iris.controller.WandController;
import ninja.bytecode.iris.generator.IrisGenerator; import ninja.bytecode.iris.generator.IrisGenerator;
import ninja.bytecode.iris.util.Direction; import ninja.bytecode.iris.util.Direction;
import ninja.bytecode.iris.util.HotswapGenerator; import ninja.bytecode.iris.util.HotswapGenerator;
import ninja.bytecode.iris.util.IrisMetrics;
import ninja.bytecode.shuriken.execution.J;
import ninja.bytecode.shuriken.logging.L; import ninja.bytecode.shuriken.logging.L;
public class Iris extends MortarPlugin public class Iris extends MortarPlugin
@ -32,7 +35,7 @@ public class Iris extends MortarPlugin
public static Thread primaryThread; public static Thread primaryThread;
public static Settings settings; public static Settings settings;
public static IrisMetrics metrics; public static IrisMetrics metrics;
private ExecutionController executionController; private static ExecutionController executionController;
public static Iris instance; public static Iris instance;
@ -69,7 +72,7 @@ public class Iris extends MortarPlugin
public static boolean isGen(World world) public static boolean isGen(World world)
{ {
IrisGenerator g = getGen(world); IrisGenerator g = getGen(world);
return g != null && g instanceof IrisGenerator; return g != null;
} }
public static IrisGenerator getGen(World world) public static IrisGenerator getGen(World world)
@ -92,30 +95,6 @@ public class Iris extends MortarPlugin
{ {
instance = this; instance = this;
packController.compile(); packController.compile();
new S(0)
{
@Override
public void run()
{
instance = Iris.this;
for(World i : Bukkit.getWorlds())
{
try
{
new V(i.getGenerator()).invoke("setGenerator", new IrisGenerator());
L.i("Hotloading Generator for World " + i.getName());
}
catch(Throwable e)
{
}
}
}
};
instance = this;
} }
@Override @Override
@ -129,7 +108,6 @@ public class Iris extends MortarPlugin
HandlerList.unregisterAll((Plugin) this); HandlerList.unregisterAll((Plugin) this);
Bukkit.getScheduler().cancelTasks(this); Bukkit.getScheduler().cancelTasks(this);
executionController.stop(); executionController.stop();
packController.dispose();
} }
@EventHandler @EventHandler
@ -174,18 +152,13 @@ public class Iris extends MortarPlugin
public static ExecutionController exec() public static ExecutionController exec()
{ {
if(instance == null) if(executionController == null)
{ {
instance = (Iris) Bukkit.getPluginManager().getPlugin("Iris"); executionController = new ExecutionController();
executionController.start();
} }
if(instance.executionController == null) return executionController;
{
instance.executionController = new ExecutionController();
instance.executionController.start();
}
return instance.executionController;
} }
public static WandController wand() public static WandController wand()

View File

@ -14,7 +14,6 @@ import org.bukkit.util.NumberConversions;
import mortar.util.text.C; import mortar.util.text.C;
import ninja.bytecode.iris.Iris; import ninja.bytecode.iris.Iris;
import ninja.bytecode.iris.IrisMetrics;
import ninja.bytecode.iris.generator.atomics.AtomicChunkData; import ninja.bytecode.iris.generator.atomics.AtomicChunkData;
import ninja.bytecode.iris.generator.genobject.GenObjectDecorator; import ninja.bytecode.iris.generator.genobject.GenObjectDecorator;
import ninja.bytecode.iris.generator.genobject.PlacedObject; import ninja.bytecode.iris.generator.genobject.PlacedObject;
@ -32,6 +31,7 @@ import ninja.bytecode.iris.pack.IrisRegion;
import ninja.bytecode.iris.util.ChunkPlan; import ninja.bytecode.iris.util.ChunkPlan;
import ninja.bytecode.iris.util.InterpolationMode; import ninja.bytecode.iris.util.InterpolationMode;
import ninja.bytecode.iris.util.IrisInterpolation; import ninja.bytecode.iris.util.IrisInterpolation;
import ninja.bytecode.iris.util.IrisMetrics;
import ninja.bytecode.iris.util.MB; import ninja.bytecode.iris.util.MB;
import ninja.bytecode.iris.util.NoiseProvider; import ninja.bytecode.iris.util.NoiseProvider;
import ninja.bytecode.iris.util.ObjectMode; import ninja.bytecode.iris.util.ObjectMode;

View File

@ -334,6 +334,11 @@ public class GenObjectDecorator extends BlockPopulator
{ {
if(M.r(Iris.settings.gen.objectDensity)) if(M.r(Iris.settings.gen.objectDensity))
{ {
if(i.getSchematics().isEmpty())
{
continue;
}
GenObject go = i.getSchematics().get(random.nextInt(i.getSchematics().size())); GenObject go = i.getSchematics().get(random.nextInt(i.getSchematics().size()));
int x = (cx << 4) + random.nextInt(16); int x = (cx << 4) + random.nextInt(16);
int z = (cz << 4) + random.nextInt(16); int z = (cz << 4) + random.nextInt(16);

View File

@ -1,4 +1,4 @@
package ninja.bytecode.iris; package ninja.bytecode.iris.util;
import java.util.function.Consumer; import java.util.function.Consumer;
@ -6,6 +6,7 @@ import org.bukkit.command.CommandSender;
import mortar.compute.math.M; import mortar.compute.math.M;
import mortar.util.text.C; import mortar.util.text.C;
import ninja.bytecode.iris.Iris;
import ninja.bytecode.shuriken.bench.PrecisionStopwatch; import ninja.bytecode.shuriken.bench.PrecisionStopwatch;
import ninja.bytecode.shuriken.collections.KList; import ninja.bytecode.shuriken.collections.KList;
import ninja.bytecode.shuriken.collections.KMap; import ninja.bytecode.shuriken.collections.KMap;