Advancement Criteria are serialized in the same order they are added

This commit is contained in:
Frank 2022-12-10 14:13:28 +01:00
parent 3706670849
commit f56c534640
2 changed files with 8 additions and 1 deletions

View file

@ -32,6 +32,12 @@ import java.util.Map;
import java.util.function.Consumer; import java.util.function.Consumer;
public class AdvancementManager { public class AdvancementManager {
static class OrderedBuilder extends Advancement.Builder {
OrderedBuilder() {
super(null, null, AdvancementRewards.EMPTY, new LinkedHashMap<>(), null);
}
}
private static final Map<ResourceLocation, Advancement.Builder> ADVANCEMENTS = new LinkedHashMap<>(); private static final Map<ResourceLocation, Advancement.Builder> ADVANCEMENTS = new LinkedHashMap<>();
public static void register(ResourceLocation id, Advancement.Builder builder) { public static void register(ResourceLocation id, Advancement.Builder builder) {
@ -113,7 +119,7 @@ public class AdvancementManager {
private static final ThreadLocal<DisplayBuilder> DISPLAY_BUILDER = ThreadLocal.withInitial(DisplayBuilder::new); private static final ThreadLocal<DisplayBuilder> DISPLAY_BUILDER = ThreadLocal.withInitial(DisplayBuilder::new);
private static final ResourceLocation RECIPES_ROOT = RecipeBuilder.ROOT_RECIPE_ADVANCEMENT; private static final ResourceLocation RECIPES_ROOT = RecipeBuilder.ROOT_RECIPE_ADVANCEMENT;
private final Advancement.Builder builder = Advancement.Builder.advancement(); private final Advancement.Builder builder = new OrderedBuilder();
private final ResourceLocation id; private final ResourceLocation id;
private final AdvancementType type; private final AdvancementType type;
private boolean canBuild = true; private boolean canBuild = true;

View file

@ -28,6 +28,7 @@ accessible method net/minecraft/world/level/levelgen/NoiseRouterData noNewCaves
accessible method net/minecraft/world/level/levelgen/NoiseRouterData slideNetherLike (Lnet/minecraft/core/HolderGetter;II)Lnet/minecraft/world/level/levelgen/DensityFunction; accessible method net/minecraft/world/level/levelgen/NoiseRouterData slideNetherLike (Lnet/minecraft/core/HolderGetter;II)Lnet/minecraft/world/level/levelgen/DensityFunction;
accessible method net/minecraft/tags/TagEntry elementOrTag ()Lnet/minecraft/util/ExtraCodecs$TagOrElementLocation; accessible method net/minecraft/tags/TagEntry elementOrTag ()Lnet/minecraft/util/ExtraCodecs$TagOrElementLocation;
accessible method net/minecraft/data/worldgen/biome/OverworldBiomes calculateSkyColor (F)I accessible method net/minecraft/data/worldgen/biome/OverworldBiomes calculateSkyColor (F)I
accessible method net/minecraft/advancements/Advancement$Builder <init> (Lnet/minecraft/resources/ResourceLocation;Lnet/minecraft/advancements/DisplayInfo;Lnet/minecraft/advancements/AdvancementRewards;Ljava/util/Map;[[Ljava/lang/String;)V
#Fields #Fields
accessible field net/minecraft/world/entity/ai/village/poi/PoiTypes TYPE_BY_STATE Ljava/util/Map; accessible field net/minecraft/world/entity/ai/village/poi/PoiTypes TYPE_BY_STATE Ljava/util/Map;