mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2024-12-24 02:07:39 +00:00
Added particle effects to area and recursive pickaxe.
This commit is contained in:
parent
6be514cdf9
commit
36e4b99ade
@ -63,16 +63,19 @@ public class AreaPickaxe implements BlockTool {
|
|||||||
for (int y = oy - range; y <= oy + range; ++y) {
|
for (int y = oy - range; y <= oy + range; ++y) {
|
||||||
for (int z = oz - range; z <= oz + range; ++z) {
|
for (int z = oz - range; z <= oz + range; ++z) {
|
||||||
Vector pos = new Vector(x, y, z);
|
Vector pos = new Vector(x, y, z);
|
||||||
if (world.getBlockType(pos) == initialType) {
|
if (world.getBlockType(pos) != initialType) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (config.superPickaxeManyDrop) {
|
if (config.superPickaxeManyDrop) {
|
||||||
world.simulateBlockMine(pos);
|
world.simulateBlockMine(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
world.queueBlockBreakEffect(server, pos, initialType, clicked.distanceSq(pos));
|
||||||
|
|
||||||
editSession.setBlock(pos, air);
|
editSession.setBlock(pos, air);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} catch (MaxChangedBlocksException e) {
|
} catch (MaxChangedBlocksException e) {
|
||||||
player.printError("Max blocks change limit reached.");
|
player.printError("Max blocks change limit reached.");
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -21,6 +21,7 @@ package com.sk89q.worldedit.tools;
|
|||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.sk89q.worldedit.*;
|
import com.sk89q.worldedit.*;
|
||||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||||
import com.sk89q.worldedit.blocks.BlockID;
|
import com.sk89q.worldedit.blocks.BlockID;
|
||||||
@ -90,20 +91,24 @@ public class RecursivePickaxe implements BlockTool {
|
|||||||
Set<BlockVector> visited, boolean drop)
|
Set<BlockVector> visited, boolean drop)
|
||||||
throws MaxChangedBlocksException {
|
throws MaxChangedBlocksException {
|
||||||
|
|
||||||
if (origin.distance(pos) > size || visited.contains(pos)) {
|
final double distanceSq = origin.distanceSq(pos);
|
||||||
|
if (distanceSq > size*size || visited.contains(pos)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
visited.add(pos);
|
visited.add(pos);
|
||||||
|
|
||||||
if (editSession.getBlock(pos).getType() == initialType) {
|
if (editSession.getBlock(pos).getType() != initialType) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (drop) {
|
if (drop) {
|
||||||
world.simulateBlockMine(pos);
|
world.simulateBlockMine(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
world.queueBlockBreakEffect(server, pos, initialType, distanceSq);
|
||||||
|
|
||||||
editSession.setBlock(pos, air);
|
editSession.setBlock(pos, air);
|
||||||
} else {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
recurse(server, editSession, world, pos.add(1, 0, 0).toBlockVector(),
|
recurse(server, editSession, world, pos.add(1, 0, 0).toBlockVector(),
|
||||||
origin, size, initialType, visited, drop);
|
origin, size, initialType, visited, drop);
|
||||||
|
Loading…
Reference in New Issue
Block a user