mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-04 12:06:41 +00:00
Add a new block metadata framework and fix //rotate and //flip.
Remove the previous Mapping interfaces.
This commit is contained in:
@ -23,8 +23,7 @@ import com.sk89q.worldedit.EditSession;
|
||||
import com.sk89q.worldedit.MaxChangedBlocksException;
|
||||
import com.sk89q.worldedit.Vector;
|
||||
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
||||
import com.sk89q.worldedit.function.mask.ExistingBlockMask;
|
||||
import com.sk89q.worldedit.function.operation.ForwardExtentCopy;
|
||||
import com.sk89q.worldedit.function.operation.Operation;
|
||||
import com.sk89q.worldedit.function.operation.Operations;
|
||||
import com.sk89q.worldedit.function.pattern.Pattern;
|
||||
import com.sk89q.worldedit.regions.Region;
|
||||
@ -33,11 +32,11 @@ import com.sk89q.worldedit.session.ClipboardHolder;
|
||||
public class ClipboardBrush implements Brush {
|
||||
|
||||
private ClipboardHolder holder;
|
||||
private boolean noAir;
|
||||
private boolean ignoreAirBlocks;
|
||||
|
||||
public ClipboardBrush(ClipboardHolder holder, boolean noAir) {
|
||||
public ClipboardBrush(ClipboardHolder holder, boolean ignoreAirBlocks) {
|
||||
this.holder = holder;
|
||||
this.noAir = noAir;
|
||||
this.ignoreAirBlocks = ignoreAirBlocks;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -45,12 +44,14 @@ public class ClipboardBrush implements Brush {
|
||||
Clipboard clipboard = holder.getClipboard();
|
||||
Region region = clipboard.getRegion();
|
||||
Vector centerOffset = region.getCenter().subtract(clipboard.getOrigin());
|
||||
ForwardExtentCopy copy = new ForwardExtentCopy(clipboard, region, clipboard.getOrigin(), editSession, pos.subtract(centerOffset));
|
||||
copy.setTransform(holder.getTransform());
|
||||
if (noAir) {
|
||||
copy.setSourceMask(new ExistingBlockMask(clipboard));
|
||||
}
|
||||
Operations.completeLegacy(copy);
|
||||
|
||||
Operation operation = holder
|
||||
.createPaste(editSession, editSession.getWorld().getWorldData())
|
||||
.to(pos.subtract(centerOffset))
|
||||
.ignoreAirBlocks(ignoreAirBlocks)
|
||||
.build();
|
||||
|
||||
Operations.completeLegacy(operation);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user