Don't construct new BaseBlock

This commit is contained in:
Jesse Boyd
2019-04-06 01:12:57 +11:00
parent 99db2d557a
commit 144215c813
12 changed files with 15 additions and 18 deletions

View File

@ -111,7 +111,7 @@ public class BaseBlock implements BlockStateHolder<BaseBlock>, TileEntityBlock {
this(getState(id, data));
}
private static final BlockState getState(int id, int data) {
public static final BlockState getState(int id, int data) {
BlockState blockState = LegacyMapper.getInstance().getBlockFromLegacy(id, data);
if (blockState == null) {
blockState = BlockTypes.AIR.getDefaultState();
@ -124,8 +124,8 @@ public class BaseBlock implements BlockStateHolder<BaseBlock>, TileEntityBlock {
}
@Deprecated
public static BaseBlock getFromInternalId(int id, CompoundTag nbtData) {
return new BaseBlock(id, nbtData);
public static BaseBlock getFromInternalId(int internalId, CompoundTag nbtData) {
return BlockState.getFromInternalId(internalId).toBaseBlock(nbtData);
}
/**

View File

@ -245,7 +245,7 @@ public class AnvilChunk13 implements Chunk {
BlockState state = sectionBlocks != null ? sectionBlocks[(yIndex << 8) | (z << 4) | x] : BlockTypes.AIR.getDefaultState();
if (state.getMaterial().hasContainer()) {
CompoundTag tileEntity = getBlockTileEntity(position);
if (tileEntity != null) return new BaseBlock(state, tileEntity);
return state.toBaseBlock(tileEntity);
}
return state.toBaseBlock();

View File

@ -238,7 +238,7 @@ public class LegacyMapper {
}
}else if(plotBlock instanceof LegacyPlotBlock) {
try {
return new BaseBlock(((LegacyPlotBlock)plotBlock).getId(), ((LegacyPlotBlock)plotBlock).getData());
return BaseBlock.getState(((LegacyPlotBlock)plotBlock).getId(), ((LegacyPlotBlock)plotBlock).getData()).toBaseBlock();
}catch(Throwable failed) {
log.error("Unable to convert LegacyPlotBlock " + plotBlock + " to BaseBlock!");
failed.printStackTrace();