#1333: Add BlockData#copyTo
This commit is contained in:
parent
36e2f9ce1e
commit
95bc1c4f52
@ -660,6 +660,23 @@ public class CraftBlockData implements BlockData {
|
||||
this.state = state.mirror(EnumBlockMirror.valueOf(mirror.name()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void copyTo(BlockData blockData) {
|
||||
CraftBlockData other = (CraftBlockData) blockData;
|
||||
IBlockData nms = other.state;
|
||||
for (IBlockState<?> property : state.getBlock().getStateDefinition().getProperties()) {
|
||||
if (nms.hasProperty(property)) {
|
||||
nms = copyProperty(state, nms, property);
|
||||
}
|
||||
}
|
||||
|
||||
other.state = nms;
|
||||
}
|
||||
|
||||
private <T extends Comparable<T>> IBlockData copyProperty(IBlockData source, IBlockData target, IBlockState<T> property) {
|
||||
return target.setValue(property, source.getValue(property));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public BlockState createBlockState() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user