TestBlockPaste-Without-Water #146
@ -43,6 +43,7 @@ import com.sk89q.worldedit.session.ClipboardHolder;
|
||||
import com.sk89q.worldedit.world.World;
|
||||
import com.sk89q.worldedit.world.block.BaseBlock;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
zOnlyKroks markierte diese Unterhaltung als gelöst
Veraltet
|
||||
import de.steamwar.bausystem.BauSystem;
|
||||
import de.steamwar.bausystem.region.Color;
|
||||
import de.steamwar.bausystem.region.PasteOptions;
|
||||
import de.steamwar.bausystem.region.Point;
|
||||
@ -143,8 +144,9 @@ public class FlatteningWrapper15 implements FlatteningWrapper {
|
||||
changeColor(clipboard, pasteOptions.getColor());
|
||||
}
|
||||
|
||||
|
||||
Set<String> blocks = new HashSet<>();
|
||||
if (pasteOptions.isOnlyColors()) {
|
||||
{
|
||||
zOnlyKroks markierte diese Unterhaltung als gelöst
Veraltet
YoyoNow
hat
Warum schreibst das hier immer rein und machst es nicht optional anhand von dem color flag? Warum schreibst das hier immer rein und machst es nicht optional anhand von dem color flag?
|
||||
blocks.add("minecraft:" + pasteOptions.getColor().name().toLowerCase() + "_wool");
|
||||
blocks.add("minecraft:" + pasteOptions.getColor().name().toLowerCase() + "_terracotta");
|
||||
blocks.add("minecraft:" + pasteOptions.getColor().name().toLowerCase() + "_glazed_terracotta");
|
||||
@ -154,13 +156,15 @@ public class FlatteningWrapper15 implements FlatteningWrapper {
|
||||
blocks.add("minecraft:" + pasteOptions.getColor().name().toLowerCase() + "_concrete_powder");
|
||||
blocks.add("minecraft:" + pasteOptions.getColor().name().toLowerCase() + "_carpet");
|
||||
}
|
||||
|
||||
e.setMask(new Mask() {
|
||||
@Override
|
||||
public boolean test(BlockVector3 blockVector3) {
|
||||
zOnlyKroks markierte diese Unterhaltung als gelöst
Veraltet
Lixfel
hat
Waterlogged-Blöcke werden ebenso Probleme machen. Da könnte man auf ein contains waterlogged=true machen oder ggf. statt über Strings auch direkt über die WorldEdit-Materials/-Blocks, aber das wäre ein größerer Umbau. Waterlogged-Blöcke werden ebenso Probleme machen. Da könnte man auf ein contains waterlogged=true machen oder ggf. statt über Strings auch direkt über die WorldEdit-Materials/-Blocks, aber das wäre ein größerer Umbau.
|
||||
BaseBlock block = clipboard.getFullBlock(blockVector3);
|
||||
String blockName = block.toString().toLowerCase();
|
||||
if (pasteOptions.isTestBlock() && blockName.equals("minecraft.water")) return true;
|
||||
return blocks.contains(blockName);
|
||||
if (blocks.contains(blockName) && pasteOptions.isOnlyColors()) return true;
|
||||
if (pasteOptions.isTestBlock() && blockName.startsWith("minecraft:water")) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@ -168,6 +172,9 @@ public class FlatteningWrapper15 implements FlatteningWrapper {
|
||||
public Mask2D toMask2D() {
|
||||
zOnlyKroks markierte diese Unterhaltung als gelöst
Veraltet
YoyoNow
hat
Hier vllt nicht sinnvoll das man einfach die Blöcke nicht pastet, eher dann einfach nicht waterlogged pasted. Hier vllt nicht sinnvoll das man einfach die Blöcke nicht pastet, eher dann einfach nicht waterlogged pasted.
|
||||
return null;
|
||||
}
|
||||
public Mask copy() {
|
||||
return this;
|
||||
}
|
||||
});
|
||||
|
||||
ClipboardHolder ch = new ClipboardHolder(clipboard);
|
||||
@ -182,7 +189,7 @@ public class FlatteningWrapper15 implements FlatteningWrapper {
|
||||
}
|
||||
|
||||
if (pasteOptions.isReset()) {
|
||||
e.setBlocks((Region) new CuboidRegion(toBlockVector3(pasteOptions.getMinPoint()), toBlockVector3(pasteOptions.getMaxPoint())), Objects.requireNonNull(BlockTypes.AIR).getDefaultState().toBaseBlock());
|
||||
e.setBlocks(new CuboidRegion(toBlockVector3(pasteOptions.getMinPoint()), toBlockVector3(pasteOptions.getMaxPoint())), Objects.requireNonNull(BlockTypes.AIR).getDefaultState().toBaseBlock());
|
||||
if (pasteOptions.getWaterLevel() != 0) {
|
||||
e.setBlocks((Region) new CuboidRegion(toBlockVector3(pasteOptions.getMinPoint()), toBlockVector3(pasteOptions.getMaxPoint()).withY(pasteOptions.getWaterLevel())), Objects.requireNonNull(BlockTypes.WATER).getDefaultState().toBaseBlock());
|
||||
}
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren
Scheint mir nicht genutzt zu sein.