parent
0ad12eeab6
commit
4078a2dcba
|
@ -8,7 +8,6 @@
|
|||
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.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 @@ synchronized boolean pushBuffer( LuaTable<?, ?> table, int size, @Nonnull Option
|
|||
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.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 String getType()
|
|||
@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 final boolean playNote( ILuaContext context, String instrumentA, Optional
|
|||
@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 void detach( @Nonnull IComputerAccess computer )
|
|||
}
|
||||
}
|
||||
|
||||
static double clampVolume( double volume )
|
||||
{
|
||||
return MathHelper.clamp( volume, 0, 3 );
|
||||
}
|
||||
|
||||
private static final class PendingSound
|
||||
{
|
||||
final ResourceLocation location;
|
||||
|
|
Loading…
Reference in New Issue