mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-25 13:30:08 +00:00
f
This commit is contained in:
1 parent
0a7a531646
commit
6111b5670a
65 files changed
+998
-382
No files matched your search
+11
-17
@@ -62,6 +62,7 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemp
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@@ -368,8 +369,8 @@ public final class IrisModdedChunkGenerator extends ChunkGenerator {
|
||||
for (int blockY = y; blockY < sectionEnd; blockY++) {
|
||||
int bufferY = blockY - dimMinY;
|
||||
int localY = blockY & 15;
|
||||
for (int x = 0; x < 16; x++) {
|
||||
for (int z = 0; z < 16; z++) {
|
||||
for (int z = 0; z < 16; z++) {
|
||||
for (int x = 0; x < 16; x++) {
|
||||
if (blocks.isAir(x, bufferY, z)) {
|
||||
continue;
|
||||
}
|
||||
@@ -445,7 +446,7 @@ public final class IrisModdedChunkGenerator extends ChunkGenerator {
|
||||
@Override
|
||||
public int getSeaLevel() {
|
||||
Engine current = engineOrNull();
|
||||
return current == null ? 63 : current.getDimension().getFluidHeight();
|
||||
return current == null ? 63 : current.getMinHeight() + current.getDimension().getFluidHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -471,25 +472,18 @@ public final class IrisModdedChunkGenerator extends ChunkGenerator {
|
||||
Engine current = engineOrNull();
|
||||
BlockState airState = Blocks.AIR.defaultBlockState();
|
||||
if (current == null) {
|
||||
for (int i = 0; i < states.length; i++) {
|
||||
states[i] = airState;
|
||||
}
|
||||
Arrays.fill(states, airState);
|
||||
return new NoiseColumn(minY, states);
|
||||
}
|
||||
int surface = current.getMinHeight() + current.getHeight(x, z, true);
|
||||
int fluid = current.getDimension().getFluidHeight();
|
||||
int fluid = current.getMinHeight() + current.getDimension().getFluidHeight();
|
||||
BlockState stone = Blocks.STONE.defaultBlockState();
|
||||
BlockState water = Blocks.WATER.defaultBlockState();
|
||||
for (int i = 0; i < states.length; i++) {
|
||||
int y = minY + i;
|
||||
if (y <= surface) {
|
||||
states[i] = stone;
|
||||
} else if (y <= fluid) {
|
||||
states[i] = water;
|
||||
} else {
|
||||
states[i] = airState;
|
||||
}
|
||||
}
|
||||
int solidEnd = Math.max(0, Math.min(states.length, surface - minY + 1));
|
||||
int fluidEnd = Math.max(solidEnd, Math.max(0, Math.min(states.length, fluid - minY + 1)));
|
||||
Arrays.fill(states, 0, solidEnd, stone);
|
||||
Arrays.fill(states, solidEnd, fluidEnd, water);
|
||||
Arrays.fill(states, fluidEnd, states.length, airState);
|
||||
return new NoiseColumn(minY, states);
|
||||
}
|
||||
|
||||
|
||||
@@ -77,6 +77,9 @@ public final class ModdedProtocolHandler {
|
||||
transport = serverTransport;
|
||||
protocolServer = protocol;
|
||||
IrisServices.register(IrisProtocolServer.class, protocol);
|
||||
if (server.getPlayerList() == null) {
|
||||
return;
|
||||
}
|
||||
for (ServerPlayer player : server.getPlayerList().getPlayers()) {
|
||||
sessionRegistry.register(new IrisSession(player.getUUID().toString(), serverTransport));
|
||||
}
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ public final class ModdedGoldenHash {
|
||||
engineMode,
|
||||
true,
|
||||
false,
|
||||
"minecraft:plains");
|
||||
GoldenHashEngine.FALLBACK_BIOME_KEY);
|
||||
this.hashEngine = new GoldenHashEngine(engine, request, goldenDir, this::snapshot, feedback(), progress());
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -386,7 +386,7 @@ public final class ModdedObjectCommands {
|
||||
|
||||
IrisObjectPlacement placement = new IrisObjectPlacement();
|
||||
placement.setRotation(IrisObjectRotation.of(0, rotation, 0));
|
||||
ModdedObjectPlacer placer = new ModdedObjectPlacer(level);
|
||||
ModdedObjectPlacer placer = new ModdedObjectPlacer(level, engine);
|
||||
try {
|
||||
object.place(target.getX(), target.getY() + object.getCenter().getY(), target.getZ(), placer, placement, new RNG(), null);
|
||||
} catch (Throwable e) {
|
||||
|
||||
+5
-2
@@ -35,6 +35,7 @@ import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.levelgen.Heightmap;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -45,14 +46,16 @@ final class ModdedObjectPlacer implements IObjectPlacer {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger("Iris");
|
||||
|
||||
private final ServerLevel level;
|
||||
private final Engine engine;
|
||||
private final Map<BlockPos, BlockState> undo = new HashMap<>();
|
||||
private int writes = 0;
|
||||
private int nonAirWrites = 0;
|
||||
private int skippedTiles = 0;
|
||||
private int restoredTiles = 0;
|
||||
|
||||
ModdedObjectPlacer(ServerLevel level) {
|
||||
ModdedObjectPlacer(ServerLevel level, @Nullable Engine engine) {
|
||||
this.level = level;
|
||||
this.engine = engine;
|
||||
}
|
||||
|
||||
Map<BlockPos, BlockState> undoSnapshot() {
|
||||
@@ -183,6 +186,6 @@ final class ModdedObjectPlacer implements IObjectPlacer {
|
||||
|
||||
@Override
|
||||
public Engine getEngine() {
|
||||
return null;
|
||||
return engine;
|
||||
}
|
||||
}
|
||||
+6
-1
@@ -186,6 +186,7 @@ public final class ModdedPregenMethod implements PregeneratorMethod {
|
||||
listener.onChunkFailed(x, z);
|
||||
return;
|
||||
}
|
||||
markCompleted();
|
||||
listener.onChunkGenerated(x, z);
|
||||
cleanupMantleChunk(x, z);
|
||||
listener.onChunkCleaned(x, z);
|
||||
@@ -236,6 +237,7 @@ public final class ModdedPregenMethod implements PregeneratorMethod {
|
||||
return;
|
||||
}
|
||||
onSuccess();
|
||||
markCompleted();
|
||||
listener.onChunkGenerated(x, z);
|
||||
cleanupMantleChunk(x, z);
|
||||
listener.onChunkCleaned(x, z);
|
||||
@@ -253,12 +255,15 @@ public final class ModdedPregenMethod implements PregeneratorMethod {
|
||||
|
||||
private void markFinished() {
|
||||
inFlight.decrementAndGet();
|
||||
completed.incrementAndGet();
|
||||
synchronized (permitMonitor) {
|
||||
permitMonitor.notifyAll();
|
||||
}
|
||||
}
|
||||
|
||||
private void markCompleted() {
|
||||
completed.incrementAndGet();
|
||||
}
|
||||
|
||||
private void onTimeout() {
|
||||
if (timeoutStreak.incrementAndGet() % ADAPTIVE_TIMEOUT_STEP == 0) {
|
||||
adjustAdaptiveLimit(-1);
|
||||
|
||||
+2
-1
@@ -161,6 +161,7 @@ public final class ModdedStructureCommands {
|
||||
return 0;
|
||||
}
|
||||
ServerLevel level = source.getLevel();
|
||||
Engine engine = IrisModdedCommands.engineFor(level);
|
||||
IrisData data = dataFor(source);
|
||||
if (data == null) {
|
||||
return 0;
|
||||
@@ -181,7 +182,7 @@ public final class ModdedStructureCommands {
|
||||
IrisModdedCommands.fail(source, "Structure '" + key + "' assembled 0 pieces");
|
||||
return 0;
|
||||
}
|
||||
ModdedObjectPlacer placer = new ModdedObjectPlacer(level);
|
||||
ModdedObjectPlacer placer = new ModdedObjectPlacer(level, engine);
|
||||
UUID owner = player.getUUID();
|
||||
try {
|
||||
for (PlacedStructurePiece piece : pieces) {
|
||||
|
||||
Reference in new issue
Block a user