mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-12 06:58:11 +02:00
It appears to cause visual glitching issues with certain TNT entities fired from cannons. TileEntity tick capping has already been removed for some time, Entity tick capping removal is new to this patch.
112 lines
4.5 KiB
Diff
112 lines
4.5 KiB
Diff
From ff725d215c0edacf1b63e937999482594bcf35b9 Mon Sep 17 00:00:00 2001
|
|
From: Zach Brown <zach.brown@destroystokyo.com>
|
|
Date: Sun, 8 Mar 2015 04:52:37 -0500
|
|
Subject: [PATCH] PaperSpigot TNT Changes
|
|
|
|
PaperSpigot communal TNT modification patch
|
|
Original authors for individual changes are listed w/in PaperSpigotWorldConfig
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
|
index 1daba4e..dd1ad68 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
|
|
@@ -36,6 +36,12 @@ public class EntityTNTPrimed extends Entity {
|
|
this.lastY = d1;
|
|
this.lastZ = d2;
|
|
this.source = entityliving;
|
|
+
|
|
+ // PaperSpigot start - Fix TNT directional bias
|
|
+ if (this.world.paperSpigotConfig.fixTNTDirectionBias) {
|
|
+ this.motX = this.motZ = 0;
|
|
+ }
|
|
+ // PaperSpigot end
|
|
}
|
|
|
|
protected void h() {}
|
|
@@ -63,6 +69,12 @@ public class EntityTNTPrimed extends Entity {
|
|
}
|
|
// PaperSpigot end
|
|
|
|
+ // PaperSpigot start - Configurable TNT Height Limit
|
|
+ if (this.world.paperSpigotConfig.tntHeightLimit != 0 && this.locY > this.world.paperSpigotConfig.tntHeightLimit) {
|
|
+ this.die();
|
|
+ }
|
|
+ // PaperSpigot end
|
|
+
|
|
this.motX *= 0.9800000190734863D;
|
|
this.motY *= 0.9800000190734863D;
|
|
this.motZ *= 0.9800000190734863D;
|
|
@@ -97,7 +109,15 @@ public class EntityTNTPrimed extends Entity {
|
|
server.getPluginManager().callEvent(event);
|
|
|
|
if (!event.isCancelled()) {
|
|
- this.world.createExplosion(this, this.locX, this.locY + (double) (this.length / 2.0F), this.locZ, event.getRadius(), event.getFire(), true);
|
|
+ // PaperSpigot start - Configurable legacy TNT explosion height
|
|
+ double locY = this.locY;
|
|
+
|
|
+ if (!this.world.paperSpigotConfig.legacyTNTExplosionHeight) {
|
|
+ locY += this.length / 2.0F;
|
|
+ }
|
|
+
|
|
+ this.world.createExplosion(this, this.locX, locY, this.locZ, event.getRadius(), event.getFire(), true);
|
|
+ // PaperSpigot end
|
|
}
|
|
// CraftBukkit end
|
|
}
|
|
@@ -132,4 +152,12 @@ public class EntityTNTPrimed extends Entity {
|
|
public float getHeadHeight() {
|
|
return 0.0F;
|
|
}
|
|
+
|
|
+ /**
|
|
+ * PaperSpigot - Configurable TNT water movement
|
|
+ */
|
|
+ @Override
|
|
+ public boolean aL() {
|
|
+ return world.paperSpigotConfig.tntMovesInWater;
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
|
index a6d8532..1915a7c 100644
|
|
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
|
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
|
|
@@ -192,4 +192,35 @@ public class PaperSpigotWorldConfig
|
|
{
|
|
netherVoidTopDamage = getBoolean( "nether-ceiling-void-damage", false );
|
|
}
|
|
+
|
|
+ public boolean fixTNTDirectionBias;
|
|
+ public boolean tntMovesInWater;
|
|
+ public boolean legacyTNTExplosionHeight;
|
|
+ public int tntHeightLimit;
|
|
+ private void tntChanges()
|
|
+ {
|
|
+ // Original Authors: Iceee <andrew@opticgaming.tv>
|
|
+ fixTNTDirectionBias = getBoolean( "tnt-gameplay.fix-directional-bias", false );
|
|
+ // Original Author: Byteflux <byte@byteflux.net>
|
|
+ tntMovesInWater = getBoolean( "tnt-gameplay.moves-in-water", true );
|
|
+ // Original Author: Byteflux <byte@byteflux.net>
|
|
+ legacyTNTExplosionHeight = getBoolean( "tnt-gameplay.legacy-explosion-height", false );
|
|
+ // Original Author: Somebody \o/
|
|
+ tntHeightLimit = getInt( "tnt-gameplay.tnt-entity-height-limit", 0 );
|
|
+
|
|
+ log( "Fix TNT directional bias: " + fixTNTDirectionBias );
|
|
+ log( "TNT moves in water: " + tntMovesInWater );
|
|
+ log( "Use legacy TNT explosion height " + legacyTNTExplosionHeight );
|
|
+ if ( tntHeightLimit != 0 ) {
|
|
+ log( "TNT height limit set at " + tntHeightLimit );
|
|
+ } else {
|
|
+ log( "TNT height limit disabled" );
|
|
+ }
|
|
+ if (PaperSpigotConfig.version < 7) {
|
|
+ System.err.println( "==========================================" );
|
|
+ System.err.println( " Many TNT Related Settings Have Moved " );
|
|
+ System.err.println( " Please check your config in paper.yml! " );
|
|
+ System.err.println( "==========================================" );
|
|
+ }
|
|
+ }
|
|
}
|
|
--
|
|
2.4.1.windows.1
|
|
|