Clean repo for open source release
Remove build artifacts, dev tool configs, unused dependencies, and third-party source dumps. Add proper README, update .gitignore, clean up Makefile.
This commit is contained in:
118
src/main/java/com/tiedup/remake/client/MuffledSoundInstance.java
Normal file
118
src/main/java/com/tiedup/remake/client/MuffledSoundInstance.java
Normal file
@@ -0,0 +1,118 @@
|
||||
package com.tiedup.remake.client;
|
||||
|
||||
import net.minecraft.client.resources.sounds.Sound;
|
||||
import net.minecraft.client.resources.sounds.SoundInstance;
|
||||
import net.minecraft.client.resources.sounds.TickableSoundInstance;
|
||||
import net.minecraft.client.sounds.SoundManager;
|
||||
import net.minecraft.client.sounds.WeighedSoundEvents;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
/**
|
||||
* Wrapper around a SoundInstance that applies volume and pitch modifiers.
|
||||
* Used for the earplugs muffling effect.
|
||||
*
|
||||
* This delegates all methods to the wrapped sound, but overrides
|
||||
* getVolume() and getPitch() to apply modifiers.
|
||||
*/
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public class MuffledSoundInstance implements SoundInstance {
|
||||
|
||||
private final SoundInstance wrapped;
|
||||
private final float volumeMultiplier;
|
||||
private final float pitchMultiplier;
|
||||
|
||||
public MuffledSoundInstance(
|
||||
SoundInstance wrapped,
|
||||
float volumeMultiplier,
|
||||
float pitchMultiplier
|
||||
) {
|
||||
this.wrapped = wrapped;
|
||||
this.volumeMultiplier = volumeMultiplier;
|
||||
this.pitchMultiplier = pitchMultiplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getLocation() {
|
||||
return wrapped.getLocation();
|
||||
}
|
||||
|
||||
@Override
|
||||
public WeighedSoundEvents resolve(SoundManager soundManager) {
|
||||
return wrapped.resolve(soundManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sound getSound() {
|
||||
return wrapped.getSound();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SoundSource getSource() {
|
||||
return wrapped.getSource();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLooping() {
|
||||
return wrapped.isLooping();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRelative() {
|
||||
return wrapped.isRelative();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDelay() {
|
||||
return wrapped.getDelay();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getVolume() {
|
||||
// Apply muffling to volume
|
||||
return wrapped.getVolume() * volumeMultiplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getPitch() {
|
||||
// Apply muffling to pitch
|
||||
return wrapped.getPitch() * pitchMultiplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getX() {
|
||||
return wrapped.getX();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getY() {
|
||||
return wrapped.getY();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getZ() {
|
||||
return wrapped.getZ();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Attenuation getAttenuation() {
|
||||
return wrapped.getAttenuation();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if this is wrapping a tickable sound.
|
||||
* Used to handle special cases.
|
||||
*/
|
||||
public boolean isTickable() {
|
||||
return wrapped instanceof TickableSoundInstance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the wrapped sound instance.
|
||||
*/
|
||||
public SoundInstance getWrapped() {
|
||||
return wrapped;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user