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