Additional Block Material API

Faster version for isSolid() that utilizes NMS's state for isSolid instead of the slower
process to do this in the Bukkit API

Adds API for buildable, replaceable, burnable too.
This commit is contained in:
Aikar 2020-12-30 19:43:01 -05:00
parent d9c0a60246
commit 119c616ab9

View file

@ -440,6 +440,25 @@ public class CraftBlock implements Block {
return this.getNMS().liquid(); return this.getNMS().liquid();
} }
// Paper start
@Override
public boolean isBuildable() {
return this.getNMS().isSolid(); // This is in fact isSolid, despite the fact that isSolid below returns blocksMotion
}
@Override
public boolean isBurnable() {
return this.getNMS().ignitedByLava();
}
@Override
public boolean isReplaceable() {
return this.getNMS().canBeReplaced();
}
@Override
public boolean isSolid() {
return this.getNMS().blocksMotion();
}
// Paper end
@Override @Override
public PistonMoveReaction getPistonMoveReaction() { public PistonMoveReaction getPistonMoveReaction() {
return PistonMoveReaction.getById(this.getNMS().getPistonPushReaction().ordinal()); return PistonMoveReaction.getById(this.getNMS().getPistonPushReaction().ordinal());