mirror of
https://hub.spigotmc.org/stash/scm/spigot/craftbukkit.git
synced 2025-08-05 16:49:30 +00:00
#1333: Add BlockData#copyTo
This commit is contained in:
parent
36e2f9ce1e
commit
95bc1c4f52
1 changed files with 17 additions and 0 deletions
|
@ -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…
Add table
Reference in a new issue