Skip to content

Commit 46d5a63

Browse files
committed
Add #visualfullcube
This excludes, for instance, rose bushes, which are #fullcube, but are visually smaller.
1 parent 5bb7693 commit 46d5a63

2 files changed

Lines changed: 19 additions & 3 deletions

File tree

worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/FullCubeMaskParser.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
package com.sk89q.worldedit.extension.factory.parser.mask;
2121

2222
import com.sk89q.worldedit.WorldEdit;
23+
import com.sk89q.worldedit.blocks.ShapeType;
2324
import com.sk89q.worldedit.extension.input.InputParseException;
2425
import com.sk89q.worldedit.extension.input.ParserContext;
2526
import com.sk89q.worldedit.function.mask.FullCubeMask;
@@ -30,7 +31,7 @@
3031

3132
public class FullCubeMaskParser extends SimpleInputParser<Mask> {
3233

33-
private static final List<String> aliases = List.of("#fullcube");
34+
private static final List<String> aliases = List.of("#fullcube", "#visualfullcube");
3435

3536
public FullCubeMaskParser(WorldEdit worldEdit) {
3637
super(worldEdit);
@@ -43,6 +44,11 @@ public List<String> getMatchedAliases() {
4344

4445
@Override
4546
public Mask parseFromSimpleInput(String input, ParserContext context) throws InputParseException {
46-
return new FullCubeMask(context.requireExtent());
47+
ShapeType shapeType = switch (input) {
48+
case "#fullcube" -> ShapeType.SHAPE;
49+
case "#visualfullcube" -> ShapeType.VISUAL_SHAPE;
50+
default -> throw new IllegalStateException("Unexpected value: " + input);
51+
};
52+
return new FullCubeMask(context.requireExtent(), shapeType);
4753
}
4854
}

worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/FullCubeMask.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,32 @@
1919

2020
package com.sk89q.worldedit.function.mask;
2121

22+
import com.google.errorprone.annotations.InlineMe;
2223
import com.sk89q.worldedit.blocks.ShapeType;
2324
import com.sk89q.worldedit.extent.Extent;
2425
import com.sk89q.worldedit.math.BlockVector3;
2526
import com.sk89q.worldedit.world.block.BlockState;
2627

2728
public final class FullCubeMask extends AbstractExtentMask {
2829

30+
private final ShapeType shapeType;
31+
32+
@Deprecated
33+
@InlineMe(replacement = "this(extent, ShapeType.SHAPE)", imports = "com.sk89q.worldedit.blocks.ShapeType")
2934
public FullCubeMask(Extent extent) {
35+
this(extent, ShapeType.SHAPE);
36+
}
37+
38+
public FullCubeMask(Extent extent, ShapeType shapeType) {
3039
super(extent);
40+
this.shapeType = shapeType;
3141
}
3242

3343
@Override
3444
public boolean test(BlockVector3 vector) {
3545
Extent extent = getExtent();
3646
BlockState block = extent.getBlock(vector);
37-
return block.getMaterial().isFullCube(ShapeType.SHAPE);
47+
return block.getMaterial().isFullCube(shapeType);
3848
}
3949

4050
}

0 commit comments

Comments
 (0)