GlobalPos.java

net.minecraft.core.GlobalPos

信息

  • 全限定名:net.minecraft.core.GlobalPos
  • 类型:public record
  • 包:net.minecraft.core
  • 源码路径:src/main/java/net/minecraft/core/GlobalPos.java
  • 起始行号:L12
  • 职责:

    TODO

字段/常量

  • MAP_CODEC

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

      TODO

  • CODEC

    • 类型: Codec<GlobalPos>
    • 修饰符: public static final
    • 源码定位: L17
    • 说明:

      TODO

  • STREAM_CODEC

    • 类型: StreamCodec<ByteBuf,GlobalPos>
    • 修饰符: public static final
    • 源码定位: L18
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

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

public static GlobalPos of(ResourceKey<Level> dimension, BlockPos pos) @ L22

  • 方法名:of
  • 源码定位:L22
  • 返回类型:GlobalPos
  • 修饰符:public static

参数:

  • dimension: ResourceKey
  • pos: BlockPos

说明:

TODO

public String toString() @ L26

  • 方法名:toString
  • 源码定位:L26
  • 返回类型:String
  • 修饰符:public

参数:

说明:

TODO

public boolean isCloseEnough(ResourceKey<Level> dimension, BlockPos pos, int maxDistance) @ L31

  • 方法名:isCloseEnough
  • 源码定位:L31
  • 返回类型:boolean
  • 修饰符:public

参数:

  • dimension: ResourceKey
  • pos: BlockPos
  • maxDistance: int

说明:

TODO

代码

public record GlobalPos(ResourceKey<Level> dimension, BlockPos pos) {
    public static final MapCodec<GlobalPos> MAP_CODEC = RecordCodecBuilder.mapCodec(
        i -> i.group(Level.RESOURCE_KEY_CODEC.fieldOf("dimension").forGetter(GlobalPos::dimension), BlockPos.CODEC.fieldOf("pos").forGetter(GlobalPos::pos))
            .apply(i, GlobalPos::of)
    );
    public static final Codec<GlobalPos> CODEC = MAP_CODEC.codec();
    public static final StreamCodec<ByteBuf, GlobalPos> STREAM_CODEC = StreamCodec.composite(
        ResourceKey.streamCodec(Registries.DIMENSION), GlobalPos::dimension, BlockPos.STREAM_CODEC, GlobalPos::pos, GlobalPos::of
    );
 
    public static GlobalPos of(ResourceKey<Level> dimension, BlockPos pos) {
        return new GlobalPos(dimension, pos);
    }
 
    @Override
    public String toString() {
        return this.dimension + " " + this.pos;
    }
 
    public boolean isCloseEnough(ResourceKey<Level> dimension, BlockPos pos, int maxDistance) {
        return this.dimension.equals(dimension) && this.pos.distChessboard(pos) <= maxDistance;
    }
}

引用的其他类

  • BlockPos

    • 引用位置: 参数
  • StreamCodec

    • 引用位置: 字段/方法调用
    • 关联成员: StreamCodec.composite()
  • ResourceKey

    • 引用位置: 参数/方法调用
    • 关联成员: ResourceKey.streamCodec()
  • Level

    • 引用位置: 参数