#1333: Add BlockData#copyTo

This commit is contained in:
Jishuna 2024-01-15 20:33:17 +11:00 committed by md_5
parent 36e2f9ce1e
commit 95bc1c4f52
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11

View File

@ -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() {