Plex-FAWE/worldedit-core/src/main/java/com/boydti/fawe/object/pattern/Linear2DBlockPattern.java
2019-02-03 05:01:39 -05:00

37 lines
1.3 KiB
Java

package com.boydti.fawe.object.pattern;
import com.sk89q.worldedit.WorldEditException;
import com.sk89q.worldedit.world.block.BaseBlock;
import com.sk89q.worldedit.world.block.BlockState;
import com.sk89q.worldedit.extent.Extent;
import com.sk89q.worldedit.function.pattern.AbstractPattern;
import com.sk89q.worldedit.function.pattern.Pattern;
import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.world.block.BlockStateHolder;
public class Linear2DBlockPattern extends AbstractPattern {
private final Pattern[] patternsArray;
public Linear2DBlockPattern(Pattern[] patterns) {
this.patternsArray = patterns;
}
@Override
public BaseBlock apply(BlockVector3 position) {
int index = (position.getBlockX() + position.getBlockZ()) % patternsArray.length;
if (index < 0) {
index += patternsArray.length;
}
return patternsArray[index].apply(position);
}
@Override
public boolean apply(Extent extent, BlockVector3 set, BlockVector3 get) throws WorldEditException {
int index = (get.getBlockX() + get.getBlockZ()) % patternsArray.length;
if (index < 0) {
index += patternsArray.length;
}
return patternsArray[index].apply(extent, set, get);
}
}