mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-10 04:38:35 +00:00
Reimplement l2d, l3d, existing and buffer pattern (#684)
* Reimplement l2d, l3d, existing and buffer pattern Also smaller translation improvements and cleanup * Allow aliases in RichParser
This commit is contained in:
@ -10,14 +10,18 @@ import com.sk89q.worldedit.world.block.BaseBlock;
|
||||
public class Linear2DBlockPattern extends AbstractPattern {
|
||||
|
||||
private final Pattern[] patternsArray;
|
||||
private final int xScale;
|
||||
private final int zScale;
|
||||
|
||||
public Linear2DBlockPattern(Pattern[] patterns) {
|
||||
public Linear2DBlockPattern(Pattern[] patterns, int xScale, int zScale) {
|
||||
this.patternsArray = patterns;
|
||||
this.xScale = xScale;
|
||||
this.zScale = zScale;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseBlock apply(BlockVector3 position) {
|
||||
int index = (position.getBlockX() + position.getBlockZ()) % patternsArray.length;
|
||||
int index = (position.getBlockX() / this.xScale + position.getBlockZ() / this.zScale) % patternsArray.length;
|
||||
if (index < 0) {
|
||||
index += patternsArray.length;
|
||||
}
|
||||
@ -26,7 +30,7 @@ public class Linear2DBlockPattern extends AbstractPattern {
|
||||
|
||||
@Override
|
||||
public boolean apply(Extent extent, BlockVector3 get, BlockVector3 set) throws WorldEditException {
|
||||
int index = (get.getBlockX() + get.getBlockZ()) % patternsArray.length;
|
||||
int index = (get.getBlockX() / this.xScale + get.getBlockZ() / this.zScale) % patternsArray.length;
|
||||
if (index < 0) {
|
||||
index += patternsArray.length;
|
||||
}
|
||||
|
@ -10,14 +10,21 @@ import com.sk89q.worldedit.world.block.BaseBlock;
|
||||
public class Linear3DBlockPattern extends AbstractPattern {
|
||||
|
||||
private final Pattern[] patternsArray;
|
||||
private final int xScale;
|
||||
private final int yScale;
|
||||
private final int zScale;
|
||||
|
||||
public Linear3DBlockPattern(Pattern[] patterns) {
|
||||
public Linear3DBlockPattern(Pattern[] patterns, int xScale, int yScale, int zScale) {
|
||||
this.patternsArray = patterns;
|
||||
this.xScale = xScale;
|
||||
this.yScale = yScale;
|
||||
this.zScale = zScale;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseBlock apply(BlockVector3 position) {
|
||||
int index = (position.getBlockX() + position.getBlockY() + position.getBlockZ()) % patternsArray.length;
|
||||
int index = (position.getBlockX() / this.xScale
|
||||
+ position.getBlockY() / this.yScale + position.getBlockZ() / this.zScale) % patternsArray.length;
|
||||
if (index < 0) {
|
||||
index += patternsArray.length;
|
||||
}
|
||||
@ -26,7 +33,8 @@ public class Linear3DBlockPattern extends AbstractPattern {
|
||||
|
||||
@Override
|
||||
public boolean apply(Extent extent, BlockVector3 get, BlockVector3 set) throws WorldEditException {
|
||||
int index = (get.getBlockX() + get.getBlockY() + get.getBlockZ()) % patternsArray.length;
|
||||
int index = (get.getBlockX() / this.xScale
|
||||
+ get.getBlockY() / this.yScale + get.getBlockZ() / this.zScale) % patternsArray.length;
|
||||
if (index < 0) {
|
||||
index += patternsArray.length;
|
||||
}
|
||||
|
Reference in New Issue
Block a user