BubbleColumnAmbientSoundHandler.java
net.minecraft.client.resources.sounds.BubbleColumnAmbientSoundHandler
信息
- 全限定名:net.minecraft.client.resources.sounds.BubbleColumnAmbientSoundHandler
- 类型:public class
- 包:net.minecraft.client.resources.sounds
- 源码路径:src/main/java/net/minecraft/client/resources/sounds/BubbleColumnAmbientSoundHandler.java
- 起始行号:L13
- 实现:AmbientSoundHandler
- 职责:
TODO
字段/常量
-
player- 类型:
LocalPlayer - 修饰符:
private final - 源码定位:
L14 - 说明:
TODO
- 类型:
-
wasInBubbleColumn- 类型:
boolean - 修饰符:
private - 源码定位:
L15 - 说明:
TODO
- 类型:
-
firstTick- 类型:
boolean - 修饰符:
private - 源码定位:
L16 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public BubbleColumnAmbientSoundHandler(LocalPlayer player) @ L18
- 构造器名:BubbleColumnAmbientSoundHandler
- 源码定位:L18
- 修饰符:public
参数:
- player: LocalPlayer
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void tick() @ L22
- 方法名:tick
- 源码定位:L22
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class BubbleColumnAmbientSoundHandler implements AmbientSoundHandler {
private final LocalPlayer player;
private boolean wasInBubbleColumn;
private boolean firstTick = true;
public BubbleColumnAmbientSoundHandler(LocalPlayer player) {
this.player = player;
}
@Override
public void tick() {
Level level = this.player.level();
BlockState state = level.getBlockStatesIfLoaded(this.player.getBoundingBox().inflate(0.0, -0.4F, 0.0).deflate(1.0E-6))
.filter(s -> s.is(Blocks.BUBBLE_COLUMN))
.findFirst()
.orElse(null);
if (state != null) {
if (!this.wasInBubbleColumn && !this.firstTick && state.is(Blocks.BUBBLE_COLUMN) && !this.player.isSpectator()) {
boolean dragDown = state.getValue(BubbleColumnBlock.DRAG_DOWN);
if (dragDown) {
this.player.playSound(SoundEvents.BUBBLE_COLUMN_WHIRLPOOL_INSIDE, 1.0F, 1.0F);
} else {
this.player.playSound(SoundEvents.BUBBLE_COLUMN_UPWARDS_INSIDE, 1.0F, 1.0F);
}
}
this.wasInBubbleColumn = true;
} else {
this.wasInBubbleColumn = false;
}
this.firstTick = false;
}
}引用的其他类
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
实现
- 引用位置: