geforkt von Mirrors/FastAsyncWorldEdit
Commit
69bcaa7133
@ -84,6 +84,7 @@ import com.sk89q.worldedit.masks.InvertedMask;
|
|||||||
import com.sk89q.worldedit.masks.Mask;
|
import com.sk89q.worldedit.masks.Mask;
|
||||||
import com.sk89q.worldedit.masks.RandomMask;
|
import com.sk89q.worldedit.masks.RandomMask;
|
||||||
import com.sk89q.worldedit.masks.RegionMask;
|
import com.sk89q.worldedit.masks.RegionMask;
|
||||||
|
import com.sk89q.worldedit.masks.SolidBlockMask;
|
||||||
import com.sk89q.worldedit.masks.UnderOverlayMask;
|
import com.sk89q.worldedit.masks.UnderOverlayMask;
|
||||||
import com.sk89q.worldedit.patterns.BlockChance;
|
import com.sk89q.worldedit.patterns.BlockChance;
|
||||||
import com.sk89q.worldedit.patterns.ClipboardPattern;
|
import com.sk89q.worldedit.patterns.ClipboardPattern;
|
||||||
@ -731,6 +732,8 @@ public class WorldEdit {
|
|||||||
case '#':
|
case '#':
|
||||||
if (component.equalsIgnoreCase("#existing")) {
|
if (component.equalsIgnoreCase("#existing")) {
|
||||||
return new ExistingBlockMask();
|
return new ExistingBlockMask();
|
||||||
|
} else if (component.equalsIgnoreCase("#solid")) {
|
||||||
|
return new SolidBlockMask();
|
||||||
} else if (component.equalsIgnoreCase("#dregion")
|
} else if (component.equalsIgnoreCase("#dregion")
|
||||||
|| component.equalsIgnoreCase("#dselection")
|
|| component.equalsIgnoreCase("#dselection")
|
||||||
|| component.equalsIgnoreCase("#dsel")) {
|
|| component.equalsIgnoreCase("#dsel")) {
|
||||||
|
11
src/main/java/com/sk89q/worldedit/masks/AbstractMask.java
Normale Datei
11
src/main/java/com/sk89q/worldedit/masks/AbstractMask.java
Normale Datei
@ -0,0 +1,11 @@
|
|||||||
|
package com.sk89q.worldedit.masks;
|
||||||
|
|
||||||
|
import com.sk89q.worldedit.LocalPlayer;
|
||||||
|
import com.sk89q.worldedit.LocalSession;
|
||||||
|
import com.sk89q.worldedit.Vector;
|
||||||
|
|
||||||
|
public abstract class AbstractMask implements Mask {
|
||||||
|
@Override
|
||||||
|
public void prepare(LocalSession session, LocalPlayer player, Vector target) {
|
||||||
|
}
|
||||||
|
}
|
@ -5,12 +5,10 @@ import java.util.Set;
|
|||||||
|
|
||||||
import com.sk89q.worldedit.BiomeType;
|
import com.sk89q.worldedit.BiomeType;
|
||||||
import com.sk89q.worldedit.EditSession;
|
import com.sk89q.worldedit.EditSession;
|
||||||
import com.sk89q.worldedit.LocalPlayer;
|
|
||||||
import com.sk89q.worldedit.LocalSession;
|
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
import com.sk89q.worldedit.Vector2D;
|
import com.sk89q.worldedit.Vector2D;
|
||||||
|
|
||||||
public class BiomeTypeMask implements Mask {
|
public class BiomeTypeMask extends AbstractMask {
|
||||||
private final Set<BiomeType> biomes;
|
private final Set<BiomeType> biomes;
|
||||||
|
|
||||||
public BiomeTypeMask() {
|
public BiomeTypeMask() {
|
||||||
@ -21,9 +19,6 @@ public class BiomeTypeMask implements Mask {
|
|||||||
this.biomes = biomes;
|
this.biomes = biomes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void prepare(LocalSession session, LocalPlayer player, Vector target) {
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean matches2D(EditSession editSession, Vector2D pos) {
|
public boolean matches2D(EditSession editSession, Vector2D pos) {
|
||||||
BiomeType biome = editSession.getWorld().getBiome(pos);
|
BiomeType biome = editSession.getWorld().getBiome(pos);
|
||||||
return biomes.contains(biome);
|
return biomes.contains(biome);
|
||||||
|
@ -5,12 +5,10 @@ import java.util.HashSet;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.sk89q.worldedit.EditSession;
|
import com.sk89q.worldedit.EditSession;
|
||||||
import com.sk89q.worldedit.LocalPlayer;
|
|
||||||
import com.sk89q.worldedit.LocalSession;
|
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
import com.sk89q.worldedit.blocks.BaseBlock;
|
||||||
|
|
||||||
public class BlockMask implements Mask {
|
public class BlockMask extends AbstractMask {
|
||||||
private final Set<BaseBlock> blocks;
|
private final Set<BaseBlock> blocks;
|
||||||
|
|
||||||
public BlockMask() {
|
public BlockMask() {
|
||||||
@ -34,9 +32,6 @@ public class BlockMask implements Mask {
|
|||||||
blocks.addAll(blocks);
|
blocks.addAll(blocks);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void prepare(LocalSession session, LocalPlayer player, Vector target) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean matches(EditSession editSession, Vector pos) {
|
public boolean matches(EditSession editSession, Vector pos) {
|
||||||
BaseBlock block = editSession.getBlock(pos);
|
BaseBlock block = editSession.getBlock(pos);
|
||||||
|
@ -26,7 +26,7 @@ import com.sk89q.worldedit.LocalPlayer;
|
|||||||
import com.sk89q.worldedit.LocalSession;
|
import com.sk89q.worldedit.LocalSession;
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
|
|
||||||
public class CombinedMask implements Mask {
|
public class CombinedMask extends AbstractMask {
|
||||||
private final List<Mask> masks = new ArrayList<Mask>();
|
private final List<Mask> masks = new ArrayList<Mask>();
|
||||||
|
|
||||||
public CombinedMask() {
|
public CombinedMask() {
|
||||||
|
@ -20,15 +20,10 @@
|
|||||||
package com.sk89q.worldedit.masks;
|
package com.sk89q.worldedit.masks;
|
||||||
|
|
||||||
import com.sk89q.worldedit.EditSession;
|
import com.sk89q.worldedit.EditSession;
|
||||||
import com.sk89q.worldedit.LocalPlayer;
|
|
||||||
import com.sk89q.worldedit.LocalSession;
|
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
import com.sk89q.worldedit.blocks.BlockID;
|
import com.sk89q.worldedit.blocks.BlockID;
|
||||||
|
|
||||||
public class ExistingBlockMask implements Mask {
|
public class ExistingBlockMask extends AbstractMask {
|
||||||
public void prepare(LocalSession session, LocalPlayer player, Vector target) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean matches(EditSession editSession, Vector pos) {
|
public boolean matches(EditSession editSession, Vector pos) {
|
||||||
return editSession.getBlockType(pos) != BlockID.AIR;
|
return editSession.getBlockType(pos) != BlockID.AIR;
|
||||||
|
@ -5,7 +5,7 @@ import com.sk89q.worldedit.LocalPlayer;
|
|||||||
import com.sk89q.worldedit.LocalSession;
|
import com.sk89q.worldedit.LocalSession;
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
|
|
||||||
public class InvertedMask implements Mask {
|
public class InvertedMask extends AbstractMask {
|
||||||
private final Mask mask;
|
private final Mask mask;
|
||||||
|
|
||||||
public InvertedMask(Mask mask) {
|
public InvertedMask(Mask mask) {
|
||||||
|
@ -26,7 +26,9 @@ import com.sk89q.worldedit.Vector;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Base matcher for the block filtering framework. Implementing classes
|
* Base matcher for the block filtering framework. Implementing classes
|
||||||
* can be used to filter blocks to set or replace
|
* can be used to filter blocks to set or replace.
|
||||||
|
* <p>
|
||||||
|
* <u>Do NOT</u> implement this interface. Extend {@link AbstractMask} instead.
|
||||||
*
|
*
|
||||||
* @author sk89q
|
* @author sk89q
|
||||||
*/
|
*/
|
||||||
|
@ -1,21 +1,15 @@
|
|||||||
package com.sk89q.worldedit.masks;
|
package com.sk89q.worldedit.masks;
|
||||||
|
|
||||||
import com.sk89q.worldedit.EditSession;
|
import com.sk89q.worldedit.EditSession;
|
||||||
import com.sk89q.worldedit.LocalPlayer;
|
|
||||||
import com.sk89q.worldedit.LocalSession;
|
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
|
|
||||||
public class RandomMask implements Mask {
|
public class RandomMask extends AbstractMask {
|
||||||
private final double ratio;
|
private final double ratio;
|
||||||
|
|
||||||
public RandomMask(double ratio) {
|
public RandomMask(double ratio) {
|
||||||
this.ratio = ratio;
|
this.ratio = ratio;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void prepare(LocalSession session, LocalPlayer player, Vector target) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean matches(EditSession editSession, Vector pos) {
|
public boolean matches(EditSession editSession, Vector pos) {
|
||||||
return Math.random() < ratio;
|
return Math.random() < ratio;
|
||||||
|
@ -20,21 +20,16 @@
|
|||||||
package com.sk89q.worldedit.masks;
|
package com.sk89q.worldedit.masks;
|
||||||
|
|
||||||
import com.sk89q.worldedit.EditSession;
|
import com.sk89q.worldedit.EditSession;
|
||||||
import com.sk89q.worldedit.LocalPlayer;
|
|
||||||
import com.sk89q.worldedit.LocalSession;
|
|
||||||
import com.sk89q.worldedit.Vector;
|
import com.sk89q.worldedit.Vector;
|
||||||
import com.sk89q.worldedit.regions.Region;
|
import com.sk89q.worldedit.regions.Region;
|
||||||
|
|
||||||
public class RegionMask implements Mask {
|
public class RegionMask extends AbstractMask {
|
||||||
private final Region region;
|
private final Region region;
|
||||||
|
|
||||||
public RegionMask(Region region) {
|
public RegionMask(Region region) {
|
||||||
this.region = region.clone();
|
this.region = region.clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void prepare(LocalSession session, LocalPlayer player, Vector target) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean matches(EditSession editSession, Vector pos) {
|
public boolean matches(EditSession editSession, Vector pos) {
|
||||||
return region.contains(pos);
|
return region.contains(pos);
|
||||||
|
15
src/main/java/com/sk89q/worldedit/masks/SolidBlockMask.java
Normale Datei
15
src/main/java/com/sk89q/worldedit/masks/SolidBlockMask.java
Normale Datei
@ -0,0 +1,15 @@
|
|||||||
|
package com.sk89q.worldedit.masks;
|
||||||
|
|
||||||
|
import com.sk89q.worldedit.EditSession;
|
||||||
|
import com.sk89q.worldedit.Vector;
|
||||||
|
import com.sk89q.worldedit.blocks.BlockType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Works like {@link ExistingBlockMask}, except also dealing with non-solid non-air blocks the same way as with air.
|
||||||
|
*/
|
||||||
|
public class SolidBlockMask extends AbstractMask {
|
||||||
|
@Override
|
||||||
|
public boolean matches(EditSession editSession, Vector pos) {
|
||||||
|
return !BlockType.canPassThrough(editSession.getBlockType(pos), editSession.getBlockData(pos));
|
||||||
|
}
|
||||||
|
}
|
@ -31,7 +31,7 @@ import com.sk89q.worldedit.blocks.BaseBlock;
|
|||||||
*
|
*
|
||||||
* @author 1337
|
* @author 1337
|
||||||
*/
|
*/
|
||||||
public class UnderOverlayMask implements Mask {
|
public class UnderOverlayMask extends AbstractMask {
|
||||||
private final int yMod;
|
private final int yMod;
|
||||||
private Mask mask;
|
private Mask mask;
|
||||||
|
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren