mirror of
https://github.com/PaperMC/Paper.git
synced 2024-08-21 11:52:55 +02:00
This patch replaces the vanilla collision code for both block and entity collisions with faster implementations by JellySquid, used originally in her Lithium mod. Optimizes Full Block voxel collisions, and removes streams from Entity collisions Original code by JellySquid, licensed under GNU Lesser General Public License v3.0 you can find the original code on https://github.com/jellysquid3/lithium-fabric/tree/1.15.x/fabric (Yarn mappings) Ported by Co-authored-by: Zoutelande <54509836+Zoutelande@users.noreply.github.com> Touched up by Aikar to keep previous paper optimizations
114 lines
4.9 KiB
Diff
114 lines
4.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: simpleauthority <jacob@algorithmjunkie.com>
|
|
Date: Tue, 28 May 2019 03:48:51 -0700
|
|
Subject: [PATCH] Implement CraftBlockSoundGroup
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/block/CraftBlockSoundGroup.java b/src/main/java/com/destroystokyo/paper/block/CraftBlockSoundGroup.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..99f99330d01fc61ce8ede9f225b0c42bd8f9ded1
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/block/CraftBlockSoundGroup.java
|
|
@@ -0,0 +1,38 @@
|
|
+package com.destroystokyo.paper.block;
|
|
+
|
|
+import net.minecraft.server.SoundEffectType;
|
|
+import org.bukkit.Sound;
|
|
+import org.bukkit.craftbukkit.CraftSound;
|
|
+
|
|
+public class CraftBlockSoundGroup implements BlockSoundGroup {
|
|
+ private final SoundEffectType soundEffectType;
|
|
+
|
|
+ public CraftBlockSoundGroup(SoundEffectType soundEffectType) {
|
|
+ this.soundEffectType = soundEffectType;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public Sound getBreakSound() {
|
|
+ return CraftSound.getSoundByEffect(soundEffectType.getBreakSound());
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public Sound getStepSound() {
|
|
+ return CraftSound.getSoundByEffect(soundEffectType.getStepSound());
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public Sound getPlaceSound() {
|
|
+ return CraftSound.getSoundByEffect(soundEffectType.getPlaceSound());
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public Sound getHitSound() {
|
|
+ return CraftSound.getSoundByEffect(soundEffectType.getHitSound());
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public Sound getFallSound() {
|
|
+ return CraftSound.getSoundByEffect(soundEffectType.getFallSound());
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java
|
|
index cca2bf1045c1305a9defa5241909b50711b85d4c..321eae23c575528788b1b575f17593580d6ba737 100644
|
|
--- a/src/main/java/net/minecraft/server/IBlockData.java
|
|
+++ b/src/main/java/net/minecraft/server/IBlockData.java
|
|
@@ -276,6 +276,7 @@ public class IBlockData extends BlockDataAbstract<Block, IBlockData> implements
|
|
return this.getBlock().isTicking(this);
|
|
}
|
|
|
|
+ public final SoundEffectType getStepSound() { return this.r(); } // Paper - OBFHELPER
|
|
public SoundEffectType r() {
|
|
return this.getBlock().getStepSound(this);
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/SoundEffectType.java b/src/main/java/net/minecraft/server/SoundEffectType.java
|
|
index b774d2d8d903acc1ce4c5bd9240b2e96779e1d53..0184bf3fc9e206cec003c5a325d5ee21f6b59dda 100644
|
|
--- a/src/main/java/net/minecraft/server/SoundEffectType.java
|
|
+++ b/src/main/java/net/minecraft/server/SoundEffectType.java
|
|
@@ -27,10 +27,10 @@ public class SoundEffectType {
|
|
public static final SoundEffectType w = new SoundEffectType(1.0F, 1.0F, SoundEffects.BLOCK_LANTERN_BREAK, SoundEffects.BLOCK_LANTERN_STEP, SoundEffects.BLOCK_LANTERN_PLACE, SoundEffects.BLOCK_LANTERN_HIT, SoundEffects.BLOCK_LANTERN_FALL);
|
|
public final float x;
|
|
public final float y;
|
|
- private final SoundEffect z;
|
|
+ private final SoundEffect z; public final SoundEffect getBreakSound() { return this.z; } // Paper - OBFHELPER
|
|
private final SoundEffect A;
|
|
private final SoundEffect B;
|
|
- private final SoundEffect C;
|
|
+ private final SoundEffect C; public final SoundEffect getHitSound() { return this.B; } // Paper - OBFHELPER
|
|
private final SoundEffect D;
|
|
|
|
public SoundEffectType(float f, float f1, SoundEffect soundeffect, SoundEffect soundeffect1, SoundEffect soundeffect2, SoundEffect soundeffect3, SoundEffect soundeffect4) {
|
|
@@ -51,14 +51,17 @@ public class SoundEffectType {
|
|
return this.y;
|
|
}
|
|
|
|
+ public final SoundEffect getStepSound() { return this.d(); } // Paper - OBFHELPER
|
|
public SoundEffect d() {
|
|
return this.A;
|
|
}
|
|
|
|
+ public final SoundEffect getPlaceSound() { return this.e(); } // Paper - OBFHELPER
|
|
public SoundEffect e() {
|
|
return this.B;
|
|
}
|
|
|
|
+ public final SoundEffect getFallSound() { return this.g(); } // Paper - OBFHELPER
|
|
public SoundEffect g() {
|
|
return this.D;
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
index ef81c1d3a9679b0e65b453431de3cd0216f05bb6..db446c25c41ec3122155510f9d96dfdeee626896 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
@@ -701,4 +701,11 @@ public class CraftBlock implements Block {
|
|
AxisAlignedBB aabb = shape.getBoundingBox();
|
|
return new BoundingBox(getX() + aabb.minX, getY() + aabb.minY, getZ() + aabb.minZ, getX() + aabb.maxX, getY() + aabb.maxY, getZ() + aabb.maxZ);
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public com.destroystokyo.paper.block.BlockSoundGroup getSoundGroup() {
|
|
+ return new com.destroystokyo.paper.block.CraftBlockSoundGroup(getNMSBlock().getBlockData().getStepSound());
|
|
+ }
|
|
+ // Paper end
|
|
}
|