Registry codec stuff, and that thing is registry not dimension tracker (#1425)

* Registry codec stuff, and that thing is registry not dimension tracker

Signed-off-by: liach <liach@users.noreply.github.com>

* Paragraph

Signed-off-by: liach <liach@users.noreply.github.com>

* Update mappings/net/minecraft/util/dynamic/RegistryReadingOps.mapping

Co-authored-by: i509VCB <i509vcb@gmail.com>

Co-authored-by: liach <liach@users.noreply.github.com>
Co-authored-by: i509VCB <i509vcb@gmail.com>
This commit is contained in:
liach 2020-06-05 14:11:11 -05:00 committed by GitHub
parent c6412435cf
commit 10be6db16a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 176 additions and 11 deletions

View File

@ -9,3 +9,5 @@ CLASS net/minecraft/class_3300 net/minecraft/resource/ResourceManager
ARG 1 id
METHOD method_18234 containsResource (Lnet/minecraft/class_2960;)Z
ARG 1 id
METHOD method_29489 findResources (Lnet/minecraft/class_2960;Ljava/util/function/Predicate;)Ljava/util/Collection;
ARG 1 resourceType

View File

@ -3,6 +3,7 @@ CLASS net/minecraft/class_2960 net/minecraft/util/Identifier
FIELD field_13353 namespace Ljava/lang/String;
FIELD field_13354 COMMAND_EXCEPTION Lcom/mojang/brigadier/exceptions/SimpleCommandExceptionType;
FIELD field_13355 path Ljava/lang/String;
FIELD field_25139 CODEC Lcom/mojang/serialization/Codec;
METHOD <init> (Ljava/lang/String;)V
ARG 1 id
COMMENT A string of the form <namespace>:<path>, for example minecraft:iron_ingot.

View File

@ -0,0 +1,5 @@
CLASS net/minecraft/class_5379 net/minecraft/util/dynamic/ForwardingDynamicOps
COMMENT A dynamic ops that delegates all operations from another one.
FIELD field_25503 delegate Lcom/mojang/serialization/DynamicOps;
METHOD <init> (Lcom/mojang/serialization/DynamicOps;)V
ARG 1 delegate

View File

@ -0,0 +1,28 @@
CLASS net/minecraft/class_5380 net/minecraft/util/dynamic/RegistryCodec
COMMENT A codec for {@link SimpleRegistry}.
COMMENT
COMMENT <p>Compared to regular codec, this codec performs additional work when
COMMENT decoding, loading its elements from the given resource manager's JSON
COMMENT files.</p>
COMMENT
COMMENT @param <E> the registry's element type
COMMENT @see RegistryElementCodec
COMMENT @see RegistryOps
FIELD field_25504 delegate Lcom/mojang/serialization/Codec;
FIELD field_25505 registryRef Lnet/minecraft/class_5321;
FIELD field_25506 elementCodec Lcom/mojang/serialization/Codec;
METHOD <init> (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Lifecycle;Lcom/mojang/serialization/Codec;)V
ARG 1 registryRef
ARG 2 lifecycle
ARG 3 elementCodec
METHOD decode (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
ARG 1 ops
ARG 2 input
METHOD encode (Ljava/lang/Object;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
ARG 1 input
ARG 2 ops
ARG 3 prefix
METHOD method_29745 of (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Lifecycle;Lcom/mojang/serialization/Codec;)Lnet/minecraft/class_5380;
ARG 0 registryRef
ARG 1 lifecycle
ARG 2 elementCodec

View File

@ -0,0 +1,27 @@
CLASS net/minecraft/class_5381 net/minecraft/util/dynamic/RegistryElementCodec
COMMENT A codec for registry elements. Will prefer to encode/decode objects as
COMMENT identifiers if they exist in a registry and falls back to full encoding/
COMMENT decoding behavior if it cannot do so.
COMMENT
COMMENT <p>The codec's saves and loads {@code Supplier<E>} in order to avoid early
COMMENT loading from registry before a registry is fully loaded from a codec.</p>
COMMENT
COMMENT @param <E> the element type
COMMENT @see RegistryCodec
COMMENT @see RegistryReadingOps
COMMENT @see RegistryOps
FIELD field_25507 registryRef Lnet/minecraft/class_5321;
FIELD field_25508 elementCodec Lcom/mojang/serialization/Codec;
METHOD <init> (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)V
ARG 1 registryRef
ARG 2 elementCodec
METHOD decode (Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
ARG 1 ops
ARG 2 input
METHOD encode (Ljava/lang/Object;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;
ARG 1 input
ARG 2 ops
ARG 3 prefix
METHOD method_29749 of (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)Lnet/minecraft/class_5381;
ARG 0 registryRef
ARG 1 elementCodec

View File

@ -0,0 +1,45 @@
CLASS net/minecraft/class_5382 net/minecraft/util/dynamic/RegistryOps
FIELD field_25509 LOGGER Lorg/apache/logging/log4j/Logger;
FIELD field_25510 resourceManager Lnet/minecraft/class_3300;
FIELD field_25511 registryTracker Lnet/minecraft/class_5318;
FIELD field_25512 valueHolders Ljava/util/Map;
METHOD <init> (Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/class_3300;Lnet/minecraft/class_5318;)V
ARG 1 delegate
ARG 2 resourceManager
ARG 3 registryTracker
METHOD method_29753 of (Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/class_3300;Lnet/minecraft/class_5318;)Lnet/minecraft/class_5382;
ARG 0 delegate
ARG 1 resourceManager
ARG 2 registryTracker
METHOD method_29755 loadToRegistry (Lnet/minecraft/class_2370;Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/DataResult;
COMMENT Loads elements into a registry just loaded from a decoder.
ARG 1 registry
ARG 2 registryRef
ARG 3 elementCodec
METHOD method_29759 decodeOrId (Ljava/lang/Object;Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/DataResult;
COMMENT Encode an id for a registry element than a full object if possible.
COMMENT
COMMENT <p>This method is called by casting an arbitrary dynamic ops to a registry
COMMENT reading ops.</p>
COMMENT
COMMENT @see RegistryReadingOps#encodeOrId(Object, Object, RegistryKey, Codec)
ARG 1 input
ARG 2 registryRef
ARG 3 elementCodec
METHOD method_29761 getValueHolder (Lnet/minecraft/class_5321;)Lnet/minecraft/class_5382$class_5383;
ARG 1 registryRef
METHOD method_29763 readSupplier (Lnet/minecraft/class_5321;Lnet/minecraft/class_2385;Lcom/mojang/serialization/Codec;Lnet/minecraft/class_2960;)Lcom/mojang/serialization/DataResult;
COMMENT Reads a supplier for a registry element.
COMMENT
COMMENT <p>This logic is used by both {@code decodeOrId} and {@code loadToRegistry}.</p>
ARG 1 registryRef
ARG 2 registry
ARG 3 elementCodec
ARG 4 elementId
METHOD method_29764 readElement (Lnet/minecraft/class_5321;Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/DataResult;
COMMENT Reads the actual element.
ARG 1 registryRef
ARG 2 elementRef
ARG 3 elementCodec
CLASS class_5383 ValueHolder
FIELD field_25513 values Ljava/util/Map;

View File

@ -0,0 +1,21 @@
CLASS net/minecraft/class_5384 net/minecraft/util/dynamic/RegistryReadingOps
COMMENT A dynamic ops that encode an id for a registry element rather than a full object.
COMMENT
COMMENT @see RegistryElementCodec#encode(Object, DynamicOps, Object)
FIELD field_25514 tracker Lnet/minecraft/class_5318;
METHOD <init> (Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/class_5318;)V
ARG 1 delegate
ARG 2 tracker
METHOD method_29771 of (Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/class_5318;)Lnet/minecraft/class_5384;
ARG 0 delegate
ARG 1 tracker
METHOD method_29772 encodeOrId (Ljava/lang/Object;Ljava/lang/Object;Lnet/minecraft/class_5321;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/DataResult;
COMMENT Encode an id for a registry element than a full object if possible.
COMMENT
COMMENT <p>This method is called by casting an arbitrary dynamic ops to a registry
COMMENT reading ops.</p>
COMMENT
COMMENT @see RegistryOps#decodeOrId(Object, RegistryKey, Codec)
ARG 1 input
ARG 2 prefix
ARG 3 registryReference

View File

@ -1,6 +1,8 @@
CLASS net/minecraft/class_2385 net/minecraft/util/registry/MutableRegistry
METHOD method_10272 add (Lnet/minecraft/class_5321;Ljava/lang/Object;)Ljava/lang/Object;
ARG 1 key
ARG 2 entry
METHOD method_10273 set (ILnet/minecraft/class_5321;Ljava/lang/Object;)Ljava/lang/Object;
ARG 1 rawId
ARG 2 key
ARG 3 entry

View File

@ -140,6 +140,7 @@ CLASS net/minecraft/class_2378 net/minecraft/util/registry/Registry
METHOD method_29106 createRegistryKey (Ljava/lang/String;)Lnet/minecraft/class_5321;
ARG 0 registryId
METHOD method_29107 get (Lnet/minecraft/class_5321;)Ljava/lang/Object;
ARG 1 key
METHOD method_29108 create (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Lifecycle;Ljava/util/function/Supplier;)Lnet/minecraft/class_2378;
ARG 2 defaultEntry
METHOD method_29109 create (Lnet/minecraft/class_5321;Ljava/lang/String;Lcom/mojang/serialization/Lifecycle;Ljava/util/function/Supplier;)Lnet/minecraft/class_2348;

View File

@ -0,0 +1,13 @@
CLASS net/minecraft/class_5318 net/minecraft/util/registry/RegistryTracker
METHOD method_29116 getDimensionTypeRegistry ()Lnet/minecraft/class_2378;
METHOD method_29117 create ()Lnet/minecraft/class_5318$class_5319;
METHOD method_29726 get (Lnet/minecraft/class_5321;)Ljava/util/Optional;
ARG 1 reference
CLASS class_5319 Modifiable
FIELD field_25119 CODEC Lcom/mojang/serialization/Codec;
FIELD field_25120 registry Lnet/minecraft/class_2370;
METHOD <init> (Lnet/minecraft/class_2370;)V
ARG 1 registry
METHOD method_29119 addDimensionType (Lnet/minecraft/class_5321;Lnet/minecraft/class_2874;)V
ARG 1 registryKey
ARG 2 dimensionType

View File

@ -5,4 +5,27 @@ CLASS net/minecraft/class_2370 net/minecraft/util/registry/SimpleRegistry
FIELD field_11110 indexedEntries Lnet/minecraft/class_3513;
FIELD field_11111 LOGGER Lorg/apache/logging/log4j/Logger;
FIELD field_25067 entriesByKey Lcom/google/common/collect/BiMap;
FIELD field_25489 loadedKeys Ljava/util/Set;
METHOD method_10240 getRandom (Ljava/util/Random;)Ljava/lang/Object;
METHOD method_29721 createCodec (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Lifecycle;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
ARG 0 registryRef
ARG 1 lifecycle
ARG 2 elementCodec
METHOD method_29722 getEntries ()Ljava/util/Set;
METHOD method_29723 isLoaded (Lnet/minecraft/class_5321;)Z
COMMENT Returns whether an element corresponding to the key is loaded externally,
COMMENT such as from a decoder.
COMMENT
COMMENT <p>When an element is loaded externally, it will be encoded when the
COMMENT registry is encoded.</p>
ARG 1 key
METHOD method_29724 createEmptyCodec (Lnet/minecraft/class_5321;Lcom/mojang/serialization/Lifecycle;Lcom/mojang/serialization/Codec;)Lcom/mojang/serialization/Codec;
ARG 0 registryRef
ARG 1 lifecycle
ARG 2 elementCodec
METHOD method_29725 markLoaded (Lnet/minecraft/class_5321;)V
COMMENT Marks an element corresponding to the key as loaded from a decoder.
COMMENT
COMMENT <p>This will make the element being written by the encoder when the
COMMENT registry is encoded.</p>
ARG 1 key

View File

@ -1,9 +0,0 @@
CLASS net/minecraft/class_5318 net/minecraft/world/dimension/DimensionTracker
METHOD method_29116 getRegistry ()Lnet/minecraft/class_2378;
METHOD method_29117 create ()Lnet/minecraft/class_5318$class_5319;
CLASS class_5319 Modifiable
FIELD field_25119 CODEC Lcom/mojang/serialization/Codec;
FIELD field_25120 registry Lnet/minecraft/class_2370;
METHOD <init> (Lnet/minecraft/class_2370;)V
ARG 1 registry
METHOD method_29119 add (Lnet/minecraft/class_5321;Lnet/minecraft/class_2874;)V

View File

@ -13,6 +13,9 @@ CLASS net/minecraft/class_2874 net/minecraft/world/dimension/DimensionType
FIELD field_24763 shrunk Z
FIELD field_24764 hasEnderDragonFight Z
FIELD field_24766 ambientLight F
FIELD field_25407 OVERWORLD Lnet/minecraft/class_2874;
FIELD field_25408 THE_NETHER Lnet/minecraft/class_2874;
FIELD field_25409 THE_END Lnet/minecraft/class_2874;
METHOD <init> (Ljava/lang/String;Ljava/util/OptionalLong;ZZZZZZLnet/minecraft/class_4545;Ljava/util/Optional;F)V
ARG 1 suffix
ARG 2 fixedTime
@ -33,17 +36,19 @@ CLASS net/minecraft/class_2874 net/minecraft/world/dimension/DimensionType
ARG 6 shrunk
ARG 7 ambientLight
METHOD method_12488 getSaveDirectory (Lnet/minecraft/class_5321;Ljava/io/File;)Ljava/io/File;
ARG 0 worldRef
ARG 1 root
METHOD method_12489 getSuffix ()Ljava/lang/String;
METHOD method_12491 hasSkyLight ()Z
METHOD method_22415 getBiomeAccessType ()Lnet/minecraft/class_4545;
METHOD method_27998 hasCeiling ()Z
METHOD method_27999 isUltrawarm ()Z
METHOD method_28523 addDefaults (Lnet/minecraft/class_5318$class_5319;)Lnet/minecraft/class_5318$class_5319;
ARG 0 tracker
METHOD method_28523 addRegistryDefaults (Lnet/minecraft/class_5318$class_5319;)Lnet/minecraft/class_5318$class_5319;
ARG 0 registryTracker
METHOD method_28537 isNatural ()Z
METHOD method_28539 isShrunk ()Z
METHOD method_28540 hasEnderDragonFight ()Z
METHOD method_28541 isOverworld ()Z
METHOD method_28542 isNether ()Z
METHOD method_28543 isEnd ()Z
METHOD method_29563 getOverworldDimensionType ()Lnet/minecraft/class_2874;

View File

@ -8,6 +8,7 @@ CLASS net/minecraft/class_2893 net/minecraft/world/gen/GenerationStep
CLASS class_2895 Feature
FIELD field_13175 BY_NAME Ljava/util/Map;
FIELD field_13180 name Ljava/lang/String;
FIELD field_24771 CODEC Lcom/mojang/serialization/Codec;
METHOD <init> (Ljava/lang/String;ILjava/lang/String;)V
ARG 3 name
METHOD method_12582 getName ()Ljava/lang/String;