57 lines
		
	
	
	
		
			2 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			2 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
						|
From: Aikar <aikar@aikar.co>
 | 
						|
Date: Wed, 30 Dec 2020 17:27:27 -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/block/Block.java b/src/main/java/org/bukkit/block/Block.java
 | 
						|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/org/bukkit/block/Block.java
 | 
						|
+++ b/src/main/java/org/bukkit/block/Block.java
 | 
						|
@@ -0,0 +0,0 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran
 | 
						|
      */
 | 
						|
     boolean isLiquid();
 | 
						|
 
 | 
						|
+    // Paper start
 | 
						|
+    /**
 | 
						|
+     * Check if this block is solid
 | 
						|
+     * <p>
 | 
						|
+     * Determined by Minecraft, typically a block a player can use to place a new block to build things.
 | 
						|
+     * An example of a non buildable block would be liquids, flowers, or fire
 | 
						|
+     *
 | 
						|
+     * @return true if block is buildable
 | 
						|
+     */
 | 
						|
+    boolean isBuildable();
 | 
						|
+    /**
 | 
						|
+     * Check if this block is burnable
 | 
						|
+     * <p>
 | 
						|
+     * Determined by Minecraft, typically a block that fire can destroy (Wool, Wood)
 | 
						|
+     *
 | 
						|
+     * @return true if block is burnable
 | 
						|
+     */
 | 
						|
+    boolean isBurnable();
 | 
						|
+    /**
 | 
						|
+     * Check if this block is replaceable
 | 
						|
+     * <p>
 | 
						|
+     * Determined by Minecraft, representing a block that is not AIR that you can still place a new block at, such as flowers.
 | 
						|
+     * @return true if block is replaceable
 | 
						|
+     */
 | 
						|
+    boolean isReplaceable();
 | 
						|
+    /**
 | 
						|
+     * Check if this block is solid
 | 
						|
+     * <p>
 | 
						|
+     * Determined by Minecraft, typically a block a player can stand on and can't be passed through.
 | 
						|
+     *
 | 
						|
+     * This API is faster than accessing Material#isSolid as it avoids a material lookup and switch statement.
 | 
						|
+     * @return true if block is solid
 | 
						|
+     */
 | 
						|
+    boolean isSolid();
 | 
						|
+    // Paper end
 | 
						|
+
 | 
						|
     /**
 | 
						|
      * Gets the temperature of this block.
 | 
						|
      * <p>
 |