45 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.client.resources.sounds;
 | |
| 
 | |
| import net.fabricmc.api.EnvType;
 | |
| import net.fabricmc.api.Environment;
 | |
| import net.minecraft.sounds.SoundEvents;
 | |
| import net.minecraft.util.Mth;
 | |
| import net.minecraft.world.entity.animal.HappyGhast;
 | |
| import net.minecraft.world.entity.player.Player;
 | |
| 
 | |
| @Environment(EnvType.CLIENT)
 | |
| public class RidingHappyGhastSoundInstance extends AbstractTickableSoundInstance {
 | |
| 	private static final float VOLUME_MIN = 0.0F;
 | |
| 	private static final float VOLUME_MAX = 1.0F;
 | |
| 	private final Player player;
 | |
| 	private final HappyGhast happyGhast;
 | |
| 
 | |
| 	public RidingHappyGhastSoundInstance(Player player, HappyGhast happyGhast) {
 | |
| 		super(SoundEvents.HAPPY_GHAST_RIDING, happyGhast.getSoundSource(), SoundInstance.createUnseededRandom());
 | |
| 		this.player = player;
 | |
| 		this.happyGhast = happyGhast;
 | |
| 		this.attenuation = SoundInstance.Attenuation.NONE;
 | |
| 		this.looping = true;
 | |
| 		this.delay = 0;
 | |
| 		this.volume = 0.0F;
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	public boolean canStartSilent() {
 | |
| 		return true;
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	public void tick() {
 | |
| 		if (!this.happyGhast.isRemoved() && this.player.isPassenger() && this.player.getVehicle() == this.happyGhast) {
 | |
| 			float f = (float)this.happyGhast.getDeltaMovement().length();
 | |
| 			if (f >= 0.01F) {
 | |
| 				this.volume = 5.0F * Mth.clampedLerp(0.0F, 1.0F, f);
 | |
| 			} else {
 | |
| 				this.volume = 0.0F;
 | |
| 			}
 | |
| 		} else {
 | |
| 			this.stop();
 | |
| 		}
 | |
| 	}
 | |
| }
 |