mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-21 15:59:26 +00:00
Fix explosion source velocity not accumulating
This commit is contained in:
@@ -228,10 +228,10 @@ index 0000000000000000000000000000000000000000..0611555b4afb461e2045585e3d816014
|
|||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java
|
diff --git a/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..39cd91c1e19585d24bbe1333bf15985b0d1a0dab
|
index 0000000000000000000000000000000000000000..a4ef980b5d264ca2bb0bc930b75530c6be00e599
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java
|
+++ b/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java
|
||||||
@@ -0,0 +1,186 @@
|
@@ -0,0 +1,188 @@
|
||||||
+package me.samsuik.sakura.explosion.special;
|
+package me.samsuik.sakura.explosion.special;
|
||||||
+
|
+
|
||||||
+import io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet;
|
+import io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet;
|
||||||
@@ -351,10 +351,12 @@ index 0000000000000000000000000000000000000000..39cd91c1e19585d24bbe1333bf15985b
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ private void updateExplosionPosition(EntityState entityState, boolean destroyedBlocks) {
|
+ private void updateExplosionPosition(EntityState entityState, boolean destroyedBlocks) {
|
||||||
|
+ // Keep track of entity state
|
||||||
|
+ entityState.apply(this.cause);
|
||||||
|
+ this.cause.storeEntityState();
|
||||||
|
+
|
||||||
+ // Ticking is always required after destroying a block.
|
+ // Ticking is always required after destroying a block.
|
||||||
+ if (destroyedBlocks || !this.position.equals(this.cause.position()) && (this.movement != 1 || !this.originalPosition.equals(this.position))) {
|
+ if (destroyedBlocks || !this.position.equals(this.cause.position()) && (this.movement != 1 || !this.originalPosition.equals(this.position))) {
|
||||||
+ entityState.apply(this.cause);
|
|
||||||
+ this.cause.storeEntityState();
|
|
||||||
+ this.cause.setFuse(100);
|
+ this.cause.setFuse(100);
|
||||||
+ this.cause.tick();
|
+ this.cause.tick();
|
||||||
+ this.movement++;
|
+ this.movement++;
|
||||||
@@ -445,7 +447,7 @@ index 51fa57e8b9d5c9ee563ec3608a437c69da08d32c..ec7d7f22b267ae6572e6005f10221755
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||||
index 4f695305794c2564517d99b4edd3180d7ea07845..8acef487b0579febb3497cc88b23c4fc74492571 100644
|
index 284ab0a2add55394f42fc0b5e62748ba1b629531..0c8775fd29fdc811c8a3becb484abf3ed92686c7 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||||
@@ -86,28 +86,7 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
@@ -86,28 +86,7 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||||
|
|||||||
Reference in New Issue
Block a user