Plex-FAWE/worldedit-core/src/main/java/com/boydti/fawe/object/pattern/ShadePattern.java
Jesse Boyd a629d15c74
Copy paste/merge FAWE classes to this WorldEdit fork
- so certain people can look at the diff and complain about my sloppy code :(

Signed-off-by: Jesse Boyd <jessepaleg@gmail.com>
2018-08-13 00:03:07 +10:00

40 lines
1.3 KiB
Java

package com.boydti.fawe.object.pattern;
import com.boydti.fawe.Fawe;
import com.boydti.fawe.util.TextureUtil;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.blocks.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.world.block.BlockStateHolder;
import com.sk89q.worldedit.world.block.BlockType;
import java.io.IOException;
import static com.google.common.base.Preconditions.checkNotNull;
public class ShadePattern extends AbstractPattern {
private transient TextureUtil util;
private final Extent extent;
private final boolean darken;
public ShadePattern(Extent extent, boolean darken, TextureUtil util) {
checkNotNull(extent);
this.extent = extent;
this.util = util;
this.darken = darken;
}
@Override
public BlockStateHolder apply(Vector position) {
BlockType block = extent.getBlockType(position);
return (darken ? util.getDarkerBlock(block) : util.getLighterBlock(block)).getDefaultState();
}
private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException {
stream.defaultReadObject();
util = Fawe.get().getCachedTextureUtil(true, 0, 100);
}
}