VibrationParticleOption.java

net.minecraft.core.particles.VibrationParticleOption

信息

  • 全限定名:net.minecraft.core.particles.VibrationParticleOption
  • 类型:public class
  • 包:net.minecraft.core.particles
  • 源码路径:src/main/java/net/minecraft/core/particles/VibrationParticleOption.java
  • 起始行号:L13
  • 实现:ParticleOptions
  • 职责:

    TODO

字段/常量

  • SAFE_POSITION_SOURCE_CODEC

    • 类型: Codec<PositionSource>
    • 修饰符: private static final
    • 源码定位: L14
    • 说明:

      TODO

  • CODEC

    • 类型: MapCodec<VibrationParticleOption>
    • 修饰符: public static final
    • 源码定位: L16
    • 说明:

      TODO

  • STREAM_CODEC

    • 类型: StreamCodec<RegistryFriendlyByteBuf,VibrationParticleOption>
    • 修饰符: public static final
    • 源码定位: L23
    • 说明:

      TODO

  • destination

    • 类型: PositionSource
    • 修饰符: private final
    • 源码定位: L30
    • 说明:

      TODO

  • arrivalInTicks

    • 类型: int
    • 修饰符: private final
    • 源码定位: L31
    • 说明:

      TODO

内部类/嵌套类型

构造器

public VibrationParticleOption(PositionSource destination, int arrivalInTicks) @ L33

  • 构造器名:VibrationParticleOption
  • 源码定位:L33
  • 修饰符:public

参数:

  • destination: PositionSource
  • arrivalInTicks: int

说明:

TODO

方法

下面的方法块按源码顺序生成。

public ParticleType<VibrationParticleOption> getType() @ L38

  • 方法名:getType
  • 源码定位:L38
  • 返回类型:ParticleType
  • 修饰符:public

参数:

说明:

TODO

public PositionSource getDestination() @ L43

  • 方法名:getDestination
  • 源码定位:L43
  • 返回类型:PositionSource
  • 修饰符:public

参数:

说明:

TODO

public int getArrivalInTicks() @ L47

  • 方法名:getArrivalInTicks
  • 源码定位:L47
  • 返回类型:int
  • 修饰符:public

参数:

说明:

TODO

代码

public class VibrationParticleOption implements ParticleOptions {
    private static final Codec<PositionSource> SAFE_POSITION_SOURCE_CODEC = PositionSource.CODEC
        .validate(e -> e instanceof EntityPositionSource ? DataResult.error(() -> "Entity position sources are not allowed") : DataResult.success(e));
    public static final MapCodec<VibrationParticleOption> CODEC = RecordCodecBuilder.mapCodec(
        i -> i.group(
                SAFE_POSITION_SOURCE_CODEC.fieldOf("destination").forGetter(VibrationParticleOption::getDestination),
                Codec.INT.fieldOf("arrival_in_ticks").forGetter(VibrationParticleOption::getArrivalInTicks)
            )
            .apply(i, VibrationParticleOption::new)
    );
    public static final StreamCodec<RegistryFriendlyByteBuf, VibrationParticleOption> STREAM_CODEC = StreamCodec.composite(
        PositionSource.STREAM_CODEC,
        VibrationParticleOption::getDestination,
        ByteBufCodecs.VAR_INT,
        VibrationParticleOption::getArrivalInTicks,
        VibrationParticleOption::new
    );
    private final PositionSource destination;
    private final int arrivalInTicks;
 
    public VibrationParticleOption(PositionSource destination, int arrivalInTicks) {
        this.destination = destination;
        this.arrivalInTicks = arrivalInTicks;
    }
 
    @Override
    public ParticleType<VibrationParticleOption> getType() {
        return ParticleTypes.VIBRATION;
    }
 
    public PositionSource getDestination() {
        return this.destination;
    }
 
    public int getArrivalInTicks() {
        return this.arrivalInTicks;
    }
}

引用的其他类