Interface IRegistryExtension<T>

Type Parameters:
T - the type of registry entries
All Known Subinterfaces:
DefaultedRegistry<T>, Registry<T>, WritableRegistry<T>
All Known Implementing Classes:
BaseMappedRegistry, DefaultedMappedRegistry, MappedRegistry

public interface IRegistryExtension<T>
An extension for Registry, adding some additional functionality to vanilla registries, such as callbacks and ID limits.
  • Method Details

    • doesSync

      boolean doesSync()
      Returns whether this registry should be synced to clients.
      Returns:
      whether this registry should be synced to clients
    • getMaxId

      int getMaxId()
      Returns the highest id that an entry in this registry is allowed to use. For the size of this registry, see IdMap.size().
      Returns:
      the highest id that an entry in this registry is allowed to use
    • addCallback

      void addCallback(RegistryCallback<T> callback)
      Adds a callback to this registry.

      Depending on the interfaces implemented by the object, the callback will be called when the registry is added to, baked, and/or cleared.

      Parameters:
      callback - the callback to add
    • addCallback

      default <C extends RegistryCallback<T>> void addCallback(Class<C> type, C callback)
      Adds a lambda-implemented callback to this registry.

      The callback will be called when the registry is added to, baked, or cleared. The Class parameter is used to determine the lambda type.

      Parameters:
      type - the type of the callback to add
      callback - the callback to add
    • addAlias

      void addAlias(ResourceLocation from, ResourceLocation to)
      Adds an alias that maps from the name specified by from to the name specified by to.

      Any registry lookups that target the first name will resolve as the second name, if the first name is not present.

      Parameters:
      from - the source registry name to alias from
      to - the target registry name to alias to
    • resolve

      Resolves a registry name of a potential object in this registry. The original name will be returned if it is contained in this registry. If not, the alias map will be checked for entries. Resolving supports alias chains (A -> B -> C) and will terminate when an alias has an entry or the last alias in the chain is reached.
      Parameters:
      name - the input registry name of a potential object in this registry
      Returns:
      the resolved registry name
    • resolve

      ResourceKey<T> resolve(ResourceKey<T> key)
      Resolves a registry key of a potential object in this registry. The original key will be returned if it is contained in this registry. If not, the alias map will be checked for entries. Resolving supports alias chains (A -> B -> C) and will terminate when an alias has an entry or the last alias in the chain is reached.
      Parameters:
      key - the input registry key of a potential object in this registry
      Returns:
      the resolved registry key
    • getId

      int getId(ResourceKey<T> key)
      Gets the integer id linked to the given key. If the key is not present in the registry, the default entry's integer id is returned if the registry is defaulted or -1 if the registry is not defaulted
      Parameters:
      key - the resource key to lookup
      Returns:
      the integer id linked to the given key
    • getId

      int getId(ResourceLocation name)
      Gets the integer id linked to the given name. If the name is not present in the registry, the default entry's integer id is returned if the registry is defaulted or -1 if the registry is not defaulted
      Parameters:
      name - the resource name to lookup
      Returns:
      the integer id linked to the given name
    • containsValue

      boolean containsValue(T value)
      Returns true if this registry contains the value.
      Parameters:
      value - the object whose existence to check for
      Returns:
      true if this registry contains the value
    • getData

      @Nullable <A> A getData(DataMapType<T,A> type, ResourceKey<T> key)
      Returns the data map value attached with the object with the key, or null if there's no attached value.
      Type Parameters:
      A - the data type
      Parameters:
      type - the type of the data map
      key - the object to get the value for
      Returns:
      the data map value attached with the object with the key, or null if there's no attached value
    • getDataMap

      <A> Map<ResourceKey<T>,A> getDataMap(DataMapType<T,A> type)
      Returns the data map of the given type.
      Type Parameters:
      A - the data type
      Returns:
      the data map of the given type