mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-26 23:26:45 +01:00
Fix incorrect schematic paste height, undo changes to HybridUtils
This commit is contained in:
parent
ff60ad1e24
commit
a12fe280db
@ -178,10 +178,9 @@ public class HybridPlotManager extends ClassicPlotManager {
|
||||
}
|
||||
BaseBlock[] blocks = hybridPlotWorld.G_SCH.get(MathMan.pair(absX, absZ));
|
||||
if (blocks != null) {
|
||||
for (int yIndex = 0; yIndex < blocks.length; yIndex++) {
|
||||
int y = yIndex - hybridPlotWorld.getMinGenHeight();
|
||||
if (blocks[yIndex] != null) {
|
||||
queue.setBlock(x, minY + y, z, blocks[yIndex]);
|
||||
for (int y = 0; y < blocks.length; y++) {
|
||||
if (blocks[y] != null) {
|
||||
queue.setBlock(x, minY + y, z, blocks[y]);
|
||||
} else {
|
||||
// This is necessary, otherwise any blocks not specified in the schematic will remain after a clear
|
||||
queue.setBlock(x, minY + y, z, airBlock);
|
||||
|
@ -65,7 +65,6 @@ import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayDeque;
|
||||
@ -444,9 +443,8 @@ public class HybridUtils {
|
||||
while (iter.hasNext()) {
|
||||
BlockVector2 chunk = iter.next();
|
||||
iter.remove();
|
||||
QueueCoordinator queue = blockQueue.getNewQueue(worldUtil.getWeWorld(area.getWorldName()));
|
||||
boolean regenedRoad = regenerateRoad(area, chunk, extend, queue);
|
||||
if (!regenedRoad || !queue.enqueue()) {
|
||||
boolean regenedRoad = regenerateRoad(area, chunk, extend);
|
||||
if (!regenedRoad) {
|
||||
LOGGER.info("Failed to regenerate roads");
|
||||
}
|
||||
}
|
||||
@ -482,12 +480,11 @@ public class HybridUtils {
|
||||
TaskManager.getPlatformImplementation().sync(() -> {
|
||||
long start = System.currentTimeMillis();
|
||||
Iterator<BlockVector2> iterator = chunks.iterator();
|
||||
QueueCoordinator queue = blockQueue.getNewQueue(worldUtil.getWeWorld(area.getWorldName()));
|
||||
while (System.currentTimeMillis() - start < 20 && !chunks.isEmpty()) {
|
||||
final BlockVector2 chunk = iterator.next();
|
||||
iterator.remove();
|
||||
boolean regenedRoads = regenerateRoad(area, chunk, extend, queue);
|
||||
if (!regenedRoads || !queue.enqueue()) {
|
||||
boolean regenedRoads = regenerateRoad(area, chunk, extend);
|
||||
if (!regenedRoads) {
|
||||
LOGGER.info("Failed to regenerate road");
|
||||
}
|
||||
}
|
||||
@ -575,35 +572,7 @@ public class HybridUtils {
|
||||
return ey;
|
||||
}
|
||||
|
||||
/**
|
||||
* Regenerate the road in a chunk in a plot area.
|
||||
*
|
||||
* @param area Plot area to regenerate road for
|
||||
* @param chunk Chunk location to regenerate
|
||||
* @param extend How far to extend setting air above the road
|
||||
* @return if successful
|
||||
* @deprecated use {@link HybridUtils#regenerateRoad(PlotArea, BlockVector2, int, QueueCoordinator)}
|
||||
*/
|
||||
@Deprecated(forRemoval = true, since = "TODO")
|
||||
public boolean regenerateRoad(final PlotArea area, final BlockVector2 chunk, int extend) {
|
||||
return regenerateRoad(area, chunk, extend, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Regenerate the road in a chunk in a plot area.
|
||||
*
|
||||
* @param area Plot area to regenerate road for
|
||||
* @param chunk Chunk location to regenerate
|
||||
* @param extend How far to extend setting air above the road
|
||||
* @param queueCoordinator {@link QueueCoordinator} to use to set the blocks. Null if one should be created and enqueued
|
||||
* @return if successful
|
||||
*/
|
||||
public boolean regenerateRoad(
|
||||
final PlotArea area,
|
||||
final BlockVector2 chunk,
|
||||
int extend,
|
||||
@Nullable QueueCoordinator queueCoordinator
|
||||
) {
|
||||
int x = chunk.getX() << 4;
|
||||
int z = chunk.getZ() << 4;
|
||||
int ex = x + 15;
|
||||
@ -629,15 +598,7 @@ public class HybridUtils {
|
||||
z -= plotWorld.ROAD_OFFSET_Z;
|
||||
final int finalX = x;
|
||||
final int finalZ = z;
|
||||
final boolean enqueue;
|
||||
final QueueCoordinator queue;
|
||||
if (queueCoordinator == null) {
|
||||
queue = this.blockQueue.getNewQueue(worldUtil.getWeWorld(plotWorld.getWorldName()));
|
||||
enqueue = true;
|
||||
} else {
|
||||
queue = queueCoordinator;
|
||||
enqueue = false;
|
||||
}
|
||||
QueueCoordinator queue = this.blockQueue.getNewQueue(worldUtil.getWeWorld(plotWorld.getWorldName()));
|
||||
if (id1 == null || id2 == null || id1 != id2) {
|
||||
this.chunkManager.loadChunk(area.getWorldName(), chunk, false).thenRun(() -> {
|
||||
if (id1 != null) {
|
||||
@ -721,9 +682,7 @@ public class HybridUtils {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (enqueue) {
|
||||
queue.enqueue();
|
||||
}
|
||||
queue.enqueue();
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user