Hotload fixes

This commit is contained in:
Daniel Mills 2020-11-23 02:38:49 -05:00
parent d6b7a4bdba
commit 58845ae79f
3 changed files with 32 additions and 3 deletions

View File

@ -397,7 +397,6 @@ public class IrisBiome extends IrisRegistrant implements IRare
CNG hgen = getLayerHeightGenerators(random, rdata).get(i); CNG hgen = getLayerHeightGenerators(random, rdata).get(i);
double d = hgen.fit(layers.get(i).getMinHeight(), layers.get(i).getMaxHeight(), wx / layers.get(i).getZoom(), wz / layers.get(i).getZoom()); double d = hgen.fit(layers.get(i).getMinHeight(), layers.get(i).getMaxHeight(), wx / layers.get(i).getZoom(), wz / layers.get(i).getZoom());
IrisSlopeClip sc = getLayers().get(i).getSlopeCondition(); IrisSlopeClip sc = getLayers().get(i).getSlopeCondition();
if(!sc.isDefault()) if(!sc.isDefault())

View File

@ -14,6 +14,7 @@ import org.bukkit.*;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.generator.BlockPopulator; import org.bukkit.generator.BlockPopulator;
import org.bukkit.generator.ChunkGenerator; import org.bukkit.generator.ChunkGenerator;
import org.bukkit.material.MaterialData; import org.bukkit.material.MaterialData;
@ -34,6 +35,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
private long mst = 0; private long mst = 0;
private int generated = 0; private int generated = 0;
private int lgenerated = 0; private int lgenerated = 0;
private ChronoLatch hotloadcd;
@Getter @Getter
private double generatedPerSecond = 0; private double generatedPerSecond = 0;
private int art; private int art;
@ -45,6 +47,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
public EngineCompositeGenerator(String hint, boolean production) { public EngineCompositeGenerator(String hint, boolean production) {
super(); super();
hotloadcd = new ChronoLatch(3500);
mst = M.ms(); mst = M.ms();
this.production = production; this.production = production;
this.dimensionHint = hint; this.dimensionHint = hint;
@ -66,8 +69,28 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
public void hotload() public void hotload()
{ {
getData().dump(); if(hotloadcd.flip())
initialized.lazySet(false); {
Iris.proj.updateWorkspace();
getData().dump();
initialized.lazySet(false);
hotloader.checkIgnore();
J.s(() -> {
try
{
for(Player i : getTarget().getWorld().getPlayers())
{
new MortarSender(i, Iris.instance.getTag()).sendMessage("Dimension Hotloaded");
i.playSound(i.getLocation(), Sound.ITEM_BOTTLE_FILL, 1f, 1.25f);
}
}
catch(Throwable e)
{
}
});
}
} }
public void tick() public void tick()

View File

@ -16,11 +16,18 @@ public class ReactiveFolder
fw.checkModified(); fw.checkModified();
} }
public void checkIgnore()
{
fw = new FolderWatcher(folder);
}
public void check() public void check()
{ {
if(fw.checkModified()) if(fw.checkModified())
{ {
fw.checkModified();
hotload.accept(fw.getCreated(), fw.getChanged(), fw.getDeleted()); hotload.accept(fw.getCreated(), fw.getChanged(), fw.getDeleted());
fw.checkModified();
} }
} }
} }