FallingBlock and TNT entities collide with specific blocks

This commit is contained in:
Byteflux 2015-06-05 01:24:22 -07:00
parent e82e438855
commit d6fa7c2b99
2 changed files with 49 additions and 3 deletions

View File

@ -1,4 +1,4 @@
From 0f429d02717e024c12d5648f37da385520aef72c Mon Sep 17 00:00:00 2001
From 9731a3cad42fe83dbe25013238a3fbca97bf2ad6 Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv>
Date: Thu, 4 Jun 2015 13:55:02 -0700
Subject: [PATCH] Configurable TNT cannon fix
@ -298,7 +298,7 @@ index fdf886a..a3df604 100644
this.k.put((EntityHuman) entity, new Vec3D(d8 * d13, d9 * d13, d10 * d13));
}
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 8338cc6..793f043 100644
index 8338cc6..3edd322 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -299,4 +299,43 @@ public class PaperSpigotWorldConfig
@ -342,7 +342,7 @@ index 8338cc6..793f043 100644
+ }
+
+ fixCannons = getBoolean( "fix-cannons", false );
+ log( "Fix TNT cannons: " + fixCannons);
+ log( "Fix TNT cannons: " + fixCannons );
+ }
}
--

View File

@ -0,0 +1,46 @@
From 8ff5ffa432d70ca0644359e610027cb7a6a14120 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Fri, 5 Jun 2015 00:43:17 -0700
Subject: [PATCH] FallingBlock and TNT entities collide with specific blocks
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 385d742..78b4f05 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1200,7 +1200,16 @@ public abstract class World implements IBlockAccess {
}
if ( block != null )
{
- block.getBlock().a(this, blockposition, block, axisalignedbb, arraylist, entity);
+ // PaperSpigot start - FallingBlocks and TNT collide with specific non-collidable blocks
+ Block b = block.getBlock();
+ if (entity.world.paperSpigotConfig.fallingBlocksCollideWithSigns && (entity instanceof EntityTNTPrimed || entity instanceof EntityFallingBlock) &&
+ (b instanceof BlockSign || b instanceof BlockFenceGate || b instanceof BlockTorch || b instanceof BlockButtonAbstract || b instanceof BlockLever || b instanceof BlockTripwireHook || b instanceof BlockTripwire)) {
+ AxisAlignedBB aabb = AxisAlignedBB.a(x, y, z, x + 1.0, y + 1.0, z + 1.0);
+ if (axisalignedbb.b(aabb)) arraylist.add(aabb);
+ } else {
+ b.a(this, blockposition, block, axisalignedbb, arraylist, entity);
+ }
+ // PaperSpigot end
}
}
}
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 3edd322..3f42ca9 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -338,4 +338,10 @@ public class PaperSpigotWorldConfig
fixCannons = getBoolean( "fix-cannons", false );
log( "Fix TNT cannons: " + fixCannons );
}
+
+ public boolean fallingBlocksCollideWithSigns;
+ private void fallingBlocksCollideWithSigns()
+ {
+ fallingBlocksCollideWithSigns = getBoolean( "falling-blocks-collide-with-signs", false );
+ }
}
--
1.9.5.msysgit.1