PaperMC/patches/server/0514-Additional-Block-Material-API-s.patch

40 lines
1.5 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 30 Dec 2020 19:43:01 -0500
Subject: [PATCH] Additional Block Material API's
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.
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
index d035ff8390f2181fb81baec1b0287ead6da0a912..8958a54d1a9d6e9ad6ab09f3a587ba89ae2d817d 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
@@ -465,6 +465,25 @@ public class CraftBlock implements Block {
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
public PistonMoveReaction getPistonMoveReaction() {
return PistonMoveReaction.getById(this.getNMS().getPistonPushReaction().ordinal());