mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-04 12:06:41 +00:00
WIP filter patterns
This commit is contained in:
@ -19,6 +19,7 @@
|
||||
|
||||
package com.sk89q.worldedit.world.block;
|
||||
|
||||
import com.boydti.fawe.beta.FilterBlock;
|
||||
import com.sk89q.jnbt.CompoundTag;
|
||||
import com.sk89q.jnbt.StringTag;
|
||||
import com.sk89q.jnbt.Tag;
|
||||
@ -47,9 +48,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||
*/
|
||||
public class BaseBlock implements BlockStateHolder<BaseBlock> {
|
||||
private final BlockState blockState;
|
||||
|
||||
@Nullable
|
||||
protected CompoundTag nbtData;
|
||||
private final CompoundTag nbtData;
|
||||
|
||||
@Deprecated
|
||||
public BaseBlock() {
|
||||
@ -83,6 +82,7 @@ public class BaseBlock implements BlockStateHolder<BaseBlock> {
|
||||
|
||||
public BaseBlock(BlockState blockState) {
|
||||
this.blockState = blockState;
|
||||
nbtData = null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -157,7 +157,7 @@ public class BaseBlock implements BlockStateHolder<BaseBlock> {
|
||||
|
||||
@Override
|
||||
public void setNbtData(@Nullable CompoundTag nbtData) {
|
||||
this.nbtData = nbtData;
|
||||
throw new UnsupportedOperationException("Immutable");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -202,7 +202,7 @@ public class BaseBlock implements BlockStateHolder<BaseBlock> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrdinal() {
|
||||
public final int getOrdinal() {
|
||||
return blockState.getOrdinal();
|
||||
}
|
||||
|
||||
@ -227,6 +227,10 @@ public class BaseBlock implements BlockStateHolder<BaseBlock> {
|
||||
}
|
||||
}
|
||||
|
||||
public BlockState toBlockState() {
|
||||
return blockState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return getOrdinal();
|
||||
@ -246,7 +250,12 @@ public class BaseBlock implements BlockStateHolder<BaseBlock> {
|
||||
return extent.setBlock(set, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Override
|
||||
public void apply(FilterBlock block) {
|
||||
block.setFullBlock(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasNbtData() {
|
||||
return this.nbtData != null;
|
||||
}
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
package com.sk89q.worldedit.world.block;
|
||||
|
||||
import com.boydti.fawe.beta.FilterBlock;
|
||||
import com.boydti.fawe.command.SuggestInputParseException;
|
||||
import com.boydti.fawe.object.string.MutableCharSequence;
|
||||
import com.boydti.fawe.util.StringMan;
|
||||
@ -62,7 +63,7 @@ public class BlockState implements BlockStateHolder<BlockState>, FawePattern {
|
||||
this.internalId = internalId;
|
||||
this.ordinal = ordinal;
|
||||
this.ordinalChar = (char) ordinal;
|
||||
this.emptyBaseBlock = new BaseBlock(this);
|
||||
this.emptyBaseBlock = new ImmutableBaseBlock(this);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -218,6 +219,11 @@ public class BlockState implements BlockStateHolder<BlockState>, FawePattern {
|
||||
return extent.setBlock(set, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void apply(FilterBlock block) {
|
||||
block.setOrdinal(ordinal);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseBlock apply(BlockVector3 position) {
|
||||
return this.toBaseBlock();
|
||||
@ -333,7 +339,7 @@ public class BlockState implements BlockStateHolder<BlockState>, FawePattern {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrdinal() {
|
||||
public final int getOrdinal() {
|
||||
return this.ordinal;
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,7 @@ package com.sk89q.worldedit.world.block;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
|
||||
import com.boydti.fawe.beta.FilterBlock;
|
||||
import com.boydti.fawe.util.ReflectionUtils;
|
||||
import com.sk89q.worldedit.WorldEditException;
|
||||
import com.sk89q.worldedit.extent.Extent;
|
||||
@ -45,7 +46,7 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
public class BlockType implements FawePattern {
|
||||
public final class BlockType implements FawePattern {
|
||||
private final String id;
|
||||
private final BlockTypes.Settings settings;
|
||||
|
||||
@ -179,7 +180,7 @@ public class BlockType implements FawePattern {
|
||||
*
|
||||
* @return The default state
|
||||
*/
|
||||
public BlockState getDefaultState() {
|
||||
public final BlockState getDefaultState() {
|
||||
return this.settings.defaultState;
|
||||
}
|
||||
|
||||
@ -306,6 +307,11 @@ public class BlockType implements FawePattern {
|
||||
return this.getDefaultState().toBaseBlock();
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void apply(FilterBlock block) {
|
||||
block.setOrdinal(getDefaultState().getOrdinal());
|
||||
}
|
||||
|
||||
public Mask toMask(Extent extent) {
|
||||
return new SingleBlockTypeMask(extent, this);
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
package com.sk89q.worldedit.world.block;
|
||||
|
||||
import com.boydti.fawe.beta.FilterBlock;
|
||||
import com.sk89q.jnbt.CompoundTag;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public final class ImmutableBaseBlock extends BaseBlock {
|
||||
public ImmutableBaseBlock(BlockState blockState) {
|
||||
super(blockState);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public CompoundTag getNbtData() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasNbtData() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void apply(FilterBlock block) {
|
||||
block.setOrdinal(getOrdinal());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user