| 
									
										
										
										
											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'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
 | 
					
						
							| 
									
										
										
										
											2023-05-12 13:10:08 +02:00
										 |  |  | index 32fdb3cf74a2d0c27b9cb572e7c16c7eda400ea7..83d961be2a3527402c2e22aa5809bc8a7029170b 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-05-12 13:10:08 +02:00
										 |  |  | @@ -464,6 +464,25 @@ public class CraftBlock implements Block {
 | 
					
						
							| 
									
										
										
										
											2021-06-14 11:50:22 -07:00
										 |  |  |          return this.getNMS().getMaterial().isLiquid(); | 
					
						
							| 
									
										
										
										
											2021-06-11 14:02:28 +02:00
										 |  |  |      } | 
					
						
							|  |  |  |   | 
					
						
							|  |  |  | +    // Paper start
 | 
					
						
							|  |  |  | +    @Override
 | 
					
						
							|  |  |  | +    public boolean isBuildable() {
 | 
					
						
							| 
									
										
										
										
											2021-06-14 11:50:22 -07:00
										 |  |  | +        return getNMS().getMaterial().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() {
 | 
					
						
							| 
									
										
										
										
											2021-06-14 11:50:22 -07:00
										 |  |  | +        return getNMS().getMaterial().isFlammable();
 | 
					
						
							| 
									
										
										
										
											2021-06-11 14:02:28 +02:00
										 |  |  | +    }
 | 
					
						
							|  |  |  | +    @Override
 | 
					
						
							|  |  |  | +    public boolean isReplaceable() {
 | 
					
						
							|  |  |  | +        return getNMS().getMaterial().isReplaceable();
 | 
					
						
							|  |  |  | +    }
 | 
					
						
							|  |  |  | +    @Override
 | 
					
						
							|  |  |  | +    public boolean isSolid() {
 | 
					
						
							|  |  |  | +        return getNMS().getMaterial().blocksMotion();
 | 
					
						
							|  |  |  | +    }
 | 
					
						
							|  |  |  | +    // Paper end
 | 
					
						
							|  |  |  | +
 | 
					
						
							|  |  |  |      @Override | 
					
						
							|  |  |  |      public PistonMoveReaction getPistonMoveReaction() { | 
					
						
							| 
									
										
										
										
											2021-06-14 11:50:22 -07:00
										 |  |  |          return PistonMoveReaction.getById(this.getNMS().getPistonPushReaction().ordinal()); |