Mirror von
https://github.com/IntellectualSites/FastAsyncWorldEdit.git
synchronisiert 2024-11-10 05:20:04 +01:00
Added //gmask to set a *GLOBAL* mask that affects nearly ALL operations. Now you can confine //sphere to a region or create //walls that do not replace existing blocks.
Dieser Commit ist enthalten in:
Ursprung
e1da7c41ad
Commit
aa17d2f0e0
@ -65,6 +65,11 @@ commands:
|
||||
description: Modify block change limit
|
||||
usage: /<command> <limit>
|
||||
permissions: 'worldedit.limit'
|
||||
/gmask:
|
||||
description: Set the global mask
|
||||
usage: /<command> [mask]
|
||||
aliases: ['gmask']
|
||||
permissions: 'worldedit.global-mask'
|
||||
/hcyl:
|
||||
description: Generate a hollow cylinder
|
||||
usage: /<command> <block> <radius> [height]
|
||||
|
@ -33,6 +33,7 @@ import com.sk89q.worldedit.regions.*;
|
||||
import com.sk89q.worldedit.util.TreeGenerator;
|
||||
import com.sk89q.worldedit.bags.*;
|
||||
import com.sk89q.worldedit.blocks.*;
|
||||
import com.sk89q.worldedit.masks.Mask;
|
||||
import com.sk89q.worldedit.patterns.*;
|
||||
|
||||
/**
|
||||
@ -108,6 +109,11 @@ public class EditSession {
|
||||
* List of missing blocks;
|
||||
*/
|
||||
private Set<Integer> missingBlocks = new HashSet<Integer>();
|
||||
|
||||
/**
|
||||
* Mask to cover operations.
|
||||
*/
|
||||
private Mask mask;
|
||||
|
||||
/**
|
||||
* Construct the object with a maximum number of blocks.
|
||||
@ -162,6 +168,12 @@ public class EditSession {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mask != null) {
|
||||
if (!mask.matches(this, pt)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
int existing = world.getBlockType(pt);
|
||||
|
||||
// Clear the container block so that it doesn't drop items
|
||||
@ -2245,4 +2257,22 @@ public class EditSession {
|
||||
public int getBlockChangeCount() {
|
||||
return original.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the mask.
|
||||
*
|
||||
* @return mask, may be null
|
||||
*/
|
||||
public Mask getMask() {
|
||||
return mask;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a mask.
|
||||
*
|
||||
* @param mask mask or null
|
||||
*/
|
||||
public void setMask(Mask mask) {
|
||||
this.mask = mask;
|
||||
}
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ import com.sk89q.worldedit.cui.CUIPointBasedRegion;
|
||||
import com.sk89q.worldedit.cui.CUIEvent;
|
||||
import com.sk89q.worldedit.cui.SelectionPointEvent;
|
||||
import com.sk89q.worldedit.cui.SelectionShapeEvent;
|
||||
import com.sk89q.worldedit.masks.Mask;
|
||||
import com.sk89q.worldedit.regions.CuboidRegionSelector;
|
||||
import com.sk89q.worldedit.regions.Region;
|
||||
import com.sk89q.worldedit.regions.RegionSelector;
|
||||
@ -74,6 +75,7 @@ public class LocalSession {
|
||||
private boolean beenToldVersion = false;
|
||||
private boolean hasCUISupport = false;
|
||||
private boolean fastMode = false;
|
||||
private Mask mask;
|
||||
private TimeZone timezone = TimeZone.getDefault();
|
||||
|
||||
/**
|
||||
@ -660,6 +662,7 @@ public class LocalSession {
|
||||
new EditSession(player.getWorld(),
|
||||
getBlockChangeLimit(), blockBag);
|
||||
editSession.setFastMode(fastMode);
|
||||
editSession.setMask(mask);
|
||||
|
||||
return editSession;
|
||||
}
|
||||
@ -681,4 +684,22 @@ public class LocalSession {
|
||||
public void setFastMode(boolean fastMode) {
|
||||
this.fastMode = fastMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the mask.
|
||||
*
|
||||
* @return mask, may be null
|
||||
*/
|
||||
public Mask getMask() {
|
||||
return mask;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a mask.
|
||||
*
|
||||
* @param mask mask or null
|
||||
*/
|
||||
public void setMask(Mask mask) {
|
||||
this.mask = mask;
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ import com.sk89q.minecraft.util.commands.CommandPermissions;
|
||||
import com.sk89q.minecraft.util.commands.NestedCommand;
|
||||
import com.sk89q.worldedit.*;
|
||||
import com.sk89q.worldedit.blocks.ItemType;
|
||||
import com.sk89q.worldedit.masks.Mask;
|
||||
|
||||
/**
|
||||
* General WorldEdit commands.
|
||||
@ -81,6 +82,27 @@ public class GeneralCommands {
|
||||
}
|
||||
}
|
||||
|
||||
@Command(
|
||||
aliases = {"/gmask", "gmask"},
|
||||
usage = "[mask]",
|
||||
desc = "Set the global mask",
|
||||
min = 0,
|
||||
max = -1
|
||||
)
|
||||
@CommandPermissions({"worldedit.global-mask"})
|
||||
public static void mask(CommandContext args, WorldEdit we,
|
||||
LocalSession session, LocalPlayer player, EditSession editSession)
|
||||
throws WorldEditException {
|
||||
if (args.argsLength() == 0) {
|
||||
session.setMask(null);
|
||||
player.print("Global mask disabled.");
|
||||
} else {
|
||||
Mask mask = we.getBlockMask(player, session, args.getJoinedStrings(0));
|
||||
session.setMask(mask);
|
||||
player.print("Global mask set.");
|
||||
}
|
||||
}
|
||||
|
||||
@Command(
|
||||
aliases = {"toggleplace"},
|
||||
usage = "",
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren