From 2daf385401c2f8b6f38fd3a56cfc3a9bf4db2d2e Mon Sep 17 00:00:00 2001 From: wizjany Date: Sat, 1 Feb 2025 17:58:01 -0500 Subject: [PATCH] Add setBiome override in MaskingExtent. This makes biome operations respect masks set on an EditSession. --- .../java/com/sk89q/worldedit/command/BiomeCommands.java | 6 ------ .../main/java/com/sk89q/worldedit/extent/MaskingExtent.java | 5 +++++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java index 4d7f2a4720..3bbd0899f2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java @@ -32,9 +32,7 @@ import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extension.platform.Locatable; import com.sk89q.worldedit.function.RegionFunction; -import com.sk89q.worldedit.function.RegionMaskingFilter; import com.sk89q.worldedit.function.biome.BiomeReplace; -import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.function.operation.Operations; import com.sk89q.worldedit.function.visitor.RegionVisitor; import com.sk89q.worldedit.math.BlockVector3; @@ -173,7 +171,6 @@ public void setBiome(Actor actor, World world, LocalSession session, EditSession @Switch(name = 'p', desc = "Use your current position") boolean atPosition) throws WorldEditException { Region region; - Mask mask = editSession.getMask(); if (atPosition) { if (actor instanceof Locatable) { @@ -188,9 +185,6 @@ public void setBiome(Actor actor, World world, LocalSession session, EditSession } RegionFunction replace = new BiomeReplace(editSession, target); - if (mask != null) { - replace = new RegionMaskingFilter(mask, replace); - } RegionVisitor visitor = new RegionVisitor(region, replace); Operations.completeLegacy(visitor); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java index 1de774aad7..11edba8314 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java @@ -22,6 +22,7 @@ import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.math.BlockVector3; +import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockStateHolder; import static com.google.common.base.Preconditions.checkNotNull; @@ -69,4 +70,8 @@ public > boolean setBlock(BlockVector3 location, B return mask.test(location) && super.setBlock(location, block); } + @Override + public boolean setBiome(BlockVector3 location, BiomeType biome) { + return mask.test(location) && super.setBiome(location, biome); + } }