Use player as point of reference for min volume. Fixes BUKKIT-4640

When the minimum volume is being used because the distance is over a
threshold, the unit vector delta should be added to the player's
location, instead of where the command specified location.

This change makes the player's location the point of reference for
playing sounds when distance to volume scale is lower than minimum
specified volume.
This commit is contained in:
Wesley Wolfe
2013-08-03 18:26:31 -05:00
parent bf832ee9d6
commit 2ccd6714a1

View File

@@ -74,10 +74,10 @@ public class PlaySoundCommand extends VanillaCommand {
final double delta = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ) / 2.0D;
if (delta > 0.0D) {
soundLocation.add(deltaX / delta, deltaY / delta, deltaZ / delta);
location.add(deltaX / delta, deltaY / delta, deltaZ / delta);
}
player.playSound(soundLocation, soundArg, (float) minimumVolume, (float) pitch);
player.playSound(location, soundArg, (float) minimumVolume, (float) pitch);
} else {
player.playSound(soundLocation, soundArg, (float) volume, (float) pitch);
}