Get chunks asynchronously

This commit is contained in:
MattBDev
2019-08-05 13:33:27 -04:00
parent cc45208605
commit bd51292f4c
4 changed files with 40 additions and 34 deletions

View File

@ -1,19 +1,16 @@
package com.github.intellectualsites.plotsquared.plot.util.block;
import com.github.intellectualsites.plotsquared.plot.object.LegacyPlotBlock;
import com.github.intellectualsites.plotsquared.plot.object.PlotBlock;
import com.github.intellectualsites.plotsquared.plot.object.RunnableVal;
import com.github.intellectualsites.plotsquared.plot.object.StringPlotBlock;
import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
import com.github.intellectualsites.plotsquared.plot.util.MathMan;
import com.github.intellectualsites.plotsquared.plot.util.TaskManager;
import com.sk89q.worldedit.world.block.BaseBlock;
import com.sk89q.worldedit.world.block.BlockTypes;
import com.sk89q.worldedit.world.registry.LegacyMapper;
import lombok.Getter;
import org.jetbrains.annotations.NotNull;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.concurrent.ExecutionException;
public abstract class BasicLocalBlockQueue extends LocalBlockQueue {
@ -35,7 +32,8 @@ public abstract class BasicLocalBlockQueue extends LocalBlockQueue {
@Override public abstract PlotBlock getBlock(int x, int y, int z);
public abstract void setComponents(LocalChunk lc);
public abstract void setComponents(LocalChunk lc)
throws ExecutionException, InterruptedException;
@Override public final String getWorld() {
return world;
@ -62,10 +60,8 @@ public abstract class BasicLocalBlockQueue extends LocalBlockQueue {
return false;
}
public final boolean execute(final LocalChunk lc) {
if (lc == null) {
return false;
}
public final boolean execute(@NotNull LocalChunk lc)
throws ExecutionException, InterruptedException {
this.setComponents(lc);
return true;
}
@ -154,7 +150,6 @@ public abstract class BasicLocalBlockQueue extends LocalBlockQueue {
TaskManager.IMP.sync(new RunnableVal<Object>() {
@Override public void run(Object value) {
while (next()) {
;
}
}
});