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. The instance provided in the utilizes the standard resources (via VanillaPackResources), forge's resources, as well as any extra resource packs passed in via the --existing argument, or mod resources via the --existing-mod argument.
  • 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.

      Parameters:
      existingPacks - a collection of paths to existing packs
      existingMods - a set of mod IDs for existing mods
      enable - true if validation is enabled
      assetIndex - the identifier for the asset index, generally Minecraft's current major version
      assetsDir - the directory in which to find vanilla assets and indexes
  • 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.

      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.

      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