Paper/patches/server/0454-Additional-Block-Material-API.patch

41 lines
1.5 KiB
Diff
Raw Normal View History

2021-06-11 14:02:28 +02:00
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
2021-06-11 14:02:28 +02:00
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
2023-12-06 04:00:14 +01:00
index aa644231425b9622437538b5c092d4064a40cced..98e87dc15e2ed23f6897ba6359846ff5bc32b655 100644
2021-06-11 14:02:28 +02:00
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
2023-12-06 04:00:14 +01:00
@@ -440,6 +440,25 @@ public class CraftBlock implements Block {
2023-06-08 01:56:33 +02:00
return this.getNMS().liquid();
2021-06-11 14:02:28 +02:00
}
+ // Paper start
+ @Override
+ public boolean isBuildable() {
2023-06-08 02:30:05 +02:00
+ return this.getNMS().isSolid(); // This is in fact isSolid, despite the fact that isSolid below returns blocksMotion
2021-06-11 14:02:28 +02:00
+ }
+ @Override
+ public boolean isBurnable() {
2023-06-08 02:30:05 +02:00
+ return this.getNMS().ignitedByLava();
2021-06-11 14:02:28 +02:00
+ }
+ @Override
+ public boolean isReplaceable() {
2023-06-08 02:30:05 +02:00
+ return this.getNMS().canBeReplaced();
2021-06-11 14:02:28 +02:00
+ }
+ @Override
+ public boolean isSolid() {
2023-06-08 02:30:05 +02:00
+ return this.getNMS().blocksMotion();
2021-06-11 14:02:28 +02:00
+ }
+ // Paper end
+
@Override
public PistonMoveReaction getPistonMoveReaction() {
2021-06-14 20:50:22 +02:00
return PistonMoveReaction.getById(this.getNMS().getPistonPushReaction().ordinal());