Class ExistingFileHelper


  • public class ExistingFileHelper
    extends java.lang.Object
    Enables data providers to check if other data files currently exist. The instance provided in the GatherDataEvent utilizes the standard resources (via VanillaPack), forge's resources, as well as any extra resource packs passed in via the --existing argument, or mod resources via the --existing-mod argument.
    • Constructor Detail

      • ExistingFileHelper

        @Deprecated
        public ExistingFileHelper​(java.util.Collection<java.nio.file.Path> existingPacks,
                                  boolean enable)
        Deprecated.
      • ExistingFileHelper

        @Deprecated
        public ExistingFileHelper​(java.util.Collection<java.nio.file.Path> existingPacks,
                                  java.util.Set<java.lang.String> existingMods,
                                  boolean enable)
        Deprecated.
        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 -
        existingMods -
        enable -
      • ExistingFileHelper

        public ExistingFileHelper​(java.util.Collection<java.nio.file.Path> existingPacks,
                                  java.util.Set<java.lang.String> existingMods,
                                  boolean enable,
                                  @Nullable
                                  java.lang.String assetIndex,
                                  @Nullable
                                  java.io.File assetsDir)
    • Method Detail

      • exists

        public boolean exists​(ResourceLocation loc,
                              ResourcePackType 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​(ResourceLocation loc,
                              ResourcePackType packType,
                              java.lang.String pathSuffix,
                              java.lang.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​(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 act 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​(ResourceLocation loc,
                                   ResourcePackType packType,
                                   java.lang.String pathSuffix,
                                   java.lang.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 act 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 IResource getResource​(ResourceLocation loc,
                                     ResourcePackType packType,
                                     java.lang.String pathSuffix,
                                     java.lang.String pathPrefix)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • isEnabled

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