From 2e7de188400d4f28b254e94f3bb021dd06ebcc5d Mon Sep 17 00:00:00 2001 From: sk89q Date: Sat, 4 Jun 2011 12:21:13 -0700 Subject: [PATCH] Removed ReplacingEditSession, which is now obsoleted by the changes to EditSession. --- .../sk89q/worldedit/ReplacingEditSession.java | 86 ------------------- .../com/sk89q/worldedit/tools/BrushTool.java | 17 ++-- 2 files changed, 10 insertions(+), 93 deletions(-) delete mode 100644 src/main/java/com/sk89q/worldedit/ReplacingEditSession.java diff --git a/src/main/java/com/sk89q/worldedit/ReplacingEditSession.java b/src/main/java/com/sk89q/worldedit/ReplacingEditSession.java deleted file mode 100644 index 983e74195..000000000 --- a/src/main/java/com/sk89q/worldedit/ReplacingEditSession.java +++ /dev/null @@ -1,86 +0,0 @@ -// $Id$ -/* - * WorldEdit - * Copyright (C) 2010 sk89q - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . -*/ - -package com.sk89q.worldedit; - -import com.sk89q.worldedit.bags.BlockBag; -import com.sk89q.worldedit.blocks.BaseBlock; -import com.sk89q.worldedit.masks.Mask; - -/** - * An edit session that will only replace blocks as specified. - * - * @author sk89q - */ -public class ReplacingEditSession extends EditSession { - /** - * Filter to use to filter blocks. - */ - private Mask mask; - - /** - * Construct the object. - * - * @param world - * @param maxBlocks - * @param mask - */ - public ReplacingEditSession(LocalWorld world, - int maxBlocks, Mask mask) { - super(world, maxBlocks); - this.mask = mask; - } - - /** - * Construct the object. - * - * @param world - * @param maxBlocks - * @param blockBag - * @param mask - */ - public ReplacingEditSession(LocalWorld world, int maxBlocks, - BlockBag blockBag, Mask mask) { - super(world, maxBlocks, blockBag); - this.mask = mask; - } - - /** - * Sets a block without changing history. - * - * @param pt - * @param block - * @return Whether the block changed - */ - @Override - public boolean rawSetBlock(Vector pt, BaseBlock block) { - int y = pt.getBlockY(); - - if (y < 0 || y > 127) { - return false; - } - - if (!mask.matches(this, pt)) { - return false; - } - - return super.rawSetBlock(pt, block); - } - -} diff --git a/src/main/java/com/sk89q/worldedit/tools/BrushTool.java b/src/main/java/com/sk89q/worldedit/tools/BrushTool.java index bd7fbf832..8a3e81bf6 100644 --- a/src/main/java/com/sk89q/worldedit/tools/BrushTool.java +++ b/src/main/java/com/sk89q/worldedit/tools/BrushTool.java @@ -23,6 +23,7 @@ import com.sk89q.worldedit.*; import com.sk89q.worldedit.bags.BlockBag; import com.sk89q.worldedit.blocks.BaseBlock; import com.sk89q.worldedit.blocks.BlockID; +import com.sk89q.worldedit.masks.CombinedMask; import com.sk89q.worldedit.masks.Mask; import com.sk89q.worldedit.patterns.Pattern; import com.sk89q.worldedit.patterns.SingleBlockPattern; @@ -154,14 +155,16 @@ public class BrushTool implements TraceTool { BlockBag bag = session.getBlockBag(player); - EditSession editSession; - - if (mask == null) { - editSession = new EditSession(target.getWorld(), - session.getBlockChangeLimit(), bag); + EditSession editSession = session.createEditSession(player); + Mask existingMask = editSession.getMask(); + if (existingMask == null) { + editSession.setMask(mask); + } else if (existingMask instanceof CombinedMask) { + ((CombinedMask) existingMask).add(mask); } else { - editSession = new ReplacingEditSession(target.getWorld(), - session.getBlockChangeLimit(), bag, mask); + CombinedMask newMask = new CombinedMask(existingMask); + newMask.add(mask); + editSession.setMask(newMask); } try {