Make BaseBlock more memory efficient, and make it clear in the API that it's not intended to be used for every single block.

This commit is contained in:
Matthew Miller
2018-08-10 20:29:06 +10:00
parent 5f4cc3e694
commit f54d6afb65
50 changed files with 118 additions and 90 deletions

View File

@ -24,7 +24,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.Vector2D;
import com.sk89q.worldedit.WorldEditException;
import com.sk89q.worldedit.blocks.BaseBlock;
import com.sk89q.worldedit.world.block.BaseBlock;
import com.sk89q.worldedit.entity.BaseEntity;
import com.sk89q.worldedit.entity.Entity;
import com.sk89q.worldedit.function.operation.Operation;
@ -141,15 +141,11 @@ public class BlockArrayClipboard implements Clipboard {
Vector v = position.subtract(region.getMinimumPoint());
BlockStateHolder block = blocks[v.getBlockX()][v.getBlockY()][v.getBlockZ()];
if (block != null) {
if (block instanceof BaseBlock) {
return (BaseBlock) block;
} else {
return new BaseBlock(block.toImmutableState());
}
return block.toBaseBlock();
}
}
return new BaseBlock(BlockTypes.AIR);
return BlockTypes.AIR.getDefaultState().toBaseBlock();
}
@Override