9
0
mirror of https://github.com/Samsuik/Sakura.git synced 2026-01-06 15:41:49 +00:00

Fix explosion source velocity not accumulating

This commit is contained in:
Samsuik
2024-06-11 19:41:32 +01:00
parent 2bbc853a9a
commit ee5ce8358e

View File

@@ -229,10 +229,10 @@ index 0000000000000000000000000000000000000000..d15eb10fa203236060b90c5fc1364564
+}
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
index 0000000000000000000000000000000000000000..13d87b08b1e12f7b5a6f59f545a4620cacae22ba
index 0000000000000000000000000000000000000000..f88ec33d34f38e4094d88d716f666245281ad0d5
--- /dev/null
+++ b/src/main/java/me/samsuik/sakura/explosion/special/TntExplosion.java
@@ -0,0 +1,187 @@
@@ -0,0 +1,189 @@
+package me.samsuik.sakura.explosion.special;
+
+import io.papermc.paper.util.maplist.IteratorSafeOrderedReferenceSet;
@@ -353,10 +353,12 @@ index 0000000000000000000000000000000000000000..13d87b08b1e12f7b5a6f59f545a4620c
+ }
+
+ 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.
+ 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.tick();
+ this.movement++;