geforkt von Mirrors/FastAsyncWorldEdit
Upstream/add missing y variable to generate biome (#824)
* Add the missing y variable to generate biome * Remove unused imports Co-authored-by: Octavia Togami <octavia.togami@gmail.com> Co-authored-by: NotMyFault <mc.cache@web.de>
Dieser Commit ist enthalten in:
Ursprung
e40e86df5f
Commit
1b870c5d78
@ -125,8 +125,6 @@ import com.sk89q.worldedit.util.formatting.text.TranslatableComponent;
|
|||||||
import com.sk89q.worldedit.world.World;
|
import com.sk89q.worldedit.world.World;
|
||||||
import com.sk89q.worldedit.world.biome.BiomeType;
|
import com.sk89q.worldedit.world.biome.BiomeType;
|
||||||
import com.sk89q.worldedit.world.block.BaseBlock;
|
import com.sk89q.worldedit.world.block.BaseBlock;
|
||||||
import com.sk89q.worldedit.world.block.BlockCategories;
|
|
||||||
import com.sk89q.worldedit.world.block.BlockID;
|
|
||||||
import com.sk89q.worldedit.world.block.BlockState;
|
import com.sk89q.worldedit.world.block.BlockState;
|
||||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||||
import com.sk89q.worldedit.world.block.BlockType;
|
import com.sk89q.worldedit.world.block.BlockType;
|
||||||
@ -148,6 +146,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkArgument;
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
@ -3008,23 +3007,21 @@ public class EditSession extends PassthroughExtent implements AutoCloseable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int makeBiomeShape(final Region region, final Vector3 zero, final Vector3 unit, final BiomeType biomeType,
|
public int makeBiomeShape(final Region region, final Vector3 zero, final Vector3 unit, final BiomeType biomeType,
|
||||||
final String expressionString, final boolean hollow)
|
final String expressionString, final boolean hollow) throws ExpressionException {
|
||||||
throws ExpressionException, MaxChangedBlocksException {
|
|
||||||
return makeBiomeShape(region, zero, unit, biomeType, expressionString, hollow, WorldEdit.getInstance().getConfiguration().calculationTimeout);
|
return makeBiomeShape(region, zero, unit, biomeType, expressionString, hollow, WorldEdit.getInstance().getConfiguration().calculationTimeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int makeBiomeShape(final Region region, final Vector3 zero, final Vector3 unit, final BiomeType biomeType,
|
public int makeBiomeShape(final Region region, final Vector3 zero, final Vector3 unit, final BiomeType biomeType,
|
||||||
final String expressionString, final boolean hollow, final int timeout)
|
final String expressionString, final boolean hollow, final int timeout) throws ExpressionException {
|
||||||
throws ExpressionException, MaxChangedBlocksException {
|
|
||||||
|
|
||||||
final Expression expression = Expression.compile(expressionString, "x", "z");
|
final Expression expression = Expression.compile(expressionString, "x", "y", "z");
|
||||||
expression.optimize();
|
expression.optimize();
|
||||||
|
|
||||||
final EditSession editSession = this;
|
final EditSession editSession = this;
|
||||||
final WorldEditExpressionEnvironment environment = new WorldEditExpressionEnvironment(editSession, unit, zero);
|
final WorldEditExpressionEnvironment environment = new WorldEditExpressionEnvironment(editSession, unit, zero);
|
||||||
expression.setEnvironment(environment);
|
expression.setEnvironment(environment);
|
||||||
|
|
||||||
final int[] timedOut = {0};
|
AtomicInteger timedOut = new AtomicInteger();
|
||||||
final ArbitraryBiomeShape shape = new ArbitraryBiomeShape(region) {
|
final ArbitraryBiomeShape shape = new ArbitraryBiomeShape(region) {
|
||||||
@Override
|
@Override
|
||||||
protected BiomeType getBiome(int x, int y, int z, BiomeType defaultBiomeType) {
|
protected BiomeType getBiome(int x, int y, int z, BiomeType defaultBiomeType) {
|
||||||
@ -3041,7 +3038,7 @@ public class EditSession extends PassthroughExtent implements AutoCloseable {
|
|||||||
// TODO: Allow biome setting via a script variable (needs BiomeType<->int mapping)
|
// TODO: Allow biome setting via a script variable (needs BiomeType<->int mapping)
|
||||||
return defaultBiomeType;
|
return defaultBiomeType;
|
||||||
} catch (ExpressionTimeoutException e) {
|
} catch (ExpressionTimeoutException e) {
|
||||||
timedOut[0] = timedOut[0] + 1;
|
timedOut.getAndIncrement();
|
||||||
return null;
|
return null;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.warn("Failed to create shape", e);
|
log.warn("Failed to create shape", e);
|
||||||
@ -3050,10 +3047,10 @@ public class EditSession extends PassthroughExtent implements AutoCloseable {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
int changed = shape.generate(this, biomeType, hollow);
|
int changed = shape.generate(this, biomeType, hollow);
|
||||||
if (timedOut[0] > 0) {
|
if (timedOut.get() > 0) {
|
||||||
throw new ExpressionTimeoutException(
|
throw new ExpressionTimeoutException(
|
||||||
String.format("%d blocks changed. %d blocks took too long to evaluate (increase time with //timeout)",
|
String.format("%d biomes changed. %d biomes took too long to evaluate (increase time with //timeout)",
|
||||||
changed, timedOut[0]));
|
changed, timedOut.get()));
|
||||||
}
|
}
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
@ -397,7 +397,7 @@
|
|||||||
"worldedit.pumpkins.created": "{0} pumpkin patches created.",
|
"worldedit.pumpkins.created": "{0} pumpkin patches created.",
|
||||||
"worldedit.pyramid.created": "{0} blocks have been created.",
|
"worldedit.pyramid.created": "{0} blocks have been created.",
|
||||||
"worldedit.generate.created": "{0} blocks have been created.",
|
"worldedit.generate.created": "{0} blocks have been created.",
|
||||||
"worldedit.generate.changed": "{0} columns affected.",
|
"worldedit.generatebiome.changed": "{0} biomes affected.",
|
||||||
|
|
||||||
"worldedit.reload.config": "Configuration reloaded!",
|
"worldedit.reload.config": "Configuration reloaded!",
|
||||||
"worldedit.report.written": "FAWE report written to {0}",
|
"worldedit.report.written": "FAWE report written to {0}",
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren