Interface ModelVariantProvider

Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface ModelVariantProvider
Interface for model variant providers.

Model variant providers hook the resolution of ModelIdentifiers. In vanilla, this is the part where a "minecraft:stone#normal" identifier triggers the loading of a "minecraft:models/stone" model (ModelResourceProvider handles the later step).

The most common use of this is to cooperate with a ModelAppender, but it can also allow you to add your own block- or item-state formats. To trigger the loading of another model, use the passed ModelProviderContext.

As every model loading is instantiated with a new provider, it is safe (and recommended!) to cache information.

Keep in mind that only *one* ModelVariantProvider may respond to a given model at any time.