Merge pull request 'TestblockReset' (#247) from TestblockReset into master
Reviewed-on: #247
Dieser Commit ist enthalten in:
Commit
f3b1d0a8b2
@ -61,7 +61,7 @@ class Region_15 {
|
||||
static EditSession paste(Clipboard clipboard, int x, int y, int z, PasteOptions pasteOptions) {
|
||||
try (EditSession e = WorldEdit.getInstance().getEditSessionFactory().getEditSession(new BukkitWorld(Bukkit.getWorlds().get(0)), -1)) {
|
||||
changeColor(clipboard, pasteOptions.getColor());
|
||||
|
||||
|
||||
ClipboardHolder ch = new ClipboardHolder(clipboard);
|
||||
BlockVector3 dimensions = clipboard.getDimensions();
|
||||
BlockVector3 v = BlockVector3.at(x, y, z);
|
||||
@ -75,6 +75,9 @@ class Region_15 {
|
||||
|
||||
if (pasteOptions.isReset()) {
|
||||
e.setBlocks(new CuboidRegion(RegionUtils_15.toBlockVector3(pasteOptions.getMinPoint()), RegionUtils_15.toBlockVector3(pasteOptions.getMaxPoint())), BlockTypes.AIR.getDefaultState().toBaseBlock());
|
||||
if (pasteOptions.getWaterLevel() != 0) {
|
||||
e.setBlocks(new CuboidRegion(RegionUtils_15.toBlockVector3(pasteOptions.getMinPoint()), RegionUtils_15.toBlockVector3(pasteOptions.getMaxPoint()).withY(pasteOptions.getWaterLevel())), BlockTypes.WATER.getDefaultState().toBaseBlock());
|
||||
}
|
||||
}
|
||||
Operations.completeBlindly(ch.createPaste(e).to(v).ignoreAirBlocks(pasteOptions.isIgnoreAir()).build());
|
||||
return e;
|
||||
|
@ -59,6 +59,11 @@ public class PasteOptions {
|
||||
*/
|
||||
private Point maxPoint = null;
|
||||
|
||||
/**
|
||||
* Used in 1.15
|
||||
*/
|
||||
private int waterLevel = 0;
|
||||
|
||||
public PasteOptions(boolean rotate) {
|
||||
this.rotate = rotate;
|
||||
}
|
||||
|
@ -64,17 +64,12 @@ public class CommandTestblock extends SWCommand {
|
||||
}
|
||||
|
||||
|
||||
@Register
|
||||
@Register({"schem"})
|
||||
public void schematicTestblockCommand(Player p, String s) {
|
||||
schematicTestblockCommand(p, s, RegionExtensionType.NORMAL);
|
||||
}
|
||||
|
||||
@Register
|
||||
public void schematicTestblockCommand(Player p, RegionExtensionType regionExtensionType, String s) {
|
||||
schematicTestblockCommand(p, s, regionExtensionType);
|
||||
}
|
||||
|
||||
@Register
|
||||
@Register({"schem"})
|
||||
public void schematicTestblockCommand(Player p, String s, RegionExtensionType regionExtensionType) {
|
||||
if (!permissionCheck(p)) return;
|
||||
Region region = regionCheck(p);
|
||||
|
@ -21,6 +21,7 @@ package de.steamwar.bausystem.world.regions;
|
||||
|
||||
import com.sk89q.worldedit.EditSession;
|
||||
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.world.Color;
|
||||
import de.steamwar.core.VersionedCallable;
|
||||
import de.steamwar.sql.NoClipboardException;
|
||||
@ -151,7 +152,7 @@ public class Prototype {
|
||||
public EditSession reset(Region region, Schematic schem, boolean ignoreAir, Color color, boolean reset) throws IOException, NoClipboardException {
|
||||
PasteOptions pasteOptions;
|
||||
if (reset) {
|
||||
pasteOptions = new PasteOptions(rotate ^ (schem != null && (schem.getSchemType().fightType() || schem.getSchemType().check())), ignoreAir, color, true, getMinPoint(region, RegionExtensionType.EXTENSION), getMaxPoint(region, RegionExtensionType.EXTENSION));
|
||||
pasteOptions = new PasteOptions(rotate ^ (schem != null && (schem.getSchemType().fightType() || schem.getSchemType().check())), ignoreAir, color, true, getMinPoint(region, RegionExtensionType.EXTENSION), getMaxPoint(region, RegionExtensionType.EXTENSION), waterLevel);
|
||||
} else {
|
||||
pasteOptions = new PasteOptions(rotate ^ (schem != null && (schem.getSchemType().fightType() || schem.getSchemType().check())), ignoreAir, color);
|
||||
}
|
||||
@ -186,7 +187,7 @@ public class Prototype {
|
||||
}
|
||||
|
||||
public EditSession resetTestblock(Region region, Schematic schem, Color color, boolean reset) throws IOException, NoClipboardException {
|
||||
return testblock.reset(region, schem, false, color, reset);
|
||||
return testblock.reset(region, schem, false, color, reset && waterLevel == 0);
|
||||
}
|
||||
|
||||
private static boolean inRange(double l, int min, int size) {
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren