mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-03 08:26:11 +00:00
sync
This commit is contained in:
parent
36b99ae4b0
commit
3f994c18ff
@ -44,7 +44,7 @@ registerCustomOutputTask('Strange', 'D://Servers/1.17 Test Server/plugins')
|
||||
registerCustomOutputTask('Vatuu', 'D://Minecraft/Servers/1.19.4/plugins')
|
||||
registerCustomOutputTask('CrazyDev22', 'C://Users/Julian/Desktop/server/plugins')
|
||||
registerCustomOutputTask('Pixel', 'D://Iris Dimension Engine/1.20.4 - Development/plugins')
|
||||
registerCustomOutputTask('PixelFury', 'C://Users/RePixelatedMC/Iris/1.21 - Render/plugins')
|
||||
registerCustomOutputTask('PixelFury', 'C://Users/RePixelatedMC/Iris/1.21 - Development-v3/plugins')
|
||||
// ========================== UNIX ==============================
|
||||
registerCustomOutputTaskUnix('CyberpwnLT', '/Users/danielmills/development/server/plugins')
|
||||
registerCustomOutputTaskUnix('PsychoLT', '/Users/brianfopiano/Developer/RemoteGit/Server/plugins')
|
||||
|
@ -64,7 +64,6 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.persistence.PersistentDataContainer;
|
||||
import org.bukkit.persistence.PersistentDataType;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.HashSet;
|
||||
@ -134,7 +133,8 @@ public class IrisEngine implements Engine {
|
||||
context = new IrisContext(this);
|
||||
cleaning = new AtomicBoolean(false);
|
||||
context.touch();
|
||||
merger = new IrisMerger();
|
||||
merger = getDimension().getMerger();
|
||||
updateMemoryWorld();
|
||||
getData().setEngine(this);
|
||||
getData().loadPrefetch(this);
|
||||
Iris.info("Initializing Engine: " + target.getWorld().name() + "/" + target.getDimension().getLoadKey() + " (" + target.getDimension().getDimensionHeight() + " height) Seed: " + getSeedManager().getSeed());
|
||||
@ -200,15 +200,16 @@ public class IrisEngine implements Engine {
|
||||
mode = getDimension().getMode().getType().create(this);
|
||||
}
|
||||
|
||||
private void setupMemoryWorld() {
|
||||
private void updateMemoryWorld() {
|
||||
try {
|
||||
merger = getDimension().getMerger();
|
||||
if (!getDimension().isEnableExperimentalMerger()) return;
|
||||
if (getMerger().getGenerator().isBlank()) return;
|
||||
NamespacedKey dk = NamespacedKey.minecraft("memory_current_creator");
|
||||
PersistentDataContainer per = null;
|
||||
PersistentDataContainer per;
|
||||
if (memoryWorld != null) {
|
||||
per = memoryWorld.getBukkit().getPersistentDataContainer();
|
||||
if (Objects.equals(per.get(dk, PersistentDataType.STRING), memoryWorld.getBukkit().getGenerator().toString()))
|
||||
if (Objects.equals(per.get(dk, PersistentDataType.STRING), getMerger().getGenerator()))
|
||||
return;
|
||||
if (memoryWorld != null)
|
||||
memoryWorld.close();
|
||||
@ -219,7 +220,7 @@ public class IrisEngine implements Engine {
|
||||
INMS.get().createMemoryWorld(NamespacedKey.minecraft(getMerger().getGenerator()), new WorldCreator("memoryworld"))
|
||||
) : null; // todo: experimental
|
||||
per = memoryWorld.getBukkit().getPersistentDataContainer();
|
||||
per.set(dk, PersistentDataType.STRING, memoryWorld.getBukkit().getGenerator().toString());
|
||||
per.set(dk, PersistentDataType.STRING, getMerger().getGenerator());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -274,6 +275,7 @@ public class IrisEngine implements Engine {
|
||||
getData().clearLists();
|
||||
getTarget().setDimension(getData().getDimensionLoader().load(getDimension().getLoadKey()));
|
||||
prehotload();
|
||||
updateMemoryWorld();
|
||||
setupEngine();
|
||||
J.a(() -> {
|
||||
synchronized (ServerConfigurator.class) {
|
||||
|
@ -144,9 +144,8 @@ public class IrisDimension extends IrisRegistrant {
|
||||
@RegistryListResource(IrisJigsawStructure.class)
|
||||
@Desc("If defined, Iris will place the given jigsaw structure where minecraft should place the overworld stronghold.")
|
||||
private String stronghold;
|
||||
@ArrayType(max = 1, type = IrisMerger.class)
|
||||
@Desc("Iris merger [Experimental] ( Deprecated for v3 )")
|
||||
private IrisMerger merger;
|
||||
private IrisMerger merger = new IrisMerger();
|
||||
@Desc("Cheap temp solution till v4 arrives [ Enables the experimental merger ] Requires studio restart to take effect!")
|
||||
private boolean EnableExperimentalMerger = true;
|
||||
@Desc("If set to true, Iris will remove chunks to allow visualizing cross sections of chunks easily")
|
||||
|
@ -28,8 +28,8 @@ import org.bukkit.generator.ChunkGenerator;
|
||||
@Data
|
||||
public class IrisMerger {
|
||||
|
||||
private RollingSequence mergeDuration;
|
||||
private Engine engine;
|
||||
private transient RollingSequence mergeDuration = new RollingSequence(20);
|
||||
private transient Engine engine;
|
||||
|
||||
@Desc("Selected Generator")
|
||||
private String generator;
|
||||
@ -48,8 +48,11 @@ public class IrisMerger {
|
||||
*/
|
||||
@Deprecated
|
||||
public void generateVanillaUnderground(int x, int z, Engine engine) {
|
||||
if (engine.getMemoryWorld() == null || engine.getWorld() == null)
|
||||
throw new NullPointerException();
|
||||
if (engine.getMemoryWorld() == null)
|
||||
throw new IllegalStateException("MemoryWorld is null. Ensure that it has been initialized.");
|
||||
if (engine.getWorld() == null)
|
||||
throw new IllegalStateException("World is null. Ensure that the world has been properly loaded.");
|
||||
|
||||
PrecisionStopwatch p = PrecisionStopwatch.start();
|
||||
Hunk<BlockData> vh = memoryWorldToHunk(engine.getMemoryWorld().getChunkData(x, z), engine);
|
||||
int totalHeight = engine.getMemoryWorld().getBukkit().getMaxHeight() - engine.getMemoryWorld().getBukkit().getMinHeight();
|
||||
@ -60,7 +63,7 @@ public class IrisMerger {
|
||||
for (int zz = 0; zz < 16; zz++) {
|
||||
for (int y = 0; y < totalHeight; y++) {
|
||||
//int height = engine.getHeight(x * 16 + xx, z * 16 + zz, true) - 10;
|
||||
int height = (int) Math.ceil(context.getHeight().get(xx,zz));
|
||||
int height = (int) Math.ceil(context.getHeight().get(xx,zz) - depth);
|
||||
if (y < height) {
|
||||
BlockData blockData = vh.get(xx, y, zz);
|
||||
if (blockData != null) {
|
||||
|
@ -366,12 +366,8 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun
|
||||
getEngine().generate(x << 4, z << 4, blocks, biomes, false);
|
||||
blocks.apply();
|
||||
biomes.apply();
|
||||
J.s(() -> {
|
||||
//generateVanillaUnderground(x,z, blocks);
|
||||
});
|
||||
}
|
||||
|
||||
Iris.info("dev");
|
||||
Iris.debug("Generated " + x + " " + z);
|
||||
} catch (Throwable e) {
|
||||
Iris.error("======================================");
|
||||
@ -389,7 +385,7 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun
|
||||
|
||||
@EventHandler
|
||||
private void onChunkGeneration(ChunkLoadEvent event) {
|
||||
if(!event.isNewChunk() || !engine.getWorld().realWorld().equals(event.getWorld()) || !engine.getDimension().isEnableExperimentalMerger() || engine.getMemoryWorld() != null) return;
|
||||
if(!event.isNewChunk() || !engine.getWorld().realWorld().equals(event.getWorld()) || !engine.getDimension().isEnableExperimentalMerger() || engine.getMemoryWorld() == null) return;
|
||||
engine.getMerger().generateVanillaUnderground(event.getChunk().getX(), event.getChunk().getZ(), engine);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user