Mirror von
https://github.com/IntellectualSites/FastAsyncWorldEdit.git
synchronisiert 2024-12-25 10:30:04 +01:00
Implemented /repl tool that will replace a right clicked block with a block of your choice.
Dieser Commit ist enthalten in:
Ursprung
1ed99f2337
Commit
b491457fb8
@ -139,6 +139,7 @@ public class WorldEditController {
|
||||
commands.put("/none", "Switch to no tool");
|
||||
commands.put("/info", "Switch to the info tool");
|
||||
commands.put("/tree", "Switch to the tree tool");
|
||||
commands.put("/repl", "[ID] - Switch to the block replacer tool");
|
||||
commands.put("//expand", "[Num] <Dir> - Expands the selection");
|
||||
commands.put("//contract", "[Num] <Dir> - Contracts the selection");
|
||||
commands.put("//shift", "[Num] <Dir> - Shift the selection");
|
||||
@ -692,7 +693,15 @@ public class WorldEditController {
|
||||
player.print("Info tool equipped. Right click with a pickaxe.");
|
||||
return true;
|
||||
|
||||
// Info tool
|
||||
// Replace block tool
|
||||
} else if (split[0].equalsIgnoreCase("/repl")) {
|
||||
checkArgs(split, 1, 1, split[0]);
|
||||
BaseBlock targetBlock = getBlock(player, split[1]);
|
||||
session.setTool(new BlockReplacer(targetBlock));
|
||||
player.print("Block replacer tool equipped. Right click with a pickaxe.");
|
||||
return true;
|
||||
|
||||
// No tool
|
||||
} else if (split[0].equalsIgnoreCase("/none")) {
|
||||
checkArgs(split, 0, 0, split[0]);
|
||||
session.setTool(null);
|
||||
|
54
src/com/sk89q/worldedit/superpickaxe/BlockReplacer.java
Normale Datei
54
src/com/sk89q/worldedit/superpickaxe/BlockReplacer.java
Normale Datei
@ -0,0 +1,54 @@
|
||||
// $Id$
|
||||
/*
|
||||
* WorldEdit
|
||||
* Copyright (C) 2010 sk89q <http://www.sk89q.com>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package com.sk89q.worldedit.superpickaxe;
|
||||
|
||||
import com.sk89q.worldedit.*;
|
||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||
|
||||
/**
|
||||
* A smode that replaces one block.
|
||||
*
|
||||
* @author sk89q
|
||||
*/
|
||||
public class BlockReplacer implements SuperPickaxeMode {
|
||||
private BaseBlock targetBlock;
|
||||
|
||||
public BlockReplacer(BaseBlock targetBlock) {
|
||||
this.targetBlock = targetBlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean act(ServerInterface server, LocalConfiguration config,
|
||||
LocalPlayer player, LocalSession session, LocalWorld world,
|
||||
Vector clicked) {
|
||||
|
||||
EditSession editSession = new EditSession(server, world, -1);
|
||||
|
||||
try {
|
||||
editSession.setBlock(clicked, targetBlock);
|
||||
} catch (MaxChangedBlocksException e) {
|
||||
} finally {
|
||||
session.remember(editSession);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren