aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0556-Additional-Block-Material-API-s.patch
blob: 386e4c1eb324065febd18c479dd2b1f3c035b2fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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 2144126241450fe2d6e801bd9452d211a03b6f7c..fdf342e6059d967746164f18dc041b4e586f1a20 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
@@ -456,6 +456,25 @@ public class CraftBlock implements Block {
         return this.getNMS().getMaterial().isLiquid();
     }
 
+    // Paper start
+    @Override
+    public boolean isBuildable() {
+        return getNMS().getMaterial().isSolid(); // This is in fact isSolid, despite the fact that isSolid below returns blocksMotion
+    }
+    @Override
+    public boolean isBurnable() {
+        return getNMS().getMaterial().isFlammable();
+    }
+    @Override
+    public boolean isReplaceable() {
+        return getNMS().getMaterial().isReplaceable();
+    }
+    @Override
+    public boolean isSolid() {
+        return getNMS().getMaterial().blocksMotion();
+    }
+    // Paper end
+
     @Override
     public PistonMoveReaction getPistonMoveReaction() {
         return PistonMoveReaction.getById(this.getNMS().getPistonPushReaction().ordinal());