From 10be6db16ac6744e6547f7979e1ed505abb1ced5 Mon Sep 17 00:00:00 2001 From: liach <7806504+liach@users.noreply.github.com> Date: Fri, 5 Jun 2020 14:11:11 -0500 Subject: [PATCH] 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 * Paragraph Signed-off-by: liach * Update mappings/net/minecraft/util/dynamic/RegistryReadingOps.mapping Co-authored-by: i509VCB Co-authored-by: liach Co-authored-by: i509VCB --- .../resource/ResourceManager.mapping | 2 + .../net/minecraft/util/Identifier.mapping | 1 + .../util/dynamic/ForwardingDynamicOps.mapping | 5 +++ .../util/dynamic/RegistryCodec.mapping | 28 ++++++++++++ .../util/dynamic/RegistryElementCodec.mapping | 27 +++++++++++ .../util/dynamic/RegistryOps.mapping | 45 +++++++++++++++++++ .../util/dynamic/RegistryReadingOps.mapping | 21 +++++++++ .../util/registry/MutableRegistry.mapping | 2 + .../minecraft/util/registry/Registry.mapping | 1 + .../util/registry/RegistryTracker.mapping | 13 ++++++ .../util/registry/SimpleRegistry.mapping | 23 ++++++++++ .../world/dimension/DimensionTracker.mapping | 9 ---- .../world/dimension/DimensionType.mapping | 9 +++- .../world/gen/GenerationStep.mapping | 1 + 14 files changed, 176 insertions(+), 11 deletions(-) create mode 100644 mappings/net/minecraft/util/dynamic/ForwardingDynamicOps.mapping create mode 100644 mappings/net/minecraft/util/dynamic/RegistryCodec.mapping create mode 100644 mappings/net/minecraft/util/dynamic/RegistryElementCodec.mapping create mode 100644 mappings/net/minecraft/util/dynamic/RegistryOps.mapping create mode 100644 mappings/net/minecraft/util/dynamic/RegistryReadingOps.mapping create mode 100644 mappings/net/minecraft/util/registry/RegistryTracker.mapping delete mode 100644 mappings/net/minecraft/world/dimension/DimensionTracker.mapping diff --git a/mappings/net/minecraft/resource/ResourceManager.mapping b/mappings/net/minecraft/resource/ResourceManager.mapping index fae852d196..a3052b3e65 100644 --- a/mappings/net/minecraft/resource/ResourceManager.mapping +++ b/mappings/net/minecraft/resource/ResourceManager.mapping @@ -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 diff --git a/mappings/net/minecraft/util/Identifier.mapping b/mappings/net/minecraft/util/Identifier.mapping index b961a1afa1..8de225567d 100644 --- a/mappings/net/minecraft/util/Identifier.mapping +++ b/mappings/net/minecraft/util/Identifier.mapping @@ -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 (Ljava/lang/String;)V ARG 1 id COMMENT A string of the form :, for example minecraft:iron_ingot. diff --git a/mappings/net/minecraft/util/dynamic/ForwardingDynamicOps.mapping b/mappings/net/minecraft/util/dynamic/ForwardingDynamicOps.mapping new file mode 100644 index 0000000000..2ee0826156 --- /dev/null +++ b/mappings/net/minecraft/util/dynamic/ForwardingDynamicOps.mapping @@ -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 (Lcom/mojang/serialization/DynamicOps;)V + ARG 1 delegate diff --git a/mappings/net/minecraft/util/dynamic/RegistryCodec.mapping b/mappings/net/minecraft/util/dynamic/RegistryCodec.mapping new file mode 100644 index 0000000000..385ea7066d --- /dev/null +++ b/mappings/net/minecraft/util/dynamic/RegistryCodec.mapping @@ -0,0 +1,28 @@ +CLASS net/minecraft/class_5380 net/minecraft/util/dynamic/RegistryCodec + COMMENT A codec for {@link SimpleRegistry}. + COMMENT + COMMENT

Compared to regular codec, this codec performs additional work when + COMMENT decoding, loading its elements from the given resource manager's JSON + COMMENT files.

+ COMMENT + COMMENT @param 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 (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 diff --git a/mappings/net/minecraft/util/dynamic/RegistryElementCodec.mapping b/mappings/net/minecraft/util/dynamic/RegistryElementCodec.mapping new file mode 100644 index 0000000000..da13a92b51 --- /dev/null +++ b/mappings/net/minecraft/util/dynamic/RegistryElementCodec.mapping @@ -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

The codec's saves and loads {@code Supplier} in order to avoid early + COMMENT loading from registry before a registry is fully loaded from a codec.

+ COMMENT + COMMENT @param 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 (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 diff --git a/mappings/net/minecraft/util/dynamic/RegistryOps.mapping b/mappings/net/minecraft/util/dynamic/RegistryOps.mapping new file mode 100644 index 0000000000..c1b6579e85 --- /dev/null +++ b/mappings/net/minecraft/util/dynamic/RegistryOps.mapping @@ -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 (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

This method is called by casting an arbitrary dynamic ops to a registry + COMMENT reading ops.

+ 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

This logic is used by both {@code decodeOrId} and {@code loadToRegistry}.

+ 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; diff --git a/mappings/net/minecraft/util/dynamic/RegistryReadingOps.mapping b/mappings/net/minecraft/util/dynamic/RegistryReadingOps.mapping new file mode 100644 index 0000000000..a9f939c2cf --- /dev/null +++ b/mappings/net/minecraft/util/dynamic/RegistryReadingOps.mapping @@ -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 (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

This method is called by casting an arbitrary dynamic ops to a registry + COMMENT reading ops.

+ COMMENT + COMMENT @see RegistryOps#decodeOrId(Object, RegistryKey, Codec) + ARG 1 input + ARG 2 prefix + ARG 3 registryReference diff --git a/mappings/net/minecraft/util/registry/MutableRegistry.mapping b/mappings/net/minecraft/util/registry/MutableRegistry.mapping index 4b28d1e2ea..53a37d7ce5 100644 --- a/mappings/net/minecraft/util/registry/MutableRegistry.mapping +++ b/mappings/net/minecraft/util/registry/MutableRegistry.mapping @@ -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 diff --git a/mappings/net/minecraft/util/registry/Registry.mapping b/mappings/net/minecraft/util/registry/Registry.mapping index 4780d793d6..d63c8b8df4 100644 --- a/mappings/net/minecraft/util/registry/Registry.mapping +++ b/mappings/net/minecraft/util/registry/Registry.mapping @@ -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; diff --git a/mappings/net/minecraft/util/registry/RegistryTracker.mapping b/mappings/net/minecraft/util/registry/RegistryTracker.mapping new file mode 100644 index 0000000000..8f09ab2fc8 --- /dev/null +++ b/mappings/net/minecraft/util/registry/RegistryTracker.mapping @@ -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 (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 diff --git a/mappings/net/minecraft/util/registry/SimpleRegistry.mapping b/mappings/net/minecraft/util/registry/SimpleRegistry.mapping index adafbf0a77..bd0b855955 100644 --- a/mappings/net/minecraft/util/registry/SimpleRegistry.mapping +++ b/mappings/net/minecraft/util/registry/SimpleRegistry.mapping @@ -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

When an element is loaded externally, it will be encoded when the + COMMENT registry is encoded.

+ 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

This will make the element being written by the encoder when the + COMMENT registry is encoded.

+ ARG 1 key diff --git a/mappings/net/minecraft/world/dimension/DimensionTracker.mapping b/mappings/net/minecraft/world/dimension/DimensionTracker.mapping deleted file mode 100644 index 430e0a42ce..0000000000 --- a/mappings/net/minecraft/world/dimension/DimensionTracker.mapping +++ /dev/null @@ -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 (Lnet/minecraft/class_2370;)V - ARG 1 registry - METHOD method_29119 add (Lnet/minecraft/class_5321;Lnet/minecraft/class_2874;)V diff --git a/mappings/net/minecraft/world/dimension/DimensionType.mapping b/mappings/net/minecraft/world/dimension/DimensionType.mapping index e301d12be4..e3cc0b7e1b 100644 --- a/mappings/net/minecraft/world/dimension/DimensionType.mapping +++ b/mappings/net/minecraft/world/dimension/DimensionType.mapping @@ -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 (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; diff --git a/mappings/net/minecraft/world/gen/GenerationStep.mapping b/mappings/net/minecraft/world/gen/GenerationStep.mapping index 229946388f..9031b27644 100644 --- a/mappings/net/minecraft/world/gen/GenerationStep.mapping +++ b/mappings/net/minecraft/world/gen/GenerationStep.mapping @@ -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 (Ljava/lang/String;ILjava/lang/String;)V ARG 3 name METHOD method_12582 getName ()Ljava/lang/String;