9
0
mirror of https://github.com/Samsuik/Sakura.git synced 2025-12-27 18:59:06 +00:00
This commit is contained in:
Samsuik
2024-01-21 23:38:42 +00:00
parent 4fe092f950
commit 2408dd0818
9 changed files with 29 additions and 73 deletions

View File

@@ -656,7 +656,7 @@ index 2bdd46350317a9fadf362b1a341993c92d7a9651..7b5d96670c6818949a0be556b547347e
@Override
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe03290db2 100644
index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..4487045d031948e01c37ec91a5114fc1e8909cf2 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -55,14 +55,16 @@ public class Explosion {
@@ -767,7 +767,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe
++i;
}
@@ -141,34 +206,75 @@ public class Explosion {
@@ -141,34 +206,79 @@ public class Explosion {
return;
}
// CraftBukkit end
@@ -806,9 +806,9 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe
+ {
+ {
+ {
+ double d0 = BLOCK_RAYCAST_VECTORS[0];
+ double d1 = BLOCK_RAYCAST_VECTORS[1];
+ double d2 = BLOCK_RAYCAST_VECTORS[2];
+ double d0 = BLOCK_RAYCAST_VECTORS[i];
+ double d1 = BLOCK_RAYCAST_VECTORS[i + 1];
+ double d2 = BLOCK_RAYCAST_VECTORS[i + 2];
- d0 /= d3;
- d1 /= d3;
@@ -850,6 +850,10 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe
+ lastChunkZ = chunkZ;
+ }
+
+ prevX = blockX;
+ prevY = blockY;
+ prevZ = blockZ;
+
+ mutableBlockPos.set(blockX, blockY, blockZ);
+
+ BlockPos blockposition = mutableBlockPos;
@@ -859,7 +863,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe
FluidState fluid = iblockdata.getFluidState(); // Paper
if (!this.level.isInWorldBounds(blockposition)) {
@@ -181,8 +287,9 @@ public class Explosion {
@@ -181,8 +291,9 @@ public class Explosion {
f -= ((Float) optional.get() + 0.3F) * 0.3F;
}
@@ -870,7 +874,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe
// Paper start - prevent headless pistons from forming
if (!io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.allowHeadlessPistons && iblockdata.getBlock() == Blocks.MOVING_PISTON) {
BlockEntity extension = this.level.getBlockEntity(blockposition);
@@ -193,21 +300,25 @@ public class Explosion {
@@ -193,21 +304,25 @@ public class Explosion {
}
// Paper end
}
@@ -903,7 +907,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe
int l = Mth.floor(this.y - (double) f2 - 1.0D);
int i1 = Mth.floor(this.y + (double) f2 + 1.0D);
int j1 = Mth.floor(this.z - (double) f2 - 1.0D);
@@ -254,7 +365,7 @@ public class Explosion {
@@ -254,7 +369,7 @@ public class Explosion {
// Calculate damage separately for each EntityComplexPart
double d7part;
if (list.contains(entityComplexPart) && (d7part = Math.sqrt(entityComplexPart.distanceToSqr(vec3d)) / f2) <= 1.0D) {
@@ -912,7 +916,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe
entityComplexPart.hurt(this.getDamageSource(), (float) ((int) ((d13part * d13part + d13part) / 2.0D * 7.0D * (double) f2 + 1.0D)));
}
}
@@ -362,6 +473,12 @@ public class Explosion {
@@ -362,6 +477,12 @@ public class Explosion {
this.wasCanceled = true;
return;
}
@@ -925,7 +929,7 @@ index 3cb5306a2ccfc1c53f90ecd56980d17be4042093..3a622a84b3846e368b099a27bbc44afe
// CraftBukkit end
objectlistiterator = this.toBlow.iterator();
@@ -525,15 +642,22 @@ public class Explosion {
@@ -525,15 +646,22 @@ public class Explosion {
private BlockInteraction() {}
}
// Paper start - Optimize explosions

View File

@@ -124,10 +124,10 @@ index a8008c7550488be34b51f4280f5569170b1ebd1d..2e5c4d610d648ec8608ff0e5bbe0f3b2
@Override
public String getDescriptionId() {
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 3a622a84b3846e368b099a27bbc44afe03290db2..1f0e98d8cfb93511be2841dd4823a9006f8be8be 100644
index 4487045d031948e01c37ec91a5114fc1e8909cf2..97ebbb51773d7da046687ec00d16b3e4a8d569d5 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -283,6 +283,16 @@ public class Explosion {
@@ -287,6 +287,16 @@ public class Explosion {
Optional<Float> optional = this.damageCalculator.getBlockExplosionResistance(this, this.level, blockposition, iblockdata, fluid);
@@ -144,7 +144,7 @@ index 3a622a84b3846e368b099a27bbc44afe03290db2..1f0e98d8cfb93511be2841dd4823a900
if (optional.isPresent()) {
f -= ((Float) optional.get() + 0.3F) * 0.3F;
}
@@ -487,6 +497,16 @@ public class Explosion {
@@ -491,6 +501,16 @@ public class Explosion {
BlockState iblockdata = this.level.getBlockState(blockposition);
Block block = iblockdata.getBlock();
// CraftBukkit start - TNTPrimeEvent

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Destroy Waterlogged Blocks
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 1f0e98d8cfb93511be2841dd4823a9006f8be8be..13606d7165bb2df19a45f95536f85fcad17c1375 100644
index 97ebbb51773d7da046687ec00d16b3e4a8d569d5..40730373a60f2939e8c2ff261f75bd0abf454732 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -281,6 +281,12 @@ public class Explosion {
@@ -285,6 +285,12 @@ public class Explosion {
break;
}

View File

@@ -5,12 +5,12 @@ Subject: [PATCH] Consistent Explosion Radius
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 13606d7165bb2df19a45f95536f85fcad17c1375..b017d33ece7563af8fc4d5fdc080b6b8bda79c7d 100644
index 40730373a60f2939e8c2ff261f75bd0abf454732..81efe2985e3379b1dac2af797ae5ad6708e8bdcd 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -235,7 +235,7 @@ public class Explosion {
double d1 = BLOCK_RAYCAST_VECTORS[1];
double d2 = BLOCK_RAYCAST_VECTORS[2];
double d1 = BLOCK_RAYCAST_VECTORS[i + 1];
double d2 = BLOCK_RAYCAST_VECTORS[i + 2];
- float f = this.radius * (0.7F + this.level.random.nextFloat() * 0.6F);
+ float f = this.radius * (0.7F + (this.level.sakuraConfig().cannons.explosion.consistentRadius ? 0.7F : this.level.random.nextFloat()) * 0.6F); // Sakura

View File

@@ -445,11 +445,7 @@ index aa65887b72a96d87f0cad98047deffd01d60ec3f..c3c053884101b818274400f0ebcd6690
// Paper end
}
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
<<<<<<< HEAD:patches/server/0039-Configure-cannon-physics-by-version.patch
index b017d33ece7563af8fc4d5fdc080b6b8bda79c7d..8646302289669685cd44bb70231a110b4b09affc 100644
=======
index 5a10afb92fd62f433be9be6751e5222f3666c9f3..560893581a2547082ab71def32d7ae089d73c261 100644
>>>>>>> e640167 (Fix wrong raytrace method used in getSeenPercent):patches/server/0040-Configure-cannon-physics-by-version.patch
index 81efe2985e3379b1dac2af797ae5ad6708e8bdcd..a7e9a7bcf659203045bcff3b20fc3e05c9d1d6bc 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -68,6 +68,7 @@ public class Explosion {
@@ -488,7 +484,7 @@ index 5a10afb92fd62f433be9be6751e5222f3666c9f3..560893581a2547082ab71def32d7ae08
// Sakura end
++i;
}
@@ -278,6 +288,10 @@ public class Explosion {
@@ -282,6 +292,10 @@ public class Explosion {
FluidState fluid = iblockdata.getFluidState(); // Paper
if (!this.level.isInWorldBounds(blockposition)) {
@@ -499,7 +495,7 @@ index 5a10afb92fd62f433be9be6751e5222f3666c9f3..560893581a2547082ab71def32d7ae08
break;
}
@@ -350,10 +364,17 @@ public class Explosion {
@@ -354,10 +368,17 @@ public class Explosion {
if (d7 <= 1.0D) {
double d8 = entity.getX() - this.x;

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Allow explosions to destroy lava
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 8646302289669685cd44bb70231a110b4b09affc..8dd53e7c714657fe357757cdbfdfd7182b8a73eb 100644
index a7e9a7bcf659203045bcff3b20fc3e05c9d1d6bc..3663575a27b21b01c54d9314282f47fd748e5f38 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -136,6 +136,12 @@ public class Explosion {
@@ -21,7 +21,7 @@ index 8646302289669685cd44bb70231a110b4b09affc..8dd53e7c714657fe357757cdbfdfd718
float power = radius * 1.3f;
float blockRes = state.getBlock().getExplosionResistance();
float fluidRes = state.getFluidState().getExplosionResistance();
@@ -313,6 +319,12 @@ public class Explosion {
@@ -317,6 +323,12 @@ public class Explosion {
}
// Sakura end

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add explosions dropping items config
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index 8dd53e7c714657fe357757cdbfdfd7182b8a73eb..fda0aeae04276ff9ac3b041895f1344e8c6dd6fe 100644
index 3663575a27b21b01c54d9314282f47fd748e5f38..310a6b14a12e9c7ba04ee7178aae509db368f92f 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -585,6 +585,12 @@ public class Explosion {
@@ -589,6 +589,12 @@ public class Explosion {
}
}

View File

@@ -1,23 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Samsuik <kfian294ma4@gmail.com>
Date: Sun, 21 Jan 2024 22:12:30 +0000
Subject: [PATCH] fixup! Optimised Explosions
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index fda0aeae04276ff9ac3b041895f1344e8c6dd6fe..cd5ba771bd11549f9a9c2c03a31479d236f24e02 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -247,9 +247,9 @@ public class Explosion {
{
{
{
- double d0 = BLOCK_RAYCAST_VECTORS[0];
- double d1 = BLOCK_RAYCAST_VECTORS[1];
- double d2 = BLOCK_RAYCAST_VECTORS[2];
+ double d0 = BLOCK_RAYCAST_VECTORS[i];
+ double d1 = BLOCK_RAYCAST_VECTORS[i + 1];
+ double d2 = BLOCK_RAYCAST_VECTORS[i + 2];
float f = this.radius * (0.7F + (this.level.sakuraConfig().cannons.explosion.consistentRadius ? 0.7F : this.level.random.nextFloat()) * 0.6F); // Sakura
double d4 = this.x;

View File

@@ -1,21 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Samsuik <kfian294ma4@gmail.com>
Date: Sun, 21 Jan 2024 23:14:26 +0000
Subject: [PATCH] fixup! Optimised Explosions
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
index cd5ba771bd11549f9a9c2c03a31479d236f24e02..ee62cf3c8bbfdbf4bf6257322306bba232174380 100644
--- a/src/main/java/net/minecraft/world/level/Explosion.java
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
@@ -285,6 +285,10 @@ public class Explosion {
lastChunkZ = chunkZ;
}
+ prevX = blockX;
+ prevY = blockY;
+ prevZ = blockZ;
+
mutableBlockPos.set(blockX, blockY, blockZ);
BlockPos blockposition = mutableBlockPos;