Class RegistryElementCodec<E>

java.lang.Object
net.minecraft.util.dynamic.RegistryElementCodec<E>
Type Parameters:
E - the element type
All Implemented Interfaces:
com.mojang.serialization.Codec<Supplier<E>>, com.mojang.serialization.Decoder<Supplier<E>>, com.mojang.serialization.Encoder<Supplier<E>>

public final class RegistryElementCodec<E>
extends Object
implements com.mojang.serialization.Codec<Supplier<E>>
A codec for registry elements. Will prefer to encode/decode objects as identifiers if they exist in a registry and falls back to full encoding/ decoding behavior if it cannot do so.

The codec's saves and loads Supplier<E> in order to avoid early loading from registry before a registry is fully loaded from a codec.

See Also:
RegistryCodec, RegistryReadingOps, RegistryOps
Mappings:
Namespace Name
official vw
intermediary net/minecraft/class_5381
named net/minecraft/util/dynamic/RegistryElementCodec
  • Nested Class Summary

    Nested classes/interfaces inherited from interface com.mojang.serialization.Codec

    com.mojang.serialization.Codec.ResultFunction<A extends Object>

    Nested classes/interfaces inherited from interface com.mojang.serialization.Decoder

    com.mojang.serialization.Decoder.Boxed<A extends Object>, com.mojang.serialization.Decoder.Simple<A extends Object>, com.mojang.serialization.Decoder.Terminal<A extends Object>
  • Field Summary

    Fields
    Modifier and Type Field Description
    private boolean allowInlineDefinitions  
    private com.mojang.serialization.Codec<E> elementCodec  
    private RegistryKey<? extends Registry<E>> registryRef  

    Fields inherited from interface com.mojang.serialization.Codec

    BOOL, BYTE, BYTE_BUFFER, DOUBLE, EMPTY, FLOAT, INT, INT_STREAM, LONG, LONG_STREAM, PASSTHROUGH, SHORT, STRING
  • Constructor Summary

    Constructors
    Modifier Constructor Description
    private RegistryElementCodec​(RegistryKey<? extends Registry<E>> registryRef, com.mojang.serialization.Codec<E> elementCodec, boolean allowInlineDefinitions)  
  • Method Summary

    Modifier and Type Method Description
    <T> com.mojang.serialization.DataResult<com.mojang.datafixers.util.Pair<Supplier<E>,​T>> decode​(com.mojang.serialization.DynamicOps<T> ops, T input)  
    <T> com.mojang.serialization.DataResult<T> encode​(Supplier<E> supplier, com.mojang.serialization.DynamicOps<T> dynamicOps, T t)  
    static <E> com.mojang.serialization.Codec<List<Supplier<E>>> method_31194​(RegistryKey<? extends Registry<E>> registryRef, com.mojang.serialization.Codec<E> elementCodec)  
    static <E> RegistryElementCodec<E> of​(RegistryKey<? extends Registry<E>> registryRef, com.mojang.serialization.Codec<E> elementCodec)  
    private static <E> RegistryElementCodec<E> of​(RegistryKey<? extends Registry<E>> registryRef, com.mojang.serialization.Codec<E> elementCodec, boolean allowInlineDefinitions)  
    String toString()  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface com.mojang.serialization.Codec

    comapFlatMap, deprecated, dispatch, dispatch, dispatchMap, dispatchMap, dispatchStable, fieldOf, flatComapMap, flatXmap, listOf, mapResult, optionalFieldOf, optionalFieldOf, optionalFieldOf, optionalFieldOf, orElse, orElse, orElse, orElseGet, orElseGet, orElseGet, partialDispatch, promotePartial, stable, withLifecycle, xmap

    Methods inherited from interface com.mojang.serialization.Decoder

    boxed, decode, flatMap, map, parse, parse, simple, terminal

    Methods inherited from interface com.mojang.serialization.Encoder

    comap, encodeStart, flatComap
  • Field Details

    • registryRef

      private final RegistryKey<? extends Registry<E>> registryRef
      Mappings:
      Namespace Name Mixin selector
      official a Lvw;a:Lwa;
      intermediary field_25507 Lnet/minecraft/class_5381;field_25507:Lnet/minecraft/class_5321;
      named registryRef Lnet/minecraft/util/dynamic/RegistryElementCodec;registryRef:Lnet/minecraft/util/registry/RegistryKey;
    • elementCodec

      private final com.mojang.serialization.Codec<E> elementCodec
      Mappings:
      Namespace Name Mixin selector
      official b Lvw;b:Lcom/mojang/serialization/Codec;
      intermediary field_25508 Lnet/minecraft/class_5381;field_25508:Lcom/mojang/serialization/Codec;
      named elementCodec Lnet/minecraft/util/dynamic/RegistryElementCodec;elementCodec:Lcom/mojang/serialization/Codec;
    • allowInlineDefinitions

      private final boolean allowInlineDefinitions
      Mappings:
      Namespace Name Mixin selector
      official c Lvw;c:Z
      intermediary field_26758 Lnet/minecraft/class_5381;field_26758:Z
      named allowInlineDefinitions Lnet/minecraft/util/dynamic/RegistryElementCodec;allowInlineDefinitions:Z
  • Constructor Details

    • RegistryElementCodec

      private RegistryElementCodec​(RegistryKey<? extends Registry<E>> registryRef, com.mojang.serialization.Codec<E> elementCodec, boolean allowInlineDefinitions)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lvw;<init>(Lwa;Lcom/mojang/serialization/Codec;Z)V
      intermediary <init> Lnet/minecraft/class_5381;<init>(Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Z)V
      named <init> Lnet/minecraft/util/dynamic/RegistryElementCodec;<init>(Lnet/minecraft/util/registry/RegistryKey;Lcom/mojang/serialization/Codec;Z)V
  • Method Details

    • of

      public static <E> RegistryElementCodec<E> of​(RegistryKey<? extends Registry<E>> registryRef, com.mojang.serialization.Codec<E> elementCodec)
      Mappings:
      Namespace Name Mixin selector
      official a Lvw;a(Lwa;Lcom/mojang/serialization/Codec;)Lvw;
      intermediary method_29749 Lnet/minecraft/class_5381;method_29749(Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)Lnet/minecraft/class_5381;
      named of Lnet/minecraft/util/dynamic/RegistryElementCodec;of(Lnet/minecraft/util/registry/RegistryKey;Lcom/mojang/serialization/Codec;)Lnet/minecraft/util/dynamic/RegistryElementCodec;
    • method_31194

      public static <E> com.mojang.serialization.Codec<List<Supplier<E>>> method_31194​(RegistryKey<? extends Registry<E>> registryRef, com.mojang.serialization.Codec<E> elementCodec)
      Mappings:
      Namespace Name Mixin selector
      official b Lvw;b(Lwa;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
      intermediary method_31194 Lnet/minecraft/class_5381;method_31194(Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
      named method_31194 Lnet/minecraft/util/dynamic/RegistryElementCodec;method_31194(Lnet/minecraft/util/registry/RegistryKey;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
    • of

      private static <E> RegistryElementCodec<E> of​(RegistryKey<? extends Registry<E>> registryRef, com.mojang.serialization.Codec<E> elementCodec, boolean allowInlineDefinitions)
      Mappings:
      Namespace Name Mixin selector
      official a Lvw;a(Lwa;Lcom/mojang/serialization/Codec;Z)Lvw;
      intermediary method_31192 Lnet/minecraft/class_5381;method_31192(Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;Z)Lnet/minecraft/class_5381;
      named of Lnet/minecraft/util/dynamic/RegistryElementCodec;of(Lnet/minecraft/util/registry/RegistryKey;Lcom/mojang/serialization/Codec;Z)Lnet/minecraft/util/dynamic/RegistryElementCodec;
    • encode

      public <T> com.mojang.serialization.DataResult<T> encode​(Supplier<E> supplier, com.mojang.serialization.DynamicOps<T> dynamicOps, T t)
      Specified by:
      encode in interface com.mojang.serialization.Encoder<E>
      Mappings:
      Namespace Name Mixin selector
      official a Lvw;a(Ljava/util/function/Supplier;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
      intermediary method_29748 Lnet/minecraft/class_5381;method_29748(Ljava/util/function/Supplier;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
      named encode Lnet/minecraft/util/dynamic/RegistryElementCodec;encode(Ljava/util/function/Supplier;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
    • decode

      public <T> com.mojang.serialization.DataResult<com.mojang.datafixers.util.Pair<Supplier<E>,​T>> decode​(com.mojang.serialization.DynamicOps<T> ops, T input)
      Specified by:
      decode in interface com.mojang.serialization.Decoder<E>
      Mappings:
      Namespace Name Mixin selector
      official decode Lvw;decode(Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
      intermediary decode Lnet/minecraft/class_5381;decode(Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
      named decode Lnet/minecraft/util/dynamic/RegistryElementCodec;decode(Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
    • toString

      public String toString()
      Overrides:
      toString in class Object
      Mappings:
      Namespace Name Mixin selector
      official toString Lvw;toString()Ljava/lang/String;
      intermediary toString Lnet/minecraft/class_5381;toString()Ljava/lang/String;
      named toString Lnet/minecraft/util/dynamic/RegistryElementCodec;toString()Ljava/lang/String;