mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-07-04 11:02:54 +00:00
Clamp speaker volume again
Looks like this was removed in b048b6666d652dafc4614b086782f956de58d377.
This commit is contained in:
parent
0ad12eeab6
commit
4078a2dcba
@ -8,7 +8,6 @@ package dan200.computercraft.shared.peripheral.speaker;
|
||||
import dan200.computercraft.api.lua.LuaException;
|
||||
import dan200.computercraft.api.lua.LuaTable;
|
||||
import dan200.computercraft.shared.util.PauseAwareTimer;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.nio.ByteBuffer;
|
||||
@ -16,6 +15,7 @@ import java.util.Optional;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static dan200.computercraft.shared.peripheral.speaker.SpeakerPeripheral.SAMPLE_RATE;
|
||||
import static dan200.computercraft.shared.peripheral.speaker.SpeakerPeripheral.clampVolume;
|
||||
|
||||
/**
|
||||
* Internal state of the DFPWM decoder and the state of playback.
|
||||
@ -87,7 +87,7 @@ class DfpwmState
|
||||
buffer.flip();
|
||||
|
||||
pendingAudio = buffer;
|
||||
pendingVolume = MathHelper.clamp( volume.orElse( (double) pendingVolume ).floatValue(), 0.0f, 3.0f );
|
||||
pendingVolume = (float) clampVolume( volume.orElse( (double) pendingVolume ) );
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@ import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.ResourceLocationException;
|
||||
import net.minecraft.util.SoundCategory;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.vector.Vector3d;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@ -222,7 +223,7 @@ public abstract class SpeakerPeripheral implements IPeripheral
|
||||
@LuaFunction
|
||||
public final boolean playNote( ILuaContext context, String instrumentA, Optional<Double> volumeA, Optional<Double> pitchA ) throws LuaException
|
||||
{
|
||||
float volume = (float) checkFinite( 1, volumeA.orElse( 1.0 ) );
|
||||
float volume = (float) clampVolume( checkFinite( 1, volumeA.orElse( 1.0 ) ) );
|
||||
float pitch = (float) checkFinite( 2, pitchA.orElse( 1.0 ) );
|
||||
|
||||
NoteBlockInstrument instrument = null;
|
||||
@ -271,7 +272,7 @@ public abstract class SpeakerPeripheral implements IPeripheral
|
||||
@LuaFunction
|
||||
public final boolean playSound( ILuaContext context, String name, Optional<Double> volumeA, Optional<Double> pitchA ) throws LuaException
|
||||
{
|
||||
float volume = (float) checkFinite( 1, volumeA.orElse( 1.0 ) );
|
||||
float volume = (float) clampVolume( checkFinite( 1, volumeA.orElse( 1.0 ) ) );
|
||||
float pitch = (float) checkFinite( 2, pitchA.orElse( 1.0 ) );
|
||||
|
||||
ResourceLocation identifier;
|
||||
@ -396,6 +397,11 @@ public abstract class SpeakerPeripheral implements IPeripheral
|
||||
}
|
||||
}
|
||||
|
||||
static double clampVolume( double volume )
|
||||
{
|
||||
return MathHelper.clamp( volume, 0, 3 );
|
||||
}
|
||||
|
||||
private static final class PendingSound
|
||||
{
|
||||
final ResourceLocation location;
|
||||
|
Loading…
x
Reference in New Issue
Block a user