implement block get

This commit is contained in:
Jesse Boyd
2019-05-01 02:19:10 +10:00
parent 6692a2eb92
commit 33e119ccb6
39 changed files with 1234 additions and 198 deletions

View File

@ -19,25 +19,23 @@
package com.sk89q.worldedit.world.block;
import static com.google.common.base.Preconditions.checkNotNull;
import com.sk89q.jnbt.CompoundTag;
import com.sk89q.jnbt.StringTag;
import com.sk89q.jnbt.Tag;
import com.sk89q.worldedit.WorldEditException;
import com.sk89q.worldedit.extent.Extent;
import com.sk89q.worldedit.world.registry.BlockMaterial;
import com.sk89q.worldedit.world.registry.LegacyMapper;
import com.sk89q.worldedit.blocks.TileEntityBlock;
import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.registry.state.Property;
import com.sk89q.worldedit.registry.state.PropertyKey;
import com.sk89q.worldedit.world.registry.BlockMaterial;
import com.sk89q.worldedit.world.registry.LegacyMapper;
import javax.annotation.Nullable;
import java.util.Map;
import java.util.Objects;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* Represents a "snapshot" of a block with NBT Data.
*
@ -84,7 +82,6 @@ public class BaseBlock implements BlockStateHolder<BaseBlock> {
*/
public BaseBlock(BlockState blockState) {
// this(blockState, blockState.getNbtData());
this.blockState = blockState;
}
@ -210,7 +207,12 @@ public class BaseBlock implements BlockStateHolder<BaseBlock> {
}
@Override
public BaseBlock toBaseBlock() {
public final char getOrdinalChar() {
return blockState.getOrdinalChar();
}
@Override
public final BaseBlock toBaseBlock() {
return this;
}

View File

@ -52,6 +52,7 @@ import java.util.stream.Stream;
public class BlockState implements BlockStateHolder<BlockState>, FawePattern {
private final int internalId;
private final int ordinal;
private final char ordinalChar;
private final BlockType blockType;
private BlockMaterial material;
private BaseBlock emptyBaseBlock;
@ -60,6 +61,7 @@ public class BlockState implements BlockStateHolder<BlockState>, FawePattern {
this.blockType = blockType;
this.internalId = internalId;
this.ordinal = ordinal;
this.ordinalChar = (char) ordinal;
this.emptyBaseBlock = new BaseBlock(this);
}
@ -285,7 +287,7 @@ public class BlockState implements BlockStateHolder<BlockState>, FawePattern {
}
@Override
public BaseBlock toBaseBlock() {
public final BaseBlock toBaseBlock() {
return this.emptyBaseBlock;
}
@ -330,10 +332,15 @@ public class BlockState implements BlockStateHolder<BlockState>, FawePattern {
return material;
}
@Override
public int getOrdinal() {
return this.ordinal;
}
@Override
public int getOrdinal() {
return this.ordinal;
}
@Override
public final char getOrdinalChar() {
return this.ordinalChar;
}
@Override
public String toString() {

View File

@ -63,6 +63,9 @@ public interface BlockStateHolder<B extends BlockStateHolder<B>> extends FawePat
@Deprecated
int getOrdinal();
@Deprecated
char getOrdinalChar();
BlockMaterial getMaterial();
/**
* Get type id (legacy uses)