Resource.java

net.minecraft.server.packs.resources.Resource

信息

  • 全限定名:net.minecraft.server.packs.resources.Resource
  • 类型:public class
  • 包:net.minecraft.server.packs.resources
  • 源码路径:src/main/java/net/minecraft/server/packs/resources/Resource.java
  • 起始行号:L13
  • 职责:

    TODO

字段/常量

  • source

    • 类型: PackResources
    • 修饰符: private final
    • 源码定位: L14
    • 说明:

      TODO

  • streamSupplier

    • 类型: IoSupplier<InputStream>
    • 修饰符: private final
    • 源码定位: L15
    • 说明:

      TODO

  • metadataSupplier

    • 类型: IoSupplier<ResourceMetadata>
    • 修饰符: private final
    • 源码定位: L16
    • 说明:

      TODO

  • cachedMetadata

    • 类型: ResourceMetadata
    • 修饰符: private
    • 源码定位: L17
    • 说明:

      TODO

内部类/嵌套类型

构造器

public Resource(PackResources source, IoSupplier<InputStream> streamSupplier, IoSupplier<ResourceMetadata> metadataSupplier) @ L19

  • 构造器名:Resource
  • 源码定位:L19
  • 修饰符:public

参数:

  • source: PackResources
  • streamSupplier: IoSupplier
  • metadataSupplier: IoSupplier

说明:

TODO

public Resource(PackResources source, IoSupplier<InputStream> streamSupplier) @ L25

  • 构造器名:Resource
  • 源码定位:L25
  • 修饰符:public

参数:

  • source: PackResources
  • streamSupplier: IoSupplier

说明:

TODO

方法

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

public PackResources source() @ L32

  • 方法名:source
  • 源码定位:L32
  • 返回类型:PackResources
  • 修饰符:public

参数:

说明:

TODO

public String sourcePackId() @ L36

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

参数:

说明:

TODO

public Optional<KnownPack> knownPackInfo() @ L40

  • 方法名:knownPackInfo
  • 源码定位:L40
  • 返回类型:Optional
  • 修饰符:public

参数:

说明:

TODO

public InputStream open() @ L44

  • 方法名:open
  • 源码定位:L44
  • 返回类型:InputStream
  • 修饰符:public

参数:

说明:

TODO

public BufferedReader openAsReader() @ L48

  • 方法名:openAsReader
  • 源码定位:L48
  • 返回类型:BufferedReader
  • 修饰符:public

参数:

说明:

TODO

public ResourceMetadata metadata() @ L52

  • 方法名:metadata
  • 源码定位:L52
  • 返回类型:ResourceMetadata
  • 修饰符:public

参数:

说明:

TODO

代码

public class Resource {
    private final PackResources source;
    private final IoSupplier<InputStream> streamSupplier;
    private final IoSupplier<ResourceMetadata> metadataSupplier;
    private @Nullable ResourceMetadata cachedMetadata;
 
    public Resource(PackResources source, IoSupplier<InputStream> streamSupplier, IoSupplier<ResourceMetadata> metadataSupplier) {
        this.source = source;
        this.streamSupplier = streamSupplier;
        this.metadataSupplier = metadataSupplier;
    }
 
    public Resource(PackResources source, IoSupplier<InputStream> streamSupplier) {
        this.source = source;
        this.streamSupplier = streamSupplier;
        this.metadataSupplier = ResourceMetadata.EMPTY_SUPPLIER;
        this.cachedMetadata = ResourceMetadata.EMPTY;
    }
 
    public PackResources source() {
        return this.source;
    }
 
    public String sourcePackId() {
        return this.source.packId();
    }
 
    public Optional<KnownPack> knownPackInfo() {
        return this.source.knownPackInfo();
    }
 
    public InputStream open() throws IOException {
        return this.streamSupplier.get();
    }
 
    public BufferedReader openAsReader() throws IOException {
        return new BufferedReader(new InputStreamReader(this.open(), StandardCharsets.UTF_8));
    }
 
    public ResourceMetadata metadata() throws IOException {
        if (this.cachedMetadata == null) {
            this.cachedMetadata = this.metadataSupplier.get();
        }
 
        return this.cachedMetadata;
    }
}

引用的其他类