mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-22 16:29:16 +00:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@20ec622 use correct types for preloading CraftRegistry PaperMC/Paper@627cc64 Adjust HAProxy's existance to log for console masters (#11433) PaperMC/Paper@01c4820 Call EntityDropItemEvent when a container item drops its contents (#11441) PaperMC/Paper@9c76642 Deprecate for removal Block#isValidTool (#11439) PaperMC/Paper@dd6d184 Remove redundant fillUsableCommands call (#11425) PaperMC/Paper@f33611c fix ItemStack#removeEnchantments creating non-stackable items (#11442) PaperMC/Paper@8f56db8 Add enchantWithLevels with tag specification (#11438) PaperMC/Paper@b7ab22d Fix console completions on invalid commands (#7603) PaperMC/Paper@41bc31b Update paperweight to 1.7.3 (#11445) PaperMC/Paper@e17eb6b Improve entity effect API (#11444) PaperMC/Paper@7b03141 Add startingBrewTime (#11406) PaperMC/Paper@355b1cb Add API for explosions to damage the explosion cause (#11180) PaperMC/Paper@6d7a438 Call bucket events for cauldrons (#7486) PaperMC/Paper@f9c7f2a Begin switching to JSpecify annotations (#11448) PaperMC/Paper@e3c8a8e Add PlayerInsertLecternBookEvent [1.20 port] (#7305) PaperMC/Paper@b410fe8 Configurable per-world void damage offset/damage(#11436) PaperMC/Paper@ea00be3 Do not NPE on uuid resolution in player profile (#11449) PaperMC/Paper@ba3c29b Finish converting all events to jspecify annotations PaperMC/Paper@e7e1ab5 Finish converting most of the undeprecated api to jspecify PaperMC/Paper@69ffbec Fix hex color check PaperMC/Paper@709f0f2 Use components properly in ProfileWhitelistVerifyEvent (#11456) PaperMC/Paper@fb76840 [ci skip] Add section on nullability annotations (#11461)
This commit is contained in:
@@ -2,7 +2,7 @@ group=me.samsuik.sakura
|
||||
version=1.21.1-R0.1-SNAPSHOT
|
||||
mcVersion=1.21.1
|
||||
|
||||
paperRef=1bc02e6b23bf18ba43054bf978769411bd96a04d
|
||||
paperRef=fb768404aa8bdd35b95c88132b95f5cb529cc098
|
||||
|
||||
org.gradle.jvmargs=-Xmx2G
|
||||
org.gradle.vfs.watch=false
|
||||
|
||||
@@ -155,10 +155,10 @@ index 0000000000000000000000000000000000000000..de18836d1a2a6038a661cdc60161d3ba
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
||||
index e6f66d70d024cf4f0536a5bf8e51bf7b306335df..d554b1f54e706500153718527a6b60c7743901ea 100644
|
||||
index ef32a937e6faf1e8a5d6b1207986715bae5a246c..9ef129370e7773e256fe4d2d3bfe93abc625b26a 100644
|
||||
--- a/src/main/java/org/bukkit/World.java
|
||||
+++ b/src/main/java/org/bukkit/World.java
|
||||
@@ -157,6 +157,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
||||
@@ -205,6 +205,10 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient
|
||||
return new Location(this, x, y, z);
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -239,7 +239,7 @@ index f7a636990d581ad0230317a716d2662ea25480e3..f0ba7597de6f1eb025639cbe0f35f51d
|
||||
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 7da2fc17f6e7bf888ef0c2a8eba0fc3b4c10436e..c811bc64d0686fdec58defb707d57e539c261b48 100644
|
||||
index 48c2d026fd678f7990738a0037780a535f1ac19b..613c402744314644f86b401fa84dbd20ffb108f5 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -177,6 +177,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
@@ -256,10 +256,10 @@ index 7da2fc17f6e7bf888ef0c2a8eba0fc3b4c10436e..c811bc64d0686fdec58defb707d57e53
|
||||
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
|
||||
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index cd3381d8225e0322b3e285b3c4aa0a1265a91cc0..7d70fb7553a04bebf9300b0372afd36802b7045c 100644
|
||||
index 33e4818ba5a90d78d69baad9f6b1be1b1382e9f3..d14c942a4505222c13bf0e7bc15ac4904f3ebbd1 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -256,6 +256,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||
@@ -291,6 +291,13 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||
}
|
||||
// Paper end
|
||||
|
||||
|
||||
@@ -310,10 +310,10 @@ index af8cb316ac169aa8d98a88765b85bb013b9ba961..76d4b7e9dad6536c100e5940f9f528ba
|
||||
// CraftBukkit start - respect vanish API
|
||||
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
|
||||
index fb2e895aa658175329708828de3e1030bf28620b..07f36cd0dea417459e7022fe7e73a5177fc7c67a 100644
|
||||
index 1a0819301e0ce05c60b6cb961202a5c60697f6c1..94b130f9fd12ad077e66e5aa1c7b143ad97d96e5 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -1791,7 +1791,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
|
||||
@@ -1793,7 +1793,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
|
||||
while (iterator.hasNext()) {
|
||||
ServerPlayer entityplayer = (ServerPlayer) iterator.next();
|
||||
|
||||
@@ -497,7 +497,7 @@ index befeaac4786760f6847a5945da2296a3e68dbb17..167e7478ea87d611c526db7974f1dac0
|
||||
if (this.player.containerMenu != oldContainer) {
|
||||
return;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index bc45c74987974b4828201e06fc8b1f3fbc0af8b4..7c32f41cca62d03b8fcd6e5486a32c9872ab040c 100644
|
||||
index 4b54d0ea31062972e68ee8fafe3cfaf68f65a5cd..d2e91843df93753a78bb9bd6839de287dc2ce4e5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -549,6 +549,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -536,7 +536,7 @@ index 42bd2d9a1528b6210e4dfb56233062fd97c9743b..28a15f612239614c6c56974da5855ce3
|
||||
|
||||
public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index ad740739437be632fc7fedec488a7d0c49534688..ff8580ca3e74e7e28afbfa8c2e566b98ced2dbff 100644
|
||||
index 42d7660efe5baa6f796f2a7606686c765b6f2478..71f9c53cb3a3130adcbbf92a081fbe2b32efd626 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -547,6 +547,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
|
||||
@@ -52,7 +52,7 @@ index f56e5c0f53f9b52a9247b9be9265b949494fc924..f8e0746433057297c88f0237502da856
|
||||
public static <T> TicketType<T> create(String name, Comparator<T> argumentComparator) {
|
||||
return new TicketType<>(name, argumentComparator, 0L);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 7c32f41cca62d03b8fcd6e5486a32c9872ab040c..471c8a43337d8d93d0532a333dfae2166725f5d9 100644
|
||||
index d2e91843df93753a78bb9bd6839de287dc2ce4e5..87a117c74dcee2e58126e133b853a56a7965e55f 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -553,6 +553,20 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -76,7 +76,7 @@ index 7c32f41cca62d03b8fcd6e5486a32c9872ab040c..471c8a43337d8d93d0532a333dfae216
|
||||
|
||||
public Entity(EntityType<?> type, Level world) {
|
||||
this.id = Entity.ENTITY_COUNTER.incrementAndGet();
|
||||
@@ -1502,7 +1516,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1504,7 +1518,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
|
||||
ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.getCollisions(
|
||||
world, (Entity)(Object)this, collisionBox, potentialCollisionsVoxel, potentialCollisionsBB,
|
||||
@@ -85,7 +85,7 @@ index 7c32f41cca62d03b8fcd6e5486a32c9872ab040c..471c8a43337d8d93d0532a333dfae216
|
||||
null, null
|
||||
);
|
||||
|
||||
@@ -4872,12 +4886,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4874,12 +4888,12 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
|
||||
@Override
|
||||
public boolean shouldBeSaved() {
|
||||
|
||||
@@ -185,10 +185,10 @@ index 8ea2f24695f5dad55e21f238b69442513e7a90c6..66ce58684d7a571ebcb33e62ef1d67fe
|
||||
|
||||
if (this.entity instanceof LivingEntity) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 067a0aa9a57628d0d7b41e419d91df5ece7ec3d3..a5c69230536d163496e0d7f175fd240c6202584a 100644
|
||||
index 87a117c74dcee2e58126e133b853a56a7965e55f..9c890b1bc77834799abdbb403aeeb928ed0125ec 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -3493,7 +3493,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -3495,7 +3495,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
this.entityData.markDirty(Entity.DATA_AIR_SUPPLY_ID);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise paper explosions
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b740025c29443e 100644
|
||||
index f696afd7e241bf1966a2d505b5d59bff824b43e4..611fc40fd7461f6d9cd9e737de71e702bf1f36c5 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -100,7 +100,7 @@ public class Explosion {
|
||||
@@ -101,7 +101,7 @@ public class Explosion {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
|
||||
}
|
||||
|
||||
private static final int CHUNK_CACHE_SHIFT = 2;
|
||||
@@ -315,6 +315,39 @@ public class Explosion {
|
||||
@@ -316,6 +316,39 @@ public class Explosion {
|
||||
return (float)missedRays / (float)totalRays;
|
||||
}
|
||||
// Paper end - optimise collisions
|
||||
@@ -57,7 +57,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
|
||||
|
||||
public static DamageSource getDefaultDamageSource(Level world, @Nullable Entity source) {
|
||||
return world.damageSources().explosion(source, Explosion.getIndirectSourceEntityInternal(source));
|
||||
@@ -438,6 +471,16 @@ public class Explosion {
|
||||
@@ -439,6 +472,16 @@ public class Explosion {
|
||||
int j;
|
||||
|
||||
// Paper start - collision optimisations
|
||||
@@ -74,7 +74,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
|
||||
for (int ray = 0, len = CACHED_RAYS.length; ray < len;) {
|
||||
ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache cachedBlock = initialCache;
|
||||
|
||||
@@ -509,25 +552,64 @@ public class Explosion {
|
||||
@@ -510,25 +553,64 @@ public class Explosion {
|
||||
}
|
||||
|
||||
// Paper - optimise collisions
|
||||
@@ -93,7 +93,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
|
||||
int i1 = Mth.floor(this.y + (double) f2 + 1.0D);
|
||||
int j1 = Mth.floor(this.z - (double) f2 - 1.0D);
|
||||
int k1 = Mth.floor(this.z + (double) f2 + 1.0D);
|
||||
- List<Entity> list = this.level.getEntities(this.source, new AABB((double) i, (double) l, (double) j1, (double) j, (double) i1, (double) k1), (com.google.common.base.Predicate<Entity>) entity -> entity.isAlive() && !entity.isSpectator()); // Paper - Fix lag from explosions processing dead entities
|
||||
- List<Entity> list = this.level.getEntities(excludeSourceFromDamage ? this.source : null, new AABB((double) i, (double) l, (double) j1, (double) j, (double) i1, (double) k1), (com.google.common.base.Predicate<Entity>) entity -> entity.isAlive() && !entity.isSpectator()); // Paper - Fix lag from explosions processing dead entities, Allow explosions to damage source
|
||||
+ return new AABB((double) i, (double) l, (double) j1, (double) j, (double) i1, (double) k1);
|
||||
+ }
|
||||
+
|
||||
@@ -141,12 +141,12 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
|
||||
+ }
|
||||
+
|
||||
+ protected final void impactEntity(ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[] blockCache, BlockPos.MutableBlockPos blockPos, float f2, Vec3 vec3d, Entity entity) {
|
||||
+ if (entity.isAlive() && !entity.isSpectator()) { // Paper - Fix lag from explosions processing dead entities
|
||||
+ if (entity.isAlive() && !entity.isSpectator() && (!this.excludeSourceFromDamage || entity != this.source)) { // Paper - Fix lag from explosions processing dead entities
|
||||
+ // Sakura end - optimise paper explosions
|
||||
if (!entity.ignoreExplosion(this)) {
|
||||
double d7 = Math.sqrt(entity.distanceToSqr(vec3d)) / (double) f2;
|
||||
|
||||
@@ -552,7 +634,7 @@ public class Explosion {
|
||||
@@ -553,7 +635,7 @@ public class Explosion {
|
||||
// - Damaging EntityEnderDragon does nothing
|
||||
// - EntityEnderDragon hitbock always covers the other parts and is therefore always present
|
||||
if (entity instanceof EnderDragonPart) {
|
||||
@@ -155,7 +155,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
|
||||
}
|
||||
|
||||
entity.lastDamageCancelled = false;
|
||||
@@ -560,9 +642,10 @@ public class Explosion {
|
||||
@@ -561,9 +643,10 @@ public class Explosion {
|
||||
seenFraction = (double)this.getBlockDensity(vec3d, entity, blockCache, blockPos); // Paper - optimise collisions
|
||||
|
||||
if (entity instanceof EnderDragon) {
|
||||
@@ -167,7 +167,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
|
||||
entityComplexPart.hurt(this.damageSource, this.damageCalculator.getEntityDamageAmount(this, entity));
|
||||
}
|
||||
}
|
||||
@@ -576,7 +659,7 @@ public class Explosion {
|
||||
@@ -577,7 +660,7 @@ public class Explosion {
|
||||
}
|
||||
|
||||
if (entity.lastDamageCancelled) { // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Skip entity if damage event was cancelled
|
||||
@@ -176,7 +176,7 @@ index 6c66ee69beb55e5c5755bbf4d13c256541ce4468..74e32f74322b3e3bc8c2e3f5f8b74002
|
||||
}
|
||||
// CraftBukkit end
|
||||
} else { seenFraction = (double)this.getBlockDensity(vec3d, entity, blockCache, blockPos); } // Paper - optimise collisions
|
||||
@@ -619,6 +702,11 @@ public class Explosion {
|
||||
@@ -620,6 +703,11 @@ public class Explosion {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -410,7 +410,7 @@ index d48a1f7d23d1c47465ad8df37facbabe3a15c543..012bec9a32acc26f65c8efbfde341b0d
|
||||
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 61ebb6db40626442b75cf768e1bacce3c5c09ec0..65a71789571f896fc25a3eec22ee7808130a1578 100644
|
||||
index df6074dae80cce98ce27bd28280c246dafa9562a..0a29ad6409226ece40c03c6eba699592c7f0aa11 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -714,6 +714,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
|
||||
@@ -438,7 +438,7 @@ index 61ebb6db40626442b75cf768e1bacce3c5c09ec0..65a71789571f896fc25a3eec22ee7808
|
||||
this.guardEntityTick(this::tickNonPassenger, entity);
|
||||
gameprofilerfiller.pop();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 86fc7094d540573a559dd47a1dab7479dc27c1e7..5932aea4430f445eddf9a27d3f93bfc7d58d20e3 100644
|
||||
index 04ff913f304c7b70b5fcbf866984cb0a91c2b05c..a636c0331b6c963224727eaaed9c09d29ba9d2d7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -586,6 +586,23 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -465,7 +465,7 @@ index 86fc7094d540573a559dd47a1dab7479dc27c1e7..5932aea4430f445eddf9a27d3f93bfc7
|
||||
|
||||
public Entity(EntityType<?> type, Level world) {
|
||||
this.id = Entity.ENTITY_COUNTER.incrementAndGet();
|
||||
@@ -4876,6 +4893,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4878,6 +4895,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
|
||||
if (this.removalReason != Entity.RemovalReason.UNLOADED_TO_CHUNK) { this.getPassengers().forEach(Entity::stopRiding); } // Paper - rewrite chunk system
|
||||
this.levelCallback.onRemove(entity_removalreason);
|
||||
@@ -676,7 +676,7 @@ index 888d018a8e73234332455b7d3700e70e1a50c5db..a8e540c8a27135336fb2d6e37aec13d5
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 0925de100a7da3bba6c3fab7a0c79b2ee0d86904..186f1be4aca5295ca260f3808d332cb5ed77bc7e 100644
|
||||
index 0a0884ceb365e01432126b414335c1ff8fa8e084..dc2b8e054a3dd89e1c45d0c96ad640a7d32a2c0d 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -695,6 +695,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
|
||||
@@ -138,10 +138,10 @@ index 012bec9a32acc26f65c8efbfde341b0d15a4e822..8041737aa751bec1c51ee3d9dacd6dfb
|
||||
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
index 80bd249e9572fd0c9ebf53c4731ed50a65290c74..fd1d9e0a8b55378c9cd06369d1850f97b63ab7d7 100644
|
||||
index 611fc40fd7461f6d9cd9e737de71e702bf1f36c5..d8baaed4ae55c079bdfd684b6d942923dfbbbcd1 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -305,7 +305,12 @@ public class Explosion {
|
||||
@@ -306,7 +306,12 @@ public class Explosion {
|
||||
Math.fma(dz, diffZ, offZ)
|
||||
);
|
||||
|
||||
@@ -155,7 +155,7 @@ index 80bd249e9572fd0c9ebf53c4731ed50a65290c74..fd1d9e0a8b55378c9cd06369d1850f97
|
||||
++missedRays;
|
||||
}
|
||||
}
|
||||
@@ -411,7 +416,16 @@ public class Explosion {
|
||||
@@ -412,7 +417,16 @@ public class Explosion {
|
||||
double d10 = Mth.lerp(d7, axisalignedbb.minZ, axisalignedbb.maxZ);
|
||||
Vec3 vec3d1 = new Vec3(d8 + d3, d9, d10 + d4);
|
||||
|
||||
@@ -173,7 +173,7 @@ index 80bd249e9572fd0c9ebf53c4731ed50a65290c74..fd1d9e0a8b55378c9cd06369d1850f97
|
||||
++i;
|
||||
}
|
||||
|
||||
@@ -801,6 +815,11 @@ public class Explosion {
|
||||
@@ -802,6 +816,11 @@ public class Explosion {
|
||||
});
|
||||
}
|
||||
|
||||
@@ -185,7 +185,7 @@ index 80bd249e9572fd0c9ebf53c4731ed50a65290c74..fd1d9e0a8b55378c9cd06369d1850f97
|
||||
Iterator iterator = list.iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
@@ -929,14 +948,12 @@ public class Explosion {
|
||||
@@ -930,14 +949,12 @@ public class Explosion {
|
||||
}
|
||||
// Paper start - Optimize explosions
|
||||
private float getBlockDensity(Vec3 vec3d, Entity entity, ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[] blockCache, BlockPos.MutableBlockPos blockPos) { // Paper - optimise collisions
|
||||
@@ -207,7 +207,7 @@ index 80bd249e9572fd0c9ebf53c4731ed50a65290c74..fd1d9e0a8b55378c9cd06369d1850f97
|
||||
|
||||
return blockDensity;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 186f1be4aca5295ca260f3808d332cb5ed77bc7e..8e12d473bfd7dad4dfda8bba503f475151da0ad1 100644
|
||||
index dc2b8e054a3dd89e1c45d0c96ad640a7d32a2c0d..ed049df61d38ed06076273115b841e2852963844 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -696,6 +696,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise explosions in protected regions
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
index 3ad6f5f19c9fae2f00c662971eaa613c1a0ddbcf..da423a9211dd72bc531d7f0f65aab08b5c44f39c 100644
|
||||
index d8baaed4ae55c079bdfd684b6d942923dfbbbcd1..220d97947df493d1ab825e6637ca648e0b186d18 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -353,6 +353,22 @@ public class Explosion {
|
||||
@@ -354,6 +354,22 @@ public class Explosion {
|
||||
return rays;
|
||||
}
|
||||
// Sakura end - optimise paper explosions
|
||||
@@ -31,7 +31,7 @@ index 3ad6f5f19c9fae2f00c662971eaa613c1a0ddbcf..da423a9211dd72bc531d7f0f65aab08b
|
||||
|
||||
public static DamageSource getDefaultDamageSource(Level world, @Nullable Entity source) {
|
||||
return world.damageSources().explosion(source, Explosion.getIndirectSourceEntityInternal(source));
|
||||
@@ -486,7 +502,7 @@ public class Explosion {
|
||||
@@ -487,7 +503,7 @@ public class Explosion {
|
||||
|
||||
// Paper start - collision optimisations
|
||||
// Sakura start - optimise paper explosions
|
||||
|
||||
@@ -23,10 +23,10 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..1e1329adde1457898a3002279b53b1bb
|
||||
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
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..58add5bd1afc2f3e89b9a7d0d9a325bf17b77a18
|
||||
index 0000000000000000000000000000000000000000..86a4b9502df49b1614fc76920b164e1148244643
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||
@@ -0,0 +1,218 @@
|
||||
@@ -0,0 +1,222 @@
|
||||
+package me.samsuik.sakura.explosion.special;
|
||||
+
|
||||
+import ca.spottedleaf.moonrise.common.util.WorldUtil;
|
||||
@@ -41,6 +41,7 @@ index 0000000000000000000000000000000000000000..58add5bd1afc2f3e89b9a7d0d9a325bf
|
||||
+import net.minecraft.util.Mth;
|
||||
+import net.minecraft.world.damagesource.DamageSource;
|
||||
+import net.minecraft.world.entity.Entity;
|
||||
+import net.minecraft.world.entity.item.PrimedTnt;
|
||||
+import net.minecraft.world.level.Explosion;
|
||||
+import net.minecraft.world.level.ExplosionDamageCalculator;
|
||||
+import net.minecraft.world.level.Level;
|
||||
@@ -191,6 +192,9 @@ index 0000000000000000000000000000000000000000..58add5bd1afc2f3e89b9a7d0d9a325bf
|
||||
+ }
|
||||
+
|
||||
+ protected final void impactEntity(Entity entity, Vec3 pos, int potential, double radius) {
|
||||
+ if (this.excludeSourceFromDamage && entity == this.source) {
|
||||
+ return; // for paper api
|
||||
+ }
|
||||
+ if (entity.isPrimedTNT || entity.isFallingBlock) {
|
||||
+ this.impactCannonEntity(entity, pos, potential, radius);
|
||||
+ } else {
|
||||
@@ -459,10 +463,10 @@ index 0000000000000000000000000000000000000000..a5d13c6b0d8765e4a65b43f5835fd907
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 65a71789571f896fc25a3eec22ee7808130a1578..fc84d393df406cc9895ee063422afe562762d443 100644
|
||||
index 0a29ad6409226ece40c03c6eba699592c7f0aa11..9e059ca44d19da96ff5fbe84a716e747036025d3 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -1796,6 +1796,12 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
|
||||
@@ -1798,6 +1798,12 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
|
||||
explosion.clearToBlow();
|
||||
}
|
||||
|
||||
@@ -475,7 +479,7 @@ index 65a71789571f896fc25a3eec22ee7808130a1578..fc84d393df406cc9895ee063422afe56
|
||||
Iterator iterator = this.players.iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
@@ -1806,7 +1812,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
|
||||
@@ -1808,7 +1814,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
|
||||
}
|
||||
}
|
||||
|
||||
@@ -511,7 +515,7 @@ index a8e540c8a27135336fb2d6e37aec13d598b2000e..e64c85bf8fbd3ad0d7e8a6e4a34aed81
|
||||
// Sakura end - merge cannon entities
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac68ece9af7 100644
|
||||
index 220d97947df493d1ab825e6637ca648e0b186d18..5cac17def6b49316ae8fb994d4f3d80154074fe0 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -57,9 +57,11 @@ public class Explosion {
|
||||
@@ -529,7 +533,7 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
|
||||
@Nullable
|
||||
public final Entity source;
|
||||
private final float radius;
|
||||
@@ -114,10 +116,10 @@ public class Explosion {
|
||||
@@ -115,10 +117,10 @@ public class Explosion {
|
||||
// resistance = (res + 0.3F) * 0.3F;
|
||||
// so for resistance = 0, we need res = -0.3F
|
||||
private static final Float ZERO_RESISTANCE = Float.valueOf(-0.3f);
|
||||
@@ -542,7 +546,7 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
|
||||
final long key, final boolean calculateResistance) {
|
||||
ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache ret = this.blockCache.get(key);
|
||||
if (ret != null) {
|
||||
@@ -215,7 +217,7 @@ public class Explosion {
|
||||
@@ -216,7 +218,7 @@ public class Explosion {
|
||||
(currZ & BLOCK_EXPLOSION_CACHE_MASK) << (BLOCK_EXPLOSION_CACHE_SHIFT + BLOCK_EXPLOSION_CACHE_SHIFT);
|
||||
ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache cachedBlock = blockCache[cacheKey];
|
||||
if (cachedBlock == null || cachedBlock.key != key) {
|
||||
@@ -551,7 +555,7 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
|
||||
}
|
||||
|
||||
final BlockState blockState = cachedBlock.blockState;
|
||||
@@ -369,6 +371,28 @@ public class Explosion {
|
||||
@@ -370,6 +372,28 @@ public class Explosion {
|
||||
return true;
|
||||
}
|
||||
// Sakura end - optimise explosion protected regions
|
||||
@@ -580,7 +584,7 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
|
||||
|
||||
public static DamageSource getDefaultDamageSource(Level world, @Nullable Entity source) {
|
||||
return world.damageSources().explosion(source, Explosion.getIndirectSourceEntityInternal(source));
|
||||
@@ -472,16 +496,7 @@ public class Explosion {
|
||||
@@ -473,16 +497,7 @@ public class Explosion {
|
||||
// CraftBukkit end
|
||||
this.level.gameEvent(this.source, (Holder) GameEvent.EXPLODE, new Vec3(this.x, this.y, this.z));
|
||||
|
||||
@@ -598,7 +602,7 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
|
||||
// use initial cache value that is most likely to be used: the source position
|
||||
final ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache initialCache;
|
||||
{
|
||||
@@ -963,7 +978,7 @@ public class Explosion {
|
||||
@@ -964,7 +979,7 @@ public class Explosion {
|
||||
private BlockInteraction() {}
|
||||
}
|
||||
// Paper start - Optimize explosions
|
||||
@@ -608,10 +612,10 @@ index dfc6a49b2e4d7dd943a404e1f8445f9b67f41cde..4702f1d07ad32e94aeada46122f84ac6
|
||||
float blockDensity = this.level.densityCache.getDensity(vec3d, entity);
|
||||
if (blockDensity == me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 8e12d473bfd7dad4dfda8bba503f475151da0ad1..eaafb99543869234e6bb8eb227bf9a0d6e8346d0 100644
|
||||
index ed049df61d38ed06076273115b841e2852963844..c3260ad0ddb40fbde9c1aaf25c0a2be901357dcc 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -1521,7 +1521,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
@@ -1537,7 +1537,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
}
|
||||
|
||||
Explosion.BlockInteraction explosion_effect1 = explosion_effect;
|
||||
@@ -624,6 +628,6 @@ index 8e12d473bfd7dad4dfda8bba503f475151da0ad1..eaafb99543869234e6bb8eb227bf9a0d
|
||||
+ explosion = new Explosion(this, entity, damageSource, behavior, x, y, z, power, createFire, explosion_effect1, particle, emitterParticle, soundEvent);
|
||||
+ }
|
||||
+ // Sakura end - specialised explosions
|
||||
if (configurator != null) configurator.accept(explosion); // Paper - Allow explosions to damage source
|
||||
|
||||
explosion.explode();
|
||||
explosion.finalizeExplosion(particles);
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise cannon entity movement
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 023500526ab0a42bf7cbf21e1773cf5369aa2323..00fcff6e934ec7bc7a7ba853cab4c6e69c42af99 100644
|
||||
index a636c0331b6c963224727eaaed9c09d29ba9d2d7..b8b86de79c276b89ff5d4f9469c3456104dcc00e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -1164,6 +1164,93 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1166,6 +1166,93 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return this.moveStartZ;
|
||||
}
|
||||
// Paper end - detailed watchdog information
|
||||
@@ -102,7 +102,7 @@ index 023500526ab0a42bf7cbf21e1773cf5369aa2323..00fcff6e934ec7bc7a7ba853cab4c6e6
|
||||
|
||||
public void move(MoverType movementType, Vec3 movement) {
|
||||
final Vec3 originalMovement = movement; // Paper - Expose pre-collision velocity
|
||||
@@ -1508,6 +1595,95 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1510,6 +1597,95 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return offsetFactor;
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ index 023500526ab0a42bf7cbf21e1773cf5369aa2323..00fcff6e934ec7bc7a7ba853cab4c6e6
|
||||
// Paper start - optimise collisions
|
||||
final boolean xZero = movement.x == 0.0;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
index 19eed968884f79a7982d96ae8c3c378f00afbdf9..cc5ef63a99a18f093f600612bf972cf50722e3a5 100644
|
||||
index 53488a1d0c56e7da4cf93c08cab01a033fb4f1f8..d1e06ef173468fa722d4b121e44ac0a9a314ee78 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
@@ -204,7 +204,7 @@ public class FallingBlockEntity extends Entity implements me.samsuik.sakura.enti
|
||||
@@ -212,7 +212,7 @@ index 19eed968884f79a7982d96ae8c3c378f00afbdf9..cc5ef63a99a18f093f600612bf972cf5
|
||||
if (this.level().paperConfig().fixes.fallingBlockHeightNerf.test(v -> this.getY() > v)) {
|
||||
if (this.dropItem && this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) {
|
||||
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 e048542cdd1fe9c807ce21e57af9cf59b4adb33f..fdbc990af4190f93f207c3309cf9f89613092c0a 100644
|
||||
index e64c85bf8fbd3ad0d7e8a6e4a34aed8140f4f8bc..1a2cdd2235dfa930e82151a370ddf2e60f2866fa 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
@@ -124,7 +124,7 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Entity pushed by fluid API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index ba13fcd0c01dc2c4068017fa0c008016640c4c8b..232132951856f244bcbf978709bef98da2f8827d 100644
|
||||
index b8b86de79c276b89ff5d4f9469c3456104dcc00e..18f3aaa704a9f04aa5bac468f2e5963538629f64 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -603,6 +603,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -16,7 +16,7 @@ index ba13fcd0c01dc2c4068017fa0c008016640c4c8b..232132951856f244bcbf978709bef98d
|
||||
|
||||
public Entity(EntityType<?> type, Level world) {
|
||||
this.id = Entity.ENTITY_COUNTER.incrementAndGet();
|
||||
@@ -4169,7 +4170,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4171,7 +4172,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
|
||||
public boolean isPushedByFluid() {
|
||||
@@ -26,7 +26,7 @@ index ba13fcd0c01dc2c4068017fa0c008016640c4c8b..232132951856f244bcbf978709bef98d
|
||||
|
||||
public static double getViewScale() {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
index cd789c235acf740ec29c30b180e7fbe1a140caa9..f837748105540ae77b718590f1387168e6c906ac 100644
|
||||
index 89c8713d2c2206d1b0d8c0a392c9d13b3e736f0c..38ef55af47c7eb24ebc719c63298a9b071693f4e 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||
@@ -203,6 +203,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise TNT fluid state
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 08b795b91138e052e6df6c477700de8ef7aabb5b..18cefd77146cee72f1818cbb725dd1704ae5fec0 100644
|
||||
index 18f3aaa704a9f04aa5bac468f2e5963538629f64..6131a99836b721f468d21df00c8d0f2bcb7feda9 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -2151,7 +2151,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -2153,7 +2153,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return this.isInWater() || flag;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ index 08b795b91138e052e6df6c477700de8ef7aabb5b..18cefd77146cee72f1818cbb725dd170
|
||||
|
||||
if (entity instanceof Boat entityboat) {
|
||||
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 ee5d0dd90ebc2eb3280c9047450f8eac5dca167c..64ebae26c3c58c94b9907a5819cdc09f4f748cf1 100644
|
||||
index 12983f598ffbd395b718878ac3865c0c5e5104fb..89d297bbec6034630fe0dbb84c079023611194a3 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
@@ -120,6 +120,21 @@ public class PrimedTnt extends Entity implements TraceableEntity, me.samsuik.sak
|
||||
|
||||
@@ -98,10 +98,10 @@ index efc0c1acc8239dd7b00211a1d3bfd3fc3b2c810c..0ffbc8b459c3475ff0a9c307cb7bd144
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index eaafb99543869234e6bb8eb227bf9a0d6e8346d0..ec47e7da3c06ee74e0c134e4a881ab373fc68af8 100644
|
||||
index c3260ad0ddb40fbde9c1aaf25c0a2be901357dcc..75d11642b7246bae4073feec09c0cf21c24622ca 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -1668,10 +1668,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
@@ -1685,10 +1685,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
this.getEntities(filter, box, predicate, result, Integer.MAX_VALUE);
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ index eaafb99543869234e6bb8eb227bf9a0d6e8346d0..ec47e7da3c06ee74e0c134e4a881ab37
|
||||
this.getProfiler().incrementCounter("getEntities");
|
||||
|
||||
if (entityTypeTest instanceof net.minecraft.world.entity.EntityType<T> byType) {
|
||||
@@ -1686,7 +1694,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
@@ -1703,7 +1711,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
|
||||
if (entityTypeTest == null) {
|
||||
if (maxCount != Integer.MAX_VALUE) {
|
||||
|
||||
@@ -104,10 +104,10 @@ index a8008c7550488be34b51f4280f5569170b1ebd1d..2e5a46b9d27b930870c68dbde93d8731
|
||||
public String getDescriptionId() {
|
||||
return this.getOrCreateDescriptionId();
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
index 4702f1d07ad32e94aeada46122f84ac68ece9af7..da6f8d2f9b27de6c256920187c9841536842147b 100644
|
||||
index 5cac17def6b49316ae8fb994d4f3d80154074fe0..407154670acbec704ef6804a33c320ab9246c16d 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -144,7 +144,7 @@ public class Explosion {
|
||||
@@ -145,7 +145,7 @@ public class Explosion {
|
||||
BlockState blockState = ((ca.spottedleaf.moonrise.patches.chunk_getblock.GetBlockChunk)chunk).moonrise$getBlock(x, y, z);
|
||||
FluidState fluidState = blockState.getFluidState();
|
||||
|
||||
@@ -116,7 +116,7 @@ index 4702f1d07ad32e94aeada46122f84ac68ece9af7..da6f8d2f9b27de6c256920187c984153
|
||||
|
||||
ret = new ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache(
|
||||
key, pos, blockState, fluidState,
|
||||
@@ -158,6 +158,21 @@ public class Explosion {
|
||||
@@ -159,6 +159,21 @@ public class Explosion {
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -138,7 +138,7 @@ index 4702f1d07ad32e94aeada46122f84ac68ece9af7..da6f8d2f9b27de6c256920187c984153
|
||||
private boolean clipsAnything(final Vec3 from, final Vec3 to,
|
||||
final ca.spottedleaf.moonrise.patches.collisions.CollisionUtil.LazyEntityCollisionContext context,
|
||||
final ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[] blockCache,
|
||||
@@ -831,6 +846,16 @@ public class Explosion {
|
||||
@@ -832,6 +847,16 @@ public class Explosion {
|
||||
// CraftBukkit start - TNTPrimeEvent
|
||||
BlockState iblockdata = this.level.getBlockState(blockposition);
|
||||
Block block = iblockdata.getBlock();
|
||||
@@ -156,7 +156,7 @@ index 4702f1d07ad32e94aeada46122f84ac68ece9af7..da6f8d2f9b27de6c256920187c984153
|
||||
Entity sourceEntity = this.source == null ? null : this.source;
|
||||
BlockPos sourceBlock = sourceEntity == null ? BlockPos.containing(this.x, this.y, this.z) : null;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index ec47e7da3c06ee74e0c134e4a881ab373fc68af8..88aa465a4bc6ae79dbad8dc8ecc21345f70abf0b 100644
|
||||
index 75d11642b7246bae4073feec09c0cf21c24622ca..2cf25b6e51f1c430f80f1defe365b0373227bed2 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -697,6 +697,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
|
||||
@@ -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 da1dd876b5e64d1f5fefd0701f380ff20b965e0f..099e733940667ed146d7687634bb99855b439616 100644
|
||||
index 407154670acbec704ef6804a33c320ab9246c16d..b32f377079a7c97840079b0a6b541be936c822dd 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -167,6 +167,11 @@ public class Explosion {
|
||||
@@ -168,6 +168,11 @@ public class Explosion {
|
||||
if (material != null && material.resistance() >= 0.0f && (this.level.sakuraConfig().cannons.explosion.allowNonTntBreakingDurableBlocks || this.source instanceof net.minecraft.world.entity.item.PrimedTnt)) {
|
||||
return Optional.of(material.resistance());
|
||||
}
|
||||
|
||||
@@ -5,18 +5,18 @@ 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 81284ec481ac6cc82d2b1171d1772c107d1a5a0c..0dd0397036309c881f955b78ba3934e33bcf18fd 100644
|
||||
index b32f377079a7c97840079b0a6b541be936c822dd..fa142719b1c4f6434466141128c475ef945edbb7 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -76,6 +76,7 @@ public class Explosion {
|
||||
public boolean wasCanceled = false;
|
||||
@@ -77,6 +77,7 @@ public class Explosion {
|
||||
public float yield;
|
||||
// CraftBukkit end
|
||||
public boolean excludeSourceFromDamage = true; // Paper - Allow explosions to damage source
|
||||
+ private final boolean consistentRadius; // Sakura - consistent explosion radius
|
||||
|
||||
// Paper start - optimise collisions
|
||||
private static final double[] CACHED_RAYS;
|
||||
@@ -450,6 +451,7 @@ public class Explosion {
|
||||
@@ -451,6 +452,7 @@ public class Explosion {
|
||||
this.largeExplosionParticles = emitterParticle;
|
||||
this.explosionSound = soundEvent;
|
||||
this.yield = this.blockInteraction == Explosion.BlockInteraction.DESTROY_WITH_DECAY ? 1.0F / this.radius : 1.0F; // CraftBukkit
|
||||
@@ -24,7 +24,7 @@ index 81284ec481ac6cc82d2b1171d1772c107d1a5a0c..0dd0397036309c881f955b78ba3934e3
|
||||
}
|
||||
|
||||
private ExplosionDamageCalculator makeDamageCalculator(@Nullable Entity entity) {
|
||||
@@ -558,7 +560,7 @@ public class Explosion {
|
||||
@@ -559,7 +561,7 @@ public class Explosion {
|
||||
final double incZ = CACHED_RAYS[ray + 2];
|
||||
|
||||
ray += 3;
|
||||
|
||||
@@ -67,10 +67,10 @@ index ea6e252053b8910141aacd5bb82108d6abf3fb96..aa23d2665d5804e31b7c1b7021377010
|
||||
if (xSmaller && z != 0.0) {
|
||||
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
|
||||
index 58add5bd1afc2f3e89b9a7d0d9a325bf17b77a18..8ff4ce297e9e799b14d623b49493c5a4638153fc 100644
|
||||
index 86a4b9502df49b1614fc76920b164e1148244643..8db362721860fe8d5eb497a766e6d1b7879cb455 100644
|
||||
--- a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||
@@ -176,9 +176,15 @@ public abstract class SpecialisedExplosion<T extends Entity> extends Explosion {
|
||||
@@ -180,9 +180,15 @@ public abstract class SpecialisedExplosion<T extends Entity> extends Explosion {
|
||||
|
||||
if (distanceFromBottom <= 1.0) {
|
||||
double x = entity.getX() - pos.x;
|
||||
@@ -106,7 +106,7 @@ index a5d13c6b0d8765e4a65b43f5835fd907738e1da4..19f0d8cf94a60b66cead3c129ded69fc
|
||||
protected int getExplosionCount() {
|
||||
if (this.cause.getMergeEntityData().getMergeLevel() == MergeLevel.NONE) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c012879306c94af4a 100644
|
||||
index 6131a99836b721f468d21df00c8d0f2bcb7feda9..4a899864f460c80bbc6d5d6849e0421c2e392495 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -384,7 +384,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -132,7 +132,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
|
||||
|
||||
public Entity(EntityType<?> type, Level world) {
|
||||
this.id = Entity.ENTITY_COUNTER.incrementAndGet();
|
||||
@@ -1111,7 +1118,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1113,7 +1120,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
|
||||
protected void checkSupportingBlock(boolean onGround, @Nullable Vec3 movement) {
|
||||
@@ -141,7 +141,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
|
||||
AABB axisalignedbb = this.getBoundingBox();
|
||||
AABB axisalignedbb1 = new AABB(axisalignedbb.minX, axisalignedbb.minY - 1.0E-6D, axisalignedbb.minZ, axisalignedbb.maxX, axisalignedbb.minY, axisalignedbb.maxZ);
|
||||
Optional<BlockPos> optional = this.level.findSupportingBlock(this, axisalignedbb1);
|
||||
@@ -1171,7 +1178,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1173,7 +1180,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
if (this.noPhysics) {
|
||||
this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z);
|
||||
} else {
|
||||
@@ -150,7 +150,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
|
||||
movement = this.limitPistonMovement(movement);
|
||||
if (movement.equals(Vec3.ZERO)) {
|
||||
return;
|
||||
@@ -1189,10 +1196,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1191,10 +1198,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
Vec3 vec3d1 = this.collideScan(movement);
|
||||
double d0 = vec3d1.lengthSqr();
|
||||
|
||||
@@ -164,7 +164,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
|
||||
BlockHitResult movingobjectpositionblock = this.level().clip(new ClipContext(this.position(), this.position().add(vec3d1), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid.WATER, this));
|
||||
|
||||
if (movingobjectpositionblock.getType() != HitResult.Type.MISS) {
|
||||
@@ -1228,6 +1235,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1230,6 +1237,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
if (this.horizontalCollision) {
|
||||
Vec3 vec3d2 = this.getDeltaMovement();
|
||||
|
||||
@@ -176,7 +176,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
|
||||
this.setDeltaMovement(flag ? 0.0D : vec3d2.x, vec3d2.y, flag1 ? 0.0D : vec3d2.z);
|
||||
}
|
||||
|
||||
@@ -1269,7 +1281,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1271,7 +1283,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
this.setPos(this.getX() + movement.x, this.getY() + movement.y, this.getZ() + movement.z);
|
||||
} else {
|
||||
this.wasOnFire = this.isOnFire();
|
||||
@@ -185,7 +185,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
|
||||
this.activatedTick = Math.max(this.activatedTick, MinecraftServer.currentTick + 20); // Paper
|
||||
this.activatedImmunityTick = Math.max(this.activatedImmunityTick, MinecraftServer.currentTick + 20); // Paper
|
||||
movement = this.limitPistonMovement(movement);
|
||||
@@ -1296,8 +1308,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1298,8 +1310,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
Vec3 vec3d1 = this.collide(movement);
|
||||
double d0 = vec3d1.lengthSqr();
|
||||
|
||||
@@ -196,7 +196,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
|
||||
BlockHitResult movingobjectpositionblock = this.level().clip(new ClipContext(this.position(), this.position().add(vec3d1), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid.WATER, this));
|
||||
|
||||
if (movingobjectpositionblock.getType() != HitResult.Type.MISS) {
|
||||
@@ -1333,6 +1345,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1335,6 +1347,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
if (this.horizontalCollision) {
|
||||
Vec3 vec3d2 = this.getDeltaMovement();
|
||||
|
||||
@@ -208,7 +208,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
|
||||
this.setDeltaMovement(flag ? 0.0D : vec3d2.x, vec3d2.y, flag1 ? 0.0D : vec3d2.z);
|
||||
}
|
||||
|
||||
@@ -1612,7 +1629,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1614,7 +1631,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
} else {
|
||||
AABB bb = currBoundingBox.expandTowards(movement.x, movement.y, movement.z);
|
||||
this.collectCollisions(bb, potentialCollisionsVoxel, potentialCollisionsBB);
|
||||
@@ -217,7 +217,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1621,7 +1638,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1623,7 +1640,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
double y = movement.y;
|
||||
double z = movement.z;
|
||||
|
||||
@@ -229,7 +229,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
|
||||
|
||||
if (y != 0.0) {
|
||||
y = this.scanY(currBoundingBox, y, voxelList, bbList);
|
||||
@@ -1737,7 +1757,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1739,7 +1759,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return movement;
|
||||
}
|
||||
|
||||
@@ -238,7 +238,7 @@ index deb032f9e80b2a001e2908a81bd62b00c87ba02e..9241f5cfc79f2f75ddffd41c01287930
|
||||
|
||||
if (stepHeight > 0.0
|
||||
&& (onGround || (limitedMoveVector.y != movement.y && movement.y < 0.0))
|
||||
@@ -1888,8 +1908,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1890,8 +1910,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
|
||||
protected void checkInsideBlocks() {
|
||||
AABB axisalignedbb = this.getBoundingBox();
|
||||
@@ -475,18 +475,18 @@ index 4d0cfa1f96a04713cb1d51c7aaaf91374a0d6c17..96c43df6834e20a9e04eb095f36a644e
|
||||
// Paper end - Option to prevent TNT from moving in water
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c2c353368 100644
|
||||
index fa142719b1c4f6434466141128c475ef945edbb7..cfeacded13f5ebbc3ef66163387c7a40622d7b74 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -77,6 +77,7 @@ public class Explosion {
|
||||
public float yield;
|
||||
@@ -78,6 +78,7 @@ public class Explosion {
|
||||
// CraftBukkit end
|
||||
public boolean excludeSourceFromDamage = true; // Paper - Allow explosions to damage source
|
||||
private final boolean consistentRadius; // Sakura - consistent explosion radius
|
||||
+ protected final me.samsuik.sakura.physics.PhysicsVersion physics; // Sakura - physics version api
|
||||
|
||||
// Paper start - optimise collisions
|
||||
private static final double[] CACHED_RAYS;
|
||||
@@ -452,6 +453,7 @@ public class Explosion {
|
||||
@@ -453,6 +454,7 @@ public class Explosion {
|
||||
this.explosionSound = soundEvent;
|
||||
this.yield = this.blockInteraction == Explosion.BlockInteraction.DESTROY_WITH_DECAY ? 1.0F / this.radius : 1.0F; // CraftBukkit
|
||||
this.consistentRadius = world.localConfig().config(BlockPos.containing(x, y, z)).consistentRadius; // Sakura - consistent explosion radius
|
||||
@@ -494,7 +494,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
|
||||
}
|
||||
|
||||
private ExplosionDamageCalculator makeDamageCalculator(@Nullable Entity entity) {
|
||||
@@ -483,8 +485,12 @@ public class Explosion {
|
||||
@@ -484,8 +486,12 @@ public class Explosion {
|
||||
final float density = entity.level().densityCache.getKnownDensity(vec3d1);
|
||||
if (density != me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) {
|
||||
hitResult = density != 0.0f ? net.minecraft.world.phys.HitResult.Type.MISS : net.minecraft.world.phys.HitResult.Type.BLOCK;
|
||||
@@ -508,7 +508,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
|
||||
}
|
||||
if (hitResult == HitResult.Type.MISS) {
|
||||
// Sakura end - replace density cache
|
||||
@@ -580,6 +586,14 @@ public class Explosion {
|
||||
@@ -581,6 +587,14 @@ public class Explosion {
|
||||
}
|
||||
|
||||
if (cachedBlock.outOfWorld) {
|
||||
@@ -523,7 +523,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
|
||||
break;
|
||||
}
|
||||
// Paper end - collision optimisations
|
||||
@@ -682,9 +696,15 @@ public class Explosion {
|
||||
@@ -683,9 +697,15 @@ public class Explosion {
|
||||
|
||||
if (d7 <= 1.0D) {
|
||||
double d8 = entity.getX() - this.x;
|
||||
@@ -540,7 +540,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
|
||||
|
||||
if (d11 != 0.0D) {
|
||||
d8 /= d11;
|
||||
@@ -1014,7 +1034,7 @@ public class Explosion {
|
||||
@@ -1015,7 +1035,7 @@ public class Explosion {
|
||||
// Sakura start - replace density cache
|
||||
float blockDensity = this.level.densityCache.getDensity(vec3d, entity);
|
||||
if (blockDensity == me.samsuik.sakura.explosion.density.BlockDensityCache.UNKNOWN_DENSITY) {
|
||||
@@ -549,7 +549,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
|
||||
this.level.densityCache.putDensity(vec3d, entity, blockDensity);
|
||||
// Sakura end - replace density cache
|
||||
}
|
||||
@@ -1022,6 +1042,17 @@ public class Explosion {
|
||||
@@ -1023,6 +1043,17 @@ public class Explosion {
|
||||
return blockDensity;
|
||||
}
|
||||
|
||||
@@ -568,7 +568,7 @@ index 90f2a510fb2b33534f12ec4d86d9bf33bd532b58..488748a0c34b3c7e7f3348ebbbb5155c
|
||||
private final Level world;
|
||||
private final double posX, posY, posZ;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index d82d64c98fc7624dfcc86fcbf49cde108bb34ede..062bc318e9c4e3b9a6429ce0eaaa29081cd1d227 100644
|
||||
index 20d6044e32cc56089a175675ff74dca02d68e75a..bd72b02c20fb56c2351f865dfff2573545ac313a 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -695,6 +695,170 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
|
||||
@@ -5,10 +5,10 @@ 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 22fa16f67100c68668a99312e38475499acac38a..6fbdbaa399c9381ea6906e7af7a7a29a4adb1666 100644
|
||||
index cfeacded13f5ebbc3ef66163387c7a40622d7b74..f39507dd7e0890446c9c16e6ae45d96302577253 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -174,6 +174,11 @@ public class Explosion {
|
||||
@@ -175,6 +175,11 @@ public class Explosion {
|
||||
return Optional.of(ZERO_RESISTANCE);
|
||||
}
|
||||
// Sakura end - destroy water logged blocks
|
||||
|
||||
@@ -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 4ed468653f2487e62ad3c187d558978b05a3264d..ec0a3764e129faecce4fd35f4e301a6fe8a9061b 100644
|
||||
index f39507dd7e0890446c9c16e6ae45d96302577253..98df890c88c6635566b5702080753f5cb0c20598 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -908,6 +908,11 @@ public class Explosion {
|
||||
@@ -909,6 +909,11 @@ public class Explosion {
|
||||
this.level.densityCache.invalidate();
|
||||
}
|
||||
// Sakura end - explosion density cache
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Optimise check inside blocks and fluids
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index e1af8ca911513146eb04382b95fedbbf39545f91..b8688e0d8eb2ba25c15d9c4bad8d403e4625683d 100644
|
||||
index eb90625e5a4b843877ba2f7b2510ba1c26d861ce..8237ed9645ccebc274d3e7bbb16444126638c7a2 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -1922,18 +1922,37 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1924,18 +1924,37 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
BlockPos blockposition1 = BlockPos.containing(axisalignedbb.maxX - offset, axisalignedbb.maxY - offset, axisalignedbb.maxZ - offset);
|
||||
// Sakura end - physics version api
|
||||
|
||||
@@ -50,7 +50,7 @@ index e1af8ca911513146eb04382b95fedbbf39545f91..b8688e0d8eb2ba25c15d9c4bad8d403e
|
||||
|
||||
try {
|
||||
iblockdata.entityInside(this.level(), blockposition_mutableblockposition, this);
|
||||
@@ -4712,7 +4731,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4714,7 +4733,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
|
||||
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
|
||||
@@ -59,7 +59,7 @@ index e1af8ca911513146eb04382b95fedbbf39545f91..b8688e0d8eb2ba25c15d9c4bad8d403e
|
||||
return false;
|
||||
} else {
|
||||
AABB axisalignedbb = this.getBoundingBox().deflate(0.001D);
|
||||
@@ -4729,11 +4748,30 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4731,11 +4750,30 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
int k1 = 0;
|
||||
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Protect scaffolding from creepers
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
index cfcbbea230982cfa0f496eebcdc660c859650199..5d0db6c87467b6b2bda37b2e3cf5eb76573069a6 100644
|
||||
index 98df890c88c6635566b5702080753f5cb0c20598..d7278a4f2a186532a9b4a57af8dad47b86660068 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -179,6 +179,11 @@ public class Explosion {
|
||||
@@ -180,6 +180,11 @@ public class Explosion {
|
||||
return Optional.of(ZERO_RESISTANCE);
|
||||
}
|
||||
// Sakura end - allow explosions to destroy lava
|
||||
|
||||
@@ -33,10 +33,10 @@ index 007bc568d3fb23f08790044aa3171727996927dc..4a5844be3683f502eebe01eed7ff1c2a
|
||||
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) {
|
||||
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index ff8580ca3e74e7e28afbfa8c2e566b98ced2dbff..c989f7051167ad6b83f0c916aefd068198711dab 100644
|
||||
index 71f9c53cb3a3130adcbbf92a081fbe2b32efd626..581a9efe67f3b803688679609d1feb0b601c9bde 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -3017,6 +3017,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -3022,6 +3022,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
return (this.getHandle().requestedViewDistance() == 0) ? Bukkit.getViewDistance() : this.getHandle().requestedViewDistance();
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
index 8ff4ce297e9e799b14d623b49493c5a4638153fc..a0ee26744d27b75d1a979b565cfe96989329ac81 100644
|
||||
index 8db362721860fe8d5eb497a766e6d1b7879cb455..911d1d8bef53b549f5f77ca1ed1e5b2e5102ba54 100644
|
||||
--- a/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||
+++ b/src/main/java/me/samsuik/sakura/explosion/special/SpecialisedExplosion.java
|
||||
@@ -219,6 +219,7 @@ public abstract class SpecialisedExplosion<T extends Entity> extends Explosion {
|
||||
@@ -223,6 +223,7 @@ public abstract class SpecialisedExplosion<T extends Entity> extends Explosion {
|
||||
moveZ += z;
|
||||
}
|
||||
|
||||
@@ -17,10 +17,10 @@ index 8ff4ce297e9e799b14d623b49493c5a4638153fc..a0ee26744d27b75d1a979b565cfe9698
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Explosion.java b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
index ac98c757f9ee39c9cf6f08f5484eb4cb2d9686b1..6f805008df17b66cdb9f49dd9fb9cba582767348 100644
|
||||
index d7278a4f2a186532a9b4a57af8dad47b86660068..60267afc1d0ca0ed2daeff27c804e544f7704700 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Explosion.java
|
||||
@@ -785,6 +785,7 @@ public class Explosion {
|
||||
@@ -786,6 +786,7 @@ public class Explosion {
|
||||
// Paper end - knockback events
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable left shooting and adjusting limits
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 33ba8ba3168425268825c24f0d9b7c9778b5b292..6755bd2073f5ad876470906d63cdbac2fbdd1f3a 100644
|
||||
index 2e902a96d335abe849a2519fdc94844346046dc3..1912b9b1410073711ca85ed1703886a2d0e72f2b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -632,6 +632,24 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -33,7 +33,7 @@ index 33ba8ba3168425268825c24f0d9b7c9778b5b292..6755bd2073f5ad876470906d63cdbac2
|
||||
|
||||
public Entity(EntityType<?> type, Level world) {
|
||||
this.id = Entity.ENTITY_COUNTER.incrementAndGet();
|
||||
@@ -1664,6 +1682,25 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -1666,6 +1684,25 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
boolean xSmaller = this.physics == null || this.physics.afterOrEqual(1_14_0) ? Math.abs(x) < Math.abs(z)
|
||||
: this.physics.isLegacy() && Math.abs(x) > Math.abs(z);
|
||||
// Sakura end - physics version api
|
||||
|
||||
Reference in New Issue
Block a user