From 0e2d5d058e43a4f5e5d40cd60e2e3a24c7d260a5 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. --- .../main/java/com/sk89q/worldedit/command/BiomeCommands.java | 4 ---- .../main/java/com/sk89q/worldedit/extent/MaskingExtent.java | 5 +++++ 2 files changed, 5 insertions(+), 4 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..cc12eb2b8e 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 @@ -173,7 +173,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 +187,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); + } }