geforkt von Mirrors/FastAsyncWorldEdit
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("/none", "Switch to no tool");
|
||||||
commands.put("/info", "Switch to the info tool");
|
commands.put("/info", "Switch to the info tool");
|
||||||
commands.put("/tree", "Switch to the tree 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("//expand", "[Num] <Dir> - Expands the selection");
|
||||||
commands.put("//contract", "[Num] <Dir> - Contracts the selection");
|
commands.put("//contract", "[Num] <Dir> - Contracts the selection");
|
||||||
commands.put("//shift", "[Num] <Dir> - Shift 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.");
|
player.print("Info tool equipped. Right click with a pickaxe.");
|
||||||
return true;
|
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")) {
|
} else if (split[0].equalsIgnoreCase("/none")) {
|
||||||
checkArgs(split, 0, 0, split[0]);
|
checkArgs(split, 0, 0, split[0]);
|
||||||
session.setTool(null);
|
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