mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-23 08:49:25 +00:00
Fix explosion player velocity
The player velocity was not being talied correctly, and velocity was not sent when explosion effects were disabled in fps settings.
This commit is contained in:
@@ -323,18 +323,29 @@ index 5b3a886c624b36557cbfaccdc3fb05a46a4ba36a..4d3f28d86f6ef1c34f883f1f551201ac
|
|||||||
// CraftBukkit start - respect vanish API
|
// CraftBukkit start - respect vanish API
|
||||||
if (flag && !player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { // Paper - only consider hits
|
if (flag && !player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { // Paper - only consider hits
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
index 32742470eea2ec86c0fff02aa157bfcc89530ad3..de2f6a27ae4d76bf27f127f448e0692f93b2a971 100644
|
index 32742470eea2ec86c0fff02aa157bfcc89530ad3..ec76caea3ae07efc6f5debcd14b24dfed50aa04b 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -1895,7 +1895,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1898,7 +1898,18 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
while (iterator.hasNext()) {
|
if (entityplayer.distanceToSqr(vec3d) < 4096.0D) {
|
||||||
ServerPlayer entityplayer = (ServerPlayer) iterator.next();
|
|
||||||
|
|
||||||
- if (entityplayer.distanceToSqr(vec3d) < 4096.0D) {
|
|
||||||
+ if (entityplayer.distanceToSqr(vec3d) < 4096.0D && !entityplayer.visibility.isToggled(me.samsuik.sakura.player.visibility.Visibility.Setting.EXPLOSIONS)) { // Sakura - visibility api
|
|
||||||
Optional<Vec3> optional = Optional.ofNullable((Vec3) serverexplosion.getHitPlayers().get(entityplayer));
|
Optional<Vec3> optional = Optional.ofNullable((Vec3) serverexplosion.getHitPlayers().get(entityplayer));
|
||||||
|
|
||||||
entityplayer.connection.send(new ClientboundExplodePacket(vec3d, optional, particleparam2, holder));
|
- entityplayer.connection.send(new ClientboundExplodePacket(vec3d, optional, particleparam2, holder));
|
||||||
|
+ // Sakura start - visibility api; let players toggle explosion particles
|
||||||
|
+ ParticleOptions particle = particleparam2;
|
||||||
|
+ Vec3 position = vec3d;
|
||||||
|
+ // In 1.22 and later this should be replaced with sending the motion through a PlayerPositionPacket.
|
||||||
|
+ // The problem here is SetEntityMotion is capped to 3.9 b/pt and the only other alternate mean was
|
||||||
|
+ // implemented in 1.21.3. I believe it's best to just wait on this issue and deal with this hack.
|
||||||
|
+ if (entityplayer.visibility.isToggled(me.samsuik.sakura.player.visibility.Visibility.Setting.EXPLOSIONS)) {
|
||||||
|
+ position = new Vec3(0.0, -1024.0, 0.0);
|
||||||
|
+ particle = net.minecraft.core.particles.ParticleTypes.SMOKE;
|
||||||
|
+ }
|
||||||
|
+ entityplayer.connection.send(new ClientboundExplodePacket(position, optional, particle, holder));
|
||||||
|
+ // Sakura end - visibility api; let players toggle explosion particles
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
index cffbd3300967e5d80b5973b35a76235bb2aa1b73..ad85e5ebe00918a7fea4071351741566e4883dd0 100644
|
index cffbd3300967e5d80b5973b35a76235bb2aa1b73..ad85e5ebe00918a7fea4071351741566e4883dd0 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
@@ -548,6 +559,22 @@ index de87483600e55d88176fe25db621bbd3e464729f..5bd189fad703ac99d57258fa448dbcc1
|
|||||||
}
|
}
|
||||||
|
|
||||||
public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) {
|
public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) {
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
|
index bbbd451ff184be8fa13bd93d53c89a9502f9951a..7280806cd37a1aed53e304de0a03d68c18b86b09 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
|
@@ -559,7 +559,10 @@ public class ServerExplosion implements Explosion {
|
||||||
|
Player entityhuman = (Player) entity;
|
||||||
|
|
||||||
|
if (!entityhuman.isSpectator() && (!entityhuman.isCreative() || !entityhuman.getAbilities().flying) && !level.paperConfig().environment.disableExplosionKnockback) { // Paper - Option to disable explosion knockback
|
||||||
|
- this.hitPlayers.put(entityhuman, vec3d);
|
||||||
|
+ // Sakura start - specialised explosions; tally player velocity
|
||||||
|
+ final Vec3 explosionImpact = vec3d;
|
||||||
|
+ this.hitPlayers.compute(entityhuman, (p, v) -> v != null ? v.add(explosionImpact) : explosionImpact);
|
||||||
|
+ // Sakura end - specialised explosions; tally player velocity
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
index 2c7ec674f55b3178b9dcba7f2bc1ff5efccb50ea..7976eb7496d57d5d1fe29c902e167d79a86bac32 100644
|
index 2c7ec674f55b3178b9dcba7f2bc1ff5efccb50ea..7976eb7496d57d5d1fe29c902e167d79a86bac32 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ index 0000000000000000000000000000000000000000..d7e24638f07f243502004970ab4ce646
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index b78b642b77a5cef54044b079916fef9b22e50fcc..7aaf3794338b8208ded6549e61479010c369ad87 100644
|
index 61b24eac8f17d5a433817ae2ebb3baf2599af210..3f3a7035a07efce5b8438abf989312b6df137ec8 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -1891,6 +1891,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -1891,6 +1891,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
@@ -150,7 +150,7 @@ index d036cdcc17b8429c986946a020cb34cd6ced322e..b45ad0125cd5c116126e8ffb89358597
|
|||||||
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.function.Supplier<me.samsuik.sakura.configuration.WorldConfiguration> sakuraWorldConfigCreator, java.util.concurrent.Executor executor) { // Sakura - sakura configuration files // Paper - create paper world config & Anti-Xray
|
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.function.Supplier<me.samsuik.sakura.configuration.WorldConfiguration> sakuraWorldConfigCreator, java.util.concurrent.Executor executor) { // Sakura - sakura configuration files // Paper - create paper world config & Anti-Xray
|
||||||
// Paper start - getblock optimisations - cache world height/sections
|
// Paper start - getblock optimisations - cache world height/sections
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
index a92be80081178cc302a7f0b646bad7daa28f7c66..10432b31acd047ac2aa8581f2ee863254ec8d1eb 100644
|
index a7f64335001c7beb7f4474c9cda3c6988725f69a..c4d167ea4390c6605c99d5868d778e0b3f01f97c 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
@@ -297,7 +297,12 @@ public class ServerExplosion implements Explosion {
|
@@ -297,7 +297,12 @@ public class ServerExplosion implements Explosion {
|
||||||
@@ -185,7 +185,7 @@ index a92be80081178cc302a7f0b646bad7daa28f7c66..10432b31acd047ac2aa8581f2ee86325
|
|||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -691,6 +705,12 @@ public class ServerExplosion implements Explosion {
|
@@ -694,6 +708,12 @@ public class ServerExplosion implements Explosion {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -198,7 +198,7 @@ index a92be80081178cc302a7f0b646bad7daa28f7c66..10432b31acd047ac2aa8581f2ee86325
|
|||||||
Iterator iterator = positions.iterator();
|
Iterator iterator = positions.iterator();
|
||||||
|
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
@@ -864,14 +884,12 @@ public class ServerExplosion implements Explosion {
|
@@ -867,14 +887,12 @@ public class ServerExplosion implements Explosion {
|
||||||
|
|
||||||
// Paper start - Optimize explosions
|
// Paper start - Optimize explosions
|
||||||
private float getBlockDensity(Vec3 vec3d, Entity entity) {
|
private float getBlockDensity(Vec3 vec3d, Entity entity) {
|
||||||
|
|||||||
@@ -23,10 +23,10 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..1e1329adde1457898a3002279b53b1bb
|
|||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..82a448a18415ff0e050d26aaa8fcfe844631768f
|
index 0000000000000000000000000000000000000000..ce04a5d9aaef3ca8ba8d7b988bdf0497285f90c1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||||
@@ -0,0 +1,202 @@
|
@@ -0,0 +1,203 @@
|
||||||
+package me.samsuik.sakura.explosion.special;
|
+package me.samsuik.sakura.explosion.special;
|
||||||
+
|
+
|
||||||
+import ca.spottedleaf.moonrise.common.util.WorldUtil;
|
+import ca.spottedleaf.moonrise.common.util.WorldUtil;
|
||||||
@@ -99,6 +99,7 @@ index 0000000000000000000000000000000000000000..82a448a18415ff0e050d26aaa8fcfe84
|
|||||||
+
|
+
|
||||||
+ if (!this.wasCanceled) {
|
+ if (!this.wasCanceled) {
|
||||||
+ this.applyEffects.accept(this);
|
+ this.applyEffects.accept(this);
|
||||||
|
+ this.getHitPlayers().clear();
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ return !explodedPositions.isEmpty();
|
+ return !explodedPositions.isEmpty();
|
||||||
@@ -437,7 +438,7 @@ index 0000000000000000000000000000000000000000..ebe5f0c8c2f09920b5f5ef734e63f5e7
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
index 1f278f6ef7e39df676334e7e5853dec4617f6baa..a9315006379f7ab5b40cb6aba7ed82727afe3a5a 100644
|
index 3b1fbd1fc480682f6a6c620432e268c4e7d283b7..264b6be15e2f9ca147cf57aa5b659e14025c9b53 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
@@ -1890,7 +1890,16 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1890,7 +1890,16 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
@@ -472,7 +473,7 @@ index 1f278f6ef7e39df676334e7e5853dec4617f6baa..a9315006379f7ab5b40cb6aba7ed8272
|
|||||||
ParticleOptions particleparam2 = serverexplosion.isSmall() ? particleparam : particleparam1;
|
ParticleOptions particleparam2 = serverexplosion.isSmall() ? particleparam : particleparam1;
|
||||||
Iterator iterator = this.players.iterator();
|
Iterator iterator = this.players.iterator();
|
||||||
|
|
||||||
@@ -1912,7 +1928,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
@@ -1923,7 +1939,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -508,7 +509,7 @@ index 6b739e820af6333c1ff3a4b87154d4c00c9a5559..0a9e62dd90c6aba4ff97391d69f9a92d
|
|||||||
// Sakura end - merge cannon entities
|
// Sakura end - merge cannon entities
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
index b07c2eb8cc3cc54e8ab72c5ed3d6d7623416e7fb..9381a6810e709194dc50651cd2518942f1d91dec 100644
|
index 37c32860af0efab2e272ee1ca6e67d6b9b885cbf..59e38ee6ac0699350a7021f1d074fdfee4a5ba41 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
@@ -52,9 +52,9 @@ public class ServerExplosion implements Explosion {
|
@@ -52,9 +52,9 @@ public class ServerExplosion implements Explosion {
|
||||||
@@ -588,7 +589,7 @@ index b07c2eb8cc3cc54e8ab72c5ed3d6d7623416e7fb..9381a6810e709194dc50651cd2518942
|
|||||||
// Paper start - collision optimisations
|
// Paper start - collision optimisations
|
||||||
final ObjectArrayList<BlockPos> ret = new ObjectArrayList<>();
|
final ObjectArrayList<BlockPos> ret = new ObjectArrayList<>();
|
||||||
|
|
||||||
@@ -682,7 +714,7 @@ public class ServerExplosion implements Explosion {
|
@@ -685,7 +717,7 @@ public class ServerExplosion implements Explosion {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -597,7 +598,7 @@ index b07c2eb8cc3cc54e8ab72c5ed3d6d7623416e7fb..9381a6810e709194dc50651cd2518942
|
|||||||
List<ServerExplosion.StackCollector> list1 = new ArrayList();
|
List<ServerExplosion.StackCollector> list1 = new ArrayList();
|
||||||
|
|
||||||
Util.shuffle(positions, this.level.random);
|
Util.shuffle(positions, this.level.random);
|
||||||
@@ -787,14 +819,7 @@ public class ServerExplosion implements Explosion {
|
@@ -790,14 +822,7 @@ public class ServerExplosion implements Explosion {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -613,7 +614,7 @@ index b07c2eb8cc3cc54e8ab72c5ed3d6d7623416e7fb..9381a6810e709194dc50651cd2518942
|
|||||||
this.level.gameEvent(this.source, (Holder) GameEvent.EXPLODE, this.center);
|
this.level.gameEvent(this.source, (Holder) GameEvent.EXPLODE, this.center);
|
||||||
List<BlockPos> list = this.calculateExplodedPositions();
|
List<BlockPos> list = this.calculateExplodedPositions();
|
||||||
|
|
||||||
@@ -810,13 +835,7 @@ public class ServerExplosion implements Explosion {
|
@@ -813,13 +838,7 @@ public class ServerExplosion implements Explosion {
|
||||||
if (this.fire) {
|
if (this.fire) {
|
||||||
this.createFire(list);
|
this.createFire(list);
|
||||||
}
|
}
|
||||||
@@ -628,7 +629,7 @@ index b07c2eb8cc3cc54e8ab72c5ed3d6d7623416e7fb..9381a6810e709194dc50651cd2518942
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -837,7 +856,7 @@ public class ServerExplosion implements Explosion {
|
@@ -840,7 +859,7 @@ public class ServerExplosion implements Explosion {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -637,7 +638,7 @@ index b07c2eb8cc3cc54e8ab72c5ed3d6d7623416e7fb..9381a6810e709194dc50651cd2518942
|
|||||||
return this.blockInteraction != Explosion.BlockInteraction.KEEP;
|
return this.blockInteraction != Explosion.BlockInteraction.KEEP;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -904,7 +923,7 @@ public class ServerExplosion implements Explosion {
|
@@ -907,7 +926,7 @@ public class ServerExplosion implements Explosion {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Paper start - Optimize explosions
|
// Paper start - Optimize explosions
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ index 2d5783a6ff7a9ce6dcb6f2895ff80928e62f0cd2..0ae2d83055252146e346b06cc8360eef
|
|||||||
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.function.Supplier<me.samsuik.sakura.configuration.WorldConfiguration> sakuraWorldConfigCreator, java.util.concurrent.Executor executor) { // Sakura - sakura configuration files // Paper - create paper world config & Anti-Xray
|
protected Level(WritableLevelData worlddatamutable, ResourceKey<Level> resourcekey, RegistryAccess iregistrycustom, Holder<DimensionType> holder, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env, java.util.function.Function<org.spigotmc.SpigotWorldConfig, io.papermc.paper.configuration.WorldConfiguration> paperWorldConfigCreator, java.util.function.Supplier<me.samsuik.sakura.configuration.WorldConfiguration> sakuraWorldConfigCreator, java.util.concurrent.Executor executor) { // Sakura - sakura configuration files // Paper - create paper world config & Anti-Xray
|
||||||
// Paper start - getblock optimisations - cache world height/sections
|
// Paper start - getblock optimisations - cache world height/sections
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
index 11b12c1c4eff015bc40c7e7e965badb3f3fd272e..8268f8df624a73eaf0b8baad9aa16bab2ed0f0bc 100644
|
index 59e38ee6ac0699350a7021f1d074fdfee4a5ba41..ccca5d7d51cd7e4a77d87293eb66c9732fce4381 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
@@ -134,7 +134,7 @@ public class ServerExplosion implements Explosion {
|
@@ -134,7 +134,7 @@ public class ServerExplosion implements Explosion {
|
||||||
@@ -136,7 +136,7 @@ index 11b12c1c4eff015bc40c7e7e965badb3f3fd272e..8268f8df624a73eaf0b8baad9aa16bab
|
|||||||
|
|
||||||
public ServerExplosion(ServerLevel world, @Nullable Entity entity, @Nullable DamageSource damageSource, @Nullable ExplosionDamageCalculator behavior, Vec3 pos, float power, boolean createFire, Explosion.BlockInteraction destructionType) {
|
public ServerExplosion(ServerLevel world, @Nullable Entity entity, @Nullable DamageSource damageSource, @Nullable ExplosionDamageCalculator behavior, Vec3 pos, float power, boolean createFire, Explosion.BlockInteraction destructionType) {
|
||||||
this.level = world;
|
this.level = world;
|
||||||
@@ -780,6 +794,16 @@ public class ServerExplosion implements Explosion {
|
@@ -783,6 +797,16 @@ public class ServerExplosion implements Explosion {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
|
|||||||
@@ -67,10 +67,10 @@ index 149e461fcb23b2ed7ae8dcc09837de501ba9eafb..613d2d90571546a482ba493fae5cbc7c
|
|||||||
if (xSmaller && z != 0.0) {
|
if (xSmaller && z != 0.0) {
|
||||||
z = performAABBCollisionsZ(axisalignedbb, z, aabbs);
|
z = performAABBCollisionsZ(axisalignedbb, z, aabbs);
|
||||||
diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||||
index 82a448a18415ff0e050d26aaa8fcfe844631768f..449fa5518a1f9013dbd41dc4bfe3ff8a57b94a30 100644
|
index ce04a5d9aaef3ca8ba8d7b988bdf0497285f90c1..c916d3037bd5920ec06213a9162223a124428d6b 100644
|
||||||
--- a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
--- a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||||
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||||
@@ -160,9 +160,15 @@ public abstract class SpecialisedExplosion<T extends Entity> extends ServerExplo
|
@@ -161,9 +161,15 @@ public abstract class SpecialisedExplosion<T extends Entity> extends ServerExplo
|
||||||
|
|
||||||
if (distanceFromBottom <= 1.0) {
|
if (distanceFromBottom <= 1.0) {
|
||||||
double x = entity.getX() - pos.x;
|
double x = entity.getX() - pos.x;
|
||||||
@@ -631,7 +631,7 @@ index 0ae2d83055252146e346b06cc8360eef56d39f5c..8c41282eafc1201bf1c0d001fb4fe791
|
|||||||
public final me.samsuik.sakura.explosion.density.BlockDensityCache densityCache = new me.samsuik.sakura.explosion.density.BlockDensityCache(); // Sakura - explosion density cache
|
public final me.samsuik.sakura.explosion.density.BlockDensityCache densityCache = new me.samsuik.sakura.explosion.density.BlockDensityCache(); // Sakura - explosion density cache
|
||||||
public final me.samsuik.sakura.explosion.durable.DurableBlockManager durabilityManager = new me.samsuik.sakura.explosion.durable.DurableBlockManager(); // Sakura - explosion durable blocks
|
public final me.samsuik.sakura.explosion.durable.DurableBlockManager durabilityManager = new me.samsuik.sakura.explosion.durable.DurableBlockManager(); // Sakura - explosion durable blocks
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
index 5f2657e3baa6a9be301d36a456dd8d1135d78857..145417fd4623b5bdf6daac8fd100d6b572651153 100644
|
index 85c84333614a4e0739e39cb72d8e4015ed78e7b7..bdc3ff8cbe4e5eaa9d9a34f38fdd150f7368e33b 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
@@ -413,6 +413,7 @@ public class ServerExplosion implements Explosion {
|
@@ -413,6 +413,7 @@ public class ServerExplosion implements Explosion {
|
||||||
@@ -692,7 +692,7 @@ index 5f2657e3baa6a9be301d36a456dd8d1135d78857..145417fd4623b5bdf6daac8fd100d6b5
|
|||||||
|
|
||||||
if (d4 != 0.0D) {
|
if (d4 != 0.0D) {
|
||||||
d1 /= d4;
|
d1 /= d4;
|
||||||
@@ -958,7 +978,7 @@ public class ServerExplosion implements Explosion {
|
@@ -961,7 +981,7 @@ public class ServerExplosion implements Explosion {
|
||||||
// Sakura start - replace density cache
|
// Sakura start - replace density cache
|
||||||
float blockDensity = this.level.densityCache.getDensity(vec3d, entity);
|
float blockDensity = this.level.densityCache.getDensity(vec3d, entity);
|
||||||
if (blockDensity == me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) {
|
if (blockDensity == me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) {
|
||||||
@@ -701,7 +701,7 @@ index 5f2657e3baa6a9be301d36a456dd8d1135d78857..145417fd4623b5bdf6daac8fd100d6b5
|
|||||||
this.level.densityCache.putDensity(vec3d, entity, blockDensity);
|
this.level.densityCache.putDensity(vec3d, entity, blockDensity);
|
||||||
// Sakura end - replace density cache
|
// Sakura end - replace density cache
|
||||||
}
|
}
|
||||||
@@ -966,6 +986,16 @@ public class ServerExplosion implements Explosion {
|
@@ -969,6 +989,16 @@ public class ServerExplosion implements Explosion {
|
||||||
return blockDensity;
|
return blockDensity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add explosions dropping items config
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
index 0789f37ae89b22f9e3500b25cbe27ef853950b85..ace34cc86061bb4c9b080c6e9bf912b1fe3533a6 100644
|
index e857fd02a5e341a1a701da71874dbd850e3c5a5d..0dae16d140666cae7633bbfef6d1c5b979d7dc9e 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
@@ -842,6 +842,12 @@ public class ServerExplosion implements Explosion {
|
@@ -845,6 +845,12 @@ public class ServerExplosion implements Explosion {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Set entity impulse on explosion
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
diff --git a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||||
index 449fa5518a1f9013dbd41dc4bfe3ff8a57b94a30..e4f4ae1ce4703e93664e3c2b97a8cae1e62aaebd 100644
|
index c916d3037bd5920ec06213a9162223a124428d6b..fd98f36ca2fd7e0b5961fd89aa976dbfc7df93b8 100644
|
||||||
--- a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
--- a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||||
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||||
@@ -203,6 +203,7 @@ public abstract class SpecialisedExplosion<T extends Entity> extends ServerExplo
|
@@ -204,6 +204,7 @@ public abstract class SpecialisedExplosion<T extends Entity> extends ServerExplo
|
||||||
moveZ += z;
|
moveZ += z;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ index 449fa5518a1f9013dbd41dc4bfe3ff8a57b94a30..e4f4ae1ce4703e93664e3c2b97a8cae1
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
diff --git a/src/main/java/net/minecraft/world/level/ServerExplosion.java b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
index a82922cd0e648aa1154638a7ff5c616d37475f9c..4109a781b2882e24a20ec5a5ca87040ad0d99bc3 100644
|
index a9a63fa9d2c45298ebd4146e0dfeea54b6431797..f4ab7d377171bf5b9ead7ffd0e6151884bcd2968 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
--- a/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
+++ b/src/main/java/net/minecraft/world/level/ServerExplosion.java
|
||||||
@@ -748,6 +748,7 @@ public class ServerExplosion implements Explosion {
|
@@ -748,6 +748,7 @@ public class ServerExplosion implements Explosion {
|
||||||
|
|||||||
Reference in New Issue
Block a user