Class ExistingFileHelper

java.lang.Object
io.github.vampirestudios.vampirelib.api.datagen.ExistingFileHelper

public class ExistingFileHelper extends Object
Enables data providers to check if other data files currently exist.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
     
    static class 
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    ExistingFileHelper(Collection<Path> existingPacks, Set<String> existingMods, boolean enable, @Nullable String assetIndex, @Nullable File assetsDir)
    Create a new helper.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    exists(net.minecraft.resources.ResourceLocation loc, ExistingFileHelper.IResourceType type)
    Check if a given resource exists in the known resource packs.
    boolean
    exists(net.minecraft.resources.ResourceLocation loc, net.minecraft.server.packs.PackType packType)
    Check if a given resource exists in the known resource packs.
    boolean
    exists(net.minecraft.resources.ResourceLocation loc, net.minecraft.server.packs.PackType packType, String pathSuffix, String pathPrefix)
    Check if a given resource exists in the known resource packs.
    net.minecraft.server.packs.resources.Resource
    getResource(net.minecraft.resources.ResourceLocation loc, net.minecraft.server.packs.PackType packType)
     
    net.minecraft.server.packs.resources.Resource
    getResource(net.minecraft.resources.ResourceLocation loc, net.minecraft.server.packs.PackType packType, String pathSuffix, String pathPrefix)
     
    boolean
     
    void
    trackGenerated(net.minecraft.resources.ResourceLocation loc, ExistingFileHelper.IResourceType type)
    Track the existence of a generated file.
    void
    trackGenerated(net.minecraft.resources.ResourceLocation loc, net.minecraft.server.packs.PackType packType, String pathSuffix, String pathPrefix)
    Track the existence of a generated file.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ExistingFileHelper

      public ExistingFileHelper(Collection<Path> existingPacks, Set<String> existingMods, boolean enable, @Nullable @Nullable String assetIndex, @Nullable @Nullable File assetsDir)
      Create a new helper. This should probably NOT be used by mods, as the instance provided by forge is designed to be a central instance that tracks existence of generated data.

      Only create a new helper if you intentionally want to ignore the existence of other generated files.

  • Method Details

    • exists

      public boolean exists(net.minecraft.resources.ResourceLocation loc, net.minecraft.server.packs.PackType packType)
      Check if a given resource exists in the known resource packs.
      Parameters:
      loc - the complete location of the resource, e.g. "minecraft:textures/block/stone.png"
      packType - the type of resources to check
      Returns:
      true if the resource exists in any pack, false otherwise
    • exists

      public boolean exists(net.minecraft.resources.ResourceLocation loc, ExistingFileHelper.IResourceType type)
      Check if a given resource exists in the known resource packs. This is a convenience method to avoid repeating type/prefix/suffix and instead use the common definitions in ExistingFileHelper.ResourceType, or a custom ExistingFileHelper.IResourceType definition.
      Parameters:
      loc - the base location of the resource, e.g. "minecraft:block/stone"
      type - a ExistingFileHelper.IResourceType describing how to form the path to the resource
      Returns:
      true if the resource exists in any pack, false otherwise
    • exists

      public boolean exists(net.minecraft.resources.ResourceLocation loc, net.minecraft.server.packs.PackType packType, String pathSuffix, String pathPrefix)
      Check if a given resource exists in the known resource packs.
      Parameters:
      loc - the base location of the resource, e.g. "minecraft:block/stone"
      packType - the type of resources to check
      pathSuffix - a string to append after the path, e.g. ".json"
      pathPrefix - a string to append before the path, before a slash, e.g. "models"
      Returns:
      true if the resource exists in any pack, false otherwise
    • trackGenerated

      public void trackGenerated(net.minecraft.resources.ResourceLocation loc, ExistingFileHelper.IResourceType type)
      Track the existence of a generated file. This is a convenience method to avoid repeating type/prefix/suffix and instead use the common definitions in ExistingFileHelper.ResourceType, or a custom ExistingFileHelper.IResourceType definition.

      This should be called by data providers immediately when a new data object is created, i.e. not during run but instead when the "builder" (or whatever intermediate object) is created, such as a ModelBuilder.

      This represents a promise to generate the file later, since other datagen may rely on this file existing.

      Parameters:
      loc - the base location of the resource, e.g. "minecraft:block/stone"
      type - a ExistingFileHelper.IResourceType describing how to form the path to the resource
    • trackGenerated

      public void trackGenerated(net.minecraft.resources.ResourceLocation loc, net.minecraft.server.packs.PackType packType, String pathSuffix, String pathPrefix)
      Track the existence of a generated file.

      This should be called by data providers immediately when a new data object is created, i.e. not during run but instead when the "builder" (or whatever intermediate object) is created, such as a ModelBuilder.

      This represents a promise to generate the file later, since other datagen may rely on this file existing.

      Parameters:
      loc - the base location of the resource, e.g. "minecraft:block/stone"
      packType - the type of resources to check
      pathSuffix - a string to append after the path, e.g. ".json"
      pathPrefix - a string to append before the path, before a slash, e.g. "models"
    • getResource

      public net.minecraft.server.packs.resources.Resource getResource(net.minecraft.resources.ResourceLocation loc, net.minecraft.server.packs.PackType packType, String pathSuffix, String pathPrefix) throws IOException
      Throws:
      IOException
    • getResource

      public net.minecraft.server.packs.resources.Resource getResource(net.minecraft.resources.ResourceLocation loc, net.minecraft.server.packs.PackType packType) throws IOException
      Throws:
      IOException
    • isEnabled

      public boolean isEnabled()
      Returns:
      true if validation is enabled, false otherwise