net/minecraft/world/level/block/entity/JukeboxBlockEntity.java --- Java 144 } 144 } 145 145 146 @Override 146 @Override 147 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1, bool 147 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1) { ... ean $$2) { ... 148 this.popOutTheItem(); 148 this.popOutTheItem(); 149 } 149 } 150 150 net/minecraft/client/data/models/EquipmentAssetProvider.java --- Java 65 ) 65 ) 66 .build() 66 .build() 67 ); 67 ); .. 68 EquipmentClientInfo.Layer $$1 = new EquipmentClientInfo.Layer(Res .. .. ourceLocation.withDefaultNamespace("saddle")); .. 69 $$0.accept( .. 70 EquipmentAssets.SADDLE, .. 71 EquipmentClientInfo.builder() .. 72 .addLayers(EquipmentClientInfo.LayerType.PIG_SADDLE, $$1) .. 73 .addLayers(EquipmentClientInfo.LayerType.STRIDER_SADDLE, $$ .. .. 1) .. 74 .addLayers(EquipmentClientInfo.LayerType.CAMEL_SADDLE, $$1) .. 75 .addLayers(EquipmentClientInfo.LayerType.HORSE_SADDLE, $$1) .. 76 .addLayers(EquipmentClientInfo.LayerType.DONKEY_SADDLE, $$1 .. .. ) .. 77 .addLayers(EquipmentClientInfo.LayerType.MULE_SADDLE, $$1) .. 78 .addLayers(EquipmentClientInfo.LayerType.SKELETON_HORSE_SAD .. .. DLE, $$1) .. 79 .addLayers(EquipmentClientInfo.LayerType.ZOMBIE_HORSE_SADDL .. .. E, $$1) .. 80 .build() .. 81 ); 68 82 69 for (Entry<DyeColor, ResourceKey<EquipmentAsset>> $$1 : Equipment 83 for (Entry<DyeColor, ResourceKey<EquipmentAsset>> $$2 : Equipment .. Assets.CARPETS.entrySet()) { .. Assets.CARPETS.entrySet()) { 70 DyeColor $$2 = $$1.getKey(); 84 DyeColor $$3 = $$2.getKey(); 71 ResourceKey<EquipmentAsset> $$3 = $$1.getValue(); 85 ResourceKey<EquipmentAsset> $$4 = $$2.getValue(); 72 $$0.accept( 86 $$0.accept( 73 $$3, 87 $$4, 74 EquipmentClientInfo.builder() 88 EquipmentClientInfo.builder() 75 .addLayers( 89 .addLayers( 76 EquipmentClientInfo.LayerType.LLAMA_BODY, new Equipme 90 EquipmentClientInfo.LayerType.LLAMA_BODY, new Equipme .. ntClientInfo.Layer(ResourceLocation.withDefaultNamespace($$2.getSeriali .. ntClientInfo.Layer(ResourceLocation.withDefaultNamespace($$3.getSeriali .. zedName())) .. zedName())) 77 ) 91 ) 78 .build() 92 .build() 79 ); 93 ); net/minecraft/commands/arguments/ResourceSelectorArgument.java --- Java 1 package net.minecraft.commands.arguments; 2 3 import com.google.gson.JsonObject; 4 import com.mojang.brigadier.StringReader; 5 import com.mojang.brigadier.arguments.ArgumentType; 6 import com.mojang.brigadier.context.CommandContext; 7 import com.mojang.brigadier.exceptions.CommandSyntaxException; 8 import com.mojang.brigadier.exceptions.Dynamic2CommandExceptionType; 9 import com.mojang.brigadier.suggestion.Suggestions; 10 import com.mojang.brigadier.suggestion.SuggestionsBuilder; 11 import java.util.Collection; 12 import java.util.List; 13 import java.util.concurrent.CompletableFuture; 14 import net.minecraft.commands.CommandBuildContext; 15 import net.minecraft.commands.CommandSourceStack; 16 import net.minecraft.commands.SharedSuggestionProvider; 17 import net.minecraft.commands.synchronization.ArgumentTypeInfo; 18 import net.minecraft.core.Holder; 19 import net.minecraft.core.HolderLookup; 20 import net.minecraft.core.Registry; 21 import net.minecraft.network.FriendlyByteBuf; 22 import net.minecraft.network.chat.Component; 23 import net.minecraft.resources.ResourceKey; 24 import net.minecraft.resources.ResourceLocation; 25 import org.apache.commons.io.FilenameUtils; 26 27 public class ResourceSelectorArgument<T> implements ArgumentType<Collection<Holder.Reference<T>>> { 28 private static final Collection<String> EXAMPLES = List.of("minecraft:*", "*:asset", "*"); 29 public static final Dynamic2CommandExceptionType ERROR_NO_MATCHES = new Dynamic2CommandExceptionType( 30 ($$0, $$1) -> Component.translatableEscape("argument.resource_selector.not_found", $$0, $$1) 31 ); 32 final ResourceKey<? extends Registry<T>> registryKey; 33 private final HolderLookup<T> registryLookup; 34 35 ResourceSelectorArgument(CommandBuildContext $$0, ResourceKey<? extends Registry<T>> $$1) { 36 this.registryKey = $$1; 37 this.registryLookup = $$0.lookupOrThrow($$1); 38 } 39 40 public Collection<Holder.Reference<T>> parse(StringReader $$0) throws CommandSyntaxException { 41 String $$1 = ensureNamespaced(readPattern($$0)); 42 List<Holder.Reference<T>> $$2 = this.registryLookup.listElements().filter($$1x -> matches($$1, $$1x.key().location())).toList(); 43 if ($$2.isEmpty()) { 44 throw ERROR_NO_MATCHES.createWithContext($$0, $$1, this.registryKey.location()); 45 } else { 46 return $$2; 47 } 48 } 49 50 public static <T> Collection<Holder.Reference<T>> parse(StringReader $$0, HolderLookup<T> $$1) { 51 String $$2 = ensureNamespaced(readPattern($$0)); 52 return $$1.listElements().filter($$1x -> matches($$2, $$1x.key().location())).toList(); 53 } 54 55 private static String readPattern(StringReader $$0) { 56 int $$1 = $$0.getCursor(); 57 58 while ($$0.canRead() && isAllowedPatternCharacter($$0.peek())) { 59 $$0.skip(); 60 } 61 62 return $$0.getString().substring($$1, $$0.getCursor()); 63 } 64 65 private static boolean isAllowedPatternCharacter(char $$0) { 66 return ResourceLocation.isAllowedInResourceLocation($$0) || $$0 == '*' || $$0 == '?'; 67 } 68 69 private static String ensureNamespaced(String $$0) { 70 return !$$0.contains(":") ? "minecraft:" + $$0 : $$0; 71 } 72 73 private static boolean matches(String $$0, ResourceLocation $$1) { 74 return FilenameUtils.wildcardMatch($$1.toString(), $$0); 75 } 76 77 public static <T> ResourceSelectorArgument<T> resourceSelector(CommandBuildContext $$0, ResourceKey<? extends Registry<T>> $$1) { 78 return new ResourceSelectorArgument<>($$0, $$1); 79 } 80 81 public static <T> Collection<Holder.Reference<T>> getSelectedResources( 82 CommandContext<CommandSourceStack> $$0, String $$1, ResourceKey<? extends Registry<T>> $$2 83 ) { 84 return $$0.getArgument($$1, Collection.class); 85 } 86 87 @Override 88 public <S> CompletableFuture<Suggestions> listSuggestions(CommandContext<S> $$0, SuggestionsBuilder $$1) { 89 return SharedSuggestionProvider.suggest(this.registryLookup.listElementIds().map(ResourceKey::location).map(ResourceLocation::toString), $$1); 90 } 91 92 @Override 93 public Collection<String> getExamples() { 94 return EXAMPLES; 95 } 96 97 public static class Info<T> implements ArgumentTypeInfo<ResourceSelectorArgument<T>, ResourceSelectorArgument.Info<T>.Template> { 98 public void serializeToNetwork(ResourceSelectorArgument.Info<T>.Template $$0, FriendlyByteBuf $$1) { 99 $$1.writeResourceKey($$0.registryKey); 100 } 101 102 public ResourceSelectorArgument.Info<T>.Template deserializeFromNetwork(FriendlyByteBuf $$0) { 103 return new ResourceSelectorArgument.Info.Template($$0.readRegistryKey()); 104 } 105 106 public void serializeToJson(ResourceSelectorArgument.Info<T>.Template $$0, JsonObject $$1) { 107 $$1.addProperty("registry", $$0.registryKey.location().toString()); 108 } 109 110 public ResourceSelectorArgument.Info<T>.Template unpack(ResourceSelectorArgument<T> $$0) { 111 return new ResourceSelectorArgument.Info.Template($$0.registryKey); 112 } 113 114 public final class Template implements ArgumentTypeInfo.Template<ResourceSelectorArgument<T>> { 115 final ResourceKey<? extends Registry<T>> registryKey; 116 117 Template(final ResourceKey<? extends Registry<T>> $$1) { 118 this.registryKey = $$1; 119 } 120 121 public ResourceSelectorArgument<T> instantiate(CommandBuildContext $$0) { 122 return new ResourceSelectorArgument<>($$0, this.registryKey); 123 } 124 125 @Override 126 public ArgumentTypeInfo<ResourceSelectorArgument<T>, ?> type() { 127 return Info.this; 128 } 129 } 130 } 131 } 132 net/minecraft/world/entity/monster/breeze/Breeze.java --- Java 278 } 278 } 279 279 280 @Override 280 @Override 281 public boolean causeFallDamage(float $$0, float $$1, DamageSource $ 281 public boolean causeFallDamage(double $$0, float $$1, DamageSource ... $2) { ... $$2) { 282 if ($$0 > 3.0F) { 282 if ($$0 > 3.0) { 283 this.playSound(SoundEvents.BREEZE_LAND, 1.0F, 1.0F); 283 this.playSound(SoundEvents.BREEZE_LAND, 1.0F, 1.0F); 284 } 284 } 285 285 net/minecraft/core/component/DataComponents.java --- 1/2 --- Java 16 import net.minecraft.util.ExtraCodecs; 16 import net.minecraft.util.ExtraCodecs; 17 import net.minecraft.util.Unit; 17 import net.minecraft.util.Unit; 18 import net.minecraft.world.LockCode; 18 import net.minecraft.world.LockCode; .. 19 import net.minecraft.world.entity.animal.CatVariant; .. 20 import net.minecraft.world.entity.animal.Fox; .. 21 import net.minecraft.world.entity.animal.FrogVariant; .. 22 import net.minecraft.world.entity.animal.MushroomCow; .. 23 import net.minecraft.world.entity.animal.Parrot; .. 24 import net.minecraft.world.entity.animal.PigVariant; .. 25 import net.minecraft.world.entity.animal.Rabbit; .. 26 import net.minecraft.world.entity.animal.Salmon; .. 27 import net.minecraft.world.entity.animal.TropicalFish; .. 28 import net.minecraft.world.entity.animal.WolfVariant; .. 29 import net.minecraft.world.entity.animal.axolotl.Axolotl; .. 30 import net.minecraft.world.entity.animal.horse.Llama; .. 31 import net.minecraft.world.entity.animal.horse.Variant; .. 32 import net.minecraft.world.entity.decoration.PaintingVariant; .. 33 import net.minecraft.world.entity.npc.VillagerType; 19 import net.minecraft.world.food.FoodProperties; 34 import net.minecraft.world.food.FoodProperties; 20 import net.minecraft.world.item.AdventureModePredicate; 35 import net.minecraft.world.item.AdventureModePredicate; 21 import net.minecraft.world.item.DyeColor; 36 import net.minecraft.world.item.DyeColor; net/minecraft/core/component/DataComponents.java --- 2/2 --- Java 258 ); 273 ); 259 public static final DataComponentType<LockCode> LOCK = register("lo 274 public static final DataComponentType<LockCode> LOCK = register("lo ... ck", $$0 -> $$0.persistent(LockCode.CODEC)); ... ck", $$0 -> $$0.persistent(LockCode.CODEC)); 260 public static final DataComponentType<SeededContainerLoot> CONTAINE 275 public static final DataComponentType<SeededContainerLoot> CONTAINE ... R_LOOT = register("container_loot", $$0 -> $$0.persistent(SeededContai ... R_LOOT = register("container_loot", $$0 -> $$0.persistent(SeededContai ... nerLoot.CODEC)); ... nerLoot.CODEC)); ... 276 public static final DataComponentType<Holder<VillagerType>> VILLAGE ... ... R_VARIANT = register( ... 277 "villager/variant", $$0 -> $$0.persistent(VillagerType.CODEC).ne ... ... tworkSynchronized(VillagerType.STREAM_CODEC) ... 278 ); ... 279 public static final DataComponentType<Holder<WolfVariant>> WOLF_VAR ... ... IANT = register( ... 280 "wolf/variant", $$0 -> $$0.persistent(WolfVariant.CODEC).network ... ... Synchronized(WolfVariant.STREAM_CODEC) ... 281 ); ... 282 public static final DataComponentType<DyeColor> WOLF_COLLAR = regis ... ... ter( ... 283 "wolf/collar", $$0 -> $$0.persistent(DyeColor.CODEC).networkSync ... ... hronized(DyeColor.STREAM_CODEC) ... 284 ); ... 285 public static final DataComponentType<Fox.Variant> FOX_VARIANT = re ... ... gister( ... 286 "fox/variant", $$0 -> $$0.persistent(Fox.Variant.CODEC).networkS ... ... ynchronized(Fox.Variant.STREAM_CODEC) ... 287 ); ... 288 public static final DataComponentType<Salmon.Variant> SALMON_SIZE = ... ... register( ... 289 "salmon/size", $$0 -> $$0.persistent(Salmon.Variant.CODEC).netwo ... ... rkSynchronized(Salmon.Variant.STREAM_CODEC) ... 290 ); ... 291 public static final DataComponentType<Parrot.Variant> PARROT_VARIAN ... ... T = register( ... 292 "parrot/variant", $$0 -> $$0.persistent(Parrot.Variant.CODEC).ne ... ... tworkSynchronized(Parrot.Variant.STREAM_CODEC) ... 293 ); ... 294 public static final DataComponentType<TropicalFish.Pattern> TROPICA ... ... L_FISH_PATTERN = register( ... 295 "tropical_fish/pattern", $$0 -> $$0.persistent(TropicalFish.Patt ... ... ern.CODEC).networkSynchronized(TropicalFish.Pattern.STREAM_CODEC) ... 296 ); ... 297 public static final DataComponentType<DyeColor> TROPICAL_FISH_BASE_ ... ... COLOR = register( ... 298 "tropical_fish/base_color", $$0 -> $$0.persistent(DyeColor.CODEC ... ... ).networkSynchronized(DyeColor.STREAM_CODEC) ... 299 ); ... 300 public static final DataComponentType<DyeColor> TROPICAL_FISH_PATTE ... ... RN_COLOR = register( ... 301 "tropical_fish/pattern_color", $$0 -> $$0.persistent(DyeColor.CO ... ... DEC).networkSynchronized(DyeColor.STREAM_CODEC) ... 302 ); ... 303 public static final DataComponentType<MushroomCow.Variant> MOOSHROO ... ... M_VARIANT = register( ... 304 "mooshroom/variant", $$0 -> $$0.persistent(MushroomCow.Variant.C ... ... ODEC).networkSynchronized(MushroomCow.Variant.STREAM_CODEC) ... 305 ); ... 306 public static final DataComponentType<Rabbit.Variant> RABBIT_VARIAN ... ... T = register( ... 307 "rabbit/variant", $$0 -> $$0.persistent(Rabbit.Variant.CODEC).ne ... ... tworkSynchronized(Rabbit.Variant.STREAM_CODEC) ... 308 ); ... 309 public static final DataComponentType<Holder<PigVariant>> PIG_VARIA ... ... NT = register( ... 310 "pig/variant", $$0 -> $$0.persistent(PigVariant.CODEC).networkSy ... ... nchronized(PigVariant.STREAM_CODEC) ... 311 ); ... 312 public static final DataComponentType<Holder<FrogVariant>> FROG_VAR ... ... IANT = register( ... 313 "frog/variant", $$0 -> $$0.persistent(FrogVariant.CODEC).network ... ... Synchronized(FrogVariant.STREAM_CODEC) ... 314 ); ... 315 public static final DataComponentType<Variant> HORSE_VARIANT = regi ... ... ster( ... 316 "horse/variant", $$0 -> $$0.persistent(Variant.CODEC).networkSyn ... ... chronized(Variant.STREAM_CODEC) ... 317 ); ... 318 public static final DataComponentType<Holder<PaintingVariant>> PAIN ... ... TING_VARIANT = register( ... 319 "painting/variant", $$0 -> $$0.persistent(PaintingVariant.CODEC) ... ... .networkSynchronized(PaintingVariant.STREAM_CODEC) ... 320 ); ... 321 public static final DataComponentType<Llama.Variant> LLAMA_VARIANT ... ... = register( ... 322 "llama/variant", $$0 -> $$0.persistent(Llama.Variant.CODEC).netw ... ... orkSynchronized(Llama.Variant.STREAM_CODEC) ... 323 ); ... 324 public static final DataComponentType<Axolotl.Variant> AXOLOTL_VARI ... ... ANT = register( ... 325 "axolotl/variant", $$0 -> $$0.persistent(Axolotl.Variant.CODEC). ... ... networkSynchronized(Axolotl.Variant.STREAM_CODEC) ... 326 ); ... 327 public static final DataComponentType<Holder<CatVariant>> CAT_VARIA ... ... NT = register( ... 328 "cat/variant", $$0 -> $$0.persistent(CatVariant.CODEC).networkSy ... ... nchronized(CatVariant.STREAM_CODEC) ... 329 ); ... 330 public static final DataComponentType<DyeColor> CAT_COLLAR = regist ... ... er( ... 331 "cat/collar", $$0 -> $$0.persistent(DyeColor.CODEC).networkSynch ... ... ronized(DyeColor.STREAM_CODEC) ... 332 ); ... 333 public static final DataComponentType<DyeColor> SHEEP_COLOR = regis ... ... ter( ... 334 "sheep/color", $$0 -> $$0.persistent(DyeColor.CODEC).networkSync ... ... hronized(DyeColor.STREAM_CODEC) ... 335 ); ... 336 public static final DataComponentType<DyeColor> SHULKER_COLOR = reg ... ... ister( ... 337 "shulker/color", $$0 -> $$0.persistent(DyeColor.CODEC).networkSy ... ... nchronized(DyeColor.STREAM_CODEC) ... 338 ); 261 public static final DataComponentMap COMMON_ITEM_COMPONENTS = DataC 339 public static final DataComponentMap COMMON_ITEM_COMPONENTS = DataC ... omponentMap.builder() ... omponentMap.builder() 262 .set(MAX_STACK_SIZE, 64) 340 .set(MAX_STACK_SIZE, 64) 263 .set(LORE, ItemLore.EMPTY) 341 .set(LORE, ItemLore.EMPTY) net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java --- 1/2 --- Java 6 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.BlockPos; 7 import net.minecraft.core.HolderLookup; 7 import net.minecraft.core.HolderLookup; 8 import net.minecraft.core.NonNullList; 8 import net.minecraft.core.NonNullList; . 9 import net.minecraft.core.component.DataComponentGetter; 9 import net.minecraft.core.component.DataComponentMap; 10 import net.minecraft.core.component.DataComponentMap; 10 import net.minecraft.core.component.DataComponents; 11 import net.minecraft.core.component.DataComponents; 11 import net.minecraft.nbt.CompoundTag; 12 import net.minecraft.nbt.CompoundTag; net/minecraft/world/level/block/entity/ChiseledBookShelfBlockEntity.java --- 2/2 --- Java 141 } 142 } 142 143 143 @Override 144 @Override 144 protected void applyImplicitComponents(BlockEntity.DataComponentInp 145 protected void applyImplicitComponents(DataComponentGetter $$0) { ... ut $$0) { ... 145 super.applyImplicitComponents($$0); 146 super.applyImplicitComponents($$0); 146 $$0.getOrDefault(DataComponents.CONTAINER, ItemContainerContents 147 $$0.getOrDefault(DataComponents.CONTAINER, ItemContainerContents ... .EMPTY).copyInto(this.items); ... .EMPTY).copyInto(this.items); 147 } 148 } net/minecraft/world/item/trading/ItemCost.java --- 1/2 --- Java 5 import java.util.Optional; 5 import java.util.Optional; 6 import java.util.function.UnaryOperator; 6 import java.util.function.UnaryOperator; 7 import net.minecraft.core.Holder; 7 import net.minecraft.core.Holder; 8 import net.minecraft.core.component.DataComponentHolder; 8 import net.minecraft.core.component.DataComponentGetter; 9 import net.minecraft.core.component.DataComponentPredicate; 9 import net.minecraft.core.component.DataComponentPredicate; 10 import net.minecraft.network.RegistryFriendlyByteBuf; 10 import net.minecraft.network.RegistryFriendlyByteBuf; 11 import net.minecraft.network.codec.ByteBufCodecs; 11 import net.minecraft.network.codec.ByteBufCodecs; net/minecraft/world/item/trading/ItemCost.java --- 2/2 --- Java 50 } 50 } 51 51 52 public boolean test(ItemStack $$0) { 52 public boolean test(ItemStack $$0) { 53 return $$0.is(this.item) && this.components.test((DataComponentHo 53 return $$0.is(this.item) && this.components.test((DataComponentGe .. lder)$$0); .. tter)$$0); 54 } 54 } 55 } 55 } net/minecraft/world/level/block/entity/DecoratedPotBlockEntity.java --- 1/2 --- Java 5 import net.minecraft.core.BlockPos; 5 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.Direction; 6 import net.minecraft.core.Direction; 7 import net.minecraft.core.HolderLookup; 7 import net.minecraft.core.HolderLookup; . 8 import net.minecraft.core.component.DataComponentGetter; 8 import net.minecraft.core.component.DataComponentMap; 9 import net.minecraft.core.component.DataComponentMap; 9 import net.minecraft.core.component.DataComponents; 10 import net.minecraft.core.component.DataComponents; 10 import net.minecraft.nbt.CompoundTag; 11 import net.minecraft.nbt.CompoundTag; net/minecraft/world/level/block/entity/DecoratedPotBlockEntity.java --- 2/2 --- Java 111 } 112 } 112 113 113 @Override 114 @Override 114 protected void applyImplicitComponents(BlockEntity.DataComponentInp 115 protected void applyImplicitComponents(DataComponentGetter $$0) { ... ut $$0) { ... 115 super.applyImplicitComponents($$0); 116 super.applyImplicitComponents($$0); 116 this.decorations = $$0.getOrDefault(DataComponents.POT_DECORATIO 117 this.decorations = $$0.getOrDefault(DataComponents.POT_DECORATIO ... NS, PotDecorations.EMPTY); ... NS, PotDecorations.EMPTY); 117 this.item = $$0.getOrDefault(DataComponents.CONTAINER, ItemConta 118 this.item = $$0.getOrDefault(DataComponents.CONTAINER, ItemConta inerContents.EMPTY).copyOne(); inerContents.EMPTY).copyOne(); net/minecraft/world/level/block/entity/BeaconBeamOwner.java --- Java 1 package net.minecraft.world.level.block.entity; 2 3 import java.util.List; 4 5 public interface BeaconBeamOwner { 6 List<BeaconBeamOwner.Section> getBeamSections(); 7 8 public static class Section { 9 private final int color; 10 private int height; 11 12 public Section(int $$0) { 13 this.color = $$0; 14 this.height = 1; 15 } 16 17 public void increaseHeight() { 18 this.height++; 19 } 20 21 public int getColor() { 22 return this.color; 23 } 24 25 public int getHeight() { 26 return this.height; 27 } 28 } 29 } 30 net/minecraft/world/item/MaceItem.java --- 1/3 --- Java 62 $$5.setSpawnExtraParticlesOnFall(true); 62 $$5.setSpawnExtraParticlesOnFall(true); 63 } 63 } 64 64 65 SoundEvent $$6 = $$2.fallDistance > 5.0F ? SoundEvents.MACE 65 SoundEvent $$6 = $$2.fallDistance > 5.0 ? SoundEvents.MACE_ .. _SMASH_GROUND_HEAVY : SoundEvents.MACE_SMASH_GROUND; .. SMASH_GROUND_HEAVY : SoundEvents.MACE_SMASH_GROUND; 66 $$3.playSound(null, $$2.getX(), $$2.getY(), $$2.getZ(), $$6 66 $$3.playSound(null, $$2.getX(), $$2.getY(), $$2.getZ(), $$6 .. , $$2.getSoundSource(), 1.0F, 1.0F); .. , $$2.getSoundSource(), 1.0F, 1.0F); 67 } else { 67 } else { 68 $$3.playSound(null, $$2.getX(), $$2.getY(), $$2.getZ(), Sou 68 $$3.playSound(null, $$2.getX(), $$2.getY(), $$2.getZ(), Sou ndEvents.MACE_SMASH_AIR, $$2.getSoundSource(), 1.0F, 1.0F); ndEvents.MACE_SMASH_AIR, $$2.getSoundSource(), 1.0F, 1.0F); net/minecraft/world/item/MaceItem.java --- 2/3 --- Java 91 if (!canSmashAttack($$3)) { 91 if (!canSmashAttack($$3)) { 92 return 0.0F; 92 return 0.0F; 93 } else { 93 } else { 94 float $$5 = 3.0F; 94 double $$5 = 3.0; 95 float $$6 = 8.0F; 95 double $$6 = 8.0; 96 float $$7 = $$3.fallDistance; 96 double $$7 = $$3.fallDistance; 97 float $$8; 97 double $$8; 98 if ($$7 <= 3.0F) { 98 if ($$7 <= 3.0) { 99 $$8 = 4.0F * $$7; 99 $$8 = 4.0 * $$7; 100 } else if ($$7 <= 8.0F) { 100 } else if ($$7 <= 8.0) { 101 $$8 = 12.0F + 2.0F * ($$7 - 3.0F); 101 $$8 = 12.0 + 2.0 * ($$7 - 3.0); 102 } else { 102 } else { 103 $$8 = 22.0F + $$7 - 8.0F; 103 $$8 = 22.0 + $$7 - 8.0; 104 } 104 } 105 105 106 return $$3.level() instanceof ServerLevel $$11 106 return $$3.level() instanceof ServerLevel $$11 107 ? $$8 + EnchantmentHelper.modifyFallBasedDamage($$11, $ 107 ? (float)($$8 + (double)EnchantmentHelper.modifyFallBas ... $3.getWeaponItem(), $$0, $$2, 0.0F) * $$7 ... edDamage($$11, $$3.getWeaponItem(), $$0, $$2, 0.0F) * $$7) 108 : $$8; 108 : (float)$$8; 109 } 109 } 110 } else { 110 } else { 111 return 0.0F; 111 return 0.0F; net/minecraft/world/item/MaceItem.java --- 3/3 --- Java 163 } 163 } 164 164 165 private static double getKnockbackPower(Entity $$0, LivingEntity $$ 165 private static double getKnockbackPower(Entity $$0, LivingEntity $$ ... 1, Vec3 $$2) { ... 1, Vec3 $$2) { 166 return (3.5 - $$2.length()) * 0.7F * (double)($$0.fallDistance > 166 return (3.5 - $$2.length()) * 0.7F * (double)($$0.fallDistance > ... 5.0F ? 2 : 1) * (1.0 - $$1.getAttributeValue(Attributes.KNOCKBACK_RES ... 5.0 ? 2 : 1) * (1.0 - $$1.getAttributeValue(Attributes.KNOCKBACK_RESI ... ISTANCE)); ... STANCE)); 167 } 167 } 168 168 169 public static boolean canSmashAttack(LivingEntity $$0) { 169 public static boolean canSmashAttack(LivingEntity $$0) { 170 return $$0.fallDistance > 1.5F && !$$0.isFallFlying(); 170 return $$0.fallDistance > 1.5 && !$$0.isFallFlying(); 171 } 171 } 172 172 173 @Nullable 173 @Nullable net/minecraft/network/codec/StreamCodec.java --- 1/2 --- Java 7 import com.mojang.datafixers.util.Function6; 7 import com.mojang.datafixers.util.Function6; 8 import com.mojang.datafixers.util.Function7; 8 import com.mojang.datafixers.util.Function7; 9 import com.mojang.datafixers.util.Function8; 9 import com.mojang.datafixers.util.Function8; . 10 import com.mojang.datafixers.util.Function9; 10 import io.netty.buffer.ByteBuf; 11 import io.netty.buffer.ByteBuf; 11 import java.util.function.BiFunction; 12 import java.util.function.BiFunction; 12 import java.util.function.Function; 13 import java.util.function.Function; net/minecraft/network/codec/StreamCodec.java --- 2/2 --- Java 371 }; 372 }; 372 } 373 } ... 374 ... 375 static <B, C, T1, T2, T3, T4, T5, T6, T7, T8, T9> StreamCodec<B, C> ... ... composite( ... 376 final StreamCodec<? super B, T1> $$0, ... 377 final Function<C, T1> $$1, ... 378 final StreamCodec<? super B, T2> $$2, ... 379 final Function<C, T2> $$3, ... 380 final StreamCodec<? super B, T3> $$4, ... 381 final Function<C, T3> $$5, ... 382 final StreamCodec<? super B, T4> $$6, ... 383 final Function<C, T4> $$7, ... 384 final StreamCodec<? super B, T5> $$8, ... 385 final Function<C, T5> $$9, ... 386 final StreamCodec<? super B, T6> $$10, ... 387 final Function<C, T6> $$11, ... 388 final StreamCodec<? super B, T7> $$12, ... 389 final Function<C, T7> $$13, ... 390 final StreamCodec<? super B, T8> $$14, ... 391 final Function<C, T8> $$15, ... 392 final StreamCodec<? super B, T9> $$16, ... 393 final Function<C, T9> $$17, ... 394 final Function9<T1, T2, T3, T4, T5, T6, T7, T8, T9, C> $$18 ... 395 ) { ... 396 return new StreamCodec<B, C>() { ... 397 @Override ... 398 public C decode(B $$0x) { ... 399 T1 $$1 = $$0.decode($$0); ... 400 T2 $$2 = $$2.decode($$0); ... 401 T3 $$3 = $$4.decode($$0); ... 402 T4 $$4 = $$6.decode($$0); ... 403 T5 $$5 = $$8.decode($$0); ... 404 T6 $$6 = $$10.decode($$0); ... 405 T7 $$7 = $$12.decode($$0); ... 406 T8 $$8 = $$14.decode($$0); ... 407 T9 $$9 = $$16.decode($$0); ... 408 return $$18.apply($$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, ... ... $$9); ... 409 } ... 410 ... 411 @Override ... 412 public void encode(B $$0x, C $$1x) { ... 413 $$0.encode($$0, $$1.apply($$1)); ... 414 $$2.encode($$0, $$3.apply($$1)); ... 415 $$4.encode($$0, $$5.apply($$1)); ... 416 $$6.encode($$0, $$7.apply($$1)); ... 417 $$8.encode($$0, $$9.apply($$1)); ... 418 $$10.encode($$0, $$11.apply($$1)); ... 419 $$12.encode($$0, $$13.apply($$1)); ... 420 $$14.encode($$0, $$15.apply($$1)); ... 421 $$16.encode($$0, $$17.apply($$1)); ... 422 } ... 423 }; ... 424 } 373 425 374 static <B, T> StreamCodec<B, T> recursive(final UnaryOperator<Strea 426 static <B, T> StreamCodec<B, T> recursive(final UnaryOperator<Strea ... mCodec<B, T>> $$0) { ... mCodec<B, T>> $$0) { 375 return new StreamCodec<B, T>() { 427 return new StreamCodec<B, T>() { net/minecraft/client/multiplayer/chat/report/ReportEnvironment.java --- Java 44 44 45 private static String getClientVersion() { 45 private static String getClientVersion() { 46 StringBuilder $$0 = new StringBuilder(); 46 StringBuilder $$0 = new StringBuilder(); 47 $$0.append("25w02a"); 47 $$0.append("25w03a"); 48 if (Minecraft.checkModStatus().shouldReportAsModified()) { 48 if (Minecraft.checkModStatus().shouldReportAsModified()) { 49 $$0.append(" (modded)"); 49 $$0.append(" (modded)"); 50 } 50 } net/minecraft/core/component/DataComponentHolder.java --- 1/2 --- Java 3 import java.util.stream.Stream; 3 import java.util.stream.Stream; 4 import javax.annotation.Nullable; 4 import javax.annotation.Nullable; 5 5 6 public interface DataComponentHolder { 6 public interface DataComponentHolder extends DataComponentGetter { 7 DataComponentMap getComponents(); 7 DataComponentMap getComponents(); 8 8 9 @Nullable 9 @Nullable . 10 @Override 10 default <T> T get(DataComponentType<? extends T> $$0) { 11 default <T> T get(DataComponentType<? extends T> $$0) { 11 return this.getComponents().get($$0); 12 return this.getComponents().get($$0); 12 } 13 } net/minecraft/core/component/DataComponentHolder.java --- 2/2 --- Java 15 return this.getComponents().stream().map(TypedDataComponent::valu 16 return this.getComponents().stream().map(TypedDataComponent::valu .. e).filter($$1 -> $$0.isAssignableFrom($$1.getClass())).map($$0x -> (T)$ .. e).filter($$1 -> $$0.isAssignableFrom($$1.getClass())).map($$0x -> (T)$ .. $0x); .. $0x); 16 } 17 } 17 18 .. 19 @Override 18 default <T> T getOrDefault(DataComponentType<? extends T> $$0, T $$1 20 default <T> T getOrDefault(DataComponentType<? extends T> $$0, T $$1 .. ) { .. ) { 19 return this.getComponents().getOrDefault($$0, $$1); 21 return this.getComponents().getOrDefault($$0, $$1); 20 } 22 } net/minecraft/world/level/levelgen/structure/structures/OceanRuinPieces.java --- Java 270 Drowned $$6 = EntityType.DROWNED.create($$2.getLevel(), En 270 Drowned $$6 = EntityType.DROWNED.create($$2.getLevel(), En ... titySpawnReason.STRUCTURE); ... titySpawnReason.STRUCTURE); 271 if ($$6 != null) { 271 if ($$6 != null) { 272 $$6.setPersistenceRequired(); 272 $$6.setPersistenceRequired(); 273 $$6.moveTo($$1, 0.0F, 0.0F); 273 $$6.snapTo($$1, 0.0F, 0.0F); 274 $$6.finalizeSpawn($$2, $$2.getCurrentDifficultyAt($$1), 274 $$6.finalizeSpawn($$2, $$2.getCurrentDifficultyAt($$1), ... EntitySpawnReason.STRUCTURE, null); ... EntitySpawnReason.STRUCTURE, null); 275 $$2.addFreshEntityWithPassengers($$6); 275 $$2.addFreshEntityWithPassengers($$6); 276 if ($$1.getY() > $$2.getSeaLevel()) { 276 if ($$1.getY() > $$2.getSeaLevel()) { net/minecraft/core/component/DataComponentMap.java --- 1/2 --- Java 19 import java.util.stream.StreamSupport; 19 import java.util.stream.StreamSupport; 20 import javax.annotation.Nullable; 20 import javax.annotation.Nullable; 21 21 22 public interface DataComponentMap extends Iterable<TypedDataComponent<? 22 public interface DataComponentMap extends Iterable<TypedDataComponent<? .. >> { .. >>, DataComponentGetter { 23 DataComponentMap EMPTY = new DataComponentMap() { 23 DataComponentMap EMPTY = new DataComponentMap() { 24 @Nullable 24 @Nullable 25 @Override 25 @Override net/minecraft/core/component/DataComponentMap.java --- 2/2 --- Java 82 return new DataComponentMap.Builder(); 82 return new DataComponentMap.Builder(); 83 } 83 } 84 .. 85 @Nullable .. 86 <T> T get(DataComponentType<? extends T> var1); .. 87 84 88 Set<DataComponentType<?>> keySet(); 85 Set<DataComponentType<?>> keySet(); 89 86 90 default boolean has(DataComponentType<?> $$0) { 87 default boolean has(DataComponentType<?> $$0) { 91 return this.get($$0) != null; 88 return this.get($$0) != null; 92 } 89 } 93 .. 94 default <T> T getOrDefault(DataComponentType<? extends T> $$0, T $$ .. .. 1) { .. 95 T $$2 = this.get($$0); .. 96 return $$2 != null ? $$2 : $$1; .. 97 } .. 98 .. 99 @Nullable .. 100 default <T> TypedDataComponent<T> getTyped(DataComponentType<T> $$0 .. ... ) { .. 101 T $$1 = this.get($$0); .. 102 return $$1 != null ? new TypedDataComponent<>($$0, $$1) : null; .. 103 } .. 104 90 105 @Override 91 @Override 106 default Iterator<TypedDataComponent<?>> iterator() { 92 default Iterator<TypedDataComponent<?>> iterator() { net/minecraft/world/level/block/entity/CreakingHeartBlockEntity.java --- Java 301 } 301 } 302 302 303 @Override 303 @Override 304 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1, bool 304 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1) { ... ean $$2) { ... 305 this.removeProtector(null); 305 this.removeProtector(null); 306 } 306 } 307 307 net/minecraft/commands/Commands.java --- 1/2 --- Java 206 TeamMsgCommand.register(this.dispatcher); 206 TeamMsgCommand.register(this.dispatcher); 207 TeleportCommand.register(this.dispatcher); 207 TeleportCommand.register(this.dispatcher); 208 TellRawCommand.register(this.dispatcher, $$1); 208 TellRawCommand.register(this.dispatcher, $$1); ... 209 TestCommand.register(this.dispatcher, $$1); 209 TickCommand.register(this.dispatcher); 210 TickCommand.register(this.dispatcher); 210 TimeCommand.register(this.dispatcher); 211 TimeCommand.register(this.dispatcher); 211 TitleCommand.register(this.dispatcher, $$1); 212 TitleCommand.register(this.dispatcher, $$1); net/minecraft/commands/Commands.java --- 2/2 --- Java 217 } 218 } 218 219 219 if (SharedConstants.IS_RUNNING_IN_IDE) { 220 if (SharedConstants.IS_RUNNING_IN_IDE) { 220 TestCommand.register(this.dispatcher); ... 221 RaidCommand.register(this.dispatcher, $$1); 221 RaidCommand.register(this.dispatcher, $$1); 222 DebugPathCommand.register(this.dispatcher); 222 DebugPathCommand.register(this.dispatcher); 223 DebugMobSpawningCommand.register(this.dispatcher); 223 DebugMobSpawningCommand.register(this.dispatcher); net/minecraft/world/item/SaddleItem.java --- Java 1 package net.minecraft.world.item; 2 3 import net.minecraft.sounds.SoundSource; 4 import net.minecraft.world.InteractionHand; 5 import net.minecraft.world.InteractionResult; 6 import net.minecraft.world.entity.LivingEntity; 7 import net.minecraft.world.entity.Saddleable; 8 import net.minecraft.world.entity.player.Player; 9 import net.minecraft.world.level.gameevent.GameEvent; 10 11 public class SaddleItem extends Item { 12 public SaddleItem(Item.Properties $$0) { 13 super($$0); 14 } 15 16 @Override 17 public InteractionResult interactLivingEntity(ItemStack $$0, Player $$1, LivingEntity $$2, InteractionHand $$3) { 18 if ($$2 instanceof Saddleable $$4 && $$2.isAlive() && !$$4.isSaddled() && $$4.isSaddleable()) { 19 if (!$$1.level().isClientSide) { 20 $$4.equipSaddle($$0.split(1), SoundSource.NEUTRAL); 21 $$2.level().gameEvent($$2, GameEvent.EQUIP, $$2.position()); 22 } 23 24 return InteractionResult.SUCCESS; 25 } 26 27 return InteractionResult.PASS; 28 } 29 } 30 net/minecraft/server/commands/CloneCommands.java --- 1/5 --- Java 53 } 53 } 54 54 55 private static ArgumentBuilder<CommandSourceStack, ?> beginEndDestin 55 private static ArgumentBuilder<CommandSourceStack, ?> beginEndDestin .. ationAndModeSuffix( .. ationAndModeSuffix( 56 CommandBuildContext $$0, CloneCommands.CommandFunction<CommandCon 56 CommandBuildContext $$0, InCommandFunction<CommandContext<Command .. text<CommandSourceStack>, ServerLevel> $$1 .. SourceStack>, ServerLevel> $$1 57 ) { 57 ) { 58 return Commands.argument("begin", BlockPosArgument.blockPos()) 58 return Commands.argument("begin", BlockPosArgument.blockPos()) 59 .then( 59 .then( net/minecraft/server/commands/CloneCommands.java --- 2/5 --- Java 76 76 77 private static ArgumentBuilder<CommandSourceStack, ?> destinationAnd 77 private static ArgumentBuilder<CommandSourceStack, ?> destinationAnd .. StrictSuffix( .. StrictSuffix( 78 CommandBuildContext $$0, 78 CommandBuildContext $$0, 79 CloneCommands.CommandFunction<CommandContext<CommandSourceStack>, 79 InCommandFunction<CommandContext<CommandSourceStack>, ServerLevel .. ServerLevel> $$1, .. > $$1, 80 CloneCommands.CommandFunction<CommandContext<CommandSourceStack>, 80 InCommandFunction<CommandContext<CommandSourceStack>, ServerLevel .. ServerLevel> $$2 .. > $$2 81 ) { 81 ) { 82 CloneCommands.CommandFunction<CommandContext<CommandSourceStack>, 82 InCommandFunction<CommandContext<CommandSourceStack>, CloneComman .. CloneCommands.DimensionAndPosition> $$3 = $$1x -> getLoadedDimensionAn .. ds.DimensionAndPosition> $$3 = $$1x -> getLoadedDimensionAndPosition( .. dPosition( .. 83 $$1x, $$1.apply($$1x), "begin" 83 $$1x, $$1.apply($$1x), "begin" 84 ); 84 ); 85 CloneCommands.CommandFunction<CommandContext<CommandSourceStack>, 85 InCommandFunction<CommandContext<CommandSourceStack>, CloneComman .. CloneCommands.DimensionAndPosition> $$4 = $$1x -> getLoadedDimensionAn .. ds.DimensionAndPosition> $$4 = $$1x -> getLoadedDimensionAndPosition( .. dPosition( .. 86 $$1x, $$1.apply($$1x), "end" 86 $$1x, $$1.apply($$1x), "end" 87 ); 87 ); 88 CloneCommands.CommandFunction<CommandContext<CommandSourceStack>, 88 InCommandFunction<CommandContext<CommandSourceStack>, CloneComman .. CloneCommands.DimensionAndPosition> $$5 = $$1x -> getLoadedDimensionAn .. ds.DimensionAndPosition> $$5 = $$1x -> getLoadedDimensionAndPosition( .. dPosition( .. 89 $$1x, $$2.apply($$1x), "destination" 89 $$1x, $$2.apply($$1x), "destination" 90 ); 90 ); 91 return modeSuffix($$0, $$3, $$4, $$5, false, Commands.argument("d 91 return modeSuffix($$0, $$3, $$4, $$5, false, Commands.argument("d estination", BlockPosArgument.blockPos())) estination", BlockPosArgument.blockPos())) net/minecraft/server/commands/CloneCommands.java --- 3/5 --- Java 94 94 95 private static ArgumentBuilder<CommandSourceStack, ?> modeSuffix( 95 private static ArgumentBuilder<CommandSourceStack, ?> modeSuffix( 96 CommandBuildContext $$0, 96 CommandBuildContext $$0, 97 CloneCommands.CommandFunction<CommandContext<CommandSourceStack> 97 InCommandFunction<CommandContext<CommandSourceStack>, CloneComma .. , CloneCommands.DimensionAndPosition> $$1, .. nds.DimensionAndPosition> $$1, 98 CloneCommands.CommandFunction<CommandContext<CommandSourceStack> 98 InCommandFunction<CommandContext<CommandSourceStack>, CloneComma .. , CloneCommands.DimensionAndPosition> $$2, .. nds.DimensionAndPosition> $$2, 99 CloneCommands.CommandFunction<CommandContext<CommandSourceStack> 99 InCommandFunction<CommandContext<CommandSourceStack>, CloneComma .. , CloneCommands.DimensionAndPosition> $$3, .. nds.DimensionAndPosition> $$3, 100 boolean $$4, 100 boolean $$4, 101 ArgumentBuilder<CommandSourceStack, ?> $$5 101 ArgumentBuilder<CommandSourceStack, ?> $$5 102 ) { 102 ) { net/minecraft/server/commands/CloneCommands.java --- 4/5 --- Java 123 } 123 } 124 124 125 private static ArgumentBuilder<CommandSourceStack, ?> wrapWithClone 125 private static ArgumentBuilder<CommandSourceStack, ?> wrapWithClone ... Mode( ... Mode( 126 CloneCommands.CommandFunction<CommandContext<CommandSourceStack> 126 InCommandFunction<CommandContext<CommandSourceStack>, CloneComma ... , CloneCommands.DimensionAndPosition> $$0, ... nds.DimensionAndPosition> $$0, 127 CloneCommands.CommandFunction<CommandContext<CommandSourceStack> 127 InCommandFunction<CommandContext<CommandSourceStack>, CloneComma ... , CloneCommands.DimensionAndPosition> $$1, ... nds.DimensionAndPosition> $$1, 128 CloneCommands.CommandFunction<CommandContext<CommandSourceStack> 128 InCommandFunction<CommandContext<CommandSourceStack>, CloneComma ... , CloneCommands.DimensionAndPosition> $$2, ... nds.DimensionAndPosition> $$2, 129 CloneCommands.CommandFunction<CommandContext<CommandSourceStack> 129 InCommandFunction<CommandContext<CommandSourceStack>, Predicate< ... , Predicate<BlockInWorld>> $$3, ... BlockInWorld>> $$3, 130 boolean $$4, 130 boolean $$4, 131 ArgumentBuilder<CommandSourceStack, ?> $$5 131 ArgumentBuilder<CommandSourceStack, ?> $$5 132 ) { 132 ) { net/minecraft/server/commands/CloneCommands.java --- 5/5 --- Java 297 static record CloneBlockInfo(BlockPos pos, BlockState state, @Nulla 297 static record CloneBlockInfo(BlockPos pos, BlockState state, @Nulla ... ble CloneCommands.CloneBlockEntityInfo blockEntityInfo) { ... ble CloneCommands.CloneBlockEntityInfo blockEntityInfo) { 298 } 298 } 299 ... 300 @FunctionalInterface ... 301 interface CommandFunction<T, R> { ... 302 R apply(T var1) throws CommandSyntaxException; ... 303 } ... 304 299 305 static record DimensionAndPosition(ServerLevel dimension, BlockPos 300 static record DimensionAndPosition(ServerLevel dimension, BlockPos ... position) { ... position) { 306 } 301 } net/minecraft/world/level/block/entity/BannerBlockEntity.java --- 1/2 --- Java 4 import javax.annotation.Nullable; 4 import javax.annotation.Nullable; 5 import net.minecraft.core.BlockPos; 5 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.HolderLookup; 6 import net.minecraft.core.HolderLookup; . 7 import net.minecraft.core.component.DataComponentGetter; 7 import net.minecraft.core.component.DataComponentMap; 8 import net.minecraft.core.component.DataComponentMap; 8 import net.minecraft.core.component.DataComponents; 9 import net.minecraft.core.component.DataComponents; 9 import net.minecraft.nbt.CompoundTag; 10 import net.minecraft.nbt.CompoundTag; net/minecraft/world/level/block/entity/BannerBlockEntity.java --- 2/2 --- Java 102 } 103 } 103 104 104 @Override 105 @Override 105 protected void applyImplicitComponents(BlockEntity.DataComponentInp 106 protected void applyImplicitComponents(DataComponentGetter $$0) { ... ut $$0) { ... 106 super.applyImplicitComponents($$0); 107 super.applyImplicitComponents($$0); 107 this.patterns = $$0.getOrDefault(DataComponents.BANNER_PATTERNS, 108 this.patterns = $$0.getOrDefault(DataComponents.BANNER_PATTERNS, ... BannerPatternLayers.EMPTY); ... BannerPatternLayers.EMPTY); 108 this.name = $$0.get(DataComponents.CUSTOM_NAME); 109 this.name = $$0.get(DataComponents.CUSTOM_NAME); net/minecraft/world/item/enchantment/effects/SummonEntityEffect.java --- Java 44 $$0.getScoreboard().addPlayerToTeam($$7.getScoreboard 44 $$0.getScoreboard().addPlayerToTeam($$7.getScoreboard .. Name(), $$3.getTeam()); .. Name(), $$3.getTeam()); 45 } 45 } 46 46 47 $$7.moveTo($$4.x, $$4.y, $$4.z, $$7.getYRot(), $$7.getXR 47 $$7.snapTo($$4.x, $$4.y, $$4.z, $$7.getYRot(), $$7.getXR .. ot()); .. ot()); 48 } 48 } 49 } 49 } 50 } 50 } net/minecraft/util/FileSystemUtil.java --- Java 1 package net.minecraft.util; 2 3 import com.mojang.logging.LogUtils; 4 import java.io.IOException; 5 import java.net.URI; 6 import java.nio.file.FileSystemAlreadyExistsException; 7 import java.nio.file.FileSystemNotFoundException; 8 import java.nio.file.FileSystems; 9 import java.nio.file.Path; 10 import java.nio.file.Paths; 11 import java.util.Collections; 12 import org.slf4j.Logger; 13 14 public class FileSystemUtil { 15 private static final Logger LOGGER = LogUtils.getLogger(); 16 17 public static Path safeGetPath(URI $$0) throws IOException { 18 try { 19 return Paths.get($$0); 20 } catch (FileSystemNotFoundException var3) { 21 } catch (Throwable var4) { 22 LOGGER.warn("Unable to get path for: {}", $$0, var4); 23 } 24 25 try { 26 FileSystems.newFileSystem($$0, Collections.emptyMap()); 27 } catch (FileSystemAlreadyExistsException var2) { 28 } 29 30 return Paths.get($$0); 31 } 32 } 33 net/minecraft/world/level/block/entity/CommandBlockEntity.java --- 1/2 --- Java 4 import net.minecraft.core.BlockPos; 4 import net.minecraft.core.BlockPos; 5 import net.minecraft.core.Direction; 5 import net.minecraft.core.Direction; 6 import net.minecraft.core.HolderLookup; 6 import net.minecraft.core.HolderLookup; . 7 import net.minecraft.core.component.DataComponentGetter; 7 import net.minecraft.core.component.DataComponentMap; 8 import net.minecraft.core.component.DataComponentMap; 8 import net.minecraft.core.component.DataComponents; 9 import net.minecraft.core.component.DataComponents; 9 import net.minecraft.nbt.CompoundTag; 10 import net.minecraft.nbt.CompoundTag; net/minecraft/world/level/block/entity/CommandBlockEntity.java --- 2/2 --- Java 162 } 163 } 163 164 164 @Override 165 @Override 165 protected void applyImplicitComponents(BlockEntity.DataComponentInp 166 protected void applyImplicitComponents(DataComponentGetter $$0) { ... ut $$0) { ... 166 super.applyImplicitComponents($$0); 167 super.applyImplicitComponents($$0); 167 this.commandBlock.setCustomName($$0.get(DataComponents.CUSTOM_NA 168 this.commandBlock.setCustomName($$0.get(DataComponents.CUSTOM_NA ... ME)); ... ME)); 168 } 169 } net/minecraft/core/registries/Registries.java --- 1/4 --- Java 1 package net.minecraft.core.registries; 1 package net.minecraft.core.registries; 2 2 3 import com.mojang.serialization.MapCodec; 3 import com.mojang.serialization.MapCodec; . 4 import java.util.function.Consumer; 4 import net.minecraft.advancements.Advancement; 5 import net.minecraft.advancements.Advancement; 5 import net.minecraft.advancements.CriterionTrigger; 6 import net.minecraft.advancements.CriterionTrigger; 6 import net.minecraft.advancements.critereon.EntitySubPredicate; 7 import net.minecraft.advancements.critereon.EntitySubPredicate; net/minecraft/core/registries/Registries.java --- 2/4 --- Java 9 import net.minecraft.core.Registry; 10 import net.minecraft.core.Registry; 10 import net.minecraft.core.component.DataComponentType; 11 import net.minecraft.core.component.DataComponentType; 11 import net.minecraft.core.particles.ParticleType; 12 import net.minecraft.core.particles.ParticleType; .. 13 import net.minecraft.gametest.framework.GameTestHelper; .. 14 import net.minecraft.gametest.framework.GameTestInstance; .. 15 import net.minecraft.gametest.framework.TestEnvironmentDefinition; 12 import net.minecraft.network.chat.ChatType; 16 import net.minecraft.network.chat.ChatType; 13 import net.minecraft.network.chat.numbers.NumberFormatType; 17 import net.minecraft.network.chat.numbers.NumberFormatType; 14 import net.minecraft.resources.ResourceKey; 18 import net.minecraft.resources.ResourceKey; net/minecraft/core/registries/Registries.java --- 3/4 --- Java 213 public static final ResourceKey<Registry<SlotDisplay.Type<?>>> SLOT 217 public static final ResourceKey<Registry<SlotDisplay.Type<?>>> SLOT ... _DISPLAY = createRegistryKey("slot_display"); ... _DISPLAY = createRegistryKey("slot_display"); 214 public static final ResourceKey<Registry<RecipeBookCategory>> RECIP 218 public static final ResourceKey<Registry<RecipeBookCategory>> RECIP ... E_BOOK_CATEGORY = createRegistryKey("recipe_book_category"); ... E_BOOK_CATEGORY = createRegistryKey("recipe_book_category"); 215 public static final ResourceKey<Registry<TicketType>> TICKET_TYPE = 219 public static final ResourceKey<Registry<TicketType>> TICKET_TYPE = ... createRegistryKey("ticket_type"); ... createRegistryKey("ticket_type"); ... 220 public static final ResourceKey<Registry<Consumer<GameTestHelper>>> ... ... TEST_FUNCTION = createRegistryKey("test_function"); ... 221 public static final ResourceKey<Registry<MapCodec<? extends TestEnv ... ... ironmentDefinition>>> TEST_ENVIRONMENT_DEFINITION_TYPE = createRegistr ... ... yKey( ... 222 "test_environment_definition_type" ... 223 ); ... 224 public static final ResourceKey<Registry<MapCodec<? extends GameTes ... ... tInstance>>> TEST_INSTANCE_TYPE = createRegistryKey("test_instance_typ ... ... e"); 216 public static final ResourceKey<Registry<Biome>> BIOME = createRegi 225 public static final ResourceKey<Registry<Biome>> BIOME = createRegi ... stryKey("worldgen/biome"); ... stryKey("worldgen/biome"); 217 public static final ResourceKey<Registry<ChatType>> CHAT_TYPE = cre 226 public static final ResourceKey<Registry<ChatType>> CHAT_TYPE = cre ... ateRegistryKey("chat_type"); ... ateRegistryKey("chat_type"); 218 public static final ResourceKey<Registry<ConfiguredWorldCarver<?>>> 227 public static final ResourceKey<Registry<ConfiguredWorldCarver<?>>> CONFIGURED_CARVER = createRegistryKey("worldgen/configured_carver"); CONFIGURED_CARVER = createRegistryKey("worldgen/configured_carver"); net/minecraft/core/registries/Registries.java --- 4/4 --- Java 231 public static final ResourceKey<Registry<StructureSet>> STRUCTURE_S 240 public static final ResourceKey<Registry<StructureSet>> STRUCTURE_S ... ET = createRegistryKey("worldgen/structure_set"); ... ET = createRegistryKey("worldgen/structure_set"); 232 public static final ResourceKey<Registry<StructureTemplatePool>> TE 241 public static final ResourceKey<Registry<StructureTemplatePool>> TE ... MPLATE_POOL = createRegistryKey("worldgen/template_pool"); ... MPLATE_POOL = createRegistryKey("worldgen/template_pool"); 233 public static final ResourceKey<Registry<CriterionTrigger<?>>> TRIG 242 public static final ResourceKey<Registry<CriterionTrigger<?>>> TRIG ... GER_TYPE = createRegistryKey("trigger_type"); ... GER_TYPE = createRegistryKey("trigger_type"); ... 243 public static final ResourceKey<Registry<TestEnvironmentDefinition> ... ... > TEST_ENVIRONMENT = createRegistryKey("test_environment"); ... 244 public static final ResourceKey<Registry<GameTestInstance>> TEST_IN ... ... STANCE = createRegistryKey("test_instance"); 234 public static final ResourceKey<Registry<TrimMaterial>> TRIM_MATERI 245 public static final ResourceKey<Registry<TrimMaterial>> TRIM_MATERI ... AL = createRegistryKey("trim_material"); ... AL = createRegistryKey("trim_material"); 235 public static final ResourceKey<Registry<TrimPattern>> TRIM_PATTERN 246 public static final ResourceKey<Registry<TrimPattern>> TRIM_PATTERN ... = createRegistryKey("trim_pattern"); ... = createRegistryKey("trim_pattern"); 236 public static final ResourceKey<Registry<WorldPreset>> WORLD_PRESET 247 public static final ResourceKey<Registry<WorldPreset>> WORLD_PRESET = createRegistryKey("worldgen/world_preset"); = createRegistryKey("worldgen/world_preset"); net/minecraft/client/renderer/entity/AbstractHorseRenderer.java --- 1/2 --- Java 4 import net.fabricmc.api.Environment; 4 import net.fabricmc.api.Environment; 5 import net.minecraft.client.model.EntityModel; 5 import net.minecraft.client.model.EntityModel; 6 import net.minecraft.client.renderer.entity.state.EquineRenderState; 6 import net.minecraft.client.renderer.entity.state.EquineRenderState; . 7 import net.minecraft.world.entity.EquipmentSlot; 7 import net.minecraft.world.entity.animal.horse.AbstractHorse; 8 import net.minecraft.world.entity.animal.horse.AbstractHorse; 8 9 9 @Environment(EnvType.CLIENT) 10 @Environment(EnvType.CLIENT) net/minecraft/client/renderer/entity/AbstractHorseRenderer.java --- 2/2 --- Java 15 16 16 public void extractRenderState(T $$0, S $$1, float $$2) { 17 public void extractRenderState(T $$0, S $$1, float $$2) { 17 super.extractRenderState($$0, $$1, $$2); 18 super.extractRenderState($$0, $$1, $$2); 18 $$1.isSaddled = $$0.isSaddled(); 19 $$1.saddle = $$0.getItemBySlot(EquipmentSlot.SADDLE).copy(); 19 $$1.isRidden = $$0.isVehicle(); 20 $$1.isRidden = $$0.isVehicle(); 20 $$1.eatAnimation = $$0.getEatAnim($$2); 21 $$1.eatAnimation = $$0.getEatAnim($$2); 21 $$1.standAnimation = $$0.getStandAnim($$2); 22 $$1.standAnimation = $$0.getStandAnim($$2); net/minecraft/network/protocol/game/GameProtocols.java --- 1/2 --- Java 88 .addPacket(GamePacketTypes.SERVERBOUND_SET_CREATIVE_MODE_SL 88 .addPacket(GamePacketTypes.SERVERBOUND_SET_CREATIVE_MODE_SL .. OT, ServerboundSetCreativeModeSlotPacket.STREAM_CODEC) .. OT, ServerboundSetCreativeModeSlotPacket.STREAM_CODEC) 89 .addPacket(GamePacketTypes.SERVERBOUND_SET_JIGSAW_BLOCK, Se 89 .addPacket(GamePacketTypes.SERVERBOUND_SET_JIGSAW_BLOCK, Se .. rverboundSetJigsawBlockPacket.STREAM_CODEC) .. rverboundSetJigsawBlockPacket.STREAM_CODEC) 90 .addPacket(GamePacketTypes.SERVERBOUND_SET_STRUCTURE_BLOCK, 90 .addPacket(GamePacketTypes.SERVERBOUND_SET_STRUCTURE_BLOCK, .. ServerboundSetStructureBlockPacket.STREAM_CODEC) .. ServerboundSetStructureBlockPacket.STREAM_CODEC) .. 91 .addPacket(GamePacketTypes.SERVERBOUND_SET_TEST_BLOCK, Serv .. .. erboundSetTestBlockPacket.STREAM_CODEC) 91 .addPacket(GamePacketTypes.SERVERBOUND_SIGN_UPDATE, Serverb 92 .addPacket(GamePacketTypes.SERVERBOUND_SIGN_UPDATE, Serverb .. oundSignUpdatePacket.STREAM_CODEC) .. oundSignUpdatePacket.STREAM_CODEC) 92 .addPacket(GamePacketTypes.SERVERBOUND_SWING, ServerboundSw 93 .addPacket(GamePacketTypes.SERVERBOUND_SWING, ServerboundSw .. ingPacket.STREAM_CODEC) .. ingPacket.STREAM_CODEC) .. 94 .addPacket(GamePacketTypes.SERVERBOUND_TELEPORT_TO_ENTITY, .. .. ServerboundTeleportToEntityPacket.STREAM_CODEC) 93 .addPacket(GamePacketTypes.SERVERBOUND_TELEPORT_TO_ENTITY, 95 .addPacket(GamePacketTypes.SERVERBOUND_TEST_INSTANCE_BLOCK_ .. ServerboundTeleportToEntityPacket.STREAM_CODEC) .. ACTION, ServerboundTestInstanceBlockActionPacket.STREAM_CODEC) 94 .addPacket(GamePacketTypes.SERVERBOUND_USE_ITEM_ON, Serverb 96 .addPacket(GamePacketTypes.SERVERBOUND_USE_ITEM_ON, Serverb .. oundUseItemOnPacket.STREAM_CODEC) .. oundUseItemOnPacket.STREAM_CODEC) 95 .addPacket(GamePacketTypes.SERVERBOUND_USE_ITEM, Serverboun 97 .addPacket(GamePacketTypes.SERVERBOUND_USE_ITEM, Serverboun .. dUseItemPacket.STREAM_CODEC) .. dUseItemPacket.STREAM_CODEC) 96 ); 98 ); net/minecraft/network/protocol/game/GameProtocols.java --- 2/2 --- Java 215 .addPacket(GamePacketTypes.CLIENTBOUND_TAG_QUERY, Clientbo 217 .addPacket(GamePacketTypes.CLIENTBOUND_TAG_QUERY, Clientbo ... undTagQueryPacket.STREAM_CODEC) ... undTagQueryPacket.STREAM_CODEC) 216 .addPacket(GamePacketTypes.CLIENTBOUND_TAKE_ITEM_ENTITY, C 218 .addPacket(GamePacketTypes.CLIENTBOUND_TAKE_ITEM_ENTITY, C ... lientboundTakeItemEntityPacket.STREAM_CODEC) ... lientboundTakeItemEntityPacket.STREAM_CODEC) 217 .addPacket(GamePacketTypes.CLIENTBOUND_TELEPORT_ENTITY, Cl 219 .addPacket(GamePacketTypes.CLIENTBOUND_TELEPORT_ENTITY, Cl ... ientboundTeleportEntityPacket.STREAM_CODEC) ... ientboundTeleportEntityPacket.STREAM_CODEC) ... 220 .addPacket(GamePacketTypes.CLIENTBOUND_TEST_INSTANCE_BLOCK ... ... _STATUS, ClientboundTestInstanceBlockStatus.STREAM_CODEC) 218 .addPacket(GamePacketTypes.CLIENTBOUND_TICKING_STATE, Clie 221 .addPacket(GamePacketTypes.CLIENTBOUND_TICKING_STATE, Clie ... ntboundTickingStatePacket.STREAM_CODEC) ... ntboundTickingStatePacket.STREAM_CODEC) 219 .addPacket(GamePacketTypes.CLIENTBOUND_TICKING_STEP, Clien 222 .addPacket(GamePacketTypes.CLIENTBOUND_TICKING_STEP, Clien ... tboundTickingStepPacket.STREAM_CODEC) ... tboundTickingStepPacket.STREAM_CODEC) 220 .addPacket(CommonPacketTypes.CLIENTBOUND_TRANSFER, Clientb 223 .addPacket(CommonPacketTypes.CLIENTBOUND_TRANSFER, Clientb oundTransferPacket.STREAM_CODEC) oundTransferPacket.STREAM_CODEC) net/minecraft/server/commands/FillCommand.java --- 1/2 --- Java 100 private static ArgumentBuilder<CommandSourceStack, ?> wrapWithMode( 100 private static ArgumentBuilder<CommandSourceStack, ?> wrapWithMode( 101 CommandBuildContext $$0, 101 CommandBuildContext $$0, 102 ArgumentBuilder<CommandSourceStack, ?> $$1, 102 ArgumentBuilder<CommandSourceStack, ?> $$1, 103 FillCommand.CommandFunction<CommandContext<CommandSourceStack>, 103 InCommandFunction<CommandContext<CommandSourceStack>, BlockPos> ... BlockPos> $$2, ... $$2, 104 FillCommand.CommandFunction<CommandContext<CommandSourceStack>, 104 InCommandFunction<CommandContext<CommandSourceStack>, BlockPos> ... BlockPos> $$3, ... $$3, 105 FillCommand.CommandFunction<CommandContext<CommandSourceStack>, 105 InCommandFunction<CommandContext<CommandSourceStack>, BlockInput ... BlockInput> $$4, ... > $$4, 106 FillCommand.NullableCommandFunction<CommandContext<CommandSource 106 FillCommand.NullableCommandFunction<CommandContext<CommandSource ... Stack>, Predicate<BlockInWorld>> $$5 ... Stack>, Predicate<BlockInWorld>> $$5 107 ) { 107 ) { 108 return $$1.executes( 108 return $$1.executes( net/minecraft/server/commands/FillCommand.java --- 2/2 --- Java 233 boolean affect(ServerLevel var1, BlockPos var2); 233 boolean affect(ServerLevel var1, BlockPos var2); 234 } 234 } 235 ... 236 @FunctionalInterface ... 237 interface CommandFunction<T, R> { ... 238 R apply(T var1) throws CommandSyntaxException; ... 239 } ... 240 235 241 @FunctionalInterface 236 @FunctionalInterface 242 public interface Filter { 237 public interface Filter { net/minecraft/world/level/block/entity/CampfireBlockEntity.java --- 1/3 --- Java 6 import net.minecraft.core.Direction; 6 import net.minecraft.core.Direction; 7 import net.minecraft.core.HolderLookup; 7 import net.minecraft.core.HolderLookup; 8 import net.minecraft.core.NonNullList; 8 import net.minecraft.core.NonNullList; . 9 import net.minecraft.core.component.DataComponentGetter; 9 import net.minecraft.core.component.DataComponentMap; 10 import net.minecraft.core.component.DataComponentMap; 10 import net.minecraft.core.component.DataComponents; 11 import net.minecraft.core.component.DataComponents; 11 import net.minecraft.core.particles.ParticleTypes; 12 import net.minecraft.core.particles.ParticleTypes; net/minecraft/world/level/block/entity/CampfireBlockEntity.java --- 2/3 --- Java 180 } 181 } 181 182 182 @Override 183 @Override 183 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1, bool 184 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1) { ... ean $$2) { ... 184 if (this.level != null) { 185 if (this.level != null) { 185 Containers.dropContents(this.level, $$0, this.getItems()); 186 Containers.dropContents(this.level, $$0, this.getItems()); 186 } 187 } net/minecraft/world/level/block/entity/CampfireBlockEntity.java --- 3/3 --- Java 193 } 194 } 194 195 195 @Override 196 @Override 196 protected void applyImplicitComponents(BlockEntity.DataComponentInp 197 protected void applyImplicitComponents(DataComponentGetter $$0) { ... ut $$0) { ... 197 super.applyImplicitComponents($$0); 198 super.applyImplicitComponents($$0); 198 $$0.getOrDefault(DataComponents.CONTAINER, ItemContainerContents 199 $$0.getOrDefault(DataComponents.CONTAINER, ItemContainerContents ... .EMPTY).copyInto(this.getItems()); ... .EMPTY).copyInto(this.getItems()); 199 } 200 } net/minecraft/world/inventory/ArmorSlot.java --- Java 36 36 37 @Override 37 @Override 38 public boolean mayPlace(ItemStack $$0) { 38 public boolean mayPlace(ItemStack $$0) { 39 return this.slot == this.owner.getEquipmentSlotForItem($$0); 39 return this.owner.isEquippableInSlot($$0, this.slot); 40 } 40 } .. 41 .. 42 @Override .. 43 public boolean isActive() { .. 44 return this.owner.canUseSlot(this.slot); .. 45 } 41 46 42 @Override 47 @Override 43 public boolean mayPickup(Player $$0) { 48 public boolean mayPickup(Player $$0) { net/minecraft/core/registries/BuiltInRegistries.java --- 1/4 --- Java 5 import com.mojang.serialization.Lifecycle; 5 import com.mojang.serialization.Lifecycle; 6 import com.mojang.serialization.MapCodec; 6 import com.mojang.serialization.MapCodec; 7 import java.util.Map; 7 import java.util.Map; . 8 import java.util.function.Consumer; 8 import java.util.function.Supplier; 9 import java.util.function.Supplier; 9 import net.minecraft.Util; 10 import net.minecraft.Util; 10 import net.minecraft.advancements.CriteriaTriggers; 11 import net.minecraft.advancements.CriteriaTriggers; net/minecraft/core/registries/BuiltInRegistries.java --- 2/4 --- Java 26 import net.minecraft.core.component.DataComponents; 27 import net.minecraft.core.component.DataComponents; 27 import net.minecraft.core.particles.ParticleType; 28 import net.minecraft.core.particles.ParticleType; 28 import net.minecraft.core.particles.ParticleTypes; 29 import net.minecraft.core.particles.ParticleTypes; .. 30 import net.minecraft.gametest.framework.BuiltinTestFunctions; .. 31 import net.minecraft.gametest.framework.GameTestHelper; .. 32 import net.minecraft.gametest.framework.GameTestInstance; .. 33 import net.minecraft.gametest.framework.TestEnvironmentDefinition; 29 import net.minecraft.network.chat.numbers.NumberFormatType; 34 import net.minecraft.network.chat.numbers.NumberFormatType; 30 import net.minecraft.network.chat.numbers.NumberFormatTypes; 35 import net.minecraft.network.chat.numbers.NumberFormatTypes; 31 import net.minecraft.resources.ResourceKey; 36 import net.minecraft.resources.ResourceKey; net/minecraft/core/registries/BuiltInRegistries.java --- 3/4 --- Java 166 public static final Registry<PositionSourceType<?>> POSITION_SOURCE 171 public static final Registry<PositionSourceType<?>> POSITION_SOURCE ... _TYPE = registerSimple(Registries.POSITION_SOURCE_TYPE, $$0 -> Positio ... _TYPE = registerSimple(Registries.POSITION_SOURCE_TYPE, $$0 -> Positio ... nSourceType.BLOCK); ... nSourceType.BLOCK); 167 public static final Registry<ArgumentTypeInfo<?, ?>> COMMAND_ARGUME 172 public static final Registry<ArgumentTypeInfo<?, ?>> COMMAND_ARGUME ... NT_TYPE = registerSimple(Registries.COMMAND_ARGUMENT_TYPE, ArgumentTyp ... NT_TYPE = registerSimple(Registries.COMMAND_ARGUMENT_TYPE, ArgumentTyp ... eInfos::bootstrap); ... eInfos::bootstrap); 168 public static final Registry<StatType<?>> STAT_TYPE = registerSimpl 173 public static final Registry<StatType<?>> STAT_TYPE = registerSimpl ... e(Registries.STAT_TYPE, $$0 -> Stats.ITEM_USED); ... e(Registries.STAT_TYPE, $$0 -> Stats.ITEM_USED); 169 public static final DefaultedRegistry<VillagerType> VILLAGER_TYPE = 174 public static final DefaultedRegistry<VillagerType> VILLAGER_TYPE = ... registerDefaulted(Registries.VILLAGER_TYPE, "plains", $$0 -> Villager ... registerDefaulted(Registries.VILLAGER_TYPE, "plains", VillagerType::b ... Type.PLAINS); ... ootstrap); 170 public static final DefaultedRegistry<VillagerProfession> VILLAGER_ 175 public static final DefaultedRegistry<VillagerProfession> VILLAGER_ ... PROFESSION = registerDefaulted( ... PROFESSION = registerDefaulted( 171 Registries.VILLAGER_PROFESSION, "none", $$0 -> VillagerProfessio 176 Registries.VILLAGER_PROFESSION, "none", VillagerProfession::boot ... n.NONE ... strap 172 ); 177 ); 173 public static final Registry<PoiType> POINT_OF_INTEREST_TYPE = regi 178 public static final Registry<PoiType> POINT_OF_INTEREST_TYPE = regi ... sterSimple(Registries.POINT_OF_INTEREST_TYPE, PoiTypes::bootstrap); ... sterSimple(Registries.POINT_OF_INTEREST_TYPE, PoiTypes::bootstrap); 174 public static final DefaultedRegistry<MemoryModuleType<?>> MEMORY_M 179 public static final DefaultedRegistry<MemoryModuleType<?>> MEMORY_M ODULE_TYPE = registerDefaulted( ODULE_TYPE = registerDefaulted( net/minecraft/core/registries/BuiltInRegistries.java --- 4/4 --- Java 277 public static final Registry<SlotDisplay.Type<?>> SLOT_DISPLAY = re 282 public static final Registry<SlotDisplay.Type<?>> SLOT_DISPLAY = re ... gisterSimple(Registries.SLOT_DISPLAY, SlotDisplays::bootstrap); ... gisterSimple(Registries.SLOT_DISPLAY, SlotDisplays::bootstrap); 278 public static final Registry<RecipeBookCategory> RECIPE_BOOK_CATEGO 283 public static final Registry<RecipeBookCategory> RECIPE_BOOK_CATEGO ... RY = registerSimple(Registries.RECIPE_BOOK_CATEGORY, RecipeBookCategor ... RY = registerSimple(Registries.RECIPE_BOOK_CATEGORY, RecipeBookCategor ... ies::bootstrap); ... ies::bootstrap); 279 public static final Registry<TicketType> TICKET_TYPE = registerSimp 284 public static final Registry<TicketType> TICKET_TYPE = registerSimp ... le(Registries.TICKET_TYPE, $$0 -> TicketType.UNKNOWN); ... le(Registries.TICKET_TYPE, $$0 -> TicketType.UNKNOWN); ... 285 public static final Registry<MapCodec<? extends TestEnvironmentDefi ... ... nition>> TEST_ENVIRONMENT_DEFINITION_TYPE = registerSimple( ... 286 Registries.TEST_ENVIRONMENT_DEFINITION_TYPE, TestEnvironmentDefi ... ... nition::bootstrap ... 287 ); ... 288 public static final Registry<MapCodec<? extends GameTestInstance>> ... ... TEST_INSTANCE_TYPE = registerSimple( ... 289 Registries.TEST_INSTANCE_TYPE, GameTestInstance::bootstrap ... 290 ); ... 291 public static final Registry<Consumer<GameTestHelper>> TEST_FUNCTIO ... ... N = registerSimple(Registries.TEST_FUNCTION, BuiltinTestFunctions::boo ... ... tstrap); 280 public static final Registry<? extends Registry<?>> REGISTRY = WRIT 292 public static final Registry<? extends Registry<?>> REGISTRY = WRIT ... ABLE_REGISTRY; ... ABLE_REGISTRY; 281 293 282 private static <T> Registry<T> registerSimple(ResourceKey<? extends 294 private static <T> Registry<T> registerSimple(ResourceKey<? extends Registry<T>> $$0, BuiltInRegistries.RegistryBootstrap<T> $$1) { Registry<T>> $$0, BuiltInRegistries.RegistryBootstrap<T> $$1) { net/minecraft/commands/arguments/blocks/BlockInput.java --- Java 77 CompoundTag $$7 = $$5.saveWithoutMetadata($$0.registryAcces 77 CompoundTag $$7 = $$5.saveWithoutMetadata($$0.registryAcces .. s()); .. s()); 78 if (!$$7.equals($$6)) { 78 if (!$$7.equals($$6)) { 79 $$4 = true; 79 $$4 = true; .. 80 $$5.setChanged(); .. 81 $$0.getChunkSource().blockChanged($$1); 80 } 82 } 81 } 83 } 82 } 84 } net/minecraft/world/level/block/entity/SculkShriekerBlockEntity.java --- Java 167 } 167 } 168 168 169 @Override 169 @Override 170 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1, bool 170 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1) { ... ean $$2) { ... 171 if ($$1.getValue(SculkShriekerBlock.SHRIEKING) && this.level ins 171 if ($$1.getValue(SculkShriekerBlock.SHRIEKING) && this.level ins ... tanceof ServerLevel $$3) { ... tanceof ServerLevel $$2) { 172 this.tryRespond($$3); 172 this.tryRespond($$2); 173 } 173 } 174 } 174 } 175 175 net/minecraft/server/commands/SummonCommand.java --- Java 81 $$6.putString("id", $$1.key().location().toString()); 81 $$6.putString("id", $$1.key().location().toString()); 82 ServerLevel $$7 = $$0.getLevel(); 82 ServerLevel $$7 = $$0.getLevel(); 83 Entity $$8 = EntityType.loadEntityRecursive($$6, $$7, EntitySp 83 Entity $$8 = EntityType.loadEntityRecursive($$6, $$7, EntitySp .. awnReason.COMMAND, $$1x -> { .. awnReason.COMMAND, $$1x -> { 84 $$1x.moveTo($$2.x, $$2.y, $$2.z, $$1x.getYRot(), $$1x.getXR 84 $$1x.snapTo($$2.x, $$2.y, $$2.z, $$1x.getYRot(), $$1x.getXR .. ot()); .. ot()); 85 return $$1x; 85 return $$1x; 86 }); 86 }); 87 if ($$8 == null) { 87 if ($$8 == null) { net/minecraft/client/renderer/entity/state/PigRenderState.java --- Java 4 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.EnvType; 5 import net.fabricmc.api.Environment; 5 import net.fabricmc.api.Environment; 6 import net.minecraft.world.entity.animal.PigVariant; 6 import net.minecraft.world.entity.animal.PigVariant; . 7 import net.minecraft.world.item.ItemStack; 7 8 8 @Environment(EnvType.CLIENT) 9 @Environment(EnvType.CLIENT) 9 public class PigRenderState extends LivingEntityRenderState implements 10 public class PigRenderState extends LivingEntityRenderState { . SaddleableRenderState { .. 10 public boolean isSaddled; 11 public ItemStack saddle = ItemStack.EMPTY; 11 @Nullable 12 @Nullable 12 public PigVariant variant; 13 public PigVariant variant; 13 .. 14 @Override .. 15 public boolean isSaddled() { .. 16 return this.isSaddled; .. 17 } .. 18 } 14 } net/minecraft/world/entity/ai/memory/MemoryModuleType.java --- Java 39 public static final MemoryModuleType<List<Player>> NEAREST_PLAYERS = 39 public static final MemoryModuleType<List<Player>> NEAREST_PLAYERS = .. register("nearest_players"); .. register("nearest_players"); 40 public static final MemoryModuleType<Player> NEAREST_VISIBLE_PLAYER 40 public static final MemoryModuleType<Player> NEAREST_VISIBLE_PLAYER .. = register("nearest_visible_player"); .. = register("nearest_visible_player"); 41 public static final MemoryModuleType<Player> NEAREST_VISIBLE_ATTACKA 41 public static final MemoryModuleType<Player> NEAREST_VISIBLE_ATTACKA .. BLE_PLAYER = register("nearest_visible_targetable_player"); .. BLE_PLAYER = register("nearest_visible_targetable_player"); .. 42 public static final MemoryModuleType<List<Player>> NEAREST_VISIBLE_A .. .. TTACKABLE_PLAYERS = register("nearest_visible_targetable_players"); 42 public static final MemoryModuleType<WalkTarget> WALK_TARGET = regis 43 public static final MemoryModuleType<WalkTarget> WALK_TARGET = regis .. ter("walk_target"); .. ter("walk_target"); 43 public static final MemoryModuleType<PositionTracker> LOOK_TARGET = 44 public static final MemoryModuleType<PositionTracker> LOOK_TARGET = .. register("look_target"); .. register("look_target"); 44 public static final MemoryModuleType<LivingEntity> ATTACK_TARGET = r 45 public static final MemoryModuleType<LivingEntity> ATTACK_TARGET = r egister("attack_target"); egister("attack_target"); net/minecraft/client/renderer/entity/PigRenderer.java --- 1/3 --- Java 10 import net.minecraft.client.model.PigModel; 10 import net.minecraft.client.model.PigModel; 11 import net.minecraft.client.model.geom.ModelLayers; 11 import net.minecraft.client.model.geom.ModelLayers; 12 import net.minecraft.client.renderer.MultiBufferSource; 12 import net.minecraft.client.renderer.MultiBufferSource; 13 import net.minecraft.client.renderer.entity.layers.SaddleLayer; 13 import net.minecraft.client.renderer.entity.layers.SimpleEquipmentLayer .. .. ; 14 import net.minecraft.client.renderer.entity.state.PigRenderState; 14 import net.minecraft.client.renderer.entity.state.PigRenderState; 15 import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite; 15 import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite; .. 16 import net.minecraft.client.resources.model.EquipmentClientInfo; 16 import net.minecraft.resources.ResourceLocation; 17 import net.minecraft.resources.ResourceLocation; .. 18 import net.minecraft.world.entity.EquipmentSlot; 17 import net.minecraft.world.entity.animal.Pig; 19 import net.minecraft.world.entity.animal.Pig; 18 import net.minecraft.world.entity.animal.PigVariant; 20 import net.minecraft.world.entity.animal.PigVariant; 19 21 net/minecraft/client/renderer/entity/PigRenderer.java --- 2/3 --- Java 25 super($$0, new PigModel($$0.bakeLayer(ModelLayers.PIG)), 0.7F); 27 super($$0, new PigModel($$0.bakeLayer(ModelLayers.PIG)), 0.7F); 26 this.models = bakeModels($$0); 28 this.models = bakeModels($$0); 27 this.addLayer( 29 this.addLayer( 28 new SaddleLayer<>( 30 new SimpleEquipmentLayer<>( 29 this, 31 this, .. 32 $$0.getEquipmentRenderer(), .. 33 EquipmentClientInfo.LayerType.PIG_SADDLE, .. 34 $$0x -> $$0x.saddle, 30 new PigModel($$0.bakeLayer(ModelLayers.PIG_SADDLE)), 35 new PigModel($$0.bakeLayer(ModelLayers.PIG_SADDLE)), 31 new PigModel($$0.bakeLayer(ModelLayers.PIG_BABY_SADDLE)), 36 new PigModel($$0.bakeLayer(ModelLayers.PIG_BABY_SADDLE)) 32 ResourceLocation.withDefaultNamespace("textures/entity/pig/ .. .. pig_saddle.png") .. 33 ) 37 ) 34 ); 38 ); 35 } 39 } net/minecraft/client/renderer/entity/PigRenderer.java --- 3/3 --- Java 62 66 63 public void extractRenderState(Pig $$0, PigRenderState $$1, float $$ 67 public void extractRenderState(Pig $$0, PigRenderState $$1, float $$ .. 2) { .. 2) { 64 super.extractRenderState($$0, $$1, $$2); 68 super.extractRenderState($$0, $$1, $$2); 65 $$1.isSaddled = $$0.isSaddled(); 69 $$1.saddle = $$0.getItemBySlot(EquipmentSlot.SADDLE).copy(); 66 $$1.variant = $$0.getVariant().value(); 70 $$1.variant = $$0.getVariant().value(); 67 } 71 } 68 } 72 } net/minecraft/world/entity/monster/piglin/PiglinAi.java --- 1/2 --- Java 17 import net.minecraft.world.InteractionResult; 17 import net.minecraft.world.InteractionResult; 18 import net.minecraft.world.entity.Entity; 18 import net.minecraft.world.entity.Entity; 19 import net.minecraft.world.entity.EntityType; 19 import net.minecraft.world.entity.EntityType; .. 20 import net.minecraft.world.entity.EquipmentSlot; .. 21 import net.minecraft.world.entity.EquipmentSlotGroup; 20 import net.minecraft.world.entity.LivingEntity; 22 import net.minecraft.world.entity.LivingEntity; 21 import net.minecraft.world.entity.Mob; 23 import net.minecraft.world.entity.Mob; 22 import net.minecraft.world.entity.PathfinderMob; 24 import net.minecraft.world.entity.PathfinderMob; net/minecraft/world/entity/monster/piglin/PiglinAi.java --- 2/2 --- Java 635 } 637 } 636 638 637 public static boolean isWearingSafeArmor(LivingEntity $$0) { 639 public static boolean isWearingSafeArmor(LivingEntity $$0) { 638 for (ItemStack $$1 : $$0.getArmorAndBodyArmorSlots()) { 640 for (EquipmentSlot $$1 : EquipmentSlotGroup.ARMOR) { 639 if ($$1.is(ItemTags.PIGLIN_SAFE_ARMOR)) { 641 if ($$0.getItemBySlot($$1).is(ItemTags.PIGLIN_SAFE_ARMOR)) { 640 return true; 642 return true; 641 } 643 } 642 } 644 } net/minecraft/client/renderer/entity/state/ZombieVillagerRenderState.java --- Java 1 package net.minecraft.client.renderer.entity.state; 1 package net.minecraft.client.renderer.entity.state; 2 2 . 3 import javax.annotation.Nullable; 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 5 import net.fabricmc.api.Environment; 5 import net.minecraft.world.entity.npc.VillagerData; 6 import net.minecraft.world.entity.npc.VillagerData; 6 import net.minecraft.world.entity.npc.VillagerProfession; . 7 import net.minecraft.world.entity.npc.VillagerType; . 8 7 9 @Environment(EnvType.CLIENT) 8 @Environment(EnvType.CLIENT) 10 public class ZombieVillagerRenderState extends ZombieRenderState implem 9 public class ZombieVillagerRenderState extends ZombieRenderState implem .. ents VillagerDataHolderRenderState { . ents VillagerDataHolderRenderState { .. 10 @Nullable 11 public VillagerData villagerData = new VillagerData(VillagerType.PLA 11 public VillagerData villagerData; .. INS, VillagerProfession.NONE, 1); .. 12 12 .. 13 @Nullable 13 @Override 14 @Override 14 public VillagerData getVillagerData() { 15 public VillagerData getVillagerData() { 15 return this.villagerData; 16 return this.villagerData; net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java --- 1/2 --- Java 4 import net.minecraft.core.BlockPos; 4 import net.minecraft.core.BlockPos; 5 import net.minecraft.core.HolderLookup; 5 import net.minecraft.core.HolderLookup; 6 import net.minecraft.core.NonNullList; 6 import net.minecraft.core.NonNullList; . 7 import net.minecraft.core.component.DataComponentGetter; 7 import net.minecraft.core.component.DataComponentMap; 8 import net.minecraft.core.component.DataComponentMap; 8 import net.minecraft.core.component.DataComponents; 9 import net.minecraft.core.component.DataComponents; 9 import net.minecraft.nbt.CompoundTag; 10 import net.minecraft.nbt.CompoundTag; net/minecraft/world/level/block/entity/BaseContainerBlockEntity.java --- 2/2 --- Java 144 protected abstract AbstractContainerMenu createMenu(int var1, Inven 145 protected abstract AbstractContainerMenu createMenu(int var1, Inven ... tory var2); ... tory var2); 145 146 146 @Override 147 @Override 147 protected void applyImplicitComponents(BlockEntity.DataComponentInp 148 protected void applyImplicitComponents(DataComponentGetter $$0) { ... ut $$0) { ... 148 super.applyImplicitComponents($$0); 149 super.applyImplicitComponents($$0); 149 this.name = $$0.get(DataComponents.CUSTOM_NAME); 150 this.name = $$0.get(DataComponents.CUSTOM_NAME); 150 this.lockKey = $$0.getOrDefault(DataComponents.LOCK, LockCode.NO 151 this.lockKey = $$0.getOrDefault(DataComponents.LOCK, LockCode.NO _LOCK); _LOCK); net/minecraft/world/level/block/BlockTypes.java --- Java 218 Registry.register($$0, "tall_grass", TallGrassBlock.CODEC); 218 Registry.register($$0, "tall_grass", TallGrassBlock.CODEC); 219 Registry.register($$0, "tall_seagrass", TallSeagrassBlock.CODEC) 219 Registry.register($$0, "tall_seagrass", TallSeagrassBlock.CODEC) ... ; ... ; 220 Registry.register($$0, "target", TargetBlock.CODEC); 220 Registry.register($$0, "target", TargetBlock.CODEC); ... 221 Registry.register($$0, "test", TestBlock.CODEC); ... 222 Registry.register($$0, "test_instance", TestInstanceBlock.CODEC) ... ... ; 221 Registry.register($$0, "tinted_glass", TintedGlassBlock.CODEC); 223 Registry.register($$0, "tinted_glass", TintedGlassBlock.CODEC); 222 Registry.register($$0, "tnt", TntBlock.CODEC); 224 Registry.register($$0, "tnt", TntBlock.CODEC); 223 Registry.register($$0, "torchflower_crop", TorchflowerCropBlock. 225 Registry.register($$0, "torchflower_crop", TorchflowerCropBlock. CODEC); CODEC); net/minecraft/client/model/PigModel.java --- Java 21 super($$0); 21 super($$0); 22 } 22 } 23 .. 24 public static LayerDefinition createSaddleLayer(CubeDeformation $$0) .. .. { .. 25 return LayerDefinition.create(createBasePigModel($$0), 64, 32); .. 26 } .. 27 23 28 public static LayerDefinition createBodyLayer(CubeDeformation $$0) { 24 public static LayerDefinition createBodyLayer(CubeDeformation $$0) { 29 return LayerDefinition.create(createBasePigModel($$0), 64, 64); 25 return LayerDefinition.create(createBasePigModel($$0), 64, 64); net/minecraft/world/item/alchemy/PotionContents.java --- 1/3 --- Java 170 170 171 for (MobEffectInstance $$6 : $$0) { 171 for (MobEffectInstance $$6 : $$0) { 172 $$5 = false; 172 $$5 = false; 173 MutableComponent $$7 = Component.translatable($$6.getDescript 173 Holder<MobEffect> $$7 = $$6.getEffect(); ... ionId()); ... 174 Holder<MobEffect> $$8 = $$6.getEffect(); 174 int $$8 = $$6.getAmplifier(); 175 $$8.value().createModifiers($$6.getAmplifier(), ($$1x, $$2x) 175 $$7.value().createModifiers($$8, ($$1x, $$2x) -> $$4.add(new ... -> $$4.add(new Pair<>($$1x, $$2x))); ... Pair<>($$1x, $$2x))); 176 if ($$6.getAmplifier() > 0) { ... 177 $$7 = Component.translatable("potion.withAmplifier", $$7, 176 MutableComponent $$9 = getPotionDescription($$7, $$8); ... Component.translatable("potion.potency." + $$6.getAmplifier())); ... 178 } ... 179 ... 180 if (!$$6.endsWithin(20)) { 177 if (!$$6.endsWithin(20)) { 181 $$7 = Component.translatable("potion.withDuration", $$7, M 178 $$9 = Component.translatable("potion.withDuration", $$9, M ... obEffectUtil.formatDuration($$6, $$2, $$3)); ... obEffectUtil.formatDuration($$6, $$2, $$3)); 182 } 179 } 183 180 184 $$1.accept($$7.withStyle($$8.value().getCategory().getTooltip 181 $$1.accept($$9.withStyle($$7.value().getCategory().getTooltip ... Formatting())); ... Formatting())); 185 } 182 } 186 183 187 if ($$5) { 184 if ($$5) { net/minecraft/world/item/alchemy/PotionContents.java --- 2/3 --- Java 192 $$1.accept(CommonComponents.EMPTY); 189 $$1.accept(CommonComponents.EMPTY); 193 $$1.accept(Component.translatable("potion.whenDrank").withSty 190 $$1.accept(Component.translatable("potion.whenDrank").withSty ... le(ChatFormatting.DARK_PURPLE)); ... le(ChatFormatting.DARK_PURPLE)); 194 191 195 for (Pair<Holder<Attribute>, AttributeModifier> $$9 : $$4) { 192 for (Pair<Holder<Attribute>, AttributeModifier> $$10 : $$4) { 196 AttributeModifier $$10 = $$9.getSecond(); 193 AttributeModifier $$11 = $$10.getSecond(); 197 double $$11 = $$10.amount(); 194 double $$12 = $$11.amount(); 198 double $$13; 195 double $$14; 199 if ($$10.operation() != AttributeModifier.Operation.ADD_MU 196 if ($$11.operation() != AttributeModifier.Operation.ADD_MU ... LTIPLIED_BASE && $$10.operation() != AttributeModifier.Operation.ADD_M ... LTIPLIED_BASE && $$11.operation() != AttributeModifier.Operation.ADD_M ... ULTIPLIED_TOTAL) { ... ULTIPLIED_TOTAL) { 200 $$13 = $$10.amount(); 197 $$14 = $$11.amount(); 201 } else { 198 } else { 202 $$13 = $$10.amount() * 100.0; 199 $$14 = $$11.amount() * 100.0; 203 } 200 } 204 201 205 if ($$11 > 0.0) { 202 if ($$12 > 0.0) { 206 $$1.accept( 203 $$1.accept( 207 Component.translatable( 204 Component.translatable( 208 "attribute.modifier.plus." + $$10.operation(). 205 "attribute.modifier.plus." + $$11.operation(). ... id(), ... id(), 209 ItemAttributeModifiers.ATTRIBUTE_MODIFIER_FORM 206 ItemAttributeModifiers.ATTRIBUTE_MODIFIER_FORM ... AT.format($$13), ... AT.format($$14), 210 Component.translatable($$9.getFirst().value(). 207 Component.translatable($$10.getFirst().value() ... getDescriptionId()) ... .getDescriptionId()) 211 ) 208 ) 212 .withStyle(ChatFormatting.BLUE) 209 .withStyle(ChatFormatting.BLUE) 213 ); 210 ); 214 } else if ($$11 < 0.0) { 211 } else if ($$12 < 0.0) { 215 $$13 *= -1.0; 212 $$14 *= -1.0; 216 $$1.accept( 213 $$1.accept( 217 Component.translatable( 214 Component.translatable( 218 "attribute.modifier.take." + $$10.operation(). 215 "attribute.modifier.take." + $$11.operation(). ... id(), ... id(), 219 ItemAttributeModifiers.ATTRIBUTE_MODIFIER_FORM 216 ItemAttributeModifiers.ATTRIBUTE_MODIFIER_FORM ... AT.format($$13), ... AT.format($$14), 220 Component.translatable($$9.getFirst().value(). 217 Component.translatable($$10.getFirst().value() ... getDescriptionId()) ... .getDescriptionId()) 221 ) 218 ) 222 .withStyle(ChatFormatting.RED) 219 .withStyle(ChatFormatting.RED) 223 ); 220 ); net/minecraft/world/item/alchemy/PotionContents.java --- 3/3 --- Java 226 } 223 } 227 } 224 } ... 225 ... 226 public static MutableComponent getPotionDescription(Holder<MobEffec ... ... t> $$0, int $$1) { ... 227 MutableComponent $$2 = Component.translatable($$0.value().getDes ... ... criptionId()); ... 228 return $$1 > 0 ? Component.translatable("potion.withAmplifier", ... ... $$2, Component.translatable("potion.potency." + $$1)) : $$2; ... 229 } 228 230 229 @Override 231 @Override 230 public void onConsume(Level $$0, LivingEntity $$1, ItemStack $$2, C 232 public void onConsume(Level $$0, LivingEntity $$1, ItemStack $$2, C onsumable $$3) { onsumable $$3) { net/minecraft/nbt/NbtUtils.java --- 1/2 --- Java 25 import net.minecraft.core.Holder; 25 import net.minecraft.core.Holder; 26 import net.minecraft.core.HolderGetter; 26 import net.minecraft.core.HolderGetter; 27 import net.minecraft.core.UUIDUtil; 27 import net.minecraft.core.UUIDUtil; .. 28 import net.minecraft.core.Vec3i; 28 import net.minecraft.core.registries.BuiltInRegistries; 29 import net.minecraft.core.registries.BuiltInRegistries; 29 import net.minecraft.core.registries.Registries; 30 import net.minecraft.core.registries.Registries; 30 import net.minecraft.network.chat.Component; 31 import net.minecraft.network.chat.Component; net/minecraft/nbt/NbtUtils.java --- 2/2 --- Java 139 return $$2.length == 3 ? Optional.of(new BlockPos($$2[0], $$2[1] 140 return $$2.length == 3 ? Optional.of(new BlockPos($$2[0], $$2[1] ... , $$2[2])) : Optional.empty(); ... , $$2[2])) : Optional.empty(); 140 } 141 } 141 142 142 public static Tag writeBlockPos(BlockPos $$0) { 143 public static Tag writeBlockPos(BlockPos $$0) { ... 144 return writeVec3i($$0); ... 145 } ... 146 ... 147 public static Tag writeVec3i(Vec3i $$0) { 143 return new IntArrayTag(new int[]{$$0.getX(), $$0.getY(), $$0.get 148 return new IntArrayTag(new int[]{$$0.getX(), $$0.getY(), $$0.get ... Z()}); ... Z()}); 144 } 149 } 145 150 net/minecraft/client/renderer/entity/StriderRenderer.java --- 1/3 --- Java 4 import net.fabricmc.api.Environment; 4 import net.fabricmc.api.Environment; 5 import net.minecraft.client.model.StriderModel; 5 import net.minecraft.client.model.StriderModel; 6 import net.minecraft.client.model.geom.ModelLayers; 6 import net.minecraft.client.model.geom.ModelLayers; 7 import net.minecraft.client.renderer.entity.layers.SaddleLayer; 7 import net.minecraft.client.renderer.entity.layers.SimpleEquipmentLayer . . ; 8 import net.minecraft.client.renderer.entity.state.StriderRenderState; 8 import net.minecraft.client.renderer.entity.state.StriderRenderState; . 9 import net.minecraft.client.resources.model.EquipmentClientInfo; 9 import net.minecraft.resources.ResourceLocation; 10 import net.minecraft.resources.ResourceLocation; . 11 import net.minecraft.world.entity.EquipmentSlot; 10 import net.minecraft.world.entity.monster.Strider; 12 import net.minecraft.world.entity.monster.Strider; 11 13 12 @Environment(EnvType.CLIENT) 14 @Environment(EnvType.CLIENT) net/minecraft/client/renderer/entity/StriderRenderer.java --- 2/3 --- Java 18 public StriderRenderer(EntityRendererProvider.Context $$0) { 20 public StriderRenderer(EntityRendererProvider.Context $$0) { 19 super($$0, new StriderModel($$0.bakeLayer(ModelLayers.STRIDER)), 21 super($$0, new StriderModel($$0.bakeLayer(ModelLayers.STRIDER)), .. new StriderModel($$0.bakeLayer(ModelLayers.STRIDER_BABY)), 0.5F); .. new StriderModel($$0.bakeLayer(ModelLayers.STRIDER_BABY)), 0.5F); 20 this.addLayer( 22 this.addLayer( 21 new SaddleLayer<>( 23 new SimpleEquipmentLayer<>( 22 this, 24 this, .. 25 $$0.getEquipmentRenderer(), .. 26 EquipmentClientInfo.LayerType.STRIDER_SADDLE, .. 27 $$0x -> $$0x.saddle, 23 new StriderModel($$0.bakeLayer(ModelLayers.STRIDER_SADDLE)) 28 new StriderModel($$0.bakeLayer(ModelLayers.STRIDER_SADDLE)) .. , .. , 24 new StriderModel($$0.bakeLayer(ModelLayers.STRIDER_BABY_SAD 29 new StriderModel($$0.bakeLayer(ModelLayers.STRIDER_BABY_SAD .. DLE)), .. DLE)) 25 ResourceLocation.withDefaultNamespace("textures/entity/stri .. .. der/strider_saddle.png") .. 26 ) 30 ) 27 ); 31 ); 28 } 32 } net/minecraft/client/renderer/entity/StriderRenderer.java --- 3/3 --- Java 42 46 43 public void extractRenderState(Strider $$0, StriderRenderState $$1, 47 public void extractRenderState(Strider $$0, StriderRenderState $$1, .. float $$2) { .. float $$2) { 44 super.extractRenderState($$0, $$1, $$2); 48 super.extractRenderState($$0, $$1, $$2); 45 $$1.isSaddled = $$0.isSaddled(); 49 $$1.saddle = $$0.getItemBySlot(EquipmentSlot.SADDLE).copy(); 46 $$1.isSuffocating = $$0.isSuffocating(); 50 $$1.isSuffocating = $$0.isSuffocating(); 47 $$1.isRidden = $$0.isVehicle(); 51 $$1.isRidden = $$0.isVehicle(); 48 } 52 } net/minecraft/commands/synchronization/ArgumentTypeInfos.java --- 1/4 --- Java 10 import com.mojang.brigadier.arguments.StringArgumentType; 10 import com.mojang.brigadier.arguments.StringArgumentType; 11 import java.util.Locale; 11 import java.util.Locale; 12 import java.util.Map; 12 import java.util.Map; 13 import net.minecraft.SharedConstants; .. 14 import net.minecraft.commands.arguments.AngleArgument; 13 import net.minecraft.commands.arguments.AngleArgument; 15 import net.minecraft.commands.arguments.ColorArgument; 14 import net.minecraft.commands.arguments.ColorArgument; 16 import net.minecraft.commands.arguments.ComponentArgument; 15 import net.minecraft.commands.arguments.ComponentArgument; net/minecraft/commands/synchronization/ArgumentTypeInfos.java --- 2/4 --- Java 35 import net.minecraft.commands.arguments.ResourceOrIdArgument; 34 import net.minecraft.commands.arguments.ResourceOrIdArgument; 36 import net.minecraft.commands.arguments.ResourceOrTagArgument; 35 import net.minecraft.commands.arguments.ResourceOrTagArgument; 37 import net.minecraft.commands.arguments.ResourceOrTagKeyArgument; 36 import net.minecraft.commands.arguments.ResourceOrTagKeyArgument; .. 37 import net.minecraft.commands.arguments.ResourceSelectorArgument; 38 import net.minecraft.commands.arguments.ScoreHolderArgument; 38 import net.minecraft.commands.arguments.ScoreHolderArgument; 39 import net.minecraft.commands.arguments.ScoreboardSlotArgument; 39 import net.minecraft.commands.arguments.ScoreboardSlotArgument; 40 import net.minecraft.commands.arguments.SlotArgument; 40 import net.minecraft.commands.arguments.SlotArgument; net/minecraft/commands/synchronization/ArgumentTypeInfos.java --- 3/4 --- Java 62 import net.minecraft.commands.synchronization.brigadier.LongArgumentInf 62 import net.minecraft.commands.synchronization.brigadier.LongArgumentInf .. o; .. o; 63 import net.minecraft.commands.synchronization.brigadier.StringArgumentS 63 import net.minecraft.commands.synchronization.brigadier.StringArgumentS .. erializer; .. erializer; 64 import net.minecraft.core.Registry; 64 import net.minecraft.core.Registry; 65 import net.minecraft.gametest.framework.TestClassNameArgument; .. 66 import net.minecraft.gametest.framework.TestFunctionArgument; .. 67 65 68 public class ArgumentTypeInfos { 66 public class ArgumentTypeInfos { 69 private static final Map<Class<?>, ArgumentTypeInfo<?, ?>> BY_CLASS 67 private static final Map<Class<?>, ArgumentTypeInfo<?, ?>> BY_CLASS = Maps.newHashMap(); = Maps.newHashMap(); net/minecraft/commands/synchronization/ArgumentTypeInfos.java --- 4/4 --- Java 123 register($$0, "resource_or_tag_key", fixClassType(ResourceOrTagK 121 register($$0, "resource_or_tag_key", fixClassType(ResourceOrTagK ... eyArgument.class), new ResourceOrTagKeyArgument.Info()); ... eyArgument.class), new ResourceOrTagKeyArgument.Info()); 124 register($$0, "resource", fixClassType(ResourceArgument.class), 122 register($$0, "resource", fixClassType(ResourceArgument.class), ... new ResourceArgument.Info()); ... new ResourceArgument.Info()); 125 register($$0, "resource_key", fixClassType(ResourceKeyArgument.c 123 register($$0, "resource_key", fixClassType(ResourceKeyArgument.c ... lass), new ResourceKeyArgument.Info()); ... lass), new ResourceKeyArgument.Info()); ... 124 register($$0, "resource_selector", fixClassType(ResourceSelector ... ... Argument.class), new ResourceSelectorArgument.Info()); 126 register($$0, "template_mirror", TemplateMirrorArgument.class, S 125 register($$0, "template_mirror", TemplateMirrorArgument.class, S ... ingletonArgumentInfo.contextFree(TemplateMirrorArgument::templateMirro ... ingletonArgumentInfo.contextFree(TemplateMirrorArgument::templateMirro ... r)); ... r)); 127 register($$0, "template_rotation", TemplateRotationArgument.clas 126 register($$0, "template_rotation", TemplateRotationArgument.clas ... s, SingletonArgumentInfo.contextFree(TemplateRotationArgument::templat ... s, SingletonArgumentInfo.contextFree(TemplateRotationArgument::templat ... eRotation)); ... eRotation)); 128 register($$0, "heightmap", HeightmapTypeArgument.class, Singleto 127 register($$0, "heightmap", HeightmapTypeArgument.class, Singleto ... nArgumentInfo.contextFree(HeightmapTypeArgument::heightmap)); ... nArgumentInfo.contextFree(HeightmapTypeArgument::heightmap)); 129 register($$0, "loot_table", ResourceOrIdArgument.LootTableArgume 128 register($$0, "loot_table", ResourceOrIdArgument.LootTableArgume ... nt.class, SingletonArgumentInfo.contextAware(ResourceOrIdArgument::loo ... nt.class, SingletonArgumentInfo.contextAware(ResourceOrIdArgument::loo ... tTable)); ... tTable)); 130 register($$0, "loot_predicate", ResourceOrIdArgument.LootPredica 129 register($$0, "loot_predicate", ResourceOrIdArgument.LootPredica ... teArgument.class, SingletonArgumentInfo.contextAware(ResourceOrIdArgum ... teArgument.class, SingletonArgumentInfo.contextAware(ResourceOrIdArgum ... ent::lootPredicate)); ... ent::lootPredicate)); 131 register($$0, "loot_modifier", ResourceOrIdArgument.LootModifier 130 register($$0, "loot_modifier", ResourceOrIdArgument.LootModifier ... Argument.class, SingletonArgumentInfo.contextAware(ResourceOrIdArgumen ... Argument.class, SingletonArgumentInfo.contextAware(ResourceOrIdArgumen ... t::lootModifier)); ... t::lootModifier)); 132 if (SharedConstants.IS_RUNNING_IN_IDE) { ... 133 register($$0, "test_argument", TestFunctionArgument.class, Si ... ... ngletonArgumentInfo.contextFree(TestFunctionArgument::testFunctionArgu ... ... ment)); ... 134 register($$0, "test_class", TestClassNameArgument.class, Sing ... ... letonArgumentInfo.contextFree(TestClassNameArgument::testClassName)); ... 135 } ... 136 ... 137 return register($$0, "uuid", UuidArgument.class, SingletonArgume 131 return register($$0, "uuid", UuidArgument.class, SingletonArgume ... ntInfo.contextFree(UuidArgument::uuid)); ... ntInfo.contextFree(UuidArgument::uuid)); 138 } 132 } net/minecraft/world/level/block/SnifferEggBlock.java --- Java 73 if ($$4 != null) { 73 if ($$4 != null) { 74 Vec3 $$5 = $$2.getCenter(); 74 Vec3 $$5 = $$2.getCenter(); 75 $$4.setBaby(true); 75 $$4.setBaby(true); 76 $$4.moveTo($$5.x(), $$5.y(), $$5.z(), Mth.wrapDegrees($$1.r 76 $$4.snapTo($$5.x(), $$5.y(), $$5.z(), Mth.wrapDegrees($$1.r .. andom.nextFloat() * 360.0F), 0.0F); .. andom.nextFloat() * 360.0F), 0.0F); 77 $$1.addFreshEntity($$4); 77 $$1.addFreshEntity($$4); 78 } 78 } 79 } 79 } net/minecraft/client/renderer/entity/DonkeyRenderer.java --- 1/2 --- Java 3 import net.fabricmc.api.EnvType; 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 4 import net.fabricmc.api.Environment; 5 import net.minecraft.client.model.DonkeyModel; 5 import net.minecraft.client.model.DonkeyModel; . 6 import net.minecraft.client.model.EquineSaddleModel; 6 import net.minecraft.client.model.geom.ModelLayerLocation; 7 import net.minecraft.client.model.geom.ModelLayerLocation; . 8 import net.minecraft.client.model.geom.ModelLayers; . 9 import net.minecraft.client.renderer.entity.layers.SimpleEquipmentLayer . . ; 7 import net.minecraft.client.renderer.entity.state.DonkeyRenderState; 10 import net.minecraft.client.renderer.entity.state.DonkeyRenderState; . 11 import net.minecraft.client.resources.model.EquipmentClientInfo; 8 import net.minecraft.resources.ResourceLocation; 12 import net.minecraft.resources.ResourceLocation; 9 import net.minecraft.world.entity.animal.horse.AbstractChestedHorse; 13 import net.minecraft.world.entity.animal.horse.AbstractChestedHorse; 10 14 11 @Environment(EnvType.CLIENT) 15 @Environment(EnvType.CLIENT) 12 public class DonkeyRenderer<T extends AbstractChestedHorse> extends Abs 16 public class DonkeyRenderer<T extends AbstractChestedHorse> extends Abs .. tractHorseRenderer<T, DonkeyRenderState, DonkeyModel> { .. tractHorseRenderer<T, DonkeyRenderState, DonkeyModel> { 13 public static final ResourceLocation DONKEY_TEXTURE = ResourceLocati .. .. on.withDefaultNamespace("textures/entity/horse/donkey.png"); .. 14 public static final ResourceLocation MULE_TEXTURE = ResourceLocation .. .. .withDefaultNamespace("textures/entity/horse/mule.png"); .. 15 private final ResourceLocation texture; 17 private final ResourceLocation texture; 16 18 17 public DonkeyRenderer(EntityRendererProvider.Context $$0, ModelLayer 19 public DonkeyRenderer(EntityRendererProvider.Context $$0, DonkeyRend .. Location $$1, ModelLayerLocation $$2, boolean $$3) { .. erer.Type $$1) { 18 super($$0, new DonkeyModel($$0.bakeLayer($$1)), new DonkeyModel($ 20 super($$0, new DonkeyModel($$0.bakeLayer($$1.model)), new DonkeyM .. $0.bakeLayer($$2))); .. odel($$0.bakeLayer($$1.babyModel))); 19 this.texture = $$3 ? MULE_TEXTURE : DONKEY_TEXTURE; 21 this.texture = $$1.texture; .. 22 this.addLayer( .. 23 new SimpleEquipmentLayer<>( .. 24 this, .. 25 $$0.getEquipmentRenderer(), .. 26 $$1.saddleLayer, .. 27 $$0x -> $$0x.saddle, .. 28 new EquineSaddleModel($$0.bakeLayer($$1.saddleModel)), .. 29 new EquineSaddleModel($$0.bakeLayer($$1.babySaddleModel)) .. 30 ) .. 31 ); 20 } 32 } 21 33 22 public ResourceLocation getTextureLocation(DonkeyRenderState $$0) { 34 public ResourceLocation getTextureLocation(DonkeyRenderState $$0) { net/minecraft/client/renderer/entity/DonkeyRenderer.java --- 2/2 --- Java 32 $$1.hasChest = $$0.hasChest(); 44 $$1.hasChest = $$0.hasChest(); 33 } 45 } .. 46 .. 47 @Environment(EnvType.CLIENT) .. 48 public static enum Type { .. 49 DONKEY( .. 50 ResourceLocation.withDefaultNamespace("textures/entity/horse/d .. .. onkey.png"), .. 51 ModelLayers.DONKEY, .. 52 ModelLayers.DONKEY_BABY, .. 53 EquipmentClientInfo.LayerType.DONKEY_SADDLE, .. 54 ModelLayers.DONKEY_SADDLE, .. 55 ModelLayers.DONKEY_BABY_SADDLE .. 56 ), .. 57 MULE( .. 58 ResourceLocation.withDefaultNamespace("textures/entity/horse/m .. .. ule.png"), .. 59 ModelLayers.MULE, .. 60 ModelLayers.MULE_BABY, .. 61 EquipmentClientInfo.LayerType.MULE_SADDLE, .. 62 ModelLayers.MULE_SADDLE, .. 63 ModelLayers.MULE_BABY_SADDLE .. 64 ); .. 65 .. 66 final ResourceLocation texture; .. 67 final ModelLayerLocation model; .. 68 final ModelLayerLocation babyModel; .. 69 final EquipmentClientInfo.LayerType saddleLayer; .. 70 final ModelLayerLocation saddleModel; .. 71 final ModelLayerLocation babySaddleModel; .. 72 .. 73 private Type( .. 74 final ResourceLocation $$0, .. 75 final ModelLayerLocation $$1, .. 76 final ModelLayerLocation $$2, .. 77 final EquipmentClientInfo.LayerType $$3, .. 78 final ModelLayerLocation $$4, .. 79 final ModelLayerLocation $$5 .. 80 ) { .. 81 this.texture = $$0; .. 82 this.model = $$1; .. 83 this.babyModel = $$2; .. 84 this.saddleLayer = $$3; .. 85 this.saddleModel = $$4; .. 86 this.babySaddleModel = $$5; .. 87 } .. 88 } 34 } 89 } net/minecraft/world/entity/ai/village/VillageSiege.java --- Java 104 return; 104 return; 105 } 105 } 106 106 107 $$2.moveTo($$1.x, $$1.y, $$1.z, $$0.random.nextFloat() * 360. 107 $$2.snapTo($$1.x, $$1.y, $$1.z, $$0.random.nextFloat() * 360. ... 0F, 0.0F); ... 0F, 0.0F); 108 $$0.addFreshEntityWithPassengers($$2); 108 $$0.addFreshEntityWithPassengers($$2); 109 } 109 } 110 } 110 } net/minecraft/client/gui/screens/inventory/TestBlockEditScreen.java --- Java 1 package net.minecraft.client.gui.screens.inventory; 2 3 import java.util.List; 4 import javax.annotation.Nullable; 5 import net.fabricmc.api.EnvType; 6 import net.fabricmc.api.Environment; 7 import net.minecraft.client.gui.GuiGraphics; 8 import net.minecraft.client.gui.components.Button; 9 import net.minecraft.client.gui.components.CycleButton; 10 import net.minecraft.client.gui.components.EditBox; 11 import net.minecraft.client.gui.screens.Screen; 12 import net.minecraft.core.BlockPos; 13 import net.minecraft.network.chat.CommonComponents; 14 import net.minecraft.network.chat.Component; 15 import net.minecraft.network.protocol.game.ServerboundSetTestBlockPacket; 16 import net.minecraft.world.level.block.Blocks; 17 import net.minecraft.world.level.block.entity.TestBlockEntity; 18 import net.minecraft.world.level.block.state.properties.TestBlockMode; 19 20 @Environment(EnvType.CLIENT) 21 public class TestBlockEditScreen extends Screen { 22 private static final List<TestBlockMode> MODES = List.of(TestBlockMode.values()); 23 private static final Component TITLE = Component.translatable(Blocks.TEST_BLOCK.getDescriptionId()); 24 private static final Component MESSAGE_LABEL = Component.translatable("test_block.message"); 25 private final BlockPos position; 26 private TestBlockMode mode; 27 private String message; 28 @Nullable 29 private EditBox messageEdit; 30 31 public TestBlockEditScreen(TestBlockEntity $$0) { 32 super(TITLE); 33 this.position = $$0.getBlockPos(); 34 this.mode = $$0.getMode(); 35 this.message = $$0.getMessage(); 36 } 37 38 @Override 39 public void init() { 40 this.addRenderableWidget(Button.builder(CommonComponents.GUI_DONE, $$0 -> this.onDone()).bounds(this.width / 2 - 4 - 150, 210, 150, 20).build()); 41 this.addRenderableWidget(Button.builder(CommonComponents.GUI_CANCEL, $$0 -> this.onCancel()).bounds(this.width / 2 + 4, 210, 150, 20).build()); 42 this.addRenderableWidget( 43 CycleButton.builder(TestBlockMode::getDisplayName) 44 .withValues(MODES) 45 .displayOnlyValue() 46 .withInitialValue(this.mode) 47 .create(this.width / 2 - 4 - 150, 185, 50, 20, TITLE, ($$0, $$1) -> this.updateMode($$1)) 48 ); 49 this.messageEdit = new EditBox(this.font, this.width / 2 - 152, 80, 240, 20, Component.translatable("test_block.message")); 50 this.messageEdit.setMaxLength(128); 51 this.messageEdit.setValue(this.message); 52 this.addRenderableWidget(this.messageEdit); 53 this.setInitialFocus(this.messageEdit); 54 this.updateMode(this.mode); 55 } 56 57 @Override 58 public void render(GuiGraphics $$0, int $$1, int $$2, float $$3) { 59 super.render($$0, $$1, $$2, $$3); 60 $$0.drawCenteredString(this.font, this.title, this.width / 2, 10, 16777215); 61 $$0.drawString(this.font, MESSAGE_LABEL, this.width / 2 - 153, 70, 10526880); 62 $$0.drawString(this.font, this.mode.getDetailedMessage(), this.width / 2 - 153, 174, 10526880); 63 } 64 65 @Override 66 public boolean isPauseScreen() { 67 return false; 68 } 69 70 private void onDone() { 71 this.message = this.messageEdit.getValue(); 72 this.minecraft.getConnection().send(new ServerboundSetTestBlockPacket(this.position, this.mode, this.message)); 73 this.onClose(); 74 } 75 76 @Override 77 public void onClose() { 78 this.onCancel(); 79 } 80 81 private void onCancel() { 82 this.minecraft.setScreen(null); 83 } 84 85 private void updateMode(TestBlockMode $$0) { 86 this.mode = $$0; 87 this.messageEdit.visible = $$0 != TestBlockMode.START; 88 } 89 } 90 net/minecraft/server/commands/InCommandFunction.java --- Java 1 package net.minecraft.server.commands; 2 3 import com.mojang.brigadier.exceptions.CommandSyntaxException; 4 5 @FunctionalInterface 6 public interface InCommandFunction<T, R> { 7 R apply(T var1) throws CommandSyntaxException; 8 } 9 net/minecraft/world/level/block/piston/PistonMovingBlockEntity.java --- Java 282 } 282 } 283 283 284 @Override 284 @Override 285 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1, bool 285 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1) { ... ean $$2) { ... 286 this.finalTick(); 286 this.finalTick(); 287 } 287 } 288 288 net/minecraft/client/multiplayer/ClientPacketListener.java --- 1/5 --- Java 44 import net.minecraft.client.gui.screens.inventory.CommandBlockEditScree 44 import net.minecraft.client.gui.screens.inventory.CommandBlockEditScree .. n; .. n; 45 import net.minecraft.client.gui.screens.inventory.CreativeModeInventory 45 import net.minecraft.client.gui.screens.inventory.CreativeModeInventory .. Screen; .. Screen; 46 import net.minecraft.client.gui.screens.inventory.HorseInventoryScreen; 46 import net.minecraft.client.gui.screens.inventory.HorseInventoryScreen; .. 47 import net.minecraft.client.gui.screens.inventory.TestInstanceBlockEdit .. .. Screen; 47 import net.minecraft.client.gui.screens.multiplayer.ServerReconfigScree 48 import net.minecraft.client.gui.screens.multiplayer.ServerReconfigScree .. n; .. n; 48 import net.minecraft.client.gui.screens.recipebook.RecipeUpdateListener 49 import net.minecraft.client.gui.screens.recipebook.RecipeUpdateListener .. ; .. ; 49 import net.minecraft.client.particle.ItemPickupParticle; 50 import net.minecraft.client.particle.ItemPickupParticle; net/minecraft/client/multiplayer/ClientPacketListener.java --- 2/5 --- Java 221 import net.minecraft.network.protocol.game.ClientboundTagQueryPacket; 222 import net.minecraft.network.protocol.game.ClientboundTagQueryPacket; 222 import net.minecraft.network.protocol.game.ClientboundTakeItemEntityPa 223 import net.minecraft.network.protocol.game.ClientboundTakeItemEntityPa ... cket; ... cket; 223 import net.minecraft.network.protocol.game.ClientboundTeleportEntityPa 224 import net.minecraft.network.protocol.game.ClientboundTeleportEntityPa ... cket; ... cket; ... 225 import net.minecraft.network.protocol.game.ClientboundTestInstanceBloc ... ... kStatus; 224 import net.minecraft.network.protocol.game.ClientboundTickingStatePack 226 import net.minecraft.network.protocol.game.ClientboundTickingStatePack ... et; ... et; 225 import net.minecraft.network.protocol.game.ClientboundTickingStepPacke 227 import net.minecraft.network.protocol.game.ClientboundTickingStepPacke ... t; ... t; 226 import net.minecraft.network.protocol.game.ClientboundUpdateAdvancemen 228 import net.minecraft.network.protocol.game.ClientboundUpdateAdvancemen tsPacket; tsPacket; net/minecraft/client/multiplayer/ClientPacketListener.java --- 3/5 --- Java 552 if (this.level.isTickingEntity($$1) && !$$5) { 554 if (this.level.isTickingEntity($$1) && !$$5) { 553 $$1.moveOrInterpolateTo($$2, $$3, $$4); 555 $$1.moveOrInterpolateTo($$2, $$3, $$4); 554 } else { 556 } else { 555 $$1.moveTo($$2, $$3, $$4); 557 $$1.snapTo($$2, $$3, $$4); 556 } 558 } 557 559 558 if ($$1.isInterpolating() && $$1.hasIndirectPassenger(this 560 if ($$1.isInterpolating() && $$1.hasIndirectPassenger(this .minecraft.player)) { .minecraft.player)) { net/minecraft/client/multiplayer/ClientPacketListener.java --- 4/5 --- Java 1937 $$1.getInterpolation().cancel(); 1939 $$1.getInterpolation().cancel(); 1938 } 1940 } 1939 1941 1940 $$1.absMoveTo($$2.x(), $$2.y(), $$2.z(), $$0.yRot(), $$0. 1942 $$1.absSnapTo($$2.x(), $$2.y(), $$2.z(), $$0.yRot(), $$0. .... xRot()); .... xRot()); 1941 } 1943 } 1942 1944 1943 this.connection.send(ServerboundMoveVehiclePacket.fromEntity 1945 this.connection.send(ServerboundMoveVehiclePacket.fromEntity ($$1)); ($$1)); net/minecraft/client/multiplayer/ClientPacketListener.java --- 5/5 --- Java 2290 this.pingDebugMonitor.onPongReceived($$0); 2292 this.pingDebugMonitor.onPongReceived($$0); 2291 } 2293 } .... 2294 .... 2295 @Override .... 2296 public void handleTestInstanceBlockStatus(ClientboundTestInstanceB .... .... lockStatus $$0) { .... 2297 PacketUtils.ensureRunningOnSameThread($$0, this, this.minecraft .... .... ); .... 2298 if (this.minecraft.screen instanceof TestInstanceBlockEditScree .... .... n $$1) { .... 2299 $$1.setStatus($$0.status(), $$0.size()); .... 2300 } .... 2301 } 2292 2302 2293 private void readSectionList(int $$0, int $$1, LevelLightEngine $$ 2303 private void readSectionList(int $$0, int $$1, LevelLightEngine $$ .... 2, LightLayer $$3, BitSet $$4, BitSet $$5, Iterator<byte[]> $$6, bool .... 2, LightLayer $$3, BitSet $$4, BitSet $$5, Iterator<byte[]> $$6, bool .... ean $$7) { .... ean $$7) { 2294 for (int $$8 = 0; $$8 < $$2.getLightSectionCount(); $$8++) { 2304 for (int $$8 = 0; $$8 < $$2.getLightSectionCount(); $$8++) { net/minecraft/client/renderer/entity/state/TropicalFishRenderState.java --- Java 6 6 7 @Environment(EnvType.CLIENT) 7 @Environment(EnvType.CLIENT) 8 public class TropicalFishRenderState extends LivingEntityRenderState { 8 public class TropicalFishRenderState extends LivingEntityRenderState { 9 public TropicalFish.Pattern variant = TropicalFish.Pattern.FLOPPER; 9 public TropicalFish.Pattern pattern = TropicalFish.Pattern.FLOPPER; 10 public int baseColor = -1; 10 public int baseColor = -1; 11 public int patternColor = -1; 11 public int patternColor = -1; 12 } 12 } net/minecraft/SharedConstants.java --- 1/2 --- Java 12 @Deprecated 12 @Deprecated 13 public static final boolean SNAPSHOT = true; 13 public static final boolean SNAPSHOT = true; 14 @Deprecated 14 @Deprecated 15 public static final int WORLD_VERSION = 4298; 15 public static final int WORLD_VERSION = 4304; 16 @Deprecated 16 @Deprecated 17 public static final String SERIES = "main"; 17 public static final String SERIES = "main"; 18 @Deprecated 18 @Deprecated 19 public static final String VERSION_STRING = "25w02a"; 19 public static final String VERSION_STRING = "25w03a"; 20 @Deprecated 20 @Deprecated 21 public static final int RELEASE_NETWORK_PROTOCOL_VERSION = 770; 21 public static final int RELEASE_NETWORK_PROTOCOL_VERSION = 770; 22 @Deprecated 22 @Deprecated 23 public static final int SNAPSHOT_NETWORK_PROTOCOL_VERSION = 229; 23 public static final int SNAPSHOT_NETWORK_PROTOCOL_VERSION = 230; 24 public static final int SNBT_NAG_VERSION = 4292; 24 public static final int SNBT_NAG_VERSION = 4292; 25 private static final int SNAPSHOT_PROTOCOL_BIT = 30; 25 private static final int SNAPSHOT_PROTOCOL_BIT = 30; 26 public static final boolean CRASH_EAGERLY = true; 26 public static final boolean CRASH_EAGERLY = true; 27 @Deprecated 27 @Deprecated 28 public static final int RESOURCE_PACK_FORMAT = 47; 28 public static final int RESOURCE_PACK_FORMAT = 48; 29 @Deprecated 29 @Deprecated 30 public static final int DATA_PACK_FORMAT = 62; 30 public static final int DATA_PACK_FORMAT = 63; 31 @Deprecated 31 @Deprecated 32 public static final int LANGUAGE_FORMAT = 1; 32 public static final int LANGUAGE_FORMAT = 1; 33 public static final int REPORT_FORMAT_VERSION = 1; 33 public static final int REPORT_FORMAT_VERSION = 1; net/minecraft/SharedConstants.java --- 2/2 --- Java 160 } 160 } 161 161 162 public static int getProtocolVersion() { 162 public static int getProtocolVersion() { 163 return 1073742053; 163 return 1073742054; 164 } 164 } 165 165 166 public static boolean debugVoidTerrain(ChunkPos $$0) { 166 public static boolean debugVoidTerrain(ChunkPos $$0) { net/minecraft/world/entity/boss/enderdragon/phases/DragonStrafePlayerPhase.java --- Java 79 } 79 } 80 80 81 DragonFireball $$22 = new DragonFireball($$0, this.dr 81 DragonFireball $$22 = new DragonFireball($$0, this.dr .. agon, $$21.normalize()); .. agon, $$21.normalize()); 82 $$22.moveTo($$15, $$16, $$17, 0.0F, 0.0F); 82 $$22.snapTo($$15, $$16, $$17, 0.0F, 0.0F); 83 $$0.addFreshEntity($$22); 83 $$0.addFreshEntity($$22); 84 this.fireballCharge = 0; 84 this.fireballCharge = 0; 85 if (this.currentPath != null) { 85 if (this.currentPath != null) { net/minecraft/client/renderer/entity/state/VillagerRenderState.java --- Java 1 package net.minecraft.client.renderer.entity.state; 1 package net.minecraft.client.renderer.entity.state; 2 2 . 3 import javax.annotation.Nullable; 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 5 import net.fabricmc.api.Environment; 5 import net.minecraft.world.entity.npc.VillagerData; 6 import net.minecraft.world.entity.npc.VillagerData; 6 import net.minecraft.world.entity.npc.VillagerProfession; . 7 import net.minecraft.world.entity.npc.VillagerType; . 8 7 9 @Environment(EnvType.CLIENT) 8 @Environment(EnvType.CLIENT) 10 public class VillagerRenderState extends HoldingEntityRenderState imple 9 public class VillagerRenderState extends HoldingEntityRenderState imple .. ments VillagerDataHolderRenderState { . ments VillagerDataHolderRenderState { 11 public boolean isUnhappy; 10 public boolean isUnhappy; .. 11 @Nullable 12 public VillagerData villagerData = new VillagerData(VillagerType.PLA 12 public VillagerData villagerData; .. INS, VillagerProfession.NONE, 1); .. 13 13 .. 14 @Nullable 14 @Override 15 @Override 15 public VillagerData getVillagerData() { 16 public VillagerData getVillagerData() { 16 return this.villagerData; 17 return this.villagerData; net/minecraft/world/level/block/FarmBlock.java --- Java 98 } 98 } 99 99 100 @Override 100 @Override 101 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity 101 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity ... $$3, float $$4) { ... $$3, double $$4) { 102 if ($$0 instanceof ServerLevel $$5 102 if ($$0 instanceof ServerLevel $$5 103 && $$0.random.nextFloat() < $$4 - 0.5F 103 && (double)$$0.random.nextFloat() < $$4 - 0.5 104 && $$3 instanceof LivingEntity 104 && $$3 instanceof LivingEntity 105 && ($$3 instanceof Player || $$5.getGameRules().getBoolean(Ga 105 && ($$3 instanceof Player || $$5.getGameRules().getBoolean(Ga ... meRules.RULE_MOBGRIEFING)) ... meRules.RULE_MOBGRIEFING)) 106 && $$3.getBbWidth() * $$3.getBbWidth() * $$3.getBbHeight() > 106 && $$3.getBbWidth() * $$3.getBbWidth() * $$3.getBbHeight() > 0.512F) { 0.512F) { net/minecraft/network/protocol/game/GamePacketTypes.java --- 1/3 --- Java 35 public static final PacketType<ClientboundDeleteChatPacket> CLIENTBO 35 public static final PacketType<ClientboundDeleteChatPacket> CLIENTBO .. UND_DELETE_CHAT = createClientbound("delete_chat"); .. UND_DELETE_CHAT = createClientbound("delete_chat"); 36 public static final PacketType<ClientboundDisguisedChatPacket> CLIEN 36 public static final PacketType<ClientboundDisguisedChatPacket> CLIEN .. TBOUND_DISGUISED_CHAT = createClientbound("disguised_chat"); .. TBOUND_DISGUISED_CHAT = createClientbound("disguised_chat"); 37 public static final PacketType<ClientboundEntityEventPacket> CLIENTB 37 public static final PacketType<ClientboundEntityEventPacket> CLIENTB .. OUND_ENTITY_EVENT = createClientbound("entity_event"); .. OUND_ENTITY_EVENT = createClientbound("entity_event"); .. 38 public static final PacketType<ClientboundEntityPositionSyncPacket> .. .. CLIENTBOUND_ENTITY_POSITION_SYNC = createClientbound("entity_position_s .. .. ync"); 38 public static final PacketType<ClientboundExplodePacket> CLIENTBOUND 39 public static final PacketType<ClientboundExplodePacket> CLIENTBOUND .. _EXPLODE = createClientbound("explode"); .. _EXPLODE = createClientbound("explode"); 39 public static final PacketType<ClientboundForgetLevelChunkPacket> CL 40 public static final PacketType<ClientboundForgetLevelChunkPacket> CL .. IENTBOUND_FORGET_LEVEL_CHUNK = createClientbound("forget_level_chunk"); .. IENTBOUND_FORGET_LEVEL_CHUNK = createClientbound("forget_level_chunk"); 40 public static final PacketType<ClientboundGameEventPacket> CLIENTBOU 41 public static final PacketType<ClientboundGameEventPacket> CLIENTBOU ND_GAME_EVENT = createClientbound("game_event"); ND_GAME_EVENT = createClientbound("game_event"); net/minecraft/network/protocol/game/GamePacketTypes.java --- 2/3 --- Java 117 public static final PacketType<ClientboundTagQueryPacket> CLIENTBOU 118 public static final PacketType<ClientboundTagQueryPacket> CLIENTBOU ... ND_TAG_QUERY = createClientbound("tag_query"); ... ND_TAG_QUERY = createClientbound("tag_query"); 118 public static final PacketType<ClientboundTakeItemEntityPacket> CLI 119 public static final PacketType<ClientboundTakeItemEntityPacket> CLI ... ENTBOUND_TAKE_ITEM_ENTITY = createClientbound("take_item_entity"); ... ENTBOUND_TAKE_ITEM_ENTITY = createClientbound("take_item_entity"); 119 public static final PacketType<ClientboundTeleportEntityPacket> CLI 120 public static final PacketType<ClientboundTeleportEntityPacket> CLI ... ENTBOUND_TELEPORT_ENTITY = createClientbound("teleport_entity"); ... ENTBOUND_TELEPORT_ENTITY = createClientbound("teleport_entity"); 120 public static final PacketType<ClientboundEntityPositionSyncPacket> 121 public static final PacketType<ClientboundTestInstanceBlockStatus> ... CLIENTBOUND_ENTITY_POSITION_SYNC = createClientbound("entity_position ... CLIENTBOUND_TEST_INSTANCE_BLOCK_STATUS = createClientbound("test_insta ... _sync"); ... nce_block_status"); 121 public static final PacketType<ClientboundUpdateAdvancementsPacket> 122 public static final PacketType<ClientboundUpdateAdvancementsPacket> ... CLIENTBOUND_UPDATE_ADVANCEMENTS = createClientbound("update_advanceme ... CLIENTBOUND_UPDATE_ADVANCEMENTS = createClientbound("update_advanceme ... nts"); ... nts"); 122 public static final PacketType<ClientboundUpdateAttributesPacket> C 123 public static final PacketType<ClientboundUpdateAttributesPacket> C ... LIENTBOUND_UPDATE_ATTRIBUTES = createClientbound("update_attributes"); ... LIENTBOUND_UPDATE_ATTRIBUTES = createClientbound("update_attributes"); 123 public static final PacketType<ClientboundUpdateMobEffectPacket> CL 124 public static final PacketType<ClientboundUpdateMobEffectPacket> CL IENTBOUND_UPDATE_MOB_EFFECT = createClientbound("update_mob_effect"); IENTBOUND_UPDATE_MOB_EFFECT = createClientbound("update_mob_effect"); net/minecraft/network/protocol/game/GamePacketTypes.java --- 3/3 --- Java 181 public static final PacketType<ServerboundSetCreativeModeSlotPacket 182 public static final PacketType<ServerboundSetCreativeModeSlotPacket ... > SERVERBOUND_SET_CREATIVE_MODE_SLOT = createServerbound("set_creative ... > SERVERBOUND_SET_CREATIVE_MODE_SLOT = createServerbound("set_creative ... _mode_slot"); ... _mode_slot"); 182 public static final PacketType<ServerboundSetJigsawBlockPacket> SER 183 public static final PacketType<ServerboundSetJigsawBlockPacket> SER ... VERBOUND_SET_JIGSAW_BLOCK = createServerbound("set_jigsaw_block"); ... VERBOUND_SET_JIGSAW_BLOCK = createServerbound("set_jigsaw_block"); 183 public static final PacketType<ServerboundSetStructureBlockPacket> 184 public static final PacketType<ServerboundSetStructureBlockPacket> ... SERVERBOUND_SET_STRUCTURE_BLOCK = createServerbound("set_structure_blo ... SERVERBOUND_SET_STRUCTURE_BLOCK = createServerbound("set_structure_blo ... ck"); ... ck"); ... 185 public static final PacketType<ServerboundSetTestBlockPacket> SERVE ... ... RBOUND_SET_TEST_BLOCK = createServerbound("set_test_block"); ... 186 public static final PacketType<ServerboundTestInstanceBlockActionPa ... ... cket> SERVERBOUND_TEST_INSTANCE_BLOCK_ACTION = createServerbound( ... 187 "test_instance_block_action" ... 188 ); 184 public static final PacketType<ServerboundSignUpdatePacket> SERVERB 189 public static final PacketType<ServerboundSignUpdatePacket> SERVERB ... OUND_SIGN_UPDATE = createServerbound("sign_update"); ... OUND_SIGN_UPDATE = createServerbound("sign_update"); 185 public static final PacketType<ServerboundSwingPacket> SERVERBOUND_ 190 public static final PacketType<ServerboundSwingPacket> SERVERBOUND_ ... SWING = createServerbound("swing"); ... SWING = createServerbound("swing"); 186 public static final PacketType<ServerboundTeleportToEntityPacket> S 191 public static final PacketType<ServerboundTeleportToEntityPacket> S ERVERBOUND_TELEPORT_TO_ENTITY = createServerbound("teleport_to_entity" ERVERBOUND_TELEPORT_TO_ENTITY = createServerbound("teleport_to_entity" ); ); net/minecraft/world/level/block/HoneyBlock.java --- Java 47 } 47 } 48 48 49 @Override 49 @Override 50 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity $ 50 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity $ .. $3, float $$4) { .. $3, double $$4) { 51 $$3.playSound(SoundEvents.HONEY_BLOCK_SLIDE, 1.0F, 1.0F); 51 $$3.playSound(SoundEvents.HONEY_BLOCK_SLIDE, 1.0F, 1.0F); 52 if (!$$0.isClientSide) { 52 if (!$$0.isClientSide) { 53 $$0.broadcastEntityEvent($$3, (byte)54); 53 $$0.broadcastEntityEvent($$3, (byte)54); net/minecraft/client/gui/screens/inventory/HorseInventoryScreen.java --- Java 35 $$0.blitSprite(RenderType::guiTextured, CHEST_SLOTS_SPRITE, 90 35 $$0.blitSprite(RenderType::guiTextured, CHEST_SLOTS_SPRITE, 90 .. , 54, 0, 0, $$4 + 79, $$5 + 17, this.inventoryColumns * 18, 54); .. , 54, 0, 0, $$4 + 79, $$5 + 17, this.inventoryColumns * 18, 54); 36 } 36 } 37 37 38 if (this.horse.isSaddleable()) { 38 if (this.horse.canUseSlot(EquipmentSlot.SADDLE)) { 39 this.drawSlot($$0, $$4 + 7, $$5 + 35 - 18); 39 this.drawSlot($$0, $$4 + 7, $$5 + 35 - 18); 40 } 40 } 41 41 net/minecraft/world/item/HangingEntityItem.java --- 1/4 --- Java 5 import net.minecraft.ChatFormatting; 5 import net.minecraft.ChatFormatting; 6 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.BlockPos; 7 import net.minecraft.core.Direction; 7 import net.minecraft.core.Direction; 8 import net.minecraft.core.HolderLookup; 8 import net.minecraft.core.Holder; 9 import net.minecraft.core.component.DataComponents; 9 import net.minecraft.core.component.DataComponents; 10 import net.minecraft.nbt.NbtOps; . 11 import net.minecraft.network.chat.Component; 10 import net.minecraft.network.chat.Component; 12 import net.minecraft.world.InteractionResult; 11 import net.minecraft.world.InteractionResult; 13 import net.minecraft.world.entity.EntityType; 12 import net.minecraft.world.entity.EntityType; net/minecraft/world/item/HangingEntityItem.java --- 2/4 --- Java 17 import net.minecraft.world.entity.decoration.Painting; 16 import net.minecraft.world.entity.decoration.Painting; 18 import net.minecraft.world.entity.decoration.PaintingVariant; 17 import net.minecraft.world.entity.decoration.PaintingVariant; 19 import net.minecraft.world.entity.player.Player; 18 import net.minecraft.world.entity.player.Player; 20 import net.minecraft.world.item.component.CustomData; .. 21 import net.minecraft.world.item.context.UseOnContext; 19 import net.minecraft.world.item.context.UseOnContext; 22 import net.minecraft.world.level.Level; 20 import net.minecraft.world.level.Level; 23 import net.minecraft.world.level.gameevent.GameEvent; 21 import net.minecraft.world.level.gameevent.GameEvent; net/minecraft/world/item/HangingEntityItem.java --- 3/4 --- Java 60 $$8 = new GlowItemFrame($$6, $$3, $$2); 58 $$8 = new GlowItemFrame($$6, $$3, $$2); 61 } 59 } 62 60 63 CustomData $$12 = $$5.getOrDefault(DataComponents.ENTITY_DATA, .. .. CustomData.EMPTY); .. 64 if (!$$12.isEmpty()) { .. 65 EntityType.updateCustomEntityTag($$6, $$4, $$8, $$12); 61 EntityType.<HangingEntity>createDefaultStackConfig($$6, $$5, $ .. .. $4).accept($$8); 66 } .. 67 .. 68 if ($$8.survives()) { 62 if ($$8.survives()) { 69 if (!$$6.isClientSide) { 63 if (!$$6.isClientSide) { net/minecraft/world/item/HangingEntityItem.java --- 4/4 --- Java 87 @Override 81 @Override 88 public void appendHoverText(ItemStack $$0, Item.TooltipContext $$1, 82 public void appendHoverText(ItemStack $$0, Item.TooltipContext $$1, .. List<Component> $$2, TooltipFlag $$3) { .. List<Component> $$2, TooltipFlag $$3) { 89 super.appendHoverText($$0, $$1, $$2, $$3); 83 super.appendHoverText($$0, $$1, $$2, $$3); 90 HolderLookup.Provider $$4 = $$1.registries(); .. 91 if ($$4 != null && this.type == EntityType.PAINTING) { 84 if (this.type == EntityType.PAINTING) { 92 CustomData $$5 = $$0.getOrDefault(DataComponents.ENTITY_DATA, 85 Holder<PaintingVariant> $$4 = $$0.get(DataComponents.PAINTING .. CustomData.EMPTY); .. _VARIANT); 93 if (!$$5.isEmpty()) { 86 if ($$4 != null) { 94 $$5.read($$4.createSerializationContext(NbtOps.INSTANCE), .. .. Painting.VARIANT_MAP_CODEC).result().ifPresentOrElse($$1x -> { .. 95 ((PaintingVariant)$$1x.value()).title().ifPresent($$2:: 87 $$4.value().title().ifPresent($$2::add); .. add); .. 96 ((PaintingVariant)$$1x.value()).author().ifPresent($$2: 88 $$4.value().author().ifPresent($$2::add); .. :add); .. 97 $$2.add(Component.translatable("painting.dimensions", ( 89 $$2.add(Component.translatable("painting.dimensions", $$4. .. (PaintingVariant)$$1x.value()).width(), ((PaintingVariant)$$1x.value() .. value().width(), $$4.value().height())); .. ).height())); .. 98 }, () -> $$2.add(TOOLTIP_RANDOM_VARIANT)); 90 } else if ($$3.isCreative()) { 99 } else if ($$3.isCreative()) { .. 100 $$2.add(TOOLTIP_RANDOM_VARIANT); 91 $$2.add(TOOLTIP_RANDOM_VARIANT); 101 } 92 } 102 } 93 } net/minecraft/world/level/block/TestInstanceBlock.java --- Java 1 package net.minecraft.world.level.block; 2 3 import com.mojang.serialization.MapCodec; 4 import javax.annotation.Nullable; 5 import net.minecraft.core.BlockPos; 6 import net.minecraft.world.InteractionResult; 7 import net.minecraft.world.entity.player.Player; 8 import net.minecraft.world.level.Level; 9 import net.minecraft.world.level.block.entity.BlockEntity; 10 import net.minecraft.world.level.block.entity.TestInstanceBlockEntity; 11 import net.minecraft.world.level.block.state.BlockBehaviour; 12 import net.minecraft.world.level.block.state.BlockState; 13 import net.minecraft.world.phys.BlockHitResult; 14 15 public class TestInstanceBlock extends BaseEntityBlock implements GameMasterBlock { 16 public static final MapCodec<TestInstanceBlock> CODEC = simpleCodec(TestInstanceBlock::new); 17 18 public TestInstanceBlock(BlockBehaviour.Properties $$0) { 19 super($$0); 20 } 21 22 @Nullable 23 @Override 24 public BlockEntity newBlockEntity(BlockPos $$0, BlockState $$1) { 25 return new TestInstanceBlockEntity($$0, $$1); 26 } 27 28 @Override 29 protected InteractionResult useWithoutItem(BlockState $$0, Level $$1, BlockPos $$2, Player $$3, BlockHitResult $$4) { 30 if ($$1.getBlockEntity($$2) instanceof TestInstanceBlockEntity $$6) { 31 if (!$$3.canUseGameMasterBlocks()) { 32 return InteractionResult.PASS; 33 } else { 34 if ($$3.getCommandSenderWorld().isClientSide) { 35 $$3.openTestInstanceBlock($$6); 36 } 37 38 return InteractionResult.SUCCESS; 39 } 40 } else { 41 return InteractionResult.PASS; 42 } 43 } 44 45 @Override 46 protected MapCodec<TestInstanceBlock> codec() { 47 return CODEC; 48 } 49 } 50 net/minecraft/world/item/MobBucketItem.java --- 1/3 --- Java 1 package net.minecraft.world.item; 1 package net.minecraft.world.item; 2 2 3 import com.mojang.serialization.MapCodec; . 4 import java.util.List; 3 import java.util.List; 5 import java.util.Optional; . 6 import javax.annotation.Nullable; 4 import javax.annotation.Nullable; 7 import net.minecraft.ChatFormatting; 5 import net.minecraft.ChatFormatting; 8 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.BlockPos; net/minecraft/world/item/MobBucketItem.java --- 2/3 --- Java 25 import net.minecraft.world.level.material.Fluid; 23 import net.minecraft.world.level.material.Fluid; 26 24 27 public class MobBucketItem extends BucketItem { 25 public class MobBucketItem extends BucketItem { 28 private static final MapCodec<TropicalFish.Variant> VARIANT_FIELD_CO .. .. DEC = TropicalFish.Variant.CODEC.fieldOf("BucketVariantTag"); .. 29 private final EntityType<? extends Mob> type; 26 private final EntityType<? extends Mob> type; 30 private final SoundEvent emptySound; 27 private final SoundEvent emptySound; 31 28 net/minecraft/world/item/MobBucketItem.java --- 3/3 --- Java 65 @Override 62 @Override 66 public void appendHoverText(ItemStack $$0, Item.TooltipContext $$1, 63 public void appendHoverText(ItemStack $$0, Item.TooltipContext $$1, .. List<Component> $$2, TooltipFlag $$3) { .. List<Component> $$2, TooltipFlag $$3) { 67 if (this.type == EntityType.TROPICAL_FISH) { 64 if (this.type == EntityType.TROPICAL_FISH) { 68 CustomData $$4 = $$0.getOrDefault(DataComponents.BUCKET_ENTITY 65 TropicalFish.Pattern $$4 = $$0.get(DataComponents.TROPICAL_FIS .. _DATA, CustomData.EMPTY); .. H_PATTERN); 69 if ($$4.isEmpty()) { 66 if ($$4 == null) { 70 return; 67 return; 71 } 68 } 72 69 73 Optional<TropicalFish.Variant> $$5 = $$4.read(VARIANT_FIELD_CO 70 DyeColor $$5 = $$0.getOrDefault(DataComponents.TROPICAL_FISH_B .. DEC).result(); .. ASE_COLOR, TropicalFish.DEFAULT_VARIANT.baseColor()); 74 if ($$5.isPresent()) { .. 75 TropicalFish.Variant $$6 = $$5.get(); 71 DyeColor $$6 = $$0.getOrDefault(DataComponents.TROPICAL_FISH_P .. .. ATTERN_COLOR, TropicalFish.DEFAULT_VARIANT.patternColor()); 76 ChatFormatting[] $$7 = new ChatFormatting[]{ChatFormatting. 72 ChatFormatting[] $$7 = new ChatFormatting[]{ChatFormatting.ITA .. ITALIC, ChatFormatting.GRAY}; .. LIC, ChatFormatting.GRAY}; 77 String $$8 = "color.minecraft." + $$6.baseColor(); .. 78 String $$9 = "color.minecraft." + $$6.patternColor(); .. 79 int $$10 = TropicalFish.COMMON_VARIANTS.indexOf($$6); 73 int $$8 = TropicalFish.COMMON_VARIANTS.indexOf(new TropicalFis .. .. h.Variant($$4, $$5, $$6)); 80 if ($$10 != -1) { 74 if ($$8 != -1) { 81 $$2.add(Component.translatable(TropicalFish.getPredefine 75 $$2.add(Component.translatable(TropicalFish.getPredefinedNa .. dName($$10)).withStyle($$7)); .. me($$8)).withStyle($$7)); 82 return; 76 return; 83 } 77 } 84 78 85 $$2.add($$6.pattern().displayName().plainCopy().withStyle($ 79 $$2.add($$4.displayName().plainCopy().withStyle($$7)); .. $7)); .. 86 MutableComponent $$11 = Component.translatable($$8); 80 MutableComponent $$9 = Component.translatable("color.minecraft .. .. ." + $$5.getName()); 87 if (!$$8.equals($$9)) { 81 if ($$5 != $$6) { 88 $$11.append(", ").append(Component.translatable($$9)); 82 $$9.append(", ").append(Component.translatable("color.minec .. .. raft." + $$6.getName())); 89 } 83 } 90 84 91 $$11.withStyle($$7); 85 $$9.withStyle($$7); 92 $$2.add($$11); 86 $$2.add($$9); 93 } .. 94 } 87 } 95 } 88 } 96 } 89 } net/minecraft/world/entity/item/FallingBlockEntity.java --- Java 239 } 239 } 240 240 241 @Override 241 @Override 242 public boolean causeFallDamage(float $$0, float $$1, DamageSource $ 242 public boolean causeFallDamage(double $$0, float $$1, DamageSource ... $2) { ... $$2) { 243 if (!this.hurtEntities) { 243 if (!this.hurtEntities) { 244 return false; 244 return false; 245 } else { 245 } else { 246 int $$3 = Mth.ceil($$0 - 1.0F); 246 int $$3 = Mth.ceil($$0 - 1.0); 247 if ($$3 < 0) { 247 if ($$3 < 0) { 248 return false; 248 return false; 249 } else { 249 } else { net/minecraft/client/renderer/entity/state/StriderRenderState.java --- Java 2 2 3 import net.fabricmc.api.EnvType; 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 4 import net.fabricmc.api.Environment; . 5 import net.minecraft.world.item.ItemStack; 5 6 6 @Environment(EnvType.CLIENT) 7 @Environment(EnvType.CLIENT) 7 public class StriderRenderState extends LivingEntityRenderState impleme 8 public class StriderRenderState extends LivingEntityRenderState { . nts SaddleableRenderState { . 8 public boolean isSaddled; 9 public ItemStack saddle = ItemStack.EMPTY; 9 public boolean isSuffocating; 10 public boolean isSuffocating; 10 public boolean isRidden; 11 public boolean isRidden; 11 .. 12 @Override .. 13 public boolean isSaddled() { .. 14 return this.isSaddled; .. 15 } .. 16 } 12 } net/minecraft/DetectedVersion.java --- Java 28 28 29 private DetectedVersion() { 29 private DetectedVersion() { 30 this.id = UUID.randomUUID().toString().replaceAll("-", ""); 30 this.id = UUID.randomUUID().toString().replaceAll("-", ""); 31 this.name = "25w02a"; 31 this.name = "25w03a"; 32 this.stable = false; 32 this.stable = false; 33 this.worldVersion = new DataVersion(4298, "main"); 33 this.worldVersion = new DataVersion(4304, "main"); 34 this.protocolVersion = SharedConstants.getProtocolVersion(); 34 this.protocolVersion = SharedConstants.getProtocolVersion(); 35 this.resourcePackVersion = 47; 35 this.resourcePackVersion = 48; 36 this.dataPackVersion = 62; 36 this.dataPackVersion = 63; 37 this.buildTime = new Date(); 37 this.buildTime = new Date(); 38 } 38 } 39 39 net/minecraft/network/protocol/game/ServerboundSetTestBlockPacket.java --- Java 1 package net.minecraft.network.protocol.game; 2 3 import net.minecraft.core.BlockPos; 4 import net.minecraft.network.FriendlyByteBuf; 5 import net.minecraft.network.codec.ByteBufCodecs; 6 import net.minecraft.network.codec.StreamCodec; 7 import net.minecraft.network.protocol.Packet; 8 import net.minecraft.network.protocol.PacketType; 9 import net.minecraft.world.level.block.state.properties.TestBlockMode; 10 11 public record ServerboundSetTestBlockPacket(BlockPos position, TestBlockMode mode, String message) implements Packet<ServerGamePacketListener> { 12 public static final StreamCodec<FriendlyByteBuf, ServerboundSetTestBlockPacket> STREAM_CODEC = StreamCodec.composite( 13 BlockPos.STREAM_CODEC, 14 ServerboundSetTestBlockPacket::position, 15 TestBlockMode.STREAM_CODEC, 16 ServerboundSetTestBlockPacket::mode, 17 ByteBufCodecs.STRING_UTF8, 18 ServerboundSetTestBlockPacket::message, 19 ServerboundSetTestBlockPacket::new 20 ); 21 22 @Override 23 public PacketType<ServerboundSetTestBlockPacket> type() { 24 return GamePacketTypes.SERVERBOUND_SET_TEST_BLOCK; 25 } 26 27 public void handle(ServerGamePacketListener $$0) { 28 $$0.handleSetTestBlock(this); 29 } 30 } 31 net/minecraft/world/level/block/SlimeBlock.java --- Java 23 } 23 } 24 24 25 @Override 25 @Override 26 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity $ 26 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity $ .. $3, float $$4) { .. $3, double $$4) { 27 if (!$$3.isSuppressingBounce()) { 27 if (!$$3.isSuppressingBounce()) { 28 $$3.causeFallDamage($$4, 0.0F, $$0.damageSources().fall()); 28 $$3.causeFallDamage($$4, 0.0F, $$0.damageSources().fall()); 29 } 29 } net/minecraft/world/item/ArmorStandItem.java --- Java 44 } 44 } 45 45 46 float $$11 = (float)Mth.floor((Mth.wrapDegrees($$0.getRo 46 float $$11 = (float)Mth.floor((Mth.wrapDegrees($$0.getRo .. tation() - 180.0F) + 22.5F) / 45.0F) * 45.0F; .. tation() - 180.0F) + 22.5F) / 45.0F) * 45.0F; 47 $$10.moveTo($$10.getX(), $$10.getY(), $$10.getZ(), $$11, 47 $$10.snapTo($$10.getX(), $$10.getY(), $$10.getZ(), $$11, .. 0.0F); .. 0.0F); 48 $$8.addFreshEntityWithPassengers($$10); 48 $$8.addFreshEntityWithPassengers($$10); 49 $$2.playSound(null, $$10.getX(), $$10.getY(), $$10.getZ( 49 $$2.playSound(null, $$10.getX(), $$10.getY(), $$10.getZ( .. ), SoundEvents.ARMOR_STAND_PLACE, SoundSource.BLOCKS, 0.75F, 0.8F); .. ), SoundEvents.ARMOR_STAND_PLACE, SoundSource.BLOCKS, 0.75F, 0.8F); 50 $$10.gameEvent(GameEvent.ENTITY_PLACE, $$0.getPlayer()); 50 $$10.gameEvent(GameEvent.ENTITY_PLACE, $$0.getPlayer()); net/minecraft/core/Vec3i.java --- Java 3 import com.google.common.base.MoreObjects; 3 import com.google.common.base.MoreObjects; 4 import com.mojang.serialization.Codec; 4 import com.mojang.serialization.Codec; 5 import com.mojang.serialization.DataResult; 5 import com.mojang.serialization.DataResult; . 6 import io.netty.buffer.ByteBuf; 6 import java.util.stream.IntStream; 7 import java.util.stream.IntStream; 7 import javax.annotation.concurrent.Immutable; 8 import javax.annotation.concurrent.Immutable; 8 import net.minecraft.Util; 9 import net.minecraft.Util; . 10 import net.minecraft.network.codec.ByteBufCodecs; . 11 import net.minecraft.network.codec.StreamCodec; 9 import net.minecraft.util.Mth; 12 import net.minecraft.util.Mth; 10 13 11 @Immutable 14 @Immutable 12 public class Vec3i implements Comparable<Vec3i> { 15 public class Vec3i implements Comparable<Vec3i> { 13 public static final Codec<Vec3i> CODEC = Codec.INT_STREAM 16 public static final Codec<Vec3i> CODEC = Codec.INT_STREAM 14 .comapFlatMap($$0 -> Util.fixedSize($$0, 3).map($$0x -> new Vec3i 17 .comapFlatMap($$0 -> Util.fixedSize($$0, 3).map($$0x -> new Vec3i .. ($$0x[0], $$0x[1], $$0x[2])), $$0 -> IntStream.of($$0.getX(), $$0.getY( .. ($$0x[0], $$0x[1], $$0x[2])), $$0 -> IntStream.of($$0.getX(), $$0.getY( .. ), $$0.getZ())); .. ), $$0.getZ())); .. 18 public static final StreamCodec<ByteBuf, Vec3i> STREAM_CODEC = Strea .. .. mCodec.composite( .. 19 ByteBufCodecs.VAR_INT, Vec3i::getX, ByteBufCodecs.VAR_INT, Vec3i: .. .. :getY, ByteBufCodecs.VAR_INT, Vec3i::getZ, Vec3i::new .. 20 ); 15 public static final Vec3i ZERO = new Vec3i(0, 0, 0); 21 public static final Vec3i ZERO = new Vec3i(0, 0, 0); 16 private int x; 22 private int x; 17 private int y; 23 private int y; net/minecraft/client/gui/GuiGraphics.java --- Text (6 Java parse errors, exceeded DFT_PARSE_ERROR_LIMIT) 805 HoverEvent.ShowText var20 = var11; 805 HoverEvent.ShowText var20 = var11; 806 806 807 try { 807 try { 808 var22 = var20.text(); 808 var22 = var20.value(); 809 } catch (Throwable var14) { 809 } catch (Throwable var14) { 810 var21 = var14; 810 var21 = var14; 811 boolean var10001 = false; 811 boolean var10001 = false; net/minecraft/tags/EntityTypeTags.java --- Java 40 TagKey<EntityType<?>> IMMUNE_TO_INFESTED = create("immune_to_infeste 40 TagKey<EntityType<?>> IMMUNE_TO_INFESTED = create("immune_to_infeste .. d"); .. d"); 41 TagKey<EntityType<?>> REDIRECTABLE_PROJECTILE = create("redirectable 41 TagKey<EntityType<?>> REDIRECTABLE_PROJECTILE = create("redirectable .. _projectile"); .. _projectile"); 42 TagKey<EntityType<?>> BOAT = create("boat"); 42 TagKey<EntityType<?>> BOAT = create("boat"); .. 43 TagKey<EntityType<?>> CAN_EQUIP_SADDLE = create("can_equip_saddle"); 43 44 44 private static TagKey<EntityType<?>> create(String $$0) { 45 private static TagKey<EntityType<?>> create(String $$0) { 45 return TagKey.create(Registries.ENTITY_TYPE, ResourceLocation.wit 46 return TagKey.create(Registries.ENTITY_TYPE, ResourceLocation.wit hDefaultNamespace($$0)); hDefaultNamespace($$0)); net/minecraft/world/entity/TamableAnimal.java --- Text (2 Java parse errors, exceeded DFT_PARSE_ERROR_LIMIT) 266 if (!this.canTeleportTo(new BlockPos($$0, $$1, $$2))) { 266 if (!this.canTeleportTo(new BlockPos($$0, $$1, $$2))) { 267 return false; 267 return false; 268 } else { 268 } else { 269 this.moveTo((double)$$0 + 0.5, (double)$$1, (double)$$2 + 0.5 269 this.snapTo((double)$$0 + 0.5, (double)$$1, (double)$$2 + 0.5 ... , this.getYRot(), this.getXRot()); ... , this.getYRot(), this.getXRot()); 270 this.navigation.stop(); 270 this.navigation.stop(); 271 return true; 271 return true; 272 } 272 } net/minecraft/world/effect/InfestedMobEffect.java --- Java 42 float $$7 = (float) (Math.PI / 2); 42 float $$7 = (float) (Math.PI / 2); 43 float $$8 = Mth.randomBetween($$6, (float) (-Math.PI / 2), (fl 43 float $$8 = Mth.randomBetween($$6, (float) (-Math.PI / 2), (fl .. oat) (Math.PI / 2)); .. oat) (Math.PI / 2)); 44 Vector3f $$9 = $$1.getLookAngle().toVector3f().mul(0.3F).mul(1 44 Vector3f $$9 = $$1.getLookAngle().toVector3f().mul(0.3F).mul(1 .. .0F, 1.5F, 1.0F).rotateY($$8); .. .0F, 1.5F, 1.0F).rotateY($$8); 45 $$5.moveTo($$2, $$3, $$4, $$0.getRandom().nextFloat() * 360.0F 45 $$5.snapTo($$2, $$3, $$4, $$0.getRandom().nextFloat() * 360.0F .. , 0.0F); .. , 0.0F); 46 $$5.setDeltaMovement(new Vec3($$9)); 46 $$5.setDeltaMovement(new Vec3($$9)); 47 $$0.addFreshEntity($$5); 47 $$0.addFreshEntity($$5); 48 $$5.playSound(SoundEvents.SILVERFISH_HURT); 48 $$5.playSound(SoundEvents.SILVERFISH_HURT); net/minecraft/client/renderer/entity/state/EquineRenderState.java --- Java 2 2 3 import net.fabricmc.api.EnvType; 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 4 import net.fabricmc.api.Environment; . 5 import net.minecraft.world.item.ItemStack; 5 6 6 @Environment(EnvType.CLIENT) 7 @Environment(EnvType.CLIENT) 7 public class EquineRenderState extends LivingEntityRenderState { 8 public class EquineRenderState extends LivingEntityRenderState { 8 public boolean isSaddled; 9 public ItemStack saddle = ItemStack.EMPTY; 9 public boolean isRidden; 10 public boolean isRidden; 10 public boolean animateTail; 11 public boolean animateTail; 11 public float eatAnimation; 12 public float eatAnimation; net/minecraft/client/gui/screens/inventory/TestInstanceBlockEditScreen.java --- Java 1 package net.minecraft.client.gui.screens.inventory; 2 3 import java.util.Optional; 4 import javax.annotation.Nullable; 5 import net.fabricmc.api.EnvType; 6 import net.fabricmc.api.Environment; 7 import net.minecraft.ChatFormatting; 8 import net.minecraft.SharedConstants; 9 import net.minecraft.client.gui.GuiGraphics; 10 import net.minecraft.client.gui.components.Button; 11 import net.minecraft.client.gui.components.CycleButton; 12 import net.minecraft.client.gui.components.EditBox; 13 import net.minecraft.client.gui.components.FittingMultiLineTextWidget; 14 import net.minecraft.client.gui.screens.Screen; 15 import net.minecraft.core.Vec3i; 16 import net.minecraft.core.registries.Registries; 17 import net.minecraft.gametest.framework.GameTestInstance; 18 import net.minecraft.network.chat.CommonComponents; 19 import net.minecraft.network.chat.Component; 20 import net.minecraft.network.chat.MutableComponent; 21 import net.minecraft.network.protocol.game.ServerboundTestInstanceBlockActionPacket; 22 import net.minecraft.resources.ResourceKey; 23 import net.minecraft.resources.ResourceLocation; 24 import net.minecraft.world.level.block.Rotation; 25 import net.minecraft.world.level.block.entity.TestInstanceBlockEntity; 26 27 @Environment(EnvType.CLIENT) 28 public class TestInstanceBlockEditScreen extends Screen { 29 private static final Component ID_LABEL = Component.translatable("test_instance_block.test_id"); 30 private static final Component SIZE_LABEL = Component.translatable("test_instance_block.size"); 31 private static final Component INCLUDE_ENTITIES_LABEL = Component.translatable("test_instance_block.entities"); 32 private static final Component ROTATION_LABEL = Component.translatable("test_instance_block.rotation"); 33 private static final int BUTTON_PADDING = 8; 34 private static final int WIDTH = 316; 35 private final TestInstanceBlockEntity blockEntity; 36 @Nullable 37 private EditBox idEdit; 38 @Nullable 39 private EditBox sizeXEdit; 40 @Nullable 41 private EditBox sizeYEdit; 42 @Nullable 43 private EditBox sizeZEdit; 44 @Nullable 45 private FittingMultiLineTextWidget infoWidget; 46 @Nullable 47 private Button saveButton; 48 @Nullable 49 private Button exportButton; 50 @Nullable 51 private CycleButton<Boolean> includeEntitiesButton; 52 @Nullable 53 private CycleButton<Rotation> rotationButton; 54 55 public TestInstanceBlockEditScreen(TestInstanceBlockEntity $$0) { 56 super($$0.getBlockState().getBlock().getName()); 57 this.blockEntity = $$0; 58 } 59 60 @Override 61 protected void init() { 62 int $$0 = this.width / 2 - 158; 63 this.addRenderableWidget(Button.builder(Component.literal("Run Test"), $$0x -> { 64 this.sendToServer(ServerboundTestInstanceBlockActionPacket.Action.RUN); 65 this.minecraft.setScreen(null); 66 }).bounds(this.widgetX(0, 3), 210, widgetSize(3), 20).build()); 67 this.addRenderableWidget(Button.builder(CommonComponents.GUI_DONE, $$0x -> this.onDone()).bounds(this.widgetX(1, 3), 210, widgetSize(3), 20).build()); 68 this.addRenderableWidget(Button.builder(CommonComponents.GUI_CANCEL, $$0x -> this.onCancel()).bounds(this.widgetX(2, 3), 210, widgetSize(3), 20).build()); 69 boolean $$1 = SharedConstants.IS_RUNNING_IN_IDE; 70 int $$2 = $$1 ? 3 : 2; 71 int $$3 = widgetSize($$2); 72 int $$4 = 0; 73 this.addRenderableWidget(Button.builder(Component.translatable("Reset and Load"), $$0x -> { 74 this.sendToServer(ServerboundTestInstanceBlockActionPacket.Action.RESET); 75 this.minecraft.setScreen(null); 76 }).bounds(this.widgetX($$4++, $$2), 185, $$3, 20).build()); 77 this.saveButton = this.addRenderableWidget(Button.builder(Component.translatable("Save Structure"), $$0x -> { 78 this.sendToServer(ServerboundTestInstanceBlockActionPacket.Action.SAVE); 79 this.minecraft.setScreen(null); 80 }).bounds(this.widgetX($$4++, $$2), 185, $$3, 20).build()); 81 if ($$1) { 82 this.exportButton = this.addRenderableWidget(Button.builder(Component.literal("Export Structure"), $$0x -> { 83 this.sendToServer(ServerboundTestInstanceBlockActionPacket.Action.EXPORT); 84 this.minecraft.setScreen(null); 85 }).bounds(this.widgetX($$4++, $$2), 185, $$3, 20).build()); 86 } 87 88 this.idEdit = new EditBox(this.font, $$0, 40, 316, 20, Component.translatable("test_instance_block.test_id")); 89 this.idEdit.setMaxLength(128); 90 Optional<ResourceKey<GameTestInstance>> $$5 = this.blockEntity.test(); 91 if ($$5.isPresent()) { 92 this.idEdit.setValue($$5.get().location().toString()); 93 } 94 95 this.idEdit.setResponder($$0x -> this.updateTestInfo(false)); 96 this.addRenderableWidget(this.idEdit); 97 this.infoWidget = new FittingMultiLineTextWidget($$0, 70, 316, 8 * 9, Component.literal(""), this.font); 98 this.addRenderableWidget(this.infoWidget); 99 Vec3i $$6 = this.blockEntity.getSize(); 100 $$4 = 0; 101 this.sizeXEdit = new EditBox(this.font, this.widgetX($$4++, 5), 160, widgetSize(5), 20, Component.translatable("structure_block.size.x")); 102 this.sizeXEdit.setMaxLength(15); 103 this.addRenderableWidget(this.sizeXEdit); 104 this.sizeYEdit = new EditBox(this.font, this.widgetX($$4++, 5), 160, widgetSize(5), 20, Component.translatable("structure_block.size.y")); 105 this.sizeYEdit.setMaxLength(15); 106 this.addRenderableWidget(this.sizeYEdit); 107 this.sizeZEdit = new EditBox(this.font, this.widgetX($$4++, 5), 160, widgetSize(5), 20, Component.translatable("structure_block.size.z")); 108 this.sizeZEdit.setMaxLength(15); 109 this.addRenderableWidget(this.sizeZEdit); 110 this.setSize($$6); 111 this.rotationButton = this.addRenderableWidget( 112 CycleButton.builder(TestInstanceBlockEditScreen::rotationDisplay) 113 .withValues(Rotation.values()) 114 .withInitialValue(this.blockEntity.getRotation()) 115 .displayOnlyValue() 116 .create(this.widgetX($$4++, 5), 160, widgetSize(5), 20, ROTATION_LABEL, ($$0x, $$1x) -> this.updateSaveState()) 117 ); 118 this.includeEntitiesButton = this.addRenderableWidget( 119 CycleButton.onOffBuilder(!this.blockEntity.ignoreEntities()) 120 .displayOnlyValue() 121 .create(this.widgetX($$4++, 5), 160, widgetSize(5), 20, INCLUDE_ENTITIES_LABEL) 122 ); 123 this.updateTestInfo(true); 124 } 125 126 private void updateSaveState() { 127 boolean $$0 = this.rotationButton.getValue() == Rotation.NONE && ResourceLocation.tryParse(this.idEdit.getValue()) != null; 128 this.saveButton.active = $$0; 129 if (this.exportButton != null) { 130 this.exportButton.active = $$0; 131 } 132 } 133 134 private static Component rotationDisplay(Rotation $$0) { 135 return Component.literal(switch ($$0) { 136 case NONE -> "0"; 137 case CLOCKWISE_90 -> "90"; 138 case CLOCKWISE_180 -> "180"; 139 case COUNTERCLOCKWISE_90 -> "270"; 140 }); 141 } 142 143 private void setSize(Vec3i $$0) { 144 this.sizeXEdit.setValue(Integer.toString($$0.getX())); 145 this.sizeYEdit.setValue(Integer.toString($$0.getY())); 146 this.sizeZEdit.setValue(Integer.toString($$0.getZ())); 147 } 148 149 private int widgetX(int $$0, int $$1) { 150 int $$2 = this.width / 2 - 158; 151 float $$3 = exactWidgetSize($$1); 152 return (int)((float)$$2 + (float)$$0 * (8.0F + $$3)); 153 } 154 155 private static int widgetSize(int $$0) { 156 return (int)exactWidgetSize($$0); 157 } 158 159 private static float exactWidgetSize(int $$0) { 160 return (float)(316 - ($$0 - 1) * 8) / (float)$$0; 161 } 162 163 @Override 164 public void render(GuiGraphics $$0, int $$1, int $$2, float $$3) { 165 super.render($$0, $$1, $$2, $$3); 166 $$0.drawCenteredString(this.font, this.title, this.width / 2, 10, 16777215); 167 $$0.drawString(this.font, ID_LABEL, this.width / 2 - 153, 30, 12632256); 168 $$0.drawString(this.font, SIZE_LABEL, this.width / 2 - 153, 150, 12632256); 169 $$0.drawString(this.font, ROTATION_LABEL, this.rotationButton.getX(), 150, 12632256); 170 $$0.drawString(this.font, INCLUDE_ENTITIES_LABEL, this.includeEntitiesButton.getX(), 150, 12632256); 171 } 172 173 private void updateTestInfo(boolean $$0) { 174 boolean $$1 = this.sendToServer($$0 ? ServerboundTestInstanceBlockActionPacket.Action.INIT : ServerboundTestInstanceBlockActionPacket.Action.QUERY); 175 if (!$$1) { 176 this.infoWidget.setMessage(Component.literal("Invalid test ID").withStyle(ChatFormatting.RED)); 177 } 178 179 this.updateSaveState(); 180 } 181 182 private void onDone() { 183 this.sendToServer(ServerboundTestInstanceBlockActionPacket.Action.SET); 184 this.onClose(); 185 } 186 187 private boolean sendToServer(ServerboundTestInstanceBlockActionPacket.Action $$0) { 188 Optional<ResourceLocation> $$1 = Optional.ofNullable(ResourceLocation.tryParse(this.idEdit.getValue())); 189 Optional<ResourceKey<GameTestInstance>> $$2 = $$1.map($$0x -> ResourceKey.create(Registries.TEST_INSTANCE, $$0x)); 190 Vec3i $$3 = new Vec3i(parseSize(this.sizeXEdit.getValue()), parseSize(this.sizeYEdit.getValue()), parseSize(this.sizeZEdit.getValue())); 191 boolean $$4 = this.includeEntitiesButton.getValue(); 192 this.minecraft 193 .getConnection() 194 .send(new ServerboundTestInstanceBlockActionPacket(this.blockEntity.getBlockPos(), $$0, $$2, $$3, this.rotationButton.getValue(), $$4)); 195 return $$1.isPresent(); 196 } 197 198 public void setStatus(Component $$0, Optional<Vec3i> $$1) { 199 MutableComponent $$2 = Component.empty(); 200 this.blockEntity 201 .errorMessage() 202 .ifPresent( 203 $$1x -> $$2.append(Component.translatable("test_instance.description.failed", Component.empty().withStyle(ChatFormatting.RED).append($$1x))) 204 .append("\n\n") 205 ); 206 $$2.append($$0); 207 this.infoWidget.setMessage($$2); 208 $$1.ifPresent(this::setSize); 209 } 210 211 private void onCancel() { 212 this.onClose(); 213 } 214 215 private static int parseSize(String $$0) { 216 try { 217 return Math.max(Integer.parseInt($$0), 1); 218 } catch (NumberFormatException var2) { 219 return 1; 220 } 221 } 222 } 223 net/minecraft/world/item/Items.java --- 1/3 --- Java 45 import net.minecraft.world.level.block.Block; 45 import net.minecraft.world.level.block.Block; 46 import net.minecraft.world.level.block.Blocks; 46 import net.minecraft.world.level.block.Blocks; 47 import net.minecraft.world.level.block.LightBlock; 47 import net.minecraft.world.level.block.LightBlock; .. 48 import net.minecraft.world.level.block.TestBlock; 48 import net.minecraft.world.level.block.entity.BannerPatternLayers; 49 import net.minecraft.world.level.block.entity.BannerPatternLayers; 49 import net.minecraft.world.level.block.entity.PotDecorations; 50 import net.minecraft.world.level.block.entity.PotDecorations; .. 51 import net.minecraft.world.level.block.state.properties.TestBlockMode; 50 import net.minecraft.world.level.material.Fluids; 52 import net.minecraft.world.level.material.Fluids; 51 53 52 public class Items { 54 public class Items { net/minecraft/world/item/Items.java --- 2/3 --- Java 948 public static final Item DETECTOR_RAIL = registerBlock(Blocks.DETEC 950 public static final Item DETECTOR_RAIL = registerBlock(Blocks.DETEC ... TOR_RAIL); ... TOR_RAIL); 949 public static final Item RAIL = registerBlock(Blocks.RAIL); 951 public static final Item RAIL = registerBlock(Blocks.RAIL); 950 public static final Item ACTIVATOR_RAIL = registerBlock(Blocks.ACTI 952 public static final Item ACTIVATOR_RAIL = registerBlock(Blocks.ACTI ... VATOR_RAIL); ... VATOR_RAIL); 951 public static final Item SADDLE = registerItem("saddle", SaddleItem 953 public static final Item SADDLE = registerItem("saddle", new Item.P ... ::new, new Item.Properties().stacksTo(1)); ... roperties().stacksTo(1).component(DataComponents.EQUIPPABLE, Equippabl ... ... e.saddle())); 952 public static final Item MINECART = registerItem("minecart", $$0 -> 954 public static final Item MINECART = registerItem("minecart", $$0 -> ... new MinecartItem(EntityType.MINECART, $$0), new Item.Properties().sta ... new MinecartItem(EntityType.MINECART, $$0), new Item.Properties().sta ... cksTo(1)); ... cksTo(1)); 953 public static final Item CHEST_MINECART = registerItem( 955 public static final Item CHEST_MINECART = registerItem( 954 "chest_minecart", $$0 -> new MinecartItem(EntityType.CHEST_MINEC 956 "chest_minecart", $$0 -> new MinecartItem(EntityType.CHEST_MINEC ART, $$0), new Item.Properties().stacksTo(1) ART, $$0), new Item.Properties().stacksTo(1) net/minecraft/world/item/Items.java --- 3/3 --- Java 1027 ); 1029 ); 1028 public static final Item STRUCTURE_BLOCK = registerBlock(Blocks.ST 1030 public static final Item STRUCTURE_BLOCK = registerBlock(Blocks.ST .... RUCTURE_BLOCK, GameMasterBlockItem::new, new Item.Properties().rarity .... RUCTURE_BLOCK, GameMasterBlockItem::new, new Item.Properties().rarity .... (Rarity.EPIC)); .... (Rarity.EPIC)); 1029 public static final Item JIGSAW = registerBlock(Blocks.JIGSAW, Gam 1031 public static final Item JIGSAW = registerBlock(Blocks.JIGSAW, Gam .... eMasterBlockItem::new, new Item.Properties().rarity(Rarity.EPIC)); .... eMasterBlockItem::new, new Item.Properties().rarity(Rarity.EPIC)); .... 1032 public static final Item TEST_BLOCK = registerBlock( .... 1033 Blocks.TEST_BLOCK, .... 1034 GameMasterBlockItem::new, .... 1035 new Item.Properties().rarity(Rarity.EPIC).component(DataCompone .... .... nts.BLOCK_STATE, BlockItemStateProperties.EMPTY.with(TestBlock.MODE, .... .... TestBlockMode.START)) .... 1036 ); .... 1037 public static final Item TEST_INSTANCE_BLOCK = registerBlock(Block .... .... s.TEST_INSTANCE_BLOCK, GameMasterBlockItem::new, new Item.Properties( .... .... ).rarity(Rarity.EPIC)); 1030 public static final Item TURTLE_HELMET = registerItem("turtle_helm 1038 public static final Item TURTLE_HELMET = registerItem("turtle_helm .... et", new Item.Properties().humanoidArmor(ArmorMaterials.TURTLE_SCUTE, .... et", new Item.Properties().humanoidArmor(ArmorMaterials.TURTLE_SCUTE, .... ArmorType.HELMET)); .... ArmorType.HELMET)); 1031 public static final Item TURTLE_SCUTE = registerItem("turtle_scute 1039 public static final Item TURTLE_SCUTE = registerItem("turtle_scute .... "); .... "); 1032 public static final Item ARMADILLO_SCUTE = registerItem("armadillo 1040 public static final Item ARMADILLO_SCUTE = registerItem("armadillo _scute"); _scute"); net/minecraft/world/entity/ai/behavior/AssignProfessionFromJobSite.java --- Java 23 $$1.erase(); 23 $$1.erase(); 24 $$2.set($$6); 24 $$2.set($$6); 25 $$3.broadcastEntityEvent($$4, (byte)14); 25 $$3.broadcastEntityEvent($$4, (byte)14); 26 if ($$4.getVillagerData().getProfession() != 26 if (!$$4.getVillagerData().profession().is(V .. VillagerProfession.NONE) { .. illagerProfession.NONE)) { 27 return true; 27 return true; 28 } else { 28 } else { 29 MinecraftServer $$7 = $$3.getServer(); 29 MinecraftServer $$7 = $$3.getServer(); 30 Optional.ofNullable($$7.getLevel($$6.dime 30 Optional.ofNullable($$7.getLevel($$6.dime .. nsion())) .. nsion())) 31 .flatMap($$1xx -> $$1xx.getPoiManager( 31 .flatMap($$1xx -> $$1xx.getPoiManager( .. ).getType($$6.pos())) .. ).getType($$6.pos())) 32 .flatMap( 32 .flatMap( 33 $$0xxx -> BuiltInRegistries.VILLAGE 33 $$0xxx -> BuiltInRegistries.VILLAGE .. R_PROFESSION.stream().filter($$1xx -> $$1xx.heldJobSite().test($$0xxx)) .. R_PROFESSION .. .findFirst() .. .. 34 .listElements() .. 35 .filter($$1xx -> ((VillagerPr .. .. ofession)$$1xx.value()).heldJobSite().test($$0xxx)) .. 36 .findFirst() 34 ) 37 ) 35 .ifPresent($$2xx -> { 38 .ifPresent($$2xx -> { 36 $$4.setVillagerData($$4.getVillager 39 $$4.setVillagerData($$4.getVillager .. Data().setProfession($$2xx)); .. Data().withProfession($$2xx)); 37 $$4.refreshBrain($$3); 40 $$4.refreshBrain($$3); 38 }); 41 }); 39 return true; 42 return true; net/minecraft/network/protocol/game/ClientGamePacketListener.java --- Java 240 240 241 void handleSetPlayerInventory(ClientboundSetPlayerInventoryPacket v 241 void handleSetPlayerInventory(ClientboundSetPlayerInventoryPacket v ... ar1); ... ar1); ... 242 ... 243 void handleTestInstanceBlockStatus(ClientboundTestInstanceBlockStat ... ... us var1); 242 } 244 } net/minecraft/world/level/block/TurtleEggBlock.java --- 1/2 --- Java 61 } 61 } 62 62 63 @Override 63 @Override 64 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity $ 64 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity $ .. $3, float $$4) { .. $3, double $$4) { 65 if (!($$3 instanceof Zombie)) { 65 if (!($$3 instanceof Zombie)) { 66 this.destroyEgg($$0, $$1, $$2, $$3, 3); 66 this.destroyEgg($$0, $$1, $$2, $$3, 3); 67 } 67 } net/minecraft/world/level/block/TurtleEggBlock.java --- 2/2 --- Java 106 if ($$6 != null) { 106 if ($$6 != null) { 107 $$6.setAge(-24000); 107 $$6.setAge(-24000); 108 $$6.setHomePos($$2); 108 $$6.setHomePos($$2); 109 $$6.moveTo((double)$$2.getX() + 0.3 + (double)$$5 * 109 $$6.snapTo((double)$$2.getX() + 0.3 + (double)$$5 * ... 0.2, (double)$$2.getY(), (double)$$2.getZ() + 0.3, 0.0F, 0.0F); ... 0.2, (double)$$2.getY(), (double)$$2.getZ() + 0.3, 0.0F, 0.0F); 110 $$1.addFreshEntity($$6); 110 $$1.addFreshEntity($$6); 111 } 111 } 112 } 112 } net/minecraft/core/dispenser/DispenseItemBehavior.java --- 1/2 --- Java 16 import net.minecraft.world.entity.EntitySelector; 16 import net.minecraft.world.entity.EntitySelector; 17 import net.minecraft.world.entity.EntitySpawnReason; 17 import net.minecraft.world.entity.EntitySpawnReason; 18 import net.minecraft.world.entity.EntityType; 18 import net.minecraft.world.entity.EntityType; 19 import net.minecraft.world.entity.LivingEntity; .. 20 import net.minecraft.world.entity.Saddleable; .. 21 import net.minecraft.world.entity.animal.armadillo.Armadillo; 19 import net.minecraft.world.entity.animal.armadillo.Armadillo; 22 import net.minecraft.world.entity.animal.horse.AbstractChestedHorse; 20 import net.minecraft.world.entity.animal.horse.AbstractChestedHorse; 23 import net.minecraft.world.entity.decoration.ArmorStand; 21 import net.minecraft.world.entity.decoration.ArmorStand; net/minecraft/core/dispenser/DispenseItemBehavior.java --- 2/2 --- Java 114 return $$1; 112 return $$1; 115 } 113 } 116 }); 114 }); 117 DispenserBlock.registerBehavior( ... 118 Items.SADDLE, ... 119 new OptionalDispenseItemBehavior() { ... 120 @Override ... 121 public ItemStack execute(BlockSource $$0, ItemStack $$1) { ... 122 BlockPos $$2 = $$0.pos().relative($$0.state().getValue( ... ... DispenserBlock.FACING)); ... 123 List<LivingEntity> $$3 = $$0.level() ... 124 .getEntitiesOfClass( ... 125 LivingEntity.class, new AABB($$2), $$0x -> !($$0x ... ... instanceof Saddleable $$1x) ? false : !$$1x.isSaddled() && $$1x.isSad ... ... dleable() ... 126 ); ... 127 if (!$$3.isEmpty()) { ... 128 ((Saddleable)$$3.get(0)).equipSaddle($$1.split(1), S ... ... oundSource.BLOCKS); ... 129 this.setSuccess(true); ... 130 return $$1; ... 131 } else { ... 132 return super.execute($$0, $$1); ... 133 } ... 134 } ... 135 } ... 136 ); ... 137 DispenserBlock.registerBehavior( 115 DispenserBlock.registerBehavior( 138 Items.CHEST, 116 Items.CHEST, 139 new OptionalDispenseItemBehavior() { 117 new OptionalDispenseItemBehavior() { net/minecraft/server/level/ServerLevel.java --- 1/2 --- Java 466 466 467 LightningBolt $$11 = EntityType.LIGHTNING_BOLT.create(this 467 LightningBolt $$11 = EntityType.LIGHTNING_BOLT.create(this ... , EntitySpawnReason.EVENT); ... , EntitySpawnReason.EVENT); 468 if ($$11 != null) { 468 if ($$11 != null) { 469 $$11.moveTo(Vec3.atBottomCenterOf($$7)); 469 $$11.snapTo(Vec3.atBottomCenterOf($$7)); 470 $$11.setVisualOnly($$9); 470 $$11.setVisualOnly($$9); 471 this.addFreshEntity($$11); 471 this.addFreshEntity($$11); 472 } 472 } net/minecraft/server/level/ServerLevel.java --- 2/2 --- Java 1598 return this.entityManager.areEntitiesLoaded($$0); 1598 return this.entityManager.areEntitiesLoaded($$0); 1599 } 1599 } 1600 1600 1601 private boolean isPositionTickingWithEntitiesLoaded(long $$0) { 1601 public boolean isPositionTickingWithEntitiesLoaded(long $$0) { 1602 return this.areEntitiesLoaded($$0) && this.chunkSource.isPositi 1602 return this.areEntitiesLoaded($$0) && this.chunkSource.isPositi .... onTicking($$0); .... onTicking($$0); 1603 } 1603 } 1604 1604 1605 public boolean isPositionEntityTicking(BlockPos $$0) { 1605 public boolean isPositionEntityTicking(BlockPos $$0) { 1606 return this.entityManager.canPositionTick($$0) && this.chunkSou 1606 return this.entityManager.canPositionTick($$0) && this.chunkSou .... rce.chunkMap.getDistanceManager().inEntityTickingRange(ChunkPos.asLon .... rce.chunkMap.getDistanceManager().inEntityTickingRange(ChunkPos.asLon .... g($$0)); .... g($$0)); 1607 } 1607 } .... 1608 .... 1609 public boolean areEntitiesActuallyTicking(ChunkPos $$0) { .... 1610 return this.entityManager.isTicking($$0); .... 1611 } 1608 1612 1609 public boolean isNaturalSpawningAllowed(BlockPos $$0) { 1613 public boolean isNaturalSpawningAllowed(BlockPos $$0) { 1610 return this.entityManager.canPositionTick($$0); 1614 return this.entityManager.canPositionTick($$0); net/minecraft/world/level/block/Block.java --- Java 404 return Component.translatable(this.getDescriptionId()); 404 return Component.translatable(this.getDescriptionId()); 405 } 405 } 406 406 407 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity 407 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity ... $$3, float $$4) { ... $$3, double $$4) { 408 $$3.causeFallDamage($$4, 1.0F, $$3.damageSources().fall()); 408 $$3.causeFallDamage($$4, 1.0F, $$3.damageSources().fall()); 409 } 409 } 410 410 net/minecraft/world/level/block/CarvedPumpkinBlock.java --- Java 79 79 80 private static void spawnGolemInWorld(Level $$0, BlockPattern.BlockP 80 private static void spawnGolemInWorld(Level $$0, BlockPattern.BlockP .. atternMatch $$1, Entity $$2, BlockPos $$3) { .. atternMatch $$1, Entity $$2, BlockPos $$3) { 81 clearPatternBlocks($$0, $$1); 81 clearPatternBlocks($$0, $$1); 82 $$2.moveTo((double)$$3.getX() + 0.5, (double)$$3.getY() + 0.05, ( 82 $$2.snapTo((double)$$3.getX() + 0.5, (double)$$3.getY() + 0.05, ( .. double)$$3.getZ() + 0.5, 0.0F, 0.0F); .. double)$$3.getZ() + 0.5, 0.0F, 0.0F); 83 $$0.addFreshEntity($$2); 83 $$0.addFreshEntity($$2); 84 84 85 for (ServerPlayer $$4 : $$0.getEntitiesOfClass(ServerPlayer.class 85 for (ServerPlayer $$4 : $$0.getEntitiesOfClass(ServerPlayer.class , $$2.getBoundingBox().inflate(5.0))) { , $$2.getBoundingBox().inflate(5.0))) { net/minecraft/world/item/SpawnEggItem.java --- Java 160 if (!$$6.isBaby()) { 160 if (!$$6.isBaby()) { 161 return Optional.empty(); 161 return Optional.empty(); 162 } else { 162 } else { 163 $$6.moveTo($$4.x(), $$4.y(), $$4.z(), 0.0F, 0.0F); 163 $$6.snapTo($$4.x(), $$4.y(), $$4.z(), 0.0F, 0.0F); 164 $$3.addFreshEntityWithPassengers($$6); 164 $$3.addFreshEntityWithPassengers($$6); 165 $$6.setCustomName($$5.get(DataComponents.CUSTOM_NAME)); 165 $$6.applyComponentsFromItemStack($$5); 166 $$5.consume(1, $$0); 166 $$5.consume(1, $$0); 167 return Optional.of($$6); 167 return Optional.of($$6); 168 } 168 } net/minecraft/world/level/block/TestBlock.java --- Java 1 package net.minecraft.world.level.block; 2 3 import com.mojang.serialization.MapCodec; 4 import javax.annotation.Nullable; 5 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.Direction; 7 import net.minecraft.core.component.DataComponents; 8 import net.minecraft.server.level.ServerLevel; 9 import net.minecraft.util.RandomSource; 10 import net.minecraft.world.InteractionResult; 11 import net.minecraft.world.entity.player.Player; 12 import net.minecraft.world.item.ItemStack; 13 import net.minecraft.world.item.component.BlockItemStateProperties; 14 import net.minecraft.world.item.context.BlockPlaceContext; 15 import net.minecraft.world.level.BlockGetter; 16 import net.minecraft.world.level.Level; 17 import net.minecraft.world.level.LevelReader; 18 import net.minecraft.world.level.block.entity.BlockEntity; 19 import net.minecraft.world.level.block.entity.TestBlockEntity; 20 import net.minecraft.world.level.block.state.BlockBehaviour; 21 import net.minecraft.world.level.block.state.BlockState; 22 import net.minecraft.world.level.block.state.StateDefinition; 23 import net.minecraft.world.level.block.state.properties.BlockStateProperties; 24 import net.minecraft.world.level.block.state.properties.EnumProperty; 25 import net.minecraft.world.level.block.state.properties.TestBlockMode; 26 import net.minecraft.world.level.redstone.Orientation; 27 import net.minecraft.world.phys.BlockHitResult; 28 29 public class TestBlock extends BaseEntityBlock implements GameMasterBlock { 30 public static final MapCodec<TestBlock> CODEC = simpleCodec(TestBlock::new); 31 public static final EnumProperty<TestBlockMode> MODE = BlockStateProperties.TEST_BLOCK_MODE; 32 33 public TestBlock(BlockBehaviour.Properties $$0) { 34 super($$0); 35 } 36 37 @Nullable 38 @Override 39 public BlockEntity newBlockEntity(BlockPos $$0, BlockState $$1) { 40 return new TestBlockEntity($$0, $$1); 41 } 42 43 @Override 44 public BlockState getStateForPlacement(BlockPlaceContext $$0) { 45 BlockItemStateProperties $$1 = $$0.getItemInHand().get(DataComponents.BLOCK_STATE); 46 BlockState $$2 = this.defaultBlockState(); 47 if ($$1 != null) { 48 TestBlockMode $$3 = $$1.get(MODE); 49 if ($$3 != null) { 50 $$2 = $$2.setValue(MODE, $$3); 51 } 52 } 53 54 return $$2; 55 } 56 57 @Override 58 protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> $$0) { 59 $$0.add(MODE); 60 } 61 62 @Override 63 protected InteractionResult useWithoutItem(BlockState $$0, Level $$1, BlockPos $$2, Player $$3, BlockHitResult $$4) { 64 if ($$1.getBlockEntity($$2) instanceof TestBlockEntity $$6) { 65 if (!$$3.canUseGameMasterBlocks()) { 66 return InteractionResult.PASS; 67 } else { 68 if ($$1.isClientSide) { 69 $$3.openTestBlock($$6); 70 } 71 72 return InteractionResult.SUCCESS; 73 } 74 } else { 75 return InteractionResult.PASS; 76 } 77 } 78 79 @Override 80 protected void tick(BlockState $$0, ServerLevel $$1, BlockPos $$2, RandomSource $$3) { 81 TestBlockEntity $$4 = getServerTestBlockEntity($$1, $$2); 82 if ($$4 != null) { 83 $$4.reset(); 84 } 85 } 86 87 @Override 88 protected void neighborChanged(BlockState $$0, Level $$1, BlockPos $$2, Block $$3, @Nullable Orientation $$4, boolean $$5) { 89 TestBlockEntity $$6 = getServerTestBlockEntity($$1, $$2); 90 if ($$6 != null) { 91 if ($$6.getMode() != TestBlockMode.START) { 92 boolean $$7 = $$1.hasNeighborSignal($$2); 93 boolean $$8 = $$6.isPowered(); 94 if ($$7 && !$$8) { 95 $$6.setPowered(true); 96 $$6.trigger(); 97 } else if (!$$7 && $$8) { 98 $$6.setPowered(false); 99 } 100 } 101 } 102 } 103 104 @Nullable 105 private static TestBlockEntity getServerTestBlockEntity(Level $$0, BlockPos $$1) { 106 if ($$0 instanceof ServerLevel $$2) { 107 BlockEntity var4 = $$2.getBlockEntity($$1); 108 if (var4 instanceof TestBlockEntity) { 109 return (TestBlockEntity)var4; 110 } 111 } 112 113 return null; 114 } 115 116 @Override 117 public int getSignal(BlockState $$0, BlockGetter $$1, BlockPos $$2, Direction $$3) { 118 if ($$0.getValue(MODE) != TestBlockMode.START) { 119 return 0; 120 } else if ($$1.getBlockEntity($$2) instanceof TestBlockEntity $$5) { 121 return $$5.isPowered() ? 15 : 0; 122 } else { 123 return 0; 124 } 125 } 126 127 @Override 128 protected ItemStack getCloneItemStack(LevelReader $$0, BlockPos $$1, BlockState $$2, boolean $$3) { 129 ItemStack $$4 = super.getCloneItemStack($$0, $$1, $$2, $$3); 130 return setModeOnStack($$4, $$2.getValue(MODE)); 131 } 132 133 public static ItemStack setModeOnStack(ItemStack $$0, TestBlockMode $$1) { 134 $$0.set(DataComponents.BLOCK_STATE, $$0.getOrDefault(DataComponents.BLOCK_STATE, BlockItemStateProperties.EMPTY).with(MODE, $$1)); 135 return $$0; 136 } 137 138 @Override 139 protected MapCodec<TestBlock> codec() { 140 return CODEC; 141 } 142 } 143 net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplate.java --- Java 430 createEntityIgnoreException($$0, $$9).ifPresent($$5x -> { 430 createEntityIgnoreException($$0, $$9).ifPresent($$5x -> { 431 float $$6x = $$5x.rotate($$3); 431 float $$6x = $$5x.rotate($$3); 432 $$6x += $$5x.mirror($$2) - $$5x.getYRot(); 432 $$6x += $$5x.mirror($$2) - $$5x.getYRot(); 433 $$5x.moveTo($$11.x, $$11.y, $$11.z, $$6x, $$5x.getXRot( 433 $$5x.snapTo($$11.x, $$11.y, $$11.z, $$6x, $$5x.getXRot( ... )); ... )); 434 if ($$6 && $$5x instanceof Mob) { 434 if ($$6 && $$5x instanceof Mob) { 435 ((Mob)$$5x).finalizeSpawn($$0, $$0.getCurrentDifficu 435 ((Mob)$$5x).finalizeSpawn($$0, $$0.getCurrentDifficu ... ltyAt(BlockPos.containing($$11)), EntitySpawnReason.STRUCTURE, null); ... ltyAt(BlockPos.containing($$11)), EntitySpawnReason.STRUCTURE, null); 436 } 436 } net/minecraft/client/renderer/entity/EntityRenderers.java --- 1/4 --- Java 112 register(EntityType.CREAKING, CreakingRenderer::new); 112 register(EntityType.CREAKING, CreakingRenderer::new); 113 register(EntityType.CREEPER, CreeperRenderer::new); 113 register(EntityType.CREEPER, CreeperRenderer::new); 114 register(EntityType.DOLPHIN, DolphinRenderer::new); 114 register(EntityType.DOLPHIN, DolphinRenderer::new); 115 register(EntityType.DONKEY, $$0 -> new DonkeyRenderer<>($$0, Mod 115 register(EntityType.DONKEY, $$0 -> new DonkeyRenderer<>($$0, Don ... elLayers.DONKEY, ModelLayers.DONKEY_BABY, false)); ... keyRenderer.Type.DONKEY)); 116 register(EntityType.DRAGON_FIREBALL, DragonFireballRenderer::new 116 register(EntityType.DRAGON_FIREBALL, DragonFireballRenderer::new ... ); ... ); 117 register(EntityType.DROWNED, DrownedRenderer::new); 117 register(EntityType.DROWNED, DrownedRenderer::new); 118 register(EntityType.EGG, ThrownItemRenderer::new); 118 register(EntityType.EGG, ThrownItemRenderer::new); net/minecraft/client/renderer/entity/EntityRenderers.java --- 2/4 --- Java 162 register(EntityType.MARKER, NoopRenderer::new); 162 register(EntityType.MARKER, NoopRenderer::new); 163 register(EntityType.MINECART, $$0 -> new MinecartRenderer($$0, M 163 register(EntityType.MINECART, $$0 -> new MinecartRenderer($$0, M ... odelLayers.MINECART)); ... odelLayers.MINECART)); 164 register(EntityType.MOOSHROOM, MushroomCowRenderer::new); 164 register(EntityType.MOOSHROOM, MushroomCowRenderer::new); 165 register(EntityType.MULE, $$0 -> new DonkeyRenderer<>($$0, Model 165 register(EntityType.MULE, $$0 -> new DonkeyRenderer<>($$0, Donke ... Layers.MULE, ModelLayers.MULE_BABY, true)); ... yRenderer.Type.MULE)); 166 register(EntityType.OCELOT, OcelotRenderer::new); 166 register(EntityType.OCELOT, OcelotRenderer::new); 167 register(EntityType.PAINTING, PaintingRenderer::new); 167 register(EntityType.PAINTING, PaintingRenderer::new); 168 register(EntityType.PANDA, PandaRenderer::new); 168 register(EntityType.PANDA, PandaRenderer::new); net/minecraft/client/renderer/entity/EntityRenderers.java --- 3/4 --- Java 205 register(EntityType.SHULKER_BULLET, ShulkerBulletRenderer::new); 205 register(EntityType.SHULKER_BULLET, ShulkerBulletRenderer::new); 206 register(EntityType.SILVERFISH, SilverfishRenderer::new); 206 register(EntityType.SILVERFISH, SilverfishRenderer::new); 207 register(EntityType.SKELETON, SkeletonRenderer::new); 207 register(EntityType.SKELETON, SkeletonRenderer::new); 208 register(EntityType.SKELETON_HORSE, $$0 -> new UndeadHorseRender 208 register(EntityType.SKELETON_HORSE, $$0 -> new UndeadHorseRender ... er($$0, ModelLayers.SKELETON_HORSE, ModelLayers.SKELETON_HORSE_BABY, t ... er($$0, UndeadHorseRenderer.Type.SKELETON)); ... rue)); ... 209 register(EntityType.SLIME, SlimeRenderer::new); 209 register(EntityType.SLIME, SlimeRenderer::new); 210 register(EntityType.SMALL_FIREBALL, $$0 -> new ThrownItemRendere 210 register(EntityType.SMALL_FIREBALL, $$0 -> new ThrownItemRendere ... r<>($$0, 0.75F, true)); ... r<>($$0, 0.75F, true)); 211 register(EntityType.SNIFFER, SnifferRenderer::new); 211 register(EntityType.SNIFFER, SnifferRenderer::new); net/minecraft/client/renderer/entity/EntityRenderers.java --- 4/4 --- Java 241 register(EntityType.WOLF, WolfRenderer::new); 241 register(EntityType.WOLF, WolfRenderer::new); 242 register(EntityType.ZOGLIN, ZoglinRenderer::new); 242 register(EntityType.ZOGLIN, ZoglinRenderer::new); 243 register(EntityType.ZOMBIE, ZombieRenderer::new); 243 register(EntityType.ZOMBIE, ZombieRenderer::new); 244 register(EntityType.ZOMBIE_HORSE, $$0 -> new UndeadHorseRenderer 244 register(EntityType.ZOMBIE_HORSE, $$0 -> new UndeadHorseRenderer ... ($$0, ModelLayers.ZOMBIE_HORSE, ModelLayers.ZOMBIE_HORSE_BABY, false)) ... ($$0, UndeadHorseRenderer.Type.ZOMBIE)); ... ; ... 245 register(EntityType.ZOMBIE_VILLAGER, ZombieVillagerRenderer::new 245 register(EntityType.ZOMBIE_VILLAGER, ZombieVillagerRenderer::new ... ); ... ); 246 register( 246 register( 247 EntityType.ZOMBIFIED_PIGLIN, 247 EntityType.ZOMBIFIED_PIGLIN, net/minecraft/world/effect/OozingMobEffect.java --- Java 48 Slime $$4 = EntityType.SLIME.create($$0, EntitySpawnReason.TRIGGE 48 Slime $$4 = EntityType.SLIME.create($$0, EntitySpawnReason.TRIGGE .. RED); .. RED); 49 if ($$4 != null) { 49 if ($$4 != null) { 50 $$4.setSize(2, true); 50 $$4.setSize(2, true); 51 $$4.moveTo($$1, $$2, $$3, $$0.getRandom().nextFloat() * 360.0F 51 $$4.snapTo($$1, $$2, $$3, $$0.getRandom().nextFloat() * 360.0F .. , 0.0F); .. , 0.0F); 52 $$0.addFreshEntity($$4); 52 $$0.addFreshEntity($$4); 53 } 53 } 54 } 54 } net/minecraft/network/protocol/game/ServerGamePacketListener.java --- Java 86 86 87 void handleSetStructureBlock(ServerboundSetStructureBlockPacket var1 87 void handleSetStructureBlock(ServerboundSetStructureBlockPacket var1 .. ); .. ); .. 88 .. 89 void handleSetTestBlock(ServerboundSetTestBlockPacket var1); .. 90 .. 91 void handleTestInstanceBlockAction(ServerboundTestInstanceBlockActio .. .. nPacket var1); 88 92 89 void handleSelectTrade(ServerboundSelectTradePacket var1); 93 void handleSelectTrade(ServerboundSelectTradePacket var1); 90 94 net/minecraft/world/level/block/FlowerBedBlock.java --- Java 94 @Override 94 @Override 95 public void performBonemeal(ServerLevel $$0, RandomSource $$1, Bloc 95 public void performBonemeal(ServerLevel $$0, RandomSource $$1, Bloc .. kPos $$2, BlockState $$3) { .. kPos $$2, BlockState $$3) { 96 int $$4 = $$3.getValue(AMOUNT); 96 int $$4 = $$3.getValue(AMOUNT); 97 if ($$4 < 1) { 97 if ($$4 < 4) { 98 $$0.setBlock($$2, $$3.setValue(AMOUNT, Integer.valueOf($$4 + 98 $$0.setBlock($$2, $$3.setValue(AMOUNT, Integer.valueOf($$4 + .. 1)), 2); .. 1)), 2); 99 } else { 99 } else { 100 popResource($$0, $$2, new ItemStack(this)); 100 popResource($$0, $$2, new ItemStack(this)); net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java --- Java 107 $$1.setAge(6000); 107 $$1.setAge(6000); 108 $$2.setAge(6000); 108 $$2.setAge(6000); 109 $$3.setAge(-24000); 109 $$3.setAge(-24000); 110 $$3.moveTo($$1.getX(), $$1.getY(), $$1.getZ(), 0.0F, 0.0F); 110 $$3.snapTo($$1.getX(), $$1.getY(), $$1.getZ(), 0.0F, 0.0F); 111 $$0.addFreshEntityWithPassengers($$3); 111 $$0.addFreshEntityWithPassengers($$3); 112 $$0.broadcastEntityEvent($$3, (byte)12); 112 $$0.broadcastEntityEvent($$3, (byte)12); 113 return Optional.of($$3); 113 return Optional.of($$3); net/minecraft/core/dispenser/EquipmentDispenseItemBehavior.java --- Java 28 ItemStack $$6 = $$1.split(1); 28 ItemStack $$6 = $$1.split(1); 29 $$4.setItemSlot($$5, $$6); 29 $$4.setItemSlot($$5, $$6); 30 if ($$4 instanceof Mob $$7) { 30 if ($$4 instanceof Mob $$7) { 31 $$7.setDropChance($$5, 2.0F); 31 $$7.setGuaranteedDrop($$5); 32 $$7.setPersistenceRequired(); 32 $$7.setPersistenceRequired(); 33 } 33 } 34 34 net/minecraft/util/StringRepresentable.java --- Java 64 }; 64 }; 65 } 65 } 66 66 67 @Deprecated .. 68 public static class EnumCodec<E extends Enum<E> & StringRepresentabl 67 public static class EnumCodec<E extends Enum<E> & StringRepresentabl .. e> extends StringRepresentable.StringRepresentableCodec<E> { .. e> extends StringRepresentable.StringRepresentableCodec<E> { 69 private final Function<String, E> resolver; 68 private final Function<String, E> resolver; 70 69 net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager.java --- 1/2 --- Java 19 import java.nio.file.InvalidPathException; 19 import java.nio.file.InvalidPathException; 20 import java.nio.file.NoSuchFileException; 20 import java.nio.file.NoSuchFileException; 21 import java.nio.file.Path; 21 import java.nio.file.Path; 22 import java.nio.file.Paths; .. 23 import java.util.ArrayList; 22 import java.util.ArrayList; 24 import java.util.List; 23 import java.util.List; 25 import java.util.Map; 24 import java.util.Map; net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager.java --- 2/2 --- Java 125 } 124 } 126 125 127 private Optional<StructureTemplate> loadFromTestStructures(Resource 126 private Optional<StructureTemplate> loadFromTestStructures(Resource ... Location $$0) { ... Location $$0) { 128 return this.loadFromSnbt($$0, Paths.get(StructureUtils.testStruc 127 return this.loadFromSnbt($$0, StructureUtils.testStructuresDir); ... turesDir)); ... 129 } 128 } 130 129 131 private Stream<ResourceLocation> listTestStructures() { 130 private Stream<ResourceLocation> listTestStructures() { 132 Path $$0 = Paths.get(StructureUtils.testStructuresDir); ... 133 if (!Files.isDirectory($$0)) { 131 if (!Files.isDirectory(StructureUtils.testStructuresDir)) { 134 return Stream.empty(); 132 return Stream.empty(); 135 } else { 133 } else { 136 List<ResourceLocation> $$1 = new ArrayList<>(); 134 List<ResourceLocation> $$0 = new ArrayList<>(); 137 this.listFolderContents($$0, "minecraft", ".snbt", $$1::add); 135 this.listFolderContents(StructureUtils.testStructuresDir, "mi ... ... necraft", ".snbt", $$0::add); 138 return $$1.stream(); 136 return $$0.stream(); 139 } 137 } 140 } 138 } 141 139 net/minecraft/server/network/ServerGamePacketListenerImpl.java --- 1/11 --- Java 37 import net.minecraft.commands.arguments.ArgumentSignatures; 37 import net.minecraft.commands.arguments.ArgumentSignatures; 38 import net.minecraft.core.BlockPos; 38 import net.minecraft.core.BlockPos; 39 import net.minecraft.core.Direction; 39 import net.minecraft.core.Direction; .. 40 import net.minecraft.core.Holder; .. 41 import net.minecraft.core.Registry; .. 42 import net.minecraft.core.Vec3i; 40 import net.minecraft.core.component.DataComponents; 43 import net.minecraft.core.component.DataComponents; 41 import net.minecraft.core.registries.Registries; 44 import net.minecraft.core.registries.Registries; .. 45 import net.minecraft.gametest.framework.GameTestInstance; 42 import net.minecraft.nbt.CompoundTag; 46 import net.minecraft.nbt.CompoundTag; 43 import net.minecraft.network.Connection; 47 import net.minecraft.network.Connection; 44 import net.minecraft.network.DisconnectionDetails; 48 import net.minecraft.network.DisconnectionDetails; net/minecraft/server/network/ServerGamePacketListenerImpl.java --- 2/11 --- Java 72 import net.minecraft.network.protocol.game.ClientboundStartConfiguratio 76 import net.minecraft.network.protocol.game.ClientboundStartConfiguratio .. nPacket; .. nPacket; 73 import net.minecraft.network.protocol.game.ClientboundSystemChatPacket; 77 import net.minecraft.network.protocol.game.ClientboundSystemChatPacket; 74 import net.minecraft.network.protocol.game.ClientboundTagQueryPacket; 78 import net.minecraft.network.protocol.game.ClientboundTagQueryPacket; .. 79 import net.minecraft.network.protocol.game.ClientboundTestInstanceBlock .. .. Status; 75 import net.minecraft.network.protocol.game.ServerGamePacketListener; 80 import net.minecraft.network.protocol.game.ServerGamePacketListener; 76 import net.minecraft.network.protocol.game.ServerboundAcceptTeleportati 81 import net.minecraft.network.protocol.game.ServerboundAcceptTeleportati .. onPacket; .. onPacket; 77 import net.minecraft.network.protocol.game.ServerboundBlockEntityTagQue 82 import net.minecraft.network.protocol.game.ServerboundBlockEntityTagQue ryPacket; ryPacket; net/minecraft/server/network/ServerGamePacketListenerImpl.java --- 3/11 --- Java 120 import net.minecraft.network.protocol.game.ServerboundSetCreativeModeS 125 import net.minecraft.network.protocol.game.ServerboundSetCreativeModeS ... lotPacket; ... lotPacket; 121 import net.minecraft.network.protocol.game.ServerboundSetJigsawBlockPa 126 import net.minecraft.network.protocol.game.ServerboundSetJigsawBlockPa ... cket; ... cket; 122 import net.minecraft.network.protocol.game.ServerboundSetStructureBloc 127 import net.minecraft.network.protocol.game.ServerboundSetStructureBloc ... kPacket; ... kPacket; ... 128 import net.minecraft.network.protocol.game.ServerboundSetTestBlockPack ... ... et; 123 import net.minecraft.network.protocol.game.ServerboundSignUpdatePacket 129 import net.minecraft.network.protocol.game.ServerboundSignUpdatePacket ... ; ... ; 124 import net.minecraft.network.protocol.game.ServerboundSwingPacket; 130 import net.minecraft.network.protocol.game.ServerboundSwingPacket; 125 import net.minecraft.network.protocol.game.ServerboundTeleportToEntity 131 import net.minecraft.network.protocol.game.ServerboundTeleportToEntity ... Packet; ... Packet; ... 132 import net.minecraft.network.protocol.game.ServerboundTestInstanceBloc ... ... kActionPacket; 126 import net.minecraft.network.protocol.game.ServerboundUseItemOnPacket; 133 import net.minecraft.network.protocol.game.ServerboundUseItemOnPacket; 127 import net.minecraft.network.protocol.game.ServerboundUseItemPacket; 134 import net.minecraft.network.protocol.game.ServerboundUseItemPacket; 128 import net.minecraft.network.protocol.ping.ClientboundPongResponsePack 135 import net.minecraft.network.protocol.ping.ClientboundPongResponsePack et; et; net/minecraft/server/network/ServerGamePacketListenerImpl.java --- 4/11 --- Java 183 import net.minecraft.world.level.block.entity.JigsawBlockEntity; 190 import net.minecraft.world.level.block.entity.JigsawBlockEntity; 184 import net.minecraft.world.level.block.entity.SignBlockEntity; 191 import net.minecraft.world.level.block.entity.SignBlockEntity; 185 import net.minecraft.world.level.block.entity.StructureBlockEntity; 192 import net.minecraft.world.level.block.entity.StructureBlockEntity; ... 193 import net.minecraft.world.level.block.entity.TestBlockEntity; ... 194 import net.minecraft.world.level.block.entity.TestInstanceBlockEntity; 186 import net.minecraft.world.level.block.state.BlockBehaviour; 195 import net.minecraft.world.level.block.state.BlockBehaviour; 187 import net.minecraft.world.level.block.state.BlockState; 196 import net.minecraft.world.level.block.state.BlockState; 188 import net.minecraft.world.phys.AABB; 197 import net.minecraft.world.phys.AABB; net/minecraft/server/network/ServerGamePacketListenerImpl.java --- 5/11 --- Java 266 this.player.yo = this.player.getY(); 275 this.player.yo = this.player.getY(); 267 this.player.zo = this.player.getZ(); 276 this.player.zo = this.player.getZ(); 268 this.player.doTick(); 277 this.player.doTick(); 269 this.player.absMoveTo(this.firstGoodX, this.firstGoodY, this.fir 278 this.player.absSnapTo(this.firstGoodX, this.firstGoodY, this.fir ... stGoodZ, this.player.getYRot(), this.player.getXRot()); ... stGoodZ, this.player.getYRot(), this.player.getXRot()); 270 this.tickCount++; 279 this.tickCount++; 271 this.knownMovePacketCount = this.receivedMovePacketCount; 280 this.knownMovePacketCount = this.receivedMovePacketCount; 272 if (this.clientIsFloating && !this.player.isSleeping() && !this. 281 if (this.clientIsFloating && !this.player.isSleeping() && !this. player.isPassenger() && !this.player.isDeadOrDying()) { player.isPassenger() && !this.player.isDeadOrDying()) { net/minecraft/server/network/ServerGamePacketListenerImpl.java --- 6/11 --- Java 439 LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", $$1 448 LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", $$1 ... .getName().getString(), this.player.getName().getString(), Math.sqrt($ ... .getName().getString(), this.player.getName().getString(), Math.sqrt($ ... $15)); ... $15)); 440 } 449 } 441 450 442 $$1.absMoveTo($$6, $$7, $$8, $$9, $$10); 451 $$1.absSnapTo($$6, $$7, $$8, $$9, $$10); 443 boolean $$21 = $$2.noCollision($$1, $$1.getBoundingBox().d 452 boolean $$21 = $$2.noCollision($$1, $$1.getBoundingBox().d ... eflate(0.0625)); ... eflate(0.0625)); 444 if ($$16 && ($$20 || !$$21)) { 453 if ($$16 && ($$20 || !$$21)) { 445 $$1.absMoveTo($$3, $$4, $$5, $$9, $$10); 454 $$1.absSnapTo($$3, $$4, $$5, $$9, $$10); 446 this.send(ClientboundMoveVehiclePacket.fromEntity($$1)) 455 this.send(ClientboundMoveVehiclePacket.fromEntity($$1)) ... ; ... ; 447 return; 456 return; 448 } 457 } net/minecraft/server/network/ServerGamePacketListenerImpl.java --- 7/11 --- Java 476 } 485 } 477 486 478 this.player 487 this.player 479 .absMoveTo( 488 .absSnapTo( 480 this.awaitingPositionFromClient.x, 489 this.awaitingPositionFromClient.x, 481 this.awaitingPositionFromClient.y, 490 this.awaitingPositionFromClient.y, 482 this.awaitingPositionFromClient.z, 491 this.awaitingPositionFromClient.z, net/minecraft/server/network/ServerGamePacketListenerImpl.java --- 8/11 --- Java 764 } 773 } 765 } 774 } ... 775 ... 776 @Override ... 777 public void handleSetTestBlock(ServerboundSetTestBlockPacket $$0) { ... 778 PacketUtils.ensureRunningOnSameThread($$0, this, this.player.ser ... ... verLevel()); ... 779 if (this.player.canUseGameMasterBlocks()) { ... 780 BlockPos $$1 = $$0.position(); ... 781 BlockState $$2 = this.player.level().getBlockState($$1); ... 782 if (this.player.level().getBlockEntity($$1) instanceof TestBl ... ... ockEntity $$4) { ... 783 $$4.setMode($$0.mode()); ... 784 $$4.setMessage($$0.message()); ... 785 $$4.setChanged(); ... 786 this.player.level().sendBlockUpdated($$1, $$2, $$4.getBloc ... ... kState(), 3); ... 787 } ... 788 } ... 789 } ... 790 ... 791 @Override ... 792 public void handleTestInstanceBlockAction(ServerboundTestInstanceBl ... ... ockActionPacket $$0) { ... 793 PacketUtils.ensureRunningOnSameThread($$0, this, this.player.ser ... ... verLevel()); ... 794 BlockPos $$1 = $$0.pos(); ... 795 if (this.player.canUseGameMasterBlocks() && this.player.level(). ... ... getBlockEntity($$1) instanceof TestInstanceBlockEntity $$2) { ... 796 if ($$0.action() != ServerboundTestInstanceBlockActionPacket. ... ... Action.QUERY && $$0.action() != ServerboundTestInstanceBlockActionPack ... ... et.Action.INIT) { ... 797 $$2.set($$0.data()); ... 798 if ($$0.action() == ServerboundTestInstanceBlockActionPack ... ... et.Action.RESET) { ... 799 $$2.resetTest(this.player::sendSystemMessage); ... 800 } else if ($$0.action() == ServerboundTestInstanceBlockAct ... ... ionPacket.Action.SAVE) { ... 801 $$2.saveTest(this.player::sendSystemMessage); ... 802 } else if ($$0.action() == ServerboundTestInstanceBlockAct ... ... ionPacket.Action.EXPORT) { ... 803 $$2.exportTest(this.player::sendSystemMessage); ... 804 } else if ($$0.action() == ServerboundTestInstanceBlockAct ... ... ionPacket.Action.RUN) { ... 805 $$2.runTest(this.player::sendSystemMessage); ... 806 } ... 807 ... 808 BlockState $$10 = this.player.level().getBlockState($$1); ... 809 this.player.level().sendBlockUpdated($$1, Blocks.AIR.defau ... ... ltBlockState(), $$10, 3); ... 810 } else { ... 811 Registry<GameTestInstance> $$4 = this.player.registryAcces ... ... s().lookupOrThrow(Registries.TEST_INSTANCE); ... 812 Optional<Holder.Reference<GameTestInstance>> $$5 = $$0.dat ... ... a().test().flatMap($$4::get); ... 813 Component $$6; ... 814 if ($$5.isPresent()) { ... 815 $$6 = $$5.get().value().describe(); ... 816 } else { ... 817 $$6 = Component.translatable("test_instance.description ... ... .no_test").withStyle(ChatFormatting.RED); ... 818 } ... 819 ... 820 Optional<Vec3i> $$8; ... 821 if ($$0.action() == ServerboundTestInstanceBlockActionPack ... ... et.Action.QUERY) { ... 822 $$8 = $$0.data().test().flatMap($$0x -> TestInstanceBlo ... ... ckEntity.getStructureSize(this.player.serverLevel(), $$0x)); ... 823 } else { ... 824 $$8 = Optional.empty(); ... 825 } ... 826 ... 827 this.connection.send(new ClientboundTestInstanceBlockStatu ... ... s($$6, $$8)); ... 828 } ... 829 } ... 830 } 766 831 767 @Override 832 @Override 768 public void handleSetJigsawBlock(ServerboundSetJigsawBlockPacket $$ 833 public void handleSetJigsawBlock(ServerboundSetJigsawBlockPacket $$ 0) { 0) { net/minecraft/server/network/ServerGamePacketListenerImpl.java --- 9/11 --- Java 896 float $$2 = Mth.wrapDegrees($$0.getYRot(this.player.get 961 float $$2 = Mth.wrapDegrees($$0.getYRot(this.player.get ... YRot())); ... YRot())); 897 float $$3 = Mth.wrapDegrees($$0.getXRot(this.player.get 962 float $$3 = Mth.wrapDegrees($$0.getXRot(this.player.get ... XRot())); ... XRot())); 898 if (this.updateAwaitingTeleport()) { 963 if (this.updateAwaitingTeleport()) { 899 this.player.absRotateTo($$2, $$3); 964 this.player.absSnapRotationTo($$2, $$3); 900 } else { 965 } else { 901 double $$4 = clampHorizontal($$0.getX(this.player.ge 966 double $$4 = clampHorizontal($$0.getX(this.player.ge ... tX())); ... tX())); 902 double $$5 = clampVertical($$0.getY(this.player.getY 967 double $$5 = clampVertical($$0.getY(this.player.getY ... ())); ... ())); 903 double $$6 = clampHorizontal($$0.getZ(this.player.ge 968 double $$6 = clampHorizontal($$0.getZ(this.player.ge ... tZ())); ... tZ())); 904 if (this.player.isPassenger()) { 969 if (this.player.isPassenger()) { 905 this.player.absMoveTo(this.player.getX(), this.pl 970 this.player.absSnapTo(this.player.getX(), this.pl ... ayer.getY(), this.player.getZ(), $$2, $$3); ... ayer.getY(), this.player.getZ(), $$2, $$3); 906 this.player.serverLevel().getChunkSource().move(t 971 this.player.serverLevel().getChunkSource().move(t ... his.player); ... his.player); 907 } else { 972 } else { 908 double $$7 = this.player.getX(); 973 double $$7 = this.player.getX(); net/minecraft/server/network/ServerGamePacketListenerImpl.java --- 10/11 --- Java 969 if (this.player.noPhysics 1034 if (this.player.noPhysics 970 || this.player.isSleeping() 1035 || this.player.isSleeping() 971 || (!$$22 || !$$1.noCollision(this.player, 1036 || (!$$22 || !$$1.noCollision(this.player, ... $$18)) && !this.isPlayerCollidingWithAnythingNew($$1, $$18, $$4, $$5, .... $$18)) && !this.isPlayerCollidingWithAnythingNew($$1, $$18, $$4, $$5, ... $$6)) { .... $$6)) { 972 this.player.absMoveTo($$4, $$5, $$6, $$2, $ 1037 this.player.absSnapTo($$4, $$5, $$6, $$2, $ ... $3); .... $3); 973 boolean $$23 = this.player.isAutoSpinAttack 1038 boolean $$23 = this.player.isAutoSpinAttack ... (); .... (); 974 this.clientIsFloating = $$11 >= -0.03125 1039 this.clientIsFloating = $$11 >= -0.03125 975 && !$$20 1040 && !$$20 net/minecraft/server/network/ServerGamePacketListenerImpl.java --- 11/11 --- Java 1186 float $$4 = Mth.wrapDegrees($$0.getYRot()); 1251 float $$4 = Mth.wrapDegrees($$0.getYRot()); 1187 float $$5 = Mth.wrapDegrees($$0.getXRot()); 1252 float $$5 = Mth.wrapDegrees($$0.getXRot()); 1188 if ($$5 != this.player.getXRot() || $$4 != this.player.ge 1253 if ($$5 != this.player.getXRot() || $$4 != this.player.ge .... tYRot()) { .... tYRot()) { 1189 this.player.absRotateTo($$4, $$5); 1254 this.player.absSnapRotationTo($$4, $$5); 1190 } 1255 } 1191 1256 1192 if (this.player.gameMode.useItem(this.player, $$1, $$3, $ 1257 if (this.player.gameMode.useItem(this.player, $$1, $$3, $ $2) instanceof InteractionResult.Success $$7 $2) instanceof InteractionResult.Success $$7 net/minecraft/world/level/block/state/properties/BlockStateProperties.java --- Java 145 public static final EnumProperty<VaultState> VAULT_STATE = EnumProp 145 public static final EnumProperty<VaultState> VAULT_STATE = EnumProp ... erty.create("vault_state", VaultState.class); ... erty.create("vault_state", VaultState.class); 146 public static final EnumProperty<CreakingHeartState> CREAKING_HEART 146 public static final EnumProperty<CreakingHeartState> CREAKING_HEART ... _STATE = EnumProperty.create("creaking_heart_state", CreakingHeartStat ... _STATE = EnumProperty.create("creaking_heart_state", CreakingHeartStat ... e.class); ... e.class); 147 public static final BooleanProperty OMINOUS = BooleanProperty.creat 147 public static final BooleanProperty OMINOUS = BooleanProperty.creat ... e("ominous"); ... e("ominous"); ... 148 public static final EnumProperty<TestBlockMode> TEST_BLOCK_MODE = E ... ... numProperty.create("test_block_mode", TestBlockMode.class); 148 } 149 } net/minecraft/client/renderer/entity/state/SaddleableRenderState.java --- Java 1 package net.minecraft.client.renderer.entity.state; 2 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 5 6 @Environment(EnvType.CLIENT) 7 public interface SaddleableRenderState { 8 boolean isSaddled(); 9 } 10 net/minecraft/client/renderer/entity/state/CamelRenderState.java --- Java 3 import net.fabricmc.api.EnvType; 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 4 import net.fabricmc.api.Environment; 5 import net.minecraft.world.entity.AnimationState; 5 import net.minecraft.world.entity.AnimationState; . 6 import net.minecraft.world.item.ItemStack; 6 7 7 @Environment(EnvType.CLIENT) 8 @Environment(EnvType.CLIENT) 8 public class CamelRenderState extends LivingEntityRenderState { 9 public class CamelRenderState extends LivingEntityRenderState { 9 public boolean isSaddled; 10 public ItemStack saddle = ItemStack.EMPTY; 10 public boolean isRidden; 11 public boolean isRidden; 11 public float jumpCooldown; 12 public float jumpCooldown; 12 public final AnimationState sitAnimationState = new AnimationState() 13 public final AnimationState sitAnimationState = new AnimationState() ; ; net/minecraft/server/commands/ExecuteCommand.java --- 1/2 --- Java 1026 ContextChain<T> $$4, 1026 ContextChain<T> $$4, 1027 @Nullable CompoundTag $$5, 1027 @Nullable CompoundTag $$5, 1028 ExecutionControl<T> $$6, 1028 ExecutionControl<T> $$6, 1029 ExecuteCommand.CommandGetter<T, Collection<CommandFunction<T>>> 1029 InCommandFunction<CommandContext<T>, Collection<CommandFunction .... $$7, .... <T>>> $$7, 1030 ChainModifiers $$8 1030 ChainModifiers $$8 1031 ) { 1031 ) { 1032 List<T> $$9 = new ArrayList<>($$1.size()); 1032 List<T> $$9 = new ArrayList<>($$1.size()); 1033 1033 1034 Collection<CommandFunction<T>> $$10; 1034 Collection<CommandFunction<T>> $$10; 1035 try { 1035 try { 1036 $$10 = $$7.get($$4.getTopContext().copyFor($$0)); 1036 $$10 = $$7.apply($$4.getTopContext().copyFor($$0)); 1037 } catch (CommandSyntaxException var18) { 1037 } catch (CommandSyntaxException var18) { 1038 $$0.handleError(var18, $$8.isForked(), $$6.tracer()); 1038 $$0.handleError(var18, $$8.isForked(), $$6.tracer()); 1039 return; 1039 return; net/minecraft/server/commands/ExecuteCommand.java --- 2/2 --- Java 1077 } 1077 } 1078 } 1078 } 1079 .... 1080 @FunctionalInterface .... 1081 public interface CommandGetter<T, R> { .... 1082 R get(CommandContext<T> var1) throws CommandSyntaxException; .... 1083 } .... 1084 1079 1085 @FunctionalInterface 1080 @FunctionalInterface 1086 interface CommandNumericPredicate { 1081 interface CommandNumericPredicate { net/minecraft/core/HolderGetter.java --- Java 28 return this.lookup($$0.registryKey()).flatMap($$1 -> $$1.get($ 28 return this.lookup($$0.registryKey()).flatMap($$1 -> $$1.get($ .. $0)); .. $0)); 29 } 29 } .. 30 .. 31 default <T> Holder.Reference<T> getOrThrow(ResourceKey<T> $$0) { .. 32 return this.lookup($$0.registryKey()).flatMap($$1 -> $$1.get($ .. .. $0)).orElseThrow(() -> new IllegalStateException("Missing element " + $ .. .. $0)); .. 33 } 30 } 34 } 31 } 35 } net/minecraft/world/entity/ai/behavior/YieldJobSite.java --- 1/2 --- Java 30 ($$2, $$3, $$4, $$5, $$6) -> ($$6x, $$7, $$8) -> { 30 ($$2, $$3, $$4, $$5, $$6) -> ($$6x, $$7, $$8) -> { 31 if ($$7.isBaby()) { 31 if ($$7.isBaby()) { 32 return false; 32 return false; 33 } else if ($$7.getVillagerData().getProfession( 33 } else if (!$$7.getVillagerData().profession(). .. ) != VillagerProfession.NONE) { .. is(VillagerProfession.NONE)) { 34 return false; 34 return false; 35 } else { 35 } else { 36 BlockPos $$9 = $$1.<GlobalPos>get($$2).pos() 36 BlockPos $$9 = $$1.<GlobalPos>get($$2).pos() ; ; net/minecraft/world/entity/ai/behavior/YieldJobSite.java --- 2/2 --- Java 69 return false; 69 return false; 70 } else { 70 } else { 71 Optional<GlobalPos> $$4 = $$1.getBrain().getMemory(MemoryModul 71 Optional<GlobalPos> $$4 = $$1.getBrain().getMemory(MemoryModul .. eType.JOB_SITE); .. eType.JOB_SITE); 72 VillagerProfession $$5 = $$1.getVillagerData().getProfession() 72 Holder<VillagerProfession> $$5 = $$1.getVillagerData().profess .. ; .. ion(); 73 if ($$5.heldJobSite().test($$0)) { 73 if ($$5.value().heldJobSite().test($$0)) { 74 return $$4.isEmpty() ? canReachPos($$1, $$2, $$0.value()) : 74 return $$4.isEmpty() ? canReachPos($$1, $$2, $$0.value()) : .. $$4.get().pos().equals($$2); .. $$4.get().pos().equals($$2); 75 } else { 75 } else { 76 return false; 76 return false; net/minecraft/client/renderer/entity/state/VillagerDataHolderRenderState.java --- Java 1 package net.minecraft.client.renderer.entity.state; 1 package net.minecraft.client.renderer.entity.state; 2 2 . 3 import javax.annotation.Nullable; 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 5 import net.fabricmc.api.Environment; 5 import net.minecraft.world.entity.npc.VillagerData; 6 import net.minecraft.world.entity.npc.VillagerData; 6 7 7 @Environment(EnvType.CLIENT) 8 @Environment(EnvType.CLIENT) 8 public interface VillagerDataHolderRenderState { 9 public interface VillagerDataHolderRenderState { . 10 @Nullable 9 VillagerData getVillagerData(); 11 VillagerData getVillagerData(); 10 } 12 } net/minecraft/client/model/PolarBearModel.java --- 1/3 --- Java 15 @Environment(EnvType.CLIENT) 15 @Environment(EnvType.CLIENT) 16 public class PolarBearModel extends QuadrupedModel<PolarBearRenderState 16 public class PolarBearModel extends QuadrupedModel<PolarBearRenderState .. > { .. > { 17 private static final float BABY_HEAD_SCALE = 2.25F; 17 private static final float BABY_HEAD_SCALE = 2.25F; 18 public static final MeshTransformer BABY_TRANSFORMER = new BabyModel 18 private static final MeshTransformer BABY_TRANSFORMER = new BabyMode .. Transform(true, 16.0F, 4.0F, 2.25F, 2.0F, 24.0F, Set.of("head")); .. lTransform(true, 16.0F, 4.0F, 2.25F, 2.0F, 24.0F, Set.of("head")); 19 19 20 public PolarBearModel(ModelPart $$0) { 20 public PolarBearModel(ModelPart $$0) { 21 super($$0); 21 super($$0); 22 } 22 } 23 23 24 public static LayerDefinition createBodyLayer() { 24 public static LayerDefinition createBodyLayer(boolean $$0) { 25 MeshDefinition $$0 = new MeshDefinition(); 25 MeshDefinition $$1 = new MeshDefinition(); 26 PartDefinition $$1 = $$0.getRoot(); 26 PartDefinition $$2 = $$1.getRoot(); 27 $$1.addOrReplaceChild( 27 $$2.addOrReplaceChild( 28 "head", 28 "head", 29 CubeListBuilder.create() 29 CubeListBuilder.create() 30 .texOffs(0, 0) 30 .texOffs(0, 0) net/minecraft/client/model/PolarBearModel.java --- 2/3 --- Java 38 .addBox("left_ear", 2.5F, -4.0F, -1.0F, 2.0F, 2.0F, 1.0F), 38 .addBox("left_ear", 2.5F, -4.0F, -1.0F, 2.0F, 2.0F, 1.0F), 39 PartPose.offset(0.0F, 10.0F, -16.0F) 39 PartPose.offset(0.0F, 10.0F, -16.0F) 40 ); 40 ); 41 $$1.addOrReplaceChild( 41 $$2.addOrReplaceChild( 42 "body", 42 "body", 43 CubeListBuilder.create() 43 CubeListBuilder.create() 44 .texOffs(0, 19) 44 .texOffs(0, 19) net/minecraft/client/model/PolarBearModel.java --- 3/3 --- Java 47 .addBox(-4.0F, -25.0F, -7.0F, 12.0F, 12.0F, 10.0F), 47 .addBox(-4.0F, -25.0F, -7.0F, 12.0F, 12.0F, 10.0F), 48 PartPose.offsetAndRotation(-2.0F, 9.0F, 12.0F, (float) (Math.P 48 PartPose.offsetAndRotation(-2.0F, 9.0F, 12.0F, (float) (Math.P .. I / 2), 0.0F, 0.0F) .. I / 2), 0.0F, 0.0F) 49 ); 49 ); 50 int $$2 = 10; 50 int $$3 = 10; 51 CubeListBuilder $$3 = CubeListBuilder.create().texOffs(50, 22).ad 51 CubeListBuilder $$4 = CubeListBuilder.create().texOffs(50, 22).ad .. dBox(-2.0F, 0.0F, -2.0F, 4.0F, 10.0F, 8.0F); .. dBox(-2.0F, 0.0F, -2.0F, 4.0F, 10.0F, 8.0F); 52 $$1.addOrReplaceChild("right_hind_leg", $$3, PartPose.offset(-4.5 52 $$2.addOrReplaceChild("right_hind_leg", $$4, PartPose.offset(-4.5 .. F, 14.0F, 6.0F)); .. F, 14.0F, 6.0F)); 53 $$1.addOrReplaceChild("left_hind_leg", $$3, PartPose.offset(4.5F, 53 $$2.addOrReplaceChild("left_hind_leg", $$4, PartPose.offset(4.5F, .. 14.0F, 6.0F)); .. 14.0F, 6.0F)); 54 CubeListBuilder $$4 = CubeListBuilder.create().texOffs(50, 40).ad 54 CubeListBuilder $$5 = CubeListBuilder.create().texOffs(50, 40).ad .. dBox(-2.0F, 0.0F, -2.0F, 4.0F, 10.0F, 6.0F); .. dBox(-2.0F, 0.0F, -2.0F, 4.0F, 10.0F, 6.0F); 55 $$1.addOrReplaceChild("right_front_leg", $$4, PartPose.offset(-3. 55 $$2.addOrReplaceChild("right_front_leg", $$5, PartPose.offset(-3. .. 5F, 14.0F, -8.0F)); .. 5F, 14.0F, -8.0F)); 56 $$1.addOrReplaceChild("left_front_leg", $$4, PartPose.offset(3.5F 56 $$2.addOrReplaceChild("left_front_leg", $$5, PartPose.offset(3.5F .. , 14.0F, -8.0F)); .. , 14.0F, -8.0F)); 57 return LayerDefinition.create($$0, 128, 64).apply(MeshTransformer 57 return LayerDefinition.create($$1, 128, 64).apply($$0 ? BABY_TRAN .. .scaling(1.2F)); .. SFORMER : MeshTransformer.IDENTITY).apply(MeshTransformer.scaling(1.2F) .. .. ); 58 } 58 } 59 59 60 public void setupAnim(PolarBearRenderState $$0) { 60 public void setupAnim(PolarBearRenderState $$0) { net/minecraft/server/MinecraftServer.java --- Java 1051 this.tickConnection(); 1051 this.tickConnection(); 1052 $$1.popPush("players"); 1052 $$1.popPush("players"); 1053 this.playerList.tick(); 1053 this.playerList.tick(); 1054 if (SharedConstants.IS_RUNNING_IN_IDE && this.tickRateManager.r 1054 if (this.tickRateManager.runsNormally()) { .... unsNormally()) { .... 1055 GameTestTicker.SINGLETON.tick(); 1055 GameTestTicker.SINGLETON.tick(); 1056 } 1056 } 1057 1057 net/minecraft/world/inventory/SlotRanges.java --- Java 39 addSingleSlot($$0, "armor.feet", $$6); 39 addSingleSlot($$0, "armor.feet", $$6); 40 addSingleSlot($$0, "armor.body", $$7); 40 addSingleSlot($$0, "armor.body", $$7); 41 addSlots($$0, "armor.*", $$1, $$2, $$5, $$6, $$7); 41 addSlots($$0, "armor.*", $$1, $$2, $$5, $$6, $$7); 42 addSingleSlot($$0, "horse.saddle", 400); 42 addSingleSlot($$0, "saddle", EquipmentSlot.SADDLE.getIndex(106)); 43 addSingleSlot($$0, "horse.chest", 499); 43 addSingleSlot($$0, "horse.chest", 499); 44 addSingleSlot($$0, "player.cursor", 499); 44 addSingleSlot($$0, "player.cursor", 499); 45 addSlotRange($$0, "player.crafting.", 500, 4); 45 addSlotRange($$0, "player.crafting.", 500, 4); net/minecraft/world/level/block/BedBlock.java --- Java 131 } 131 } 132 132 133 @Override 133 @Override 134 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity 134 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity ... $$3, float $$4) { ... $$3, double $$4) { 135 super.fallOn($$0, $$1, $$2, $$3, $$4 * 0.5F); 135 super.fallOn($$0, $$1, $$2, $$3, $$4 * 0.5); 136 } 136 } 137 137 138 @Override 138 @Override net/minecraft/world/entity/npc/Villager.java --- 1/16 --- Java 16 import net.minecraft.core.BlockPos; 16 import net.minecraft.core.BlockPos; 17 import net.minecraft.core.GlobalPos; 17 import net.minecraft.core.GlobalPos; 18 import net.minecraft.core.Holder; 18 import net.minecraft.core.Holder; .. 19 import net.minecraft.core.component.DataComponentGetter; .. 20 import net.minecraft.core.component.DataComponentType; .. 21 import net.minecraft.core.component.DataComponents; 19 import net.minecraft.core.particles.ParticleTypes; 22 import net.minecraft.core.particles.ParticleTypes; 20 import net.minecraft.core.registries.BuiltInRegistries; 23 import net.minecraft.core.registries.BuiltInRegistries; 21 import net.minecraft.nbt.CompoundTag; 24 import net.minecraft.nbt.CompoundTag; net/minecraft/world/entity/npc/Villager.java --- 2/16 --- Java 27 import net.minecraft.network.syncher.EntityDataAccessor; 30 import net.minecraft.network.syncher.EntityDataAccessor; 28 import net.minecraft.network.syncher.EntityDataSerializers; 31 import net.minecraft.network.syncher.EntityDataSerializers; 29 import net.minecraft.network.syncher.SynchedEntityData; 32 import net.minecraft.network.syncher.SynchedEntityData; .. 33 import net.minecraft.resources.ResourceKey; 30 import net.minecraft.server.MinecraftServer; 34 import net.minecraft.server.MinecraftServer; 31 import net.minecraft.server.level.ServerLevel; 35 import net.minecraft.server.level.ServerLevel; 32 import net.minecraft.sounds.SoundEvent; 36 import net.minecraft.sounds.SoundEvent; net/minecraft/world/entity/npc/Villager.java --- 3/16 --- Java 165 MemoryModuleType.HOME, 169 MemoryModuleType.HOME, 166 ($$0, $$1) -> $$1.is(PoiTypes.HOME), 170 ($$0, $$1) -> $$1.is(PoiTypes.HOME), 167 MemoryModuleType.JOB_SITE, 171 MemoryModuleType.JOB_SITE, 168 ($$0, $$1) -> $$0.getVillagerData().getProfession().heldJobSite( 172 ($$0, $$1) -> $$0.getVillagerData().profession().value().heldJob ... ).test($$1), ... Site().test($$1), 169 MemoryModuleType.POTENTIAL_JOB_SITE, 173 MemoryModuleType.POTENTIAL_JOB_SITE, 170 ($$0, $$1) -> VillagerProfession.ALL_ACQUIRABLE_JOBS.test($$1), 174 ($$0, $$1) -> VillagerProfession.ALL_ACQUIRABLE_JOBS.test($$1), 171 MemoryModuleType.MEETING_POINT, 175 MemoryModuleType.MEETING_POINT, net/minecraft/world/entity/npc/Villager.java --- 4/16 --- Java 176 this($$0, $$1, VillagerType.PLAINS); 180 this($$0, $$1, VillagerType.PLAINS); 177 } 181 } ... 182 ... 183 public Villager(EntityType<? extends Villager> $$0, Level $$1, Reso ... ... urceKey<VillagerType> $$2) { ... 184 this($$0, $$1, $$1.registryAccess().getOrThrow($$2)); ... 185 } 178 186 179 public Villager(EntityType<? extends Villager> $$0, Level $$1, Vill 187 public Villager(EntityType<? extends Villager> $$0, Level $$1, Hold ... agerType $$2) { ... er<VillagerType> $$2) { 180 super($$0, $$1); 188 super($$0, $$1); 181 ((GroundPathNavigation)this.getNavigation()).setCanOpenDoors(tru 189 ((GroundPathNavigation)this.getNavigation()).setCanOpenDoors(tru ... e); ... e); 182 this.getNavigation().setCanFloat(true); 190 this.getNavigation().setCanFloat(true); 183 this.getNavigation().setRequiredPathLength(48.0F); 191 this.getNavigation().setRequiredPathLength(48.0F); 184 this.setCanPickUpLoot(true); 192 this.setCanPickUpLoot(true); 185 this.setVillagerData(this.getVillagerData().setType($$2).setProf 193 this.setVillagerData(this.getVillagerData().withType($$2).withPr ... ession(VillagerProfession.NONE)); ... ofession($$1.registryAccess(), VillagerProfession.NONE)); 186 } 194 } 187 195 188 @Override 196 @Override net/minecraft/world/entity/npc/Villager.java --- 5/16 --- Java 210 } 218 } 211 219 212 private void registerBrainGoals(Brain<Villager> $$0) { 220 private void registerBrainGoals(Brain<Villager> $$0) { 213 VillagerProfession $$1 = this.getVillagerData().getProfession(); 221 Holder<VillagerProfession> $$1 = this.getVillagerData().professi ... ... on(); 214 if (this.isBaby()) { 222 if (this.isBaby()) { 215 $$0.setSchedule(Schedule.VILLAGER_BABY); 223 $$0.setSchedule(Schedule.VILLAGER_BABY); 216 $$0.addActivity(Activity.PLAY, VillagerGoalPackages.getPlayPa 224 $$0.addActivity(Activity.PLAY, VillagerGoalPackages.getPlayPa ckage(0.5F)); ckage(0.5F)); net/minecraft/world/entity/npc/Villager.java --- 6/16 --- Java 288 } 296 } 289 } 297 } 290 298 291 if (this.getVillagerData().getProfession() == VillagerProfession 299 if (this.getVillagerData().profession().is(VillagerProfession.NO ... .NONE && this.isTrading()) { ... NE) && this.isTrading()) { 292 this.stopTrading(); 300 this.stopTrading(); 293 } 301 } 294 302 net/minecraft/world/entity/npc/Villager.java --- 7/16 --- Java 345 private void startTrading(Player $$0) { 353 private void startTrading(Player $$0) { 346 this.updateSpecialPrices($$0); 354 this.updateSpecialPrices($$0); 347 this.setTradingPlayer($$0); 355 this.setTradingPlayer($$0); 348 this.openTradingScreen($$0, this.getDisplayName(), this.getVilla 356 this.openTradingScreen($$0, this.getDisplayName(), this.getVilla ... gerData().getLevel()); ... gerData().level()); 349 } 357 } 350 358 351 @Override 359 @Override net/minecraft/world/entity/npc/Villager.java --- 8/16 --- Java 393 Player $$1 = this.getTradingPlayer(); 401 Player $$1 = this.getTradingPlayer(); 394 if ($$1 != null && !$$0.isEmpty()) { 402 if ($$1 != null && !$$0.isEmpty()) { 395 $$1.sendMerchantOffers( 403 $$1.sendMerchantOffers( 396 $$1.containerMenu.containerId, $$0, this.getVillagerData() 404 $$1.containerMenu.containerId, $$0, this.getVillagerData() ... .getLevel(), this.getVillagerXp(), this.showProgressBar(), this.canRes ... .level(), this.getVillagerXp(), this.showProgressBar(), this.canRestoc ... tock() ... k() 397 ); 405 ); 398 } 406 } 399 } 407 } net/minecraft/world/entity/npc/Villager.java --- 9/16 --- Java 479 $$0.define(DATA_VILLAGER_DATA, new VillagerData(VillagerType.PLA 487 $$0.define( ... INS, VillagerProfession.NONE, 1)); ... ... 488 DATA_VILLAGER_DATA, ... 489 new VillagerData( ... 490 BuiltInRegistries.VILLAGER_TYPE.getOrThrow(VillagerType.PL ... ... AINS), BuiltInRegistries.VILLAGER_PROFESSION.getOrThrow(VillagerProfes ... ... sion.NONE), 1 ... 491 ) ... 492 ); 480 } 493 } net/minecraft/world/entity/npc/Villager.java --- 10/16 --- Java 552 } 565 } 553 566 554 public void playWorkSound() { 567 public void playWorkSound() { 555 this.makeSound(this.getVillagerData().getProfession().workSound( 568 this.makeSound(this.getVillagerData().profession().value().workS ... )); ... ound()); 556 } 569 } 557 570 558 @Override 571 @Override 559 public void setVillagerData(VillagerData $$0) { 572 public void setVillagerData(VillagerData $$0) { 560 VillagerData $$1 = this.getVillagerData(); 573 VillagerData $$1 = this.getVillagerData(); 561 if ($$1.getProfession() != $$0.getProfession()) { 574 if (!$$1.profession().equals($$0.profession())) { 562 this.offers = null; 575 this.offers = null; 563 } 576 } 564 577 net/minecraft/world/entity/npc/Villager.java --- 11/16 --- Java 695 } 708 } 696 709 697 private boolean shouldIncreaseLevel() { 710 private boolean shouldIncreaseLevel() { 698 int $$0 = this.getVillagerData().getLevel(); 711 int $$0 = this.getVillagerData().level(); 699 return VillagerData.canLevelUp($$0) && this.villagerXp >= Villag 712 return VillagerData.canLevelUp($$0) && this.villagerXp >= Villag ... erData.getMaxXpPerLevel($$0); ... erData.getMaxXpPerLevel($$0); 700 } 713 } 701 714 702 private void increaseMerchantCareer() { 715 private void increaseMerchantCareer() { 703 this.setVillagerData(this.getVillagerData().setLevel(this.getVil 716 this.setVillagerData(this.getVillagerData().withLevel(this.getVi ... lagerData().getLevel() + 1)); ... llagerData().level() + 1)); 704 this.updateTrades(); 717 this.updateTrades(); 705 } 718 } 706 719 707 @Override 720 @Override 708 protected Component getTypeName() { 721 protected Component getTypeName() { 709 return Component.translatable( 722 return this.getVillagerData().profession().value().name(); 710 this.getType().getDescriptionId() + "." + BuiltInRegistries.V ... ... ILLAGER_PROFESSION.getKey(this.getVillagerData().getProfession()).getP ... ... ath() ... 711 ); ... 712 } 723 } 713 724 714 @Override 725 @Override net/minecraft/world/entity/npc/Villager.java --- 12/16 --- Java 730 @Override 741 @Override 731 public SpawnGroupData finalizeSpawn(ServerLevelAccessor $$0, Diffic 742 public SpawnGroupData finalizeSpawn(ServerLevelAccessor $$0, Diffic ... ultyInstance $$1, EntitySpawnReason $$2, @Nullable SpawnGroupData $$3) ... ultyInstance $$1, EntitySpawnReason $$2, @Nullable SpawnGroupData $$3) ... { ... { 732 if ($$2 == EntitySpawnReason.BREEDING) { 743 if ($$2 == EntitySpawnReason.BREEDING) { 733 this.setVillagerData(this.getVillagerData().setProfession(Vil 744 this.setVillagerData(this.getVillagerData().withProfession($$ ... lagerProfession.NONE)); ... 0.registryAccess(), VillagerProfession.NONE)); 734 } 745 } 735 746 736 if ($$2 == EntitySpawnReason.COMMAND || $$2 == EntitySpawnReason 747 if ($$2 == EntitySpawnReason.COMMAND || $$2 == EntitySpawnReason ... .SPAWN_ITEM_USE || EntitySpawnReason.isSpawner($$2) || $$2 == EntitySp ... .SPAWN_ITEM_USE || EntitySpawnReason.isSpawner($$2) || $$2 == EntitySp ... awnReason.DISPENSER ... awnReason.DISPENSER 737 ) 748 ) 738 { 749 { 739 this.setVillagerData(this.getVillagerData().setType(VillagerT 750 this.setVillagerData(this.getVillagerData().withType($$0.regi ... ype.byBiome($$0.getBiome(this.blockPosition())))); ... stryAccess(), VillagerType.byBiome($$0.getBiome(this.blockPosition())) ... ... )); 740 } 751 } 741 752 742 if ($$2 == EntitySpawnReason.STRUCTURE) { 753 if ($$2 == EntitySpawnReason.STRUCTURE) { net/minecraft/world/entity/npc/Villager.java --- 13/16 --- Java 749 @Nullable 760 @Nullable 750 public Villager getBreedOffspring(ServerLevel $$0, AgeableMob $$1) 761 public Villager getBreedOffspring(ServerLevel $$0, AgeableMob $$1) ... { ... { 751 double $$2 = this.random.nextDouble(); 762 double $$2 = this.random.nextDouble(); 752 VillagerType $$3; 763 Holder<VillagerType> $$3; 753 if ($$2 < 0.5) { 764 if ($$2 < 0.5) { 754 $$3 = VillagerType.byBiome($$0.getBiome(this.blockPosition()) 765 $$3 = $$0.registryAccess().getOrThrow(VillagerType.byBiome($$ ... ); ... 0.getBiome(this.blockPosition()))); 755 } else if ($$2 < 0.75) { 766 } else if ($$2 < 0.75) { 756 $$3 = this.getVillagerData().getType(); 767 $$3 = this.getVillagerData().type(); 757 } else { 768 } else { 758 $$3 = ((Villager)$$1).getVillagerData().getType(); 769 $$3 = ((Villager)$$1).getVillagerData().type(); 759 } 770 } 760 771 761 Villager $$6 = new Villager(EntityType.VILLAGER, $$0, $$3); 772 Villager $$6 = new Villager(EntityType.VILLAGER, $$0, $$3); net/minecraft/world/entity/npc/Villager.java --- 14/16 --- Java 788 @Override 799 @Override 789 public boolean wantsToPickUp(ServerLevel $$0, ItemStack $$1) { 800 public boolean wantsToPickUp(ServerLevel $$0, ItemStack $$1) { 790 Item $$2 = $$1.getItem(); 801 Item $$2 = $$1.getItem(); 791 return ($$1.is(ItemTags.VILLAGER_PICKS_UP) || this.getVillagerDa 802 return ($$1.is(ItemTags.VILLAGER_PICKS_UP) || this.getVillagerDa ... ta().getProfession().requestedItems().contains($$2)) ... ta().profession().value().requestedItems().contains($$2)) 792 && this.getInventory().canAddItem($$1); 803 && this.getInventory().canAddItem($$1); 793 } 804 } 794 805 net/minecraft/world/entity/npc/Villager.java --- 15/16 --- Java 812 @Override 823 @Override 813 protected void updateTrades() { 824 protected void updateTrades() { 814 VillagerData $$0 = this.getVillagerData(); 825 VillagerData $$0 = this.getVillagerData(); ... 826 ResourceKey<VillagerProfession> $$1 = $$0.profession().unwrapKey ... ... ().orElse(null); ... 827 if ($$1 != null) { 815 Int2ObjectMap<VillagerTrades.ItemListing[]> $$2; 828 Int2ObjectMap<VillagerTrades.ItemListing[]> $$3; 816 if (this.level().enabledFeatures().contains(FeatureFlags.TRADE_R 829 if (this.level().enabledFeatures().contains(FeatureFlags.TRAD ... EBALANCE)) { ... E_REBALANCE)) { 817 Int2ObjectMap<VillagerTrades.ItemListing[]> $$1 = VillagerTra 830 Int2ObjectMap<VillagerTrades.ItemListing[]> $$2 = Villager ... des.EXPERIMENTAL_TRADES.get($$0.getProfession()); ... Trades.EXPERIMENTAL_TRADES.get($$1); 818 $$2 = $$1 != null ? $$1 : VillagerTrades.TRADES.get($$0.getPr 831 $$3 = $$2 != null ? $$2 : VillagerTrades.TRADES.get($$1); ... ofession()); ... 819 } else { 832 } else { 820 $$2 = VillagerTrades.TRADES.get($$0.getProfession()); 833 $$3 = VillagerTrades.TRADES.get($$1); 821 } 834 } 822 835 823 if ($$2 != null && !$$2.isEmpty()) { 836 if ($$3 != null && !$$3.isEmpty()) { 824 VillagerTrades.ItemListing[] $$4 = $$2.get($$0.getLevel()); 837 VillagerTrades.ItemListing[] $$5 = $$3.get($$0.level()); 825 if ($$4 != null) { 838 if ($$5 != null) { 826 MerchantOffers $$5 = this.getOffers(); 839 MerchantOffers $$6 = this.getOffers(); 827 this.addOffersFromItemListings($$5, $$4, 2); 840 this.addOffersFromItemListings($$6, $$5, 2); 828 } 841 } 829 } 842 } ... 843 } 830 } 844 } 831 845 832 public void gossip(ServerLevel $$0, Villager $$1, long $$2) { 846 public void gossip(ServerLevel $$0, Villager $$1, long $$2) { net/minecraft/world/entity/npc/Villager.java --- 16/16 --- Java 929 return $$1.filter($$1x -> $$0 - $$1x < 24000L).isPresent(); 943 return $$1.filter($$1x -> $$0 - $$1x < 24000L).isPresent(); 930 } 944 } ... 945 ... 946 @Nullable ... 947 @Override ... 948 public <T> T get(DataComponentType<? extends T> $$0) { ... 949 return $$0 == DataComponents.VILLAGER_VARIANT ? castComponentVal ... ... ue((DataComponentType<T>)$$0, this.getVillagerData().type()) : super.g ... ... et($$0); ... 950 } ... 951 ... 952 @Override ... 953 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 954 this.applyImplicitComponentIfPresent($$0, DataComponents.VILLAGE ... ... R_VARIANT); ... 955 super.applyImplicitComponents($$0); ... 956 } ... 957 ... 958 @Override ... 959 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 960 if ($$0 == DataComponents.VILLAGER_VARIANT) { ... 961 Holder<VillagerType> $$2 = castComponentValue(DataComponents. ... ... VILLAGER_VARIANT, $$1); ... 962 this.setVillagerData(this.getVillagerData().withType($$2)); ... 963 return true; ... 964 } else { ... 965 return super.applyImplicitComponent($$0, $$1); ... 966 } ... 967 } 931 } 968 } net/minecraft/world/entity/EquipmentSlotGroup.java --- 1/4 --- Java 2 2 3 import com.mojang.serialization.Codec; 3 import com.mojang.serialization.Codec; 4 import io.netty.buffer.ByteBuf; 4 import io.netty.buffer.ByteBuf; . 5 import java.util.Iterator; . 6 import java.util.List; 5 import java.util.function.IntFunction; 7 import java.util.function.IntFunction; 6 import java.util.function.Predicate; 8 import java.util.function.Predicate; 7 import net.minecraft.network.codec.ByteBufCodecs; 9 import net.minecraft.network.codec.ByteBufCodecs; 8 import net.minecraft.network.codec.StreamCodec; 10 import net.minecraft.network.codec.StreamCodec; 9 import net.minecraft.util.ByIdMap; 11 import net.minecraft.util.ByIdMap; 10 import net.minecraft.util.StringRepresentable; 12 import net.minecraft.util.StringRepresentable; 11 13 12 public enum EquipmentSlotGroup implements StringRepresentable { 14 public enum EquipmentSlotGroup implements StringRepresentable, Iterable .. .. <EquipmentSlot> { 13 ANY(0, "any", $$0 -> true), 15 ANY(0, "any", $$0 -> true), 14 MAINHAND(1, "mainhand", EquipmentSlot.MAINHAND), 16 MAINHAND(1, "mainhand", EquipmentSlot.MAINHAND), 15 OFFHAND(2, "offhand", EquipmentSlot.OFFHAND), 17 OFFHAND(2, "offhand", EquipmentSlot.OFFHAND), net/minecraft/world/entity/EquipmentSlotGroup.java --- 2/4 --- Java 19 CHEST(6, "chest", EquipmentSlot.CHEST), 21 CHEST(6, "chest", EquipmentSlot.CHEST), 20 HEAD(7, "head", EquipmentSlot.HEAD), 22 HEAD(7, "head", EquipmentSlot.HEAD), 21 ARMOR(8, "armor", EquipmentSlot::isArmor), 23 ARMOR(8, "armor", EquipmentSlot::isArmor), 22 BODY(9, "body", EquipmentSlot.BODY); 24 BODY(9, "body", EquipmentSlot.BODY), .. 25 SADDLE(10, "saddle", EquipmentSlot.SADDLE); 23 26 24 public static final IntFunction<EquipmentSlotGroup> BY_ID = ByIdMap. 27 public static final IntFunction<EquipmentSlotGroup> BY_ID = ByIdMap. .. continuous($$0 -> $$0.id, values(), ByIdMap.OutOfBoundsStrategy.ZERO); .. continuous($$0 -> $$0.id, values(), ByIdMap.OutOfBoundsStrategy.ZERO); 25 public static final Codec<EquipmentSlotGroup> CODEC = StringRepresen 28 public static final Codec<EquipmentSlotGroup> CODEC = StringRepresen .. table.fromEnum(EquipmentSlotGroup::values); .. table.fromEnum(EquipmentSlotGroup::values); 26 public static final StreamCodec<ByteBuf, EquipmentSlotGroup> STREAM_ 29 public static final StreamCodec<ByteBuf, EquipmentSlotGroup> STREAM_ .. CODEC = ByteBufCodecs.idMapper(BY_ID, $$0 -> $$0.id); .. CODEC = ByteBufCodecs.idMapper(BY_ID, $$0 -> $$0.id); 27 private final int id; 30 private final int id; 28 private final String key; 31 private final String key; 29 private final Predicate<EquipmentSlot> predicate; 32 private final Predicate<EquipmentSlot> predicate; .. 33 private final List<EquipmentSlot> slots; 30 34 31 private EquipmentSlotGroup(final int $$0, final String $$1, final Pr 35 private EquipmentSlotGroup(final int $$0, final String $$1, final Pr .. edicate<EquipmentSlot> $$2) { .. edicate<EquipmentSlot> $$2) { 32 this.id = $$0; 36 this.id = $$0; 33 this.key = $$1; 37 this.key = $$1; 34 this.predicate = $$2; 38 this.predicate = $$2; .. 39 this.slots = EquipmentSlot.VALUES.stream().filter($$2).toList(); 35 } 40 } 36 41 37 private EquipmentSlotGroup(final int $$0, final String $$1, final Eq 42 private EquipmentSlotGroup(final int $$0, final String $$1, final Eq uipmentSlot $$2) { uipmentSlot $$2) { net/minecraft/world/entity/EquipmentSlotGroup.java --- 3/4 --- Java 47 case CHEST -> CHEST; 52 case CHEST -> CHEST; 48 case HEAD -> HEAD; 53 case HEAD -> HEAD; 49 case BODY -> BODY; 54 case BODY -> BODY; .. 55 case SADDLE -> SADDLE; 50 }; 56 }; 51 } 57 } 52 58 net/minecraft/world/entity/EquipmentSlotGroup.java --- 4/4 --- Java 59 return this.predicate.test($$0); 65 return this.predicate.test($$0); 60 } 66 } .. 67 .. 68 public List<EquipmentSlot> slots() { .. 69 return this.slots; .. 70 } .. 71 .. 72 @Override .. 73 public Iterator<EquipmentSlot> iterator() { .. 74 return this.slots.iterator(); .. 75 } 61 } 76 } net/minecraft/client/gui/screens/worldselection/CreateWorldScreen.java --- 1/2 --- Java 156 ) { 156 ) { 157 queueLoadScreen($$0, PREPARING_WORLD_DATA); 157 queueLoadScreen($$0, PREPARING_WORLD_DATA); 158 PackRepository $$6 = new PackRepository(new ServerPacksSource($$ 158 PackRepository $$6 = new PackRepository(new ServerPacksSource($$ ... 0.directoryValidator())); ... 0.directoryValidator())); ... 159 WorldDataConfiguration $$7 = SharedConstants.IS_RUNNING_IN_IDE ... 160 ? new WorldDataConfiguration(new DataPackConfig(List.of("vani ... ... lla", "tests"), List.of()), FeatureFlags.DEFAULT_FLAGS) ... 161 : WorldDataConfiguration.DEFAULT; 159 WorldLoader.InitConfig $$7 = createDefaultLoadConfig($$6, WorldD 162 WorldLoader.InitConfig $$8 = createDefaultLoadConfig($$6, $$7); ... ataConfiguration.DEFAULT); ... 160 CompletableFuture<WorldCreationContext> $$8 = WorldLoader.load( 163 CompletableFuture<WorldCreationContext> $$9 = WorldLoader.load( 161 $$7, 164 $$8, 162 $$1x -> new WorldLoader.DataLoadOutput<>(new DataPackReloadCo 165 $$1x -> new WorldLoader.DataLoadOutput<>(new DataPackReloadCo ... okie($$2.apply($$1x), $$1x.dataConfiguration()), $$1x.datapackDimensio ... okie($$2.apply($$1x), $$1x.dataConfiguration()), $$1x.datapackDimensio ... ns()), ... ns()), 163 ($$1x, $$2x, $$3x, $$4x) -> { 166 ($$1x, $$2x, $$3x, $$4x) -> { 164 $$1x.close(); 167 $$1x.close(); net/minecraft/client/gui/screens/worldselection/CreateWorldScreen.java --- 2/2 --- Java 167 Util.backgroundExecutor(), 170 Util.backgroundExecutor(), 168 $$0 171 $$0 169 ); 172 ); 170 $$0.managedBlock($$8::isDone); 173 $$0.managedBlock($$9::isDone); 171 $$0.setScreen(new CreateWorldScreen($$0, $$1, $$8.join(), Option 174 $$0.setScreen(new CreateWorldScreen($$0, $$1, $$9.join(), Option ... al.of($$4), OptionalLong.empty(), $$5)); ... al.of($$4), OptionalLong.empty(), $$5)); 172 } 175 } 173 176 174 public static CreateWorldScreen createFromExisting(Minecraft $$0, @ 177 public static CreateWorldScreen createFromExisting(Minecraft $$0, @ Nullable Screen $$1, LevelSettings $$2, WorldCreationContext $$3, @Nul Nullable Screen $$1, LevelSettings $$2, WorldCreationContext $$3, @Nul lable Path $$4) { lable Path $$4) { net/minecraft/world/entity/npc/VillagerDataHolder.java --- Java 1 package net.minecraft.world.entity.npc; 1 package net.minecraft.world.entity.npc; 2 . 3 import net.minecraft.world.entity.VariantHolder; . 4 2 5 public interface VillagerDataHolder extends VariantHolder<VillagerType> 3 public interface VillagerDataHolder { . { . 6 VillagerData getVillagerData(); 4 VillagerData getVillagerData(); 7 5 8 void setVillagerData(VillagerData var1); 6 void setVillagerData(VillagerData var1); 9 . 10 default VillagerType getVariant() { . 11 return this.getVillagerData().getType(); . 12 } . 13 . 14 default void setVariant(VillagerType $$0) { . 15 this.setVillagerData(this.getVillagerData().setType($$0)); . 16 } . 17 } 7 } net/minecraft/world/entity/EntityEvent.java --- Java 61 public static final byte BODY_BREAK = 65; 61 public static final byte BODY_BREAK = 65; 62 public static final byte SHAKE = 66; 62 public static final byte SHAKE = 66; 63 public static final byte DROWN_PARTICLES = 67; 63 public static final byte DROWN_PARTICLES = 67; .. 64 public static final byte SADDLE_BREAK = 68; 64 } 65 } net/minecraft/world/item/component/Weapon.java --- Java 7 import net.minecraft.network.codec.StreamCodec; 7 import net.minecraft.network.codec.StreamCodec; 8 import net.minecraft.util.ExtraCodecs; 8 import net.minecraft.util.ExtraCodecs; 9 9 10 public record Weapon(int damagePerAttack, boolean canDisableBlocking) { 10 public record Weapon(int itemDamagePerAttack, boolean canDisableBlockin .. .. g) { 11 public static final Codec<Weapon> CODEC = RecordCodecBuilder.create( 11 public static final Codec<Weapon> CODEC = RecordCodecBuilder.create( 12 $$0 -> $$0.group( 12 $$0 -> $$0.group( 13 ExtraCodecs.NON_NEGATIVE_INT.optionalFieldOf("damage_per 13 ExtraCodecs.NON_NEGATIVE_INT.optionalFieldOf("item_damag .. _attack", 1).forGetter(Weapon::damagePerAttack), .. e_per_attack", 1).forGetter(Weapon::itemDamagePerAttack), 14 Codec.BOOL.optionalFieldOf("can_disable_blocking", Boole 14 Codec.BOOL.optionalFieldOf("can_disable_blocking", Boole .. an.valueOf(false)).forGetter(Weapon::canDisableBlocking) .. an.valueOf(false)).forGetter(Weapon::canDisableBlocking) 15 ) 15 ) 16 .apply($$0, Weapon::new) 16 .apply($$0, Weapon::new) 17 ); 17 ); 18 public static final StreamCodec<RegistryFriendlyByteBuf, Weapon> STR 18 public static final StreamCodec<RegistryFriendlyByteBuf, Weapon> STR .. EAM_CODEC = StreamCodec.composite( .. EAM_CODEC = StreamCodec.composite( 19 ByteBufCodecs.VAR_INT, Weapon::damagePerAttack, ByteBufCodecs.BOO 19 ByteBufCodecs.VAR_INT, Weapon::itemDamagePerAttack, ByteBufCodecs .. L, Weapon::canDisableBlocking, Weapon::new .. .BOOL, Weapon::canDisableBlocking, Weapon::new 20 ); 20 ); 21 } 21 } net/minecraft/data/tags/VanillaBlockTagsProvider.java --- Java 1814 ) 1814 ) 1815 .add(Blocks.WATER, Blocks.SEAGRASS, Blocks.TALL_SEAGRASS) 1815 .add(Blocks.WATER, Blocks.SEAGRASS, Blocks.TALL_SEAGRASS) 1816 .add(Blocks.BROWN_MUSHROOM, Blocks.RED_MUSHROOM, Blocks.BROW 1816 .add(Blocks.BROWN_MUSHROOM, Blocks.RED_MUSHROOM, Blocks.BROW .... N_MUSHROOM_BLOCK, Blocks.RED_MUSHROOM_BLOCK) .... N_MUSHROOM_BLOCK, Blocks.RED_MUSHROOM_BLOCK) 1817 .add(Blocks.WARPED_ROOTS, Blocks.NETHER_SPROUTS, Blocks.CRIM 1817 .add(Blocks.WARPED_ROOTS, Blocks.NETHER_SPROUTS, Blocks.CRIM .... SON_ROOTS); .... SON_ROOTS, Blocks.LEAF_LITTER); 1818 this.tag(BlockTags.COMPLETES_FIND_TREE_TUTORIAL).addTag(BlockTa 1818 this.tag(BlockTags.COMPLETES_FIND_TREE_TUTORIAL).addTag(BlockTa .... gs.LOGS).addTag(BlockTags.LEAVES).addTag(BlockTags.WART_BLOCKS); .... gs.LOGS).addTag(BlockTags.LEAVES).addTag(BlockTags.WART_BLOCKS); 1819 this.tag(BlockTags.SNAPS_GOAT_HORN) 1819 this.tag(BlockTags.SNAPS_GOAT_HORN) 1820 .addTag(BlockTags.OVERWORLD_NATURAL_LOGS) 1820 .addTag(BlockTags.OVERWORLD_NATURAL_LOGS) net/minecraft/world/entity/npc/CatSpawner.java --- Java 83 return 0; 83 return 0; 84 } else { 84 } else { 85 $$2.finalizeSpawn($$1, $$1.getCurrentDifficultyAt($$0), Entity 85 $$2.finalizeSpawn($$1, $$1.getCurrentDifficultyAt($$0), Entity .. SpawnReason.NATURAL, null); .. SpawnReason.NATURAL, null); 86 $$2.moveTo($$0, 0.0F, 0.0F); 86 $$2.snapTo($$0, 0.0F, 0.0F); 87 $$1.addFreshEntityWithPassengers($$2); 87 $$1.addFreshEntityWithPassengers($$2); 88 return 1; 88 return 1; 89 } 89 } net/minecraft/world/level/block/WitherSkullBlock.java --- Java 61 if ($$6 != null) { 61 if ($$6 != null) { 62 CarvedPumpkinBlock.clearPatternBlocks($$0, $$5); 62 CarvedPumpkinBlock.clearPatternBlocks($$0, $$5); 63 BlockPos $$7 = $$5.getBlock(1, 2, 0).getPos(); 63 BlockPos $$7 = $$5.getBlock(1, 2, 0).getPos(); 64 $$6.moveTo( 64 $$6.snapTo( 65 (double)$$7.getX() + 0.5, 65 (double)$$7.getX() + 0.5, 66 (double)$$7.getY() + 0.55, 66 (double)$$7.getY() + 0.55, 67 (double)$$7.getZ() + 0.5, 67 (double)$$7.getZ() + 0.5, net/minecraft/client/renderer/entity/layers/SaddleLayer.java --- Java 1 package net.minecraft.client.renderer.entity.layers; 2 3 import com.mojang.blaze3d.vertex.PoseStack; 4 import com.mojang.blaze3d.vertex.VertexConsumer; 5 import net.fabricmc.api.EnvType; 6 import net.fabricmc.api.Environment; 7 import net.minecraft.client.model.EntityModel; 8 import net.minecraft.client.renderer.MultiBufferSource; 9 import net.minecraft.client.renderer.RenderType; 10 import net.minecraft.client.renderer.entity.RenderLayerParent; 11 import net.minecraft.client.renderer.entity.state.LivingEntityRenderState; 12 import net.minecraft.client.renderer.entity.state.SaddleableRenderState; 13 import net.minecraft.client.renderer.texture.OverlayTexture; 14 import net.minecraft.resources.ResourceLocation; 15 16 @Environment(EnvType.CLIENT) 17 public class SaddleLayer<S extends LivingEntityRenderState & SaddleableRenderState, M extends EntityModel<? super S>> extends RenderLayer<S, M> { 18 private final ResourceLocation textureLocation; 19 private final M adultModel; 20 private final M babyModel; 21 22 public SaddleLayer(RenderLayerParent<S, M> $$0, M $$1, M $$2, ResourceLocation $$3) { 23 super($$0); 24 this.adultModel = $$1; 25 this.babyModel = $$2; 26 this.textureLocation = $$3; 27 } 28 29 public SaddleLayer(RenderLayerParent<S, M> $$0, M $$1, ResourceLocation $$2) { 30 this($$0, $$1, $$1, $$2); 31 } 32 33 public void render(PoseStack $$0, MultiBufferSource $$1, int $$2, S $$3, float $$4, float $$5) { 34 if ($$3.isSaddled()) { 35 M $$6 = $$3.isBaby ? this.babyModel : this.adultModel; 36 $$6.setupAnim($$3); 37 VertexConsumer $$7 = $$1.getBuffer(RenderType.entityCutoutNoCull(this.textureLocation)); 38 $$6.renderToBuffer($$0, $$7, $$2, OverlayTexture.NO_OVERLAY); 39 } 40 } 41 } 42 net/minecraft/util/datafix/schemas/V4300.java --- Java 1 package net.minecraft.util.datafix.schemas; 2 3 import com.mojang.datafixers.DSL; 4 import com.mojang.datafixers.schemas.Schema; 5 import com.mojang.datafixers.types.templates.TypeTemplate; 6 import java.util.Map; 7 import java.util.function.Supplier; 8 import net.minecraft.util.datafix.fixes.References; 9 10 public class V4300 extends NamespacedSchema { 11 public V4300(int $$0, Schema $$1) { 12 super($$0, $$1); 13 } 14 15 @Override 16 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $$0) { 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities($$0); 18 $$0.register($$1, "minecraft:llama", $$1x -> entityWithInventory($$0)); 19 $$0.register($$1, "minecraft:trader_llama", $$1x -> entityWithInventory($$0)); 20 $$0.register($$1, "minecraft:donkey", $$1x -> entityWithInventory($$0)); 21 $$0.register($$1, "minecraft:mule", $$1x -> entityWithInventory($$0)); 22 $$0.registerSimple($$1, "minecraft:horse"); 23 $$0.registerSimple($$1, "minecraft:skeleton_horse"); 24 $$0.registerSimple($$1, "minecraft:zombie_horse"); 25 return $$1; 26 } 27 28 private static TypeTemplate entityWithInventory(Schema $$0) { 29 return DSL.optionalFields("Items", DSL.list(References.ITEM_STACK.in($$0))); 30 } 31 } 32 net/minecraft/util/datafix/schemas/V2704.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:goat", () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, "minecraft:goat"); 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/world/entity/EquipmentSlot.java --- 1/3 --- Java 16 LEGS(EquipmentSlot.Type.HUMANOID_ARMOR, 1, 1, 2, "legs"), 16 LEGS(EquipmentSlot.Type.HUMANOID_ARMOR, 1, 1, 2, "legs"), 17 CHEST(EquipmentSlot.Type.HUMANOID_ARMOR, 2, 1, 3, "chest"), 17 CHEST(EquipmentSlot.Type.HUMANOID_ARMOR, 2, 1, 3, "chest"), 18 HEAD(EquipmentSlot.Type.HUMANOID_ARMOR, 3, 1, 4, "head"), 18 HEAD(EquipmentSlot.Type.HUMANOID_ARMOR, 3, 1, 4, "head"), 19 BODY(EquipmentSlot.Type.ANIMAL_ARMOR, 0, 1, 6, "body"); 19 BODY(EquipmentSlot.Type.ANIMAL_ARMOR, 0, 1, 6, "body"), .. 20 SADDLE(EquipmentSlot.Type.SADDLE, 0, 1, 7, "saddle"); 20 21 21 public static final int NO_COUNT_LIMIT = 0; 22 public static final int NO_COUNT_LIMIT = 0; 22 public static final List<EquipmentSlot> VALUES = List.of(values()); 23 public static final List<EquipmentSlot> VALUES = List.of(values()); net/minecraft/world/entity/EquipmentSlot.java --- 2/3 --- Java 78 return this.name; 79 return this.name; 79 } 80 } .. 81 .. 82 public boolean canIncreaseExperience() { .. 83 return this.type != EquipmentSlot.Type.SADDLE; .. 84 } 80 85 81 public static EquipmentSlot byName(String $$0) { 86 public static EquipmentSlot byName(String $$0) { 82 EquipmentSlot $$1 = CODEC.byName($$0); 87 EquipmentSlot $$1 = CODEC.byName($$0); net/minecraft/world/entity/EquipmentSlot.java --- 3/3 --- Java 90 public static enum Type { 95 public static enum Type { 91 HAND, 96 HAND, 92 HUMANOID_ARMOR, 97 HUMANOID_ARMOR, 93 ANIMAL_ARMOR; 98 ANIMAL_ARMOR, .. 99 SADDLE; 94 } 100 } 95 } 101 } net/minecraft/util/datafix/schemas/V2688.java --- Java 15 @Override 15 @Override 16 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 16 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 18 $$0.register($$1, "minecraft:glow_squid", () -> V100.equipment($$ 18 $$0.registerSimple($$1, "minecraft:glow_squid"); .. 0)); .. 19 $$0.register($$1, "minecraft:glow_item_frame", $$1x -> DSL.option 19 $$0.register($$1, "minecraft:glow_item_frame", $$1x -> DSL.option .. alFields("Item", References.ITEM_STACK.in($$0))); .. alFields("Item", References.ITEM_STACK.in($$0))); 20 return $$1; 20 return $$1; 21 } 21 } net/minecraft/world/level/block/InfestedBlock.java --- Java 51 private void spawnInfestation(ServerLevel $$0, BlockPos $$1) { 51 private void spawnInfestation(ServerLevel $$0, BlockPos $$1) { 52 Silverfish $$2 = EntityType.SILVERFISH.create($$0, EntitySpawnRea 52 Silverfish $$2 = EntityType.SILVERFISH.create($$0, EntitySpawnRea .. son.TRIGGERED); .. son.TRIGGERED); 53 if ($$2 != null) { 53 if ($$2 != null) { 54 $$2.moveTo((double)$$1.getX() + 0.5, (double)$$1.getY(), (doub 54 $$2.snapTo((double)$$1.getX() + 0.5, (double)$$1.getY(), (doub .. le)$$1.getZ() + 0.5, 0.0F, 0.0F); .. le)$$1.getZ() + 0.5, 0.0F, 0.0F); 55 $$0.addFreshEntity($$2); 55 $$0.addFreshEntity($$2); 56 $$2.spawnAnim(); 56 $$2.spawnAnim(); 57 } 57 } net/minecraft/world/level/block/state/properties/TestBlockMode.java --- Java 1 package net.minecraft.world.level.block.state.properties; 2 3 import io.netty.buffer.ByteBuf; 4 import java.util.function.IntFunction; 5 import net.minecraft.network.chat.Component; 6 import net.minecraft.network.codec.ByteBufCodecs; 7 import net.minecraft.network.codec.StreamCodec; 8 import net.minecraft.util.ByIdMap; 9 import net.minecraft.util.StringRepresentable; 10 11 public enum TestBlockMode implements StringRepresentable { 12 START(0, "start"), 13 LOG(1, "log"), 14 FAIL(2, "fail"), 15 ACCEPT(3, "accept"); 16 17 private static final IntFunction<TestBlockMode> BY_ID = ByIdMap.continuous($$0 -> $$0.id, values(), ByIdMap.OutOfBoundsStrategy.ZERO); 18 public static final StringRepresentable.EnumCodec<TestBlockMode> CODEC = StringRepresentable.fromEnum(TestBlockMode::values); 19 public static final StreamCodec<ByteBuf, TestBlockMode> STREAM_CODEC = ByteBufCodecs.idMapper(BY_ID, $$0 -> $$0.id); 20 private final int id; 21 private final String name; 22 private final Component displayName; 23 private final Component detailedMessage; 24 25 private TestBlockMode(final int $$0, final String $$1) { 26 this.id = $$0; 27 this.name = $$1; 28 this.displayName = Component.translatable("test_block.mode." + $$1); 29 this.detailedMessage = Component.translatable("test_block.mode_info." + $$1); 30 } 31 32 @Override 33 public String getSerializedName() { 34 return this.name; 35 } 36 37 public Component getDisplayName() { 38 return this.displayName; 39 } 40 41 public Component getDetailedMessage() { 42 return this.detailedMessage; 43 } 44 } 45 net/minecraft/world/level/block/GrassBlock.java --- Java 65 } 65 } 66 66 67 if ($$10.isAir()) { 67 if ($$10.isAir()) { 68 Holder<PlacedFeature> $$13; 68 Holder<PlacedFeature> $$14; 69 if ($$1.nextInt(8) == 0) { 69 if ($$1.nextInt(8) == 0) { 70 List<ConfiguredFeature<?, ?>> $$12 = $$0.getBiome($$8).v 70 List<ConfiguredFeature<?, ?>> $$12 = $$0.getBiome($$8).v .. alue().getGenerationSettings().getFlowerFeatures(); .. alue().getGenerationSettings().getFlowerFeatures(); 71 if ($$12.isEmpty()) { 71 if ($$12.isEmpty()) { 72 continue; 72 continue; 73 } 73 } 74 74 .. 75 int $$13 = $$1.nextInt($$12.size()); 75 $$13 = ((RandomPatchConfiguration)$$12.get(0).config()). 76 $$14 = ((RandomPatchConfiguration)$$12.get($$13).config( .. feature(); .. )).feature(); 76 } else { 77 } else { 77 if (!$$6.isPresent()) { 78 if (!$$6.isPresent()) { 78 continue; 79 continue; 79 } 80 } 80 81 81 $$13 = $$6.get(); 82 $$14 = $$6.get(); 82 } 83 } 83 84 84 $$13.value().place($$0, $$0.getChunkSource().getGenerator() 85 $$14.value().place($$0, $$0.getChunkSource().getGenerator() .. , $$1, $$8); .. , $$1, $$8); 85 } 86 } 86 } 87 } 87 } 88 } net/minecraft/world/level/block/ComposterBlock.java --- Java 105 add(0.3F, Items.PALE_HANGING_MOSS); 105 add(0.3F, Items.PALE_HANGING_MOSS); 106 add(0.3F, Items.PINK_PETALS); 106 add(0.3F, Items.PINK_PETALS); 107 add(0.3F, Items.WILDFLOWERS); 107 add(0.3F, Items.WILDFLOWERS); ... 108 add(0.3F, Items.LEAF_LITTER); 108 add(0.3F, Items.SMALL_DRIPLEAF); 109 add(0.3F, Items.SMALL_DRIPLEAF); 109 add(0.3F, Items.HANGING_ROOTS); 110 add(0.3F, Items.HANGING_ROOTS); 110 add(0.3F, Items.MANGROVE_ROOTS); 111 add(0.3F, Items.MANGROVE_ROOTS); net/minecraft/util/datafix/schemas/V3808.java --- Java 15 @Override 15 @Override 16 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 16 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 18 $$0.register($$1, "minecraft:horse", $$1x -> DSL.optionalFields(" 18 $$0.register($$1, "minecraft:horse", $$1x -> DSL.optionalFields(" .. SaddleItem", References.ITEM_STACK.in($$0), V100.equipment($$0))); .. SaddleItem", References.ITEM_STACK.in($$0))); 19 return $$1; 19 return $$1; 20 } 20 } 21 } 21 } net/minecraft/world/entity/Saddleable.java --- Java 1 package net.minecraft.world.entity; 2 3 import javax.annotation.Nullable; 4 import net.minecraft.sounds.SoundEvent; 5 import net.minecraft.sounds.SoundEvents; 6 import net.minecraft.sounds.SoundSource; 7 import net.minecraft.world.item.ItemStack; 8 9 public interface Saddleable { 10 boolean isSaddleable(); 11 12 void equipSaddle(ItemStack var1, @Nullable SoundSource var2); 13 14 default SoundEvent getSaddleSoundEvent() { 15 return SoundEvents.HORSE_SADDLE; 16 } 17 18 boolean isSaddled(); 19 } 20 net/minecraft/core/component/DataComponentPredicate.java --- 1/4 --- Java 11 import net.minecraft.network.codec.ByteBufCodecs; 11 import net.minecraft.network.codec.ByteBufCodecs; 12 import net.minecraft.network.codec.StreamCodec; 12 import net.minecraft.network.codec.StreamCodec; 13 13 14 public final class DataComponentPredicate implements Predicate<DataComp 14 public final class DataComponentPredicate implements Predicate<DataComp .. onentMap> { .. onentGetter> { 15 public static final Codec<DataComponentPredicate> CODEC = DataCompon 15 public static final Codec<DataComponentPredicate> CODEC = DataCompon .. entType.VALUE_MAP_CODEC .. entType.VALUE_MAP_CODEC 16 .xmap( 16 .xmap( 17 $$0 -> new DataComponentPredicate($$0.entrySet().stream().map( 17 $$0 -> new DataComponentPredicate($$0.entrySet().stream().map( TypedDataComponent::fromEntryUnchecked).collect(Collectors.toList())), TypedDataComponent::fromEntryUnchecked).collect(Collectors.toList())), net/minecraft/core/component/DataComponentPredicate.java --- 2/4 --- Java 34 return new DataComponentPredicate.Builder(); 34 return new DataComponentPredicate.Builder(); 35 } 35 } .. 36 .. 37 public static <T> DataComponentPredicate expect(DataComponentType<T> .. .. $$0, T $$1) { .. 38 return new DataComponentPredicate(List.of(new TypedDataComponent< .. .. >($$0, $$1))); .. 39 } 36 40 37 public static DataComponentPredicate allOf(DataComponentMap $$0) { 41 public static DataComponentPredicate allOf(DataComponentMap $$0) { 38 return new DataComponentPredicate(ImmutableList.copyOf($$0)); 42 return new DataComponentPredicate(ImmutableList.copyOf($$0)); net/minecraft/core/component/DataComponentPredicate.java --- 3/4 --- Java 70 return this.expectedComponents.toString(); 74 return this.expectedComponents.toString(); 71 } 75 } 72 76 73 public boolean test(DataComponentMap $$0) { 77 public boolean test(DataComponentGetter $$0) { 74 for (TypedDataComponent<?> $$1 : this.expectedComponents) { 78 for (TypedDataComponent<?> $$1 : this.expectedComponents) { 75 Object $$2 = $$0.get($$1.type()); 79 Object $$2 = $$0.get($$1.type()); 76 if (!Objects.equals($$1.value(), $$2)) { 80 if (!Objects.equals($$1.value(), $$2)) { net/minecraft/core/component/DataComponentPredicate.java --- 4/4 --- Java 81 return true; 85 return true; 82 } 86 } 83 .. 84 public boolean test(DataComponentHolder $$0) { .. 85 return this.test($$0.getComponents()); .. 86 } .. 87 87 88 public boolean alwaysMatches() { 88 public boolean alwaysMatches() { 89 return this.expectedComponents.isEmpty(); 89 return this.expectedComponents.isEmpty(); net/minecraft/world/level/block/HayBlock.java --- Java 22 } 22 } 23 23 24 @Override 24 @Override 25 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity $ 25 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity $ .. $3, float $$4) { .. $3, double $$4) { 26 $$3.causeFallDamage($$4, 0.2F, $$0.damageSources().fall()); 26 $$3.causeFallDamage($$4, 0.2F, $$0.damageSources().fall()); 27 } 27 } 28 } 28 } net/minecraft/core/component/DataComponentGetter.java --- Java 1 package net.minecraft.core.component; 2 3 import javax.annotation.Nullable; 4 5 public interface DataComponentGetter { 6 @Nullable 7 <T> T get(DataComponentType<? extends T> var1); 8 9 default <T> T getOrDefault(DataComponentType<? extends T> $$0, T $$1) { 10 T $$2 = this.get($$0); 11 return $$2 != null ? $$2 : $$1; 12 } 13 14 @Nullable 15 default <T> TypedDataComponent<T> getTyped(DataComponentType<T> $$0) { 16 T $$1 = this.get($$0); 17 return $$1 != null ? new TypedDataComponent<>($$0, $$1) : null; 18 } 19 } 20 net/minecraft/util/datafix/schemas/V4301.java --- Java 1 package net.minecraft.util.datafix.schemas; 2 3 import com.mojang.datafixers.DSL; 4 import com.mojang.datafixers.schemas.Schema; 5 import com.mojang.datafixers.types.templates.TypeTemplate; 6 import com.mojang.datafixers.util.Pair; 7 import java.util.Map; 8 import java.util.function.Supplier; 9 import net.minecraft.util.datafix.fixes.References; 10 11 public class V4301 extends NamespacedSchema { 12 public V4301(int $$0, Schema $$1) { 13 super($$0, $$1); 14 } 15 16 @Override 17 public void registerTypes(Schema $$0, Map<String, Supplier<TypeTemplate>> $$1, Map<String, Supplier<TypeTemplate>> $$2) { 18 super.registerTypes($$0, $$1, $$2); 19 $$0.registerType( 20 true, 21 References.ENTITY_EQUIPMENT, 22 () -> DSL.optional( 23 DSL.field( 24 "equipment", 25 DSL.optionalFields( 26 Pair.of("mainhand", References.ITEM_STACK.in($$0)), 27 Pair.of("offhand", References.ITEM_STACK.in($$0)), 28 Pair.of("feet", References.ITEM_STACK.in($$0)), 29 Pair.of("legs", References.ITEM_STACK.in($$0)), 30 Pair.of("chest", References.ITEM_STACK.in($$0)), 31 Pair.of("head", References.ITEM_STACK.in($$0)), 32 Pair.of("body", References.ITEM_STACK.in($$0)), 33 Pair.of("saddle", References.ITEM_STACK.in($$0)) 34 ) 35 ) 36 ) 37 ); 38 } 39 } 40 net/minecraft/data/tags/EntityTypeTagsProvider.java --- Java 172 EntityType.MANGROVE_BOAT, 172 EntityType.MANGROVE_BOAT, 173 EntityType.BAMBOO_RAFT 173 EntityType.BAMBOO_RAFT 174 ); 174 ); ... 175 this.tag(EntityTypeTags.CAN_EQUIP_SADDLE) ... 176 .add( ... 177 EntityType.HORSE, ... 178 EntityType.SKELETON_HORSE, ... 179 EntityType.ZOMBIE_HORSE, ... 180 EntityType.DONKEY, ... 181 EntityType.MULE, ... 182 EntityType.PIG, ... 183 EntityType.STRIDER, ... 184 EntityType.CAMEL ... 185 ); 175 } 186 } 176 } 187 } net/minecraft/util/datafix/schemas/V2100.java --- Java 13 } 13 } 14 14 15 protected static void registerMob(Schema $$0, Map<String, Supplier<T 15 protected static void registerMob(Schema $$0, Map<String, Supplier<T .. ypeTemplate>> $$1, String $$2) { .. ypeTemplate>> $$1, String $$2) { 16 $$0.register($$1, $$2, () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, $$2); 17 } 17 } 18 18 19 @Override 19 @Override net/minecraft/world/level/block/FrogspawnBlock.java --- Java 110 double $$6 = (double)$$1.getX() + this.getRandomTadpolePos 110 double $$6 = (double)$$1.getX() + this.getRandomTadpolePos ... itionOffset($$2); ... itionOffset($$2); 111 double $$7 = (double)$$1.getZ() + this.getRandomTadpolePos 111 double $$7 = (double)$$1.getZ() + this.getRandomTadpolePos ... itionOffset($$2); ... itionOffset($$2); 112 int $$8 = $$2.nextInt(1, 361); 112 int $$8 = $$2.nextInt(1, 361); 113 $$5.moveTo($$6, (double)$$1.getY() - 0.5, $$7, (float)$$8, 113 $$5.snapTo($$6, (double)$$1.getY() - 0.5, $$7, (float)$$8, ... 0.0F); ... 0.0F); 114 $$5.setPersistenceRequired(); 114 $$5.setPersistenceRequired(); 115 $$0.addFreshEntity($$5); 115 $$0.addFreshEntity($$5); 116 } 116 } net/minecraft/client/renderer/entity/layers/SimpleEquipmentLayer.java --- Java 1 package net.minecraft.client.renderer.entity.layers; 2 3 import com.mojang.blaze3d.vertex.PoseStack; 4 import java.util.function.Function; 5 import net.fabricmc.api.EnvType; 6 import net.fabricmc.api.Environment; 7 import net.minecraft.client.model.EntityModel; 8 import net.minecraft.client.renderer.MultiBufferSource; 9 import net.minecraft.client.renderer.entity.RenderLayerParent; 10 import net.minecraft.client.renderer.entity.state.LivingEntityRenderState; 11 import net.minecraft.client.resources.model.EquipmentClientInfo; 12 import net.minecraft.core.component.DataComponents; 13 import net.minecraft.world.item.ItemStack; 14 import net.minecraft.world.item.equipment.Equippable; 15 16 @Environment(EnvType.CLIENT) 17 public class SimpleEquipmentLayer<S extends LivingEntityRenderState, RM extends EntityModel<? super S>, EM extends EntityModel<? super S>> 18 extends RenderLayer<S, RM> { 19 private final EquipmentLayerRenderer equipmentRenderer; 20 private final EquipmentClientInfo.LayerType layer; 21 private final Function<S, ItemStack> itemGetter; 22 private final EM adultModel; 23 private final EM babyModel; 24 25 public SimpleEquipmentLayer( 26 RenderLayerParent<S, RM> $$0, EquipmentLayerRenderer $$1, EquipmentClientInfo.LayerType $$2, Function<S, ItemStack> $$3, EM $$4, EM $$5 27 ) { 28 super($$0); 29 this.equipmentRenderer = $$1; 30 this.layer = $$2; 31 this.itemGetter = $$3; 32 this.adultModel = $$4; 33 this.babyModel = $$5; 34 } 35 36 public SimpleEquipmentLayer(RenderLayerParent<S, RM> $$0, EquipmentLayerRenderer $$1, EM $$2, EquipmentClientInfo.LayerType $$3, Function<S, ItemStack> $$4) { 37 this($$0, $$1, $$3, $$4, $$2, $$2); 38 } 39 40 public void render(PoseStack $$0, MultiBufferSource $$1, int $$2, S $$3, float $$4, float $$5) { 41 ItemStack $$6 = this.itemGetter.apply($$3); 42 Equippable $$7 = $$6.get(DataComponents.EQUIPPABLE); 43 if ($$7 != null && !$$7.assetId().isEmpty()) { 44 EM $$8 = $$3.isBaby ? this.babyModel : this.adultModel; 45 $$8.setupAnim($$3); 46 this.equipmentRenderer.renderLayers(this.layer, $$7.assetId().get(), $$8, $$6, $$0, $$1, $$2); 47 } 48 } 49 } 50 net/minecraft/util/datafix/schemas/V1800.java --- Java 15 @Override 15 @Override 16 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 16 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 18 $$0.register($$1, "minecraft:panda", () -> V100.equipment($$0)); 18 $$0.registerSimple($$1, "minecraft:panda"); 19 $$0.register($$1, "minecraft:pillager", $$1x -> DSL.optionalField 19 $$0.register($$1, "minecraft:pillager", $$1x -> DSL.optionalField .. s("Inventory", DSL.list(References.ITEM_STACK.in($$0)), V100.equipment( .. s("Inventory", DSL.list(References.ITEM_STACK.in($$0)))); .. $$0))); .. 20 return $$1; 20 return $$1; 21 } 21 } 22 } 22 } net/minecraft/advancements/critereon/ItemPredicate.java --- 1/2 --- Java 9 import net.minecraft.core.HolderGetter; 9 import net.minecraft.core.HolderGetter; 10 import net.minecraft.core.HolderSet; 10 import net.minecraft.core.HolderSet; 11 import net.minecraft.core.RegistryCodecs; 11 import net.minecraft.core.RegistryCodecs; 12 import net.minecraft.core.component.DataComponentHolder; 12 import net.minecraft.core.component.DataComponentGetter; 13 import net.minecraft.core.component.DataComponentPredicate; 13 import net.minecraft.core.component.DataComponentPredicate; 14 import net.minecraft.core.registries.Registries; 14 import net.minecraft.core.registries.Registries; 15 import net.minecraft.tags.TagKey; 15 import net.minecraft.tags.TagKey; net/minecraft/advancements/critereon/ItemPredicate.java --- 2/2 --- Java 35 return false; 35 return false; 36 } else if (!this.count.matches($$0.getCount())) { 36 } else if (!this.count.matches($$0.getCount())) { 37 return false; 37 return false; 38 } else if (!this.components.test((DataComponentHolder)$$0)) { 38 } else if (!this.components.test((DataComponentGetter)$$0)) { 39 return false; 39 return false; 40 } else { 40 } else { 41 for (ItemSubPredicate $$1 : this.subPredicates.values()) { 41 for (ItemSubPredicate $$1 : this.subPredicates.values()) { net/minecraft/client/model/BoggedModel.java --- Java 24 MeshDefinition $$0 = HumanoidModel.createMesh(CubeDeformation.NON 24 MeshDefinition $$0 = HumanoidModel.createMesh(CubeDeformation.NON .. E, 0.0F); .. E, 0.0F); 25 PartDefinition $$1 = $$0.getRoot(); 25 PartDefinition $$1 = $$0.getRoot(); 26 SkeletonModel.createDefaultSkeletonMesh($$1); 26 SkeletonModel.createDefaultSkeletonMesh($$1); 27 PartDefinition $$2 = $$1.getChild("head").clearChild("mushrooms") 27 PartDefinition $$2 = $$1.getChild("head").addOrReplaceChild("mush .. ; .. rooms", CubeListBuilder.create(), PartPose.ZERO); 28 $$2.addOrReplaceChild( 28 $$2.addOrReplaceChild( 29 "red_mushroom_1", 29 "red_mushroom_1", 30 CubeListBuilder.create().texOffs(50, 16).addBox(-3.0F, -3.0F, 30 CubeListBuilder.create().texOffs(50, 16).addBox(-3.0F, -3.0F, 0.0F, 6.0F, 4.0F, 0.0F), 0.0F, 6.0F, 4.0F, 0.0F), net/minecraft/server/level/ServerPlayer.java --- 1/5 --- Java 328 this.server = $$0; 328 this.server = $$0; 329 this.stats = $$0.getPlayerList().getPlayerStats(this); 329 this.stats = $$0.getPlayerList().getPlayerStats(this); 330 this.advancements = $$0.getPlayerList().getPlayerAdvancements(th 330 this.advancements = $$0.getPlayerList().getPlayerAdvancements(th ... is); ... is); 331 this.moveTo(this.adjustSpawnLocation($$1, $$1.getSharedSpawnPos( 331 this.snapTo(this.adjustSpawnLocation($$1, $$1.getSharedSpawnPos( ... )).getBottomCenter(), 0.0F, 0.0F); ... )).getBottomCenter(), 0.0F, 0.0F); 332 this.updateOptions($$3); 332 this.updateOptions($$3); 333 this.object = null; 333 this.object = null; 334 } 334 } net/minecraft/server/level/ServerPlayer.java --- 2/5 --- Java 662 Entity $$0 = this.getCamera(); 662 Entity $$0 = this.getCamera(); 663 if ($$0 != this) { 663 if ($$0 != this) { 664 if ($$0.isAlive()) { 664 if ($$0.isAlive()) { 665 this.absMoveTo($$0.getX(), $$0.getY(), $$0.getZ(), $$0.get 665 this.absSnapTo($$0.getX(), $$0.getY(), $$0.getZ(), $$0.get ... YRot(), $$0.getXRot()); ... YRot(), $$0.getXRot()); 666 this.serverLevel().getChunkSource().move(this); 666 this.serverLevel().getChunkSource().move(this); 667 if (this.wantsToStopRiding()) { 667 if (this.wantsToStopRiding()) { 668 this.setCamera(this); 668 this.setCamera(this); net/minecraft/server/level/ServerPlayer.java --- 3/5 --- Java 813 } 813 } 814 814 815 public void trackStartFallingPosition() { 815 public void trackStartFallingPosition() { 816 if (this.fallDistance > 0.0F && this.startingToFallPosition == n 816 if (this.fallDistance > 0.0 && this.startingToFallPosition == nu ... ull) { ... ll) { 817 this.startingToFallPosition = this.position(); 817 this.startingToFallPosition = this.position(); 818 if (this.currentImpulseImpactPos != null && this.currentImpul 818 if (this.currentImpulseImpactPos != null && this.currentImpul ... seImpactPos.y <= this.startingToFallPosition.y) { ... seImpactPos.y <= this.startingToFallPosition.y) { 819 CriteriaTriggers.FALL_AFTER_EXPLOSION.trigger(this, this.c 819 CriteriaTriggers.FALL_AFTER_EXPLOSION.trigger(this, this.c urrentImpulseImpactPos, this.currentExplosionCause); urrentImpulseImpactPos, this.currentExplosionCause); net/minecraft/server/level/ServerPlayer.java --- 4/5 --- Java 1205 1205 1206 @Override 1206 @Override 1207 protected void checkFallDamage(double $$0, boolean $$1, BlockState 1207 protected void checkFallDamage(double $$0, boolean $$1, BlockState .... $$2, BlockPos $$3) { .... $$2, BlockPos $$3) { 1208 if (this.spawnExtraParticlesOnFall && $$1 && this.fallDistance 1208 if (this.spawnExtraParticlesOnFall && $$1 && this.fallDistance .... > 0.0F) { .... > 0.0) { 1209 Vec3 $$4 = $$3.getCenter().add(0.0, 0.5, 0.0); 1209 Vec3 $$4 = $$3.getCenter().add(0.0, 0.5, 0.0); 1210 int $$5 = (int)Mth.clamp(50.0F * this.fallDistance, 0.0F, 20 1210 int $$5 = (int)Mth.clamp(50.0 * this.fallDistance, 0.0, 200. .... 0.0F); .... 0); 1211 this.serverLevel().sendParticles(new BlockParticleOption(Par 1211 this.serverLevel().sendParticles(new BlockParticleOption(Par .... ticleTypes.BLOCK, $$2), $$4.x, $$4.y, $$4.z, $$5, 0.3F, 0.3F, 0.3F, 0 .... ticleTypes.BLOCK, $$2), $$4.x, $$4.y, $$4.z, $$5, 0.3F, 0.3F, 0.3F, 0 .... .15F); .... .15F); 1212 this.spawnExtraParticlesOnFall = false; 1212 this.spawnExtraParticlesOnFall = false; 1213 } 1213 } net/minecraft/server/level/ServerPlayer.java --- 5/5 --- Java 1595 } 1595 } 1596 1596 1597 @Override 1597 @Override 1598 public void moveTo(double $$0, double $$1, double $$2) { 1598 public void snapTo(double $$0, double $$1, double $$2) { 1599 super.moveTo($$0, $$1, $$2); 1599 super.snapTo($$0, $$1, $$2); 1600 this.connection.resetPosition(); 1600 this.connection.resetPosition(); 1601 } 1601 } 1602 1602 net/minecraft/data/advancements/packs/VanillaHusbandryAdvancements.java --- 1/6 --- Java 19 import net.minecraft.advancements.critereon.EntityEquipmentPredicate; 19 import net.minecraft.advancements.critereon.EntityEquipmentPredicate; 20 import net.minecraft.advancements.critereon.EntityFlagsPredicate; 20 import net.minecraft.advancements.critereon.EntityFlagsPredicate; 21 import net.minecraft.advancements.critereon.EntityPredicate; 21 import net.minecraft.advancements.critereon.EntityPredicate; 22 import net.minecraft.advancements.critereon.EntitySubPredicates; .. 23 import net.minecraft.advancements.critereon.FilledBucketTrigger; 22 import net.minecraft.advancements.critereon.FilledBucketTrigger; 24 import net.minecraft.advancements.critereon.FishingRodHookedTrigger; 23 import net.minecraft.advancements.critereon.FishingRodHookedTrigger; 25 import net.minecraft.advancements.critereon.InventoryChangeTrigger; 24 import net.minecraft.advancements.critereon.InventoryChangeTrigger; net/minecraft/data/advancements/packs/VanillaHusbandryAdvancements.java --- 2/6 --- Java 36 import net.minecraft.core.Holder; 35 import net.minecraft.core.Holder; 37 import net.minecraft.core.HolderGetter; 36 import net.minecraft.core.HolderGetter; 38 import net.minecraft.core.HolderLookup; 37 import net.minecraft.core.HolderLookup; 39 import net.minecraft.core.HolderSet; .. 40 import net.minecraft.core.component.DataComponentPredicate; 38 import net.minecraft.core.component.DataComponentPredicate; 41 import net.minecraft.core.component.DataComponents; 39 import net.minecraft.core.component.DataComponents; 42 import net.minecraft.core.registries.BuiltInRegistries; 40 import net.minecraft.core.registries.BuiltInRegistries; net/minecraft/data/advancements/packs/VanillaHusbandryAdvancements.java --- 3/6 --- Java 629 .body( 627 .body( 630 ItemPredicate.Builder.item() 628 ItemPredicate.Builder.item().of($$3, ... ... Items.WOLF_ARMOR).hasComponents(DataComponentPredicate.expect(DataComp ... ... onents.DAMAGE, 0)) 631 .of($$3, Items.WOLF_ARMOR) ... 632 .hasComponents(DataComponentPredic ... ... ate.builder().expect(DataComponents.DAMAGE, 0).build()) ... 633 ) 629 ) 634 ) 630 ) 635 ) 631 ) net/minecraft/data/advancements/packs/VanillaHusbandryAdvancements.java --- 4/6 --- Java 667 PlayerInteractTrigger.TriggerInstance.itemUsedOnEnti 663 PlayerInteractTrigger.TriggerInstance.itemUsedOnEnti ... ty( ... ty( 668 ItemPredicate.Builder.item().of($$1, Items.LEAD), 664 ItemPredicate.Builder.item().of($$1, Items.LEAD), 669 Optional.of( 665 Optional.of( 670 EntityPredicate.wrap(EntityPredicate.Builder.e 666 EntityPredicate.wrap( ... ntity().of($$0, EntityType.FROG).subPredicate(EntitySubPredicates.frog ... ... Variant($$3))) ... ... 667 EntityPredicate.Builder.entity() ... 668 .of($$0, EntityType.FROG) ... 669 .components(DataComponentPredicate.expec ... ... t(DataComponents.FROG_VARIANT, $$3)) ... 670 ) 671 ) 671 ) 672 ) 672 ) net/minecraft/data/advancements/packs/VanillaHusbandryAdvancements.java --- 5/6 --- Java 734 .forEach( 734 .forEach( 735 $$1 -> $$0.addCriterion( 735 $$1 -> $$0.addCriterion( 736 $$1.key().location().toString(), 736 $$1.key().location().toString(), 737 TameAnimalTrigger.TriggerInstance.tamedAnimal(Entity 737 TameAnimalTrigger.TriggerInstance.tamedAnimal( ... Predicate.Builder.entity().subPredicate(EntitySubPredicates.catVariant ... ... ($$1))) ... ... 738 EntityPredicate.Builder.entity().components(DataC ... ... omponentPredicate.expect(DataComponents.CAT_VARIANT, $$1)) ... 739 ) 738 ) 740 ) 739 ); 741 ); net/minecraft/data/advancements/packs/VanillaHusbandryAdvancements.java --- 6/6 --- Java 750 $$0.addCriterion( 752 $$0.addCriterion( 751 $$2x.location().toString(), 753 $$2x.location().toString(), 752 TameAnimalTrigger.TriggerInstance.tamedAnimal( 754 TameAnimalTrigger.TriggerInstance.tamedAnimal( 753 EntityPredicate.Builder.entity().subPredicate(Ent 755 EntityPredicate.Builder.entity().components(DataC ... itySubPredicates.wolfVariant(HolderSet.direct($$3))) ... omponentPredicate.expect(DataComponents.WOLF_VARIANT, $$3)) 754 ) 756 ) 755 ); 757 ); 756 } 758 } net/minecraft/world/level/block/PowderSnowBlock.java --- 1/2 --- Java 78 } 78 } 79 79 80 $$3.setIsInPowderSnow(true); 80 $$3.setIsInPowderSnow(true); 81 if ($$1 instanceof ServerLevel $$6) { 81 if ($$1 instanceof ServerLevel $$6 82 if ($$3.isOnFire() && ($$6.getGameRules().getBoolean(GameRules 82 && $$3.isOnFire() .. .RULE_MOBGRIEFING) || $$3 instanceof Player) && $$3.mayInteract($$6, $$ .. .. 2)) { .. .. 83 && ($$6.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) .. .. || $$3 instanceof Player) .. 84 && $$3.mayInteract($$6, $$2)) { 83 $$1.destroyBlock($$2, false); 85 $$1.destroyBlock($$2, false); 84 } 86 } 85 .. 86 $$3.setSharedFlagOnFire(false); .. 87 } .. 88 } 87 } 89 88 90 @Override 89 @Override 91 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity $ 90 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity $ .. $3, float $$4) { .. $3, double $$4) { 92 if (!((double)$$4 < 4.0) && $$3 instanceof LivingEntity $$5) { 91 if (!($$4 < 4.0) && $$3 instanceof LivingEntity $$5) { 93 LivingEntity.Fallsounds $$7 = $$5.getFallSounds(); 92 LivingEntity.Fallsounds $$7 = $$5.getFallSounds(); 94 SoundEvent $$8 = (double)$$4 < 7.0 ? $$7.small() : $$7.big(); 93 SoundEvent $$8 = $$4 < 7.0 ? $$7.small() : $$7.big(); 95 $$3.playSound($$8, 1.0F, 1.0F); 94 $$3.playSound($$8, 1.0F, 1.0F); 96 } 95 } 97 } 96 } net/minecraft/world/level/block/PowderSnowBlock.java --- 2/2 --- Java 101 if ($$3 instanceof EntityCollisionContext $$4) { 100 if ($$3 instanceof EntityCollisionContext $$4) { 102 Entity $$5 = $$4.getEntity(); 101 Entity $$5 = $$4.getEntity(); 103 if ($$5 != null) { 102 if ($$5 != null) { 104 if ($$5.fallDistance > 2.5F) { 103 if ($$5.fallDistance > 2.5) { 105 return FALLING_COLLISION_SHAPE; 104 return FALLING_COLLISION_SHAPE; 106 } 105 } 107 106 net/minecraft/world/level/levelgen/feature/treedecorators/PlaceOnGroundDecorator.java --- 1/2 --- Java 6 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.BlockPos; 7 import net.minecraft.util.ExtraCodecs; 7 import net.minecraft.util.ExtraCodecs; 8 import net.minecraft.util.RandomSource; 8 import net.minecraft.util.RandomSource; . 9 import net.minecraft.world.level.block.state.BlockBehaviour; 9 import net.minecraft.world.level.levelgen.feature.TreeFeature; 10 import net.minecraft.world.level.levelgen.feature.TreeFeature; 10 import net.minecraft.world.level.levelgen.feature.stateproviders.BlockS 11 import net.minecraft.world.level.levelgen.feature.stateproviders.BlockS .. tateProvider; .. tateProvider; 11 import net.minecraft.world.level.levelgen.structure.BoundingBox; 12 import net.minecraft.world.level.levelgen.structure.BoundingBox; net/minecraft/world/level/levelgen/feature/treedecorators/PlaceOnGroundDecorator.java --- 2/2 --- Java 75 76 76 private void placeBlockAt(TreeDecorator.Context $$0, BlockPos $$1) { 77 private void placeBlockAt(TreeDecorator.Context $$0, BlockPos $$1) { 77 BlockPos $$2 = $$1.above(); 78 BlockPos $$2 = $$1.above(); 78 if ((TreeFeature.validTreePos($$0.level(), $$2) || TreeFeature.is 79 if (($$0.level().isStateAtPosition($$1, BlockBehaviour.BlockState .. Vine($$0.level(), $$2)) .. Base::isAir) || TreeFeature.isVine($$0.level(), $$2)) 79 && TreeFeature.isGrassOrDirt($$0.level(), $$2.below()) 80 && TreeFeature.isGrassOrDirt($$0.level(), $$2.below()) 80 && !$$0.level().isFluidAtPosition($$2, $$0x -> $$0x.is(Fluids. 81 && !$$0.level().isFluidAtPosition($$2, $$0x -> $$0x.is(Fluids. .. WATER))) { .. WATER))) { 81 $$0.setBlock($$2, this.blockStateProvider.getState($$0.random( 82 $$0.setBlock($$2, this.blockStateProvider.getState($$0.random( ), $$1)); ), $$1)); net/minecraft/world/entity/ItemBasedSteering.java --- 1/3 --- Java 1 package net.minecraft.world.entity; 1 package net.minecraft.world.entity; 2 2 3 import net.minecraft.nbt.CompoundTag; . 4 import net.minecraft.network.syncher.EntityDataAccessor; 3 import net.minecraft.network.syncher.EntityDataAccessor; 5 import net.minecraft.network.syncher.SynchedEntityData; 4 import net.minecraft.network.syncher.SynchedEntityData; 6 import net.minecraft.util.Mth; 5 import net.minecraft.util.Mth; net/minecraft/world/entity/ItemBasedSteering.java --- 2/3 --- Java 11 private static final int MAX_BOOST_TIME = 700; 10 private static final int MAX_BOOST_TIME = 700; 12 private final SynchedEntityData entityData; 11 private final SynchedEntityData entityData; 13 private final EntityDataAccessor<Integer> boostTimeAccessor; 12 private final EntityDataAccessor<Integer> boostTimeAccessor; 14 private final EntityDataAccessor<Boolean> hasSaddleAccessor; .. 15 private boolean boosting; 13 private boolean boosting; 16 private int boostTime; 14 private int boostTime; 17 15 18 public ItemBasedSteering(SynchedEntityData $$0, EntityDataAccessor<I 16 public ItemBasedSteering(SynchedEntityData $$0, EntityDataAccessor<I .. nteger> $$1, EntityDataAccessor<Boolean> $$2) { .. nteger> $$1) { 19 this.entityData = $$0; 17 this.entityData = $$0; 20 this.boostTimeAccessor = $$1; 18 this.boostTimeAccessor = $$1; 21 this.hasSaddleAccessor = $$2; .. 22 } 19 } 23 20 24 public void onSynced() { 21 public void onSynced() { net/minecraft/world/entity/ItemBasedSteering.java --- 3/3 --- Java 51 return this.entityData.get(this.boostTimeAccessor); 48 return this.entityData.get(this.boostTimeAccessor); 52 } 49 } 53 .. 54 public void addAdditionalSaveData(CompoundTag $$0) { .. 55 $$0.putBoolean("Saddle", this.hasSaddle()); .. 56 } .. 57 .. 58 public void readAdditionalSaveData(CompoundTag $$0) { .. 59 this.setSaddle($$0.getBoolean("Saddle")); .. 60 } .. 61 .. 62 public void setSaddle(boolean $$0) { .. 63 this.entityData.set(this.hasSaddleAccessor, $$0); .. 64 } .. 65 .. 66 public boolean hasSaddle() { .. 67 return this.entityData.get(this.hasSaddleAccessor); .. 68 } .. 69 } 50 } net/minecraft/network/chat/ComponentUtils.java --- Java 56 HoverEvent.ShowText var10000 = var5; 56 HoverEvent.ShowText var10000 = var5; 57 57 58 try { 58 try { 59 var10 = var10000.text(); 59 var10 = var10000.value(); 60 } catch (Throwable var8) { 60 } catch (Throwable var8) { 61 throw new MatchException(var8.toString(), var8); 61 throw new MatchException(var8.toString(), var8); 62 } 62 } net/minecraft/world/entity/ai/behavior/PoiCompetitorScan.java --- Java 53 53 54 private static boolean competesForSameJobsite(GlobalPos $$0, Holder< 54 private static boolean competesForSameJobsite(GlobalPos $$0, Holder< .. PoiType> $$1, Villager $$2) { .. PoiType> $$1, Villager $$2) { 55 Optional<GlobalPos> $$3 = $$2.getBrain().getMemory(MemoryModuleTy 55 Optional<GlobalPos> $$3 = $$2.getBrain().getMemory(MemoryModuleTy .. pe.JOB_SITE); .. pe.JOB_SITE); 56 return $$3.isPresent() && $$0.equals($$3.get()) && hasMatchingPro 56 return $$3.isPresent() && $$0.equals($$3.get()) && hasMatchingPro .. fession($$1, $$2.getVillagerData().getProfession()); .. fession($$1, $$2.getVillagerData().profession()); 57 } 57 } 58 58 59 private static boolean hasMatchingProfession(Holder<PoiType> $$0, Vi 59 private static boolean hasMatchingProfession(Holder<PoiType> $$0, Ho .. llagerProfession $$1) { .. lder<VillagerProfession> $$1) { 60 return $$1.heldJobSite().test($$0); 60 return $$1.value().heldJobSite().test($$0); 61 } 61 } 62 } 62 } net/minecraft/world/item/equipment/EquipmentAssets.java --- Java 18 ResourceKey<EquipmentAsset> NETHERITE = createId("netherite"); 18 ResourceKey<EquipmentAsset> NETHERITE = createId("netherite"); 19 ResourceKey<EquipmentAsset> ARMADILLO_SCUTE = createId("armadillo_sc 19 ResourceKey<EquipmentAsset> ARMADILLO_SCUTE = createId("armadillo_sc .. ute"); .. ute"); 20 ResourceKey<EquipmentAsset> ELYTRA = createId("elytra"); 20 ResourceKey<EquipmentAsset> ELYTRA = createId("elytra"); .. 21 ResourceKey<EquipmentAsset> SADDLE = createId("saddle"); 21 Map<DyeColor, ResourceKey<EquipmentAsset>> CARPETS = Util.makeEnumMa 22 Map<DyeColor, ResourceKey<EquipmentAsset>> CARPETS = Util.makeEnumMa .. p(DyeColor.class, $$0 -> createId($$0.getSerializedName() + "_carpet")) .. p(DyeColor.class, $$0 -> createId($$0.getSerializedName() + "_carpet")) .. ; .. ; 22 ResourceKey<EquipmentAsset> TRADER_LLAMA = createId("trader_llama"); 23 ResourceKey<EquipmentAsset> TRADER_LLAMA = createId("trader_llama"); 23 24 net/minecraft/client/model/DonkeyModel.java --- 1/3 --- Java 7 import net.minecraft.client.model.geom.builders.CubeDeformation; 7 import net.minecraft.client.model.geom.builders.CubeDeformation; 8 import net.minecraft.client.model.geom.builders.CubeListBuilder; 8 import net.minecraft.client.model.geom.builders.CubeListBuilder; 9 import net.minecraft.client.model.geom.builders.LayerDefinition; 9 import net.minecraft.client.model.geom.builders.LayerDefinition; 10 import net.minecraft.client.model.geom.builders.MeshDefinition; . 11 import net.minecraft.client.model.geom.builders.MeshTransformer; 10 import net.minecraft.client.model.geom.builders.MeshTransformer; 12 import net.minecraft.client.model.geom.builders.PartDefinition; 11 import net.minecraft.client.model.geom.builders.PartDefinition; 13 import net.minecraft.client.renderer.entity.state.DonkeyRenderState; 12 import net.minecraft.client.renderer.entity.state.DonkeyRenderState; net/minecraft/client/model/DonkeyModel.java --- 2/3 --- Java 16 public class DonkeyModel extends AbstractEquineModel<DonkeyRenderState> 15 public class DonkeyModel extends AbstractEquineModel<DonkeyRenderState> .. { .. { 17 public static final float DONKEY_SCALE = 0.87F; 16 public static final float DONKEY_SCALE = 0.87F; 18 public static final float MULE_SCALE = 0.92F; 17 public static final float MULE_SCALE = 0.92F; .. 18 private static final MeshTransformer DONKEY_TRANSFORMER = $$0 -> { .. 19 modifyMesh($$0.getRoot()); .. 20 return $$0; .. 21 }; 19 private final ModelPart leftChest = this.body.getChild("left_chest") 22 private final ModelPart leftChest = this.body.getChild("left_chest") .. ; .. ; 20 private final ModelPart rightChest = this.body.getChild("right_chest 23 private final ModelPart rightChest = this.body.getChild("right_chest .. "); .. "); 21 24 net/minecraft/client/model/DonkeyModel.java --- 3/3 --- Java 24 } 27 } 25 28 26 public static LayerDefinition createBodyLayer(float $$0) { 29 public static LayerDefinition createBodyLayer(float $$0) { 27 MeshDefinition $$1 = AbstractEquineModel.createBodyMesh(CubeDefor .. .. mation.NONE); .. 28 modifyMesh($$1.getRoot()); .. 29 return LayerDefinition.create($$1, 64, 64).apply(MeshTransformer. 30 return LayerDefinition.create(AbstractEquineModel.createBodyMesh( .. scaling($$0)); .. CubeDeformation.NONE), 64, 64) .. 31 .apply(DONKEY_TRANSFORMER) .. 32 .apply(MeshTransformer.scaling($$0)); 30 } 33 } 31 34 32 public static LayerDefinition createBabyLayer(float $$0) { 35 public static LayerDefinition createBabyLayer(float $$0) { 33 MeshDefinition $$1 = AbstractEquineModel.createFullScaleBabyMesh( .. .. CubeDeformation.NONE); .. 34 modifyMesh($$1.getRoot()); .. 35 return LayerDefinition.create(AbstractEquineModel.BABY_TRANSFORME 36 return LayerDefinition.create(AbstractEquineModel.createFullScale .. R.apply($$1), 64, 64).apply(MeshTransformer.scaling($$0)); .. BabyMesh(CubeDeformation.NONE), 64, 64) .. 37 .apply(DONKEY_TRANSFORMER) .. 38 .apply(BABY_TRANSFORMER) .. 39 .apply(MeshTransformer.scaling($$0)); 36 } 40 } .. 41 .. 42 public static LayerDefinition createSaddleLayer(float $$0, boolean $ .. .. $1) { .. 43 return EquineSaddleModel.createFullScaleSaddleLayer($$1) .. 44 .apply(DONKEY_TRANSFORMER) .. 45 .apply($$1 ? AbstractEquineModel.BABY_TRANSFORMER : MeshTransf .. .. ormer.IDENTITY) .. 46 .apply(MeshTransformer.scaling($$0)); .. 47 } 37 48 38 private static void modifyMesh(PartDefinition $$0) { 49 private static void modifyMesh(PartDefinition $$0) { 39 PartDefinition $$1 = $$0.getChild("body"); 50 PartDefinition $$1 = $$0.getChild("body"); net/minecraft/util/datafix/schemas/V705.java --- 1/8 --- Java 134 } 134 } 135 135 136 protected static void registerMob(Schema $$0, Map<String, Supplier< 136 protected static void registerMob(Schema $$0, Map<String, Supplier< ... TypeTemplate>> $$1, String $$2) { ... TypeTemplate>> $$1, String $$2) { 137 $$0.register($$1, $$2, () -> V100.equipment($$0)); 137 $$0.registerSimple($$1, $$2); 138 } 138 } 139 139 140 protected static void registerThrowableProjectile(Schema $$0, Map<S 140 protected static void registerThrowableProjectile(Schema $$0, Map<S tring, Supplier<TypeTemplate>> $$1, String $$2) { tring, Supplier<TypeTemplate>> $$1, String $$2) { net/minecraft/util/datafix/schemas/V705.java --- 2/8 --- Java 167 $$0.register( 167 $$0.register( 168 $$1, 168 $$1, "minecraft:donkey", $$1x -> DSL.optionalFields("Items", ... ... DSL.list(References.ITEM_STACK.in($$0)), "SaddleItem", References.ITEM ... ... _STACK.in($$0)) 169 "minecraft:donkey", ... 170 $$1x -> DSL.optionalFields("Items", DSL.list(References.ITEM_ ... ... STACK.in($$0)), "SaddleItem", References.ITEM_STACK.in($$0), V100.equi ... ... pment($$0)) ... 171 ); 169 ); 172 $$0.registerSimple($$1, "minecraft:dragon_fireball"); 170 $$0.registerSimple($$1, "minecraft:dragon_fireball"); 173 registerThrowableProjectile($$0, $$1, "minecraft:egg"); 171 registerThrowableProjectile($$0, $$1, "minecraft:egg"); 174 registerMob($$0, $$1, "minecraft:elder_guardian"); 172 registerMob($$0, $$1, "minecraft:elder_guardian"); 175 $$0.registerSimple($$1, "minecraft:ender_crystal"); 173 $$0.registerSimple($$1, "minecraft:ender_crystal"); 176 registerMob($$0, $$1, "minecraft:ender_dragon"); 174 registerMob($$0, $$1, "minecraft:ender_dragon"); 177 $$0.register($$1, "minecraft:enderman", $$1x -> DSL.optionalFiel 175 $$0.register($$1, "minecraft:enderman", $$1x -> DSL.optionalFiel ... ds("carried", References.BLOCK_NAME.in($$0), V100.equipment($$0))); ... ds("carried", References.BLOCK_NAME.in($$0))); 178 registerMob($$0, $$1, "minecraft:endermite"); 176 registerMob($$0, $$1, "minecraft:endermite"); 179 registerThrowableProjectile($$0, $$1, "minecraft:ender_pearl"); 177 registerThrowableProjectile($$0, $$1, "minecraft:ender_pearl"); 180 $$0.registerSimple($$1, "minecraft:eye_of_ender_signal"); 178 $$0.registerSimple($$1, "minecraft:eye_of_ender_signal"); net/minecraft/util/datafix/schemas/V705.java --- 3/8 --- Java 195 $$0.register( 193 $$0.register($$1, "minecraft:horse", $$1x -> DSL.optionalFields( ... ... "ArmorItem", References.ITEM_STACK.in($$0), "SaddleItem", References.I ... ... TEM_STACK.in($$0))); 196 $$1, ... 197 "minecraft:horse", ... 198 $$1x -> DSL.optionalFields("ArmorItem", References.ITEM_STACK ... ... .in($$0), "SaddleItem", References.ITEM_STACK.in($$0), V100.equipment( ... ... $$0)) ... 199 ); ... 200 registerMob($$0, $$1, "minecraft:husk"); 194 registerMob($$0, $$1, "minecraft:husk"); 201 $$0.register($$1, "minecraft:item", $$1x -> DSL.optionalFields(" 195 $$0.register($$1, "minecraft:item", $$1x -> DSL.optionalFields(" Item", References.ITEM_STACK.in($$0))); Item", References.ITEM_STACK.in($$0))); net/minecraft/util/datafix/schemas/V705.java --- 4/8 --- Java 207 $$0.register( 201 $$0.register( 208 $$1, 202 $$1, "minecraft:mule", $$1x -> DSL.optionalFields("Items", DS ... ... L.list(References.ITEM_STACK.in($$0)), "SaddleItem", References.ITEM_S ... ... TACK.in($$0)) 209 "minecraft:mule", ... 210 $$1x -> DSL.optionalFields("Items", DSL.list(References.ITEM_ ... ... STACK.in($$0)), "SaddleItem", References.ITEM_STACK.in($$0), V100.equi ... ... pment($$0)) ... 211 ); 203 ); 212 registerMob($$0, $$1, "minecraft:ocelot"); 204 registerMob($$0, $$1, "minecraft:ocelot"); 213 $$0.registerSimple($$1, "minecraft:painting"); 205 $$0.registerSimple($$1, "minecraft:painting"); 214 $$0.registerSimple($$1, "minecraft:parrot"); 206 registerMob($$0, $$1, "minecraft:parrot"); 215 registerMob($$0, $$1, "minecraft:pig"); 207 registerMob($$0, $$1, "minecraft:pig"); 216 registerMob($$0, $$1, "minecraft:polar_bear"); 208 registerMob($$0, $$1, "minecraft:polar_bear"); 217 $$0.register($$1, "minecraft:potion", $$1x -> DSL.optionalFields 209 $$0.register($$1, "minecraft:potion", $$1x -> DSL.optionalFields ("Potion", References.ITEM_STACK.in($$0), "inTile", References.BLOCK_N ("Potion", References.ITEM_STACK.in($$0), "inTile", References.BLOCK_N AME.in($$0))); AME.in($$0))); net/minecraft/util/datafix/schemas/V705.java --- 5/8 --- Java 221 $$0.registerSimple($$1, "minecraft:shulker_bullet"); 213 $$0.registerSimple($$1, "minecraft:shulker_bullet"); 222 registerMob($$0, $$1, "minecraft:silverfish"); 214 registerMob($$0, $$1, "minecraft:silverfish"); 223 registerMob($$0, $$1, "minecraft:skeleton"); 215 registerMob($$0, $$1, "minecraft:skeleton"); 224 $$0.register($$1, "minecraft:skeleton_horse", $$1x -> DSL.option 216 $$0.register($$1, "minecraft:skeleton_horse", $$1x -> DSL.option ... alFields("SaddleItem", References.ITEM_STACK.in($$0), V100.equipment($ ... alFields("SaddleItem", References.ITEM_STACK.in($$0))); ... $0))); ... 225 registerMob($$0, $$1, "minecraft:slime"); 217 registerMob($$0, $$1, "minecraft:slime"); 226 registerThrowableProjectile($$0, $$1, "minecraft:small_fireball" 218 registerThrowableProjectile($$0, $$1, "minecraft:small_fireball" ... ); ... ); 227 registerThrowableProjectile($$0, $$1, "minecraft:snowball"); 219 registerThrowableProjectile($$0, $$1, "minecraft:snowball"); net/minecraft/util/datafix/schemas/V705.java --- 6/8 --- Java 242 "Inventory", 234 "Inventory", DSL.list(References.ITEM_STACK.in($$0)), " ... ... Offers", DSL.optionalFields("Recipes", DSL.list(References.VILLAGER_TR ... ... ADE.in($$0))) 243 DSL.list(References.ITEM_STACK.in($$0)), ... 244 "Offers", ... 245 DSL.optionalFields("Recipes", DSL.list(References.VILLA ... ... GER_TRADE.in($$0))), ... 246 V100.equipment($$0) ... 247 ) 235 ) 248 ); 236 ); 249 registerMob($$0, $$1, "minecraft:villager_golem"); 237 registerMob($$0, $$1, "minecraft:villager_golem"); net/minecraft/util/datafix/schemas/V705.java --- 7/8 --- Java 255 registerThrowableProjectile($$0, $$1, "minecraft:xp_bottle"); 243 registerThrowableProjectile($$0, $$1, "minecraft:xp_bottle"); 256 $$0.registerSimple($$1, "minecraft:xp_orb"); 244 $$0.registerSimple($$1, "minecraft:xp_orb"); 257 registerMob($$0, $$1, "minecraft:zombie"); 245 registerMob($$0, $$1, "minecraft:zombie"); 258 $$0.register($$1, "minecraft:zombie_horse", $$1x -> DSL.optional 246 $$0.register($$1, "minecraft:zombie_horse", $$1x -> DSL.optional ... Fields("SaddleItem", References.ITEM_STACK.in($$0), V100.equipment($$0 ... Fields("SaddleItem", References.ITEM_STACK.in($$0))); ... ))); ... 259 registerMob($$0, $$1, "minecraft:zombie_pigman"); 247 registerMob($$0, $$1, "minecraft:zombie_pigman"); 260 $$0.register( 248 $$0.register( 261 $$1, 249 $$1, "minecraft:zombie_villager", $$1x -> DSL.optionalFields( ... ... "Offers", DSL.optionalFields("Recipes", DSL.list(References.VILLAGER_T ... ... RADE.in($$0)))) 262 "minecraft:zombie_villager", ... 263 $$1x -> DSL.optionalFields("Offers", DSL.optionalFields("Reci ... ... pes", DSL.list(References.VILLAGER_TRADE.in($$0))), V100.equipment($$0 ... ... )) ... 264 ); 250 ); 265 $$0.registerSimple($$1, "minecraft:evocation_fangs"); 251 $$0.registerSimple($$1, "minecraft:evocation_fangs"); 266 registerMob($$0, $$1, "minecraft:evocation_illager"); 252 registerMob($$0, $$1, "minecraft:evocation_illager"); 267 $$0.registerSimple($$1, "minecraft:illusion_illager"); 253 registerMob($$0, $$1, "minecraft:illusion_illager"); 268 $$0.register( 254 $$0.register( 269 $$1, 255 $$1, 270 "minecraft:llama", 256 "minecraft:llama", 271 $$1x -> DSL.optionalFields( 257 $$1x -> DSL.optionalFields( 272 "Items", 258 "Items", DSL.list(References.ITEM_STACK.in($$0)), "Sadd ... ... leItem", References.ITEM_STACK.in($$0), "DecorItem", References.ITEM_S ... ... TACK.in($$0) 273 DSL.list(References.ITEM_STACK.in($$0)), ... 274 "SaddleItem", ... 275 References.ITEM_STACK.in($$0), ... 276 "DecorItem", ... 277 References.ITEM_STACK.in($$0), ... 278 V100.equipment($$0) ... 279 ) 259 ) 280 ); 260 ); 281 $$0.registerSimple($$1, "minecraft:llama_spit"); 261 $$0.registerSimple($$1, "minecraft:llama_spit"); net/minecraft/util/datafix/schemas/V705.java --- 8/8 --- Java 290 $$0.registerType( 270 $$0.registerType( 291 true, References.ENTITY, () -> DSL.optionalFields("CustomName 271 true, ... ", DSL.constType(DSL.string()), DSL.taggedChoiceLazy("id", namespacedS ... ... tring(), $$1)) ... ... 272 References.ENTITY, ... 273 () -> DSL.and( ... 274 References.ENTITY_EQUIPMENT.in($$0), ... 275 DSL.optionalFields("CustomName", DSL.constType(DSL.stri ... ... ng()), DSL.taggedChoiceLazy("id", namespacedString(), $$1)) ... 276 ) 292 ); 277 ); 293 $$0.registerType( 278 $$0.registerType( 294 true, 279 true, net/minecraft/world/entity/InterpolationHandler.java --- Java 50 50 51 public void interpolateTo(Vec3 $$0, float $$1, float $$2) { 51 public void interpolateTo(Vec3 $$0, float $$1, float $$2) { 52 if (this.interpolationSteps == 0) { 52 if (this.interpolationSteps == 0) { 53 this.entity.moveTo($$0, $$1, $$2); 53 this.entity.snapTo($$0, $$1, $$2); 54 this.cancel(); 54 this.cancel(); 55 } else { 55 } else { 56 this.interpolationData.steps = this.interpolationSteps; 56 this.interpolationData.steps = this.interpolationSteps; net/minecraft/world/entity/ai/behavior/HarvestFarmland.java --- Java 49 protected boolean checkExtraStartConditions(ServerLevel $$0, Village 49 protected boolean checkExtraStartConditions(ServerLevel $$0, Village .. r $$1) { .. r $$1) { 50 if (!$$0.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) { 50 if (!$$0.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) { 51 return false; 51 return false; 52 } else if ($$1.getVillagerData().getProfession() != VillagerProfe 52 } else if (!$$1.getVillagerData().profession().is(VillagerProfess .. ssion.FARMER) { .. ion.FARMER)) { 53 return false; 53 return false; 54 } else { 54 } else { 55 BlockPos.MutableBlockPos $$2 = $$1.blockPosition().mutable(); 55 BlockPos.MutableBlockPos $$2 = $$1.blockPosition().mutable(); net/minecraft/util/datafix/schemas/V700.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "ElderGuardian", () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, "ElderGuardian"); 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/world/level/block/Rotation.java --- 1/2 --- Java 2 2 3 import com.mojang.math.OctahedralGroup; 3 import com.mojang.math.OctahedralGroup; 4 import com.mojang.serialization.Codec; 4 import com.mojang.serialization.Codec; . 5 import io.netty.buffer.ByteBuf; 5 import java.util.List; 6 import java.util.List; . 7 import java.util.function.IntFunction; 6 import net.minecraft.Util; 8 import net.minecraft.Util; 7 import net.minecraft.core.Direction; 9 import net.minecraft.core.Direction; . 10 import net.minecraft.network.codec.ByteBufCodecs; . 11 import net.minecraft.network.codec.StreamCodec; . 12 import net.minecraft.util.ByIdMap; 8 import net.minecraft.util.RandomSource; 13 import net.minecraft.util.RandomSource; 9 import net.minecraft.util.StringRepresentable; 14 import net.minecraft.util.StringRepresentable; 10 15 11 public enum Rotation implements StringRepresentable { 16 public enum Rotation implements StringRepresentable { 12 NONE("none", OctahedralGroup.IDENTITY), 17 NONE(0, "none", OctahedralGroup.IDENTITY), 13 CLOCKWISE_90("clockwise_90", OctahedralGroup.ROT_90_Y_NEG), 18 CLOCKWISE_90(1, "clockwise_90", OctahedralGroup.ROT_90_Y_NEG), 14 CLOCKWISE_180("180", OctahedralGroup.ROT_180_FACE_XZ), 19 CLOCKWISE_180(2, "180", OctahedralGroup.ROT_180_FACE_XZ), 15 COUNTERCLOCKWISE_90("counterclockwise_90", OctahedralGroup.ROT_90_Y_ 20 COUNTERCLOCKWISE_90(3, "counterclockwise_90", OctahedralGroup.ROT_90 .. POS); .. _Y_POS); 16 21 .. 22 public static final IntFunction<Rotation> BY_ID = ByIdMap.continuous .. .. (Rotation::getIndex, values(), ByIdMap.OutOfBoundsStrategy.WRAP); 17 public static final Codec<Rotation> CODEC = StringRepresentable.from 23 public static final Codec<Rotation> CODEC = StringRepresentable.from .. Enum(Rotation::values); .. Enum(Rotation::values); .. 24 public static final StreamCodec<ByteBuf, Rotation> STREAM_CODEC = By .. .. teBufCodecs.idMapper(BY_ID, Rotation::getIndex); .. 25 private final int index; 18 private final String id; 26 private final String id; 19 private final OctahedralGroup rotation; 27 private final OctahedralGroup rotation; 20 28 21 private Rotation(final String $$0, final OctahedralGroup $$1) { 29 private Rotation(final int $$0, final String $$1, final OctahedralGr .. .. oup $$2) { .. 30 this.index = $$0; 22 this.id = $$0; 31 this.id = $$1; 23 this.rotation = $$1; 32 this.rotation = $$2; 24 } 33 } 25 34 26 public Rotation getRotated(Rotation $$0) { 35 public Rotation getRotated(Rotation $$0) { net/minecraft/world/level/block/Rotation.java --- 2/2 --- Java 110 return this.id; 119 return this.id; 111 } 120 } ... 121 ... 122 private int getIndex() { ... 123 return this.index; ... 124 } 112 } 125 } net/minecraft/data/registries/VanillaRegistries.java --- 1/2 --- Java 20 import net.minecraft.data.worldgen.biome.BiomeData; 20 import net.minecraft.data.worldgen.biome.BiomeData; 21 import net.minecraft.data.worldgen.features.FeatureUtils; 21 import net.minecraft.data.worldgen.features.FeatureUtils; 22 import net.minecraft.data.worldgen.placement.PlacementUtils; 22 import net.minecraft.data.worldgen.placement.PlacementUtils; .. 23 import net.minecraft.gametest.framework.GameTestEnvironments; .. 24 import net.minecraft.gametest.framework.GameTestInstances; 23 import net.minecraft.network.chat.ChatType; 25 import net.minecraft.network.chat.ChatType; 24 import net.minecraft.resources.ResourceLocation; 26 import net.minecraft.resources.ResourceLocation; 25 import net.minecraft.world.damagesource.DamageTypes; 27 import net.minecraft.world.damagesource.DamageTypes; net/minecraft/data/registries/VanillaRegistries.java --- 2/2 --- Java 73 .add(Registries.JUKEBOX_SONG, JukeboxSongs::bootstrap) 75 .add(Registries.JUKEBOX_SONG, JukeboxSongs::bootstrap) 74 .add(Registries.INSTRUMENT, Instruments::bootstrap) 76 .add(Registries.INSTRUMENT, Instruments::bootstrap) 75 .add(Registries.PIG_VARIANT, PigVariants::bootstrap); 77 .add(Registries.PIG_VARIANT, PigVariants::bootstrap) .. 78 .add(Registries.TEST_ENVIRONMENT, GameTestEnvironments::bootstrap .. .. ) .. 79 .add(Registries.TEST_INSTANCE, GameTestInstances::bootstrap); 76 80 77 private static void validateThatAllBiomeFeaturesHaveBiomeFilter(Hold 81 private static void validateThatAllBiomeFeaturesHaveBiomeFilter(Hold .. erLookup.Provider $$0) { .. erLookup.Provider $$0) { 78 validateThatAllBiomeFeaturesHaveBiomeFilter($$0.lookupOrThrow(Reg 82 validateThatAllBiomeFeaturesHaveBiomeFilter($$0.lookupOrThrow(Reg istries.PLACED_FEATURE), $$0.lookupOrThrow(Registries.BIOME)); istries.PLACED_FEATURE), $$0.lookupOrThrow(Registries.BIOME)); net/minecraft/client/renderer/entity/layers/VillagerProfessionLayer.java --- 1/3 --- Java 16 import net.minecraft.client.renderer.entity.RenderLayerParent; 16 import net.minecraft.client.renderer.entity.RenderLayerParent; 17 import net.minecraft.client.renderer.entity.state.LivingEntityRenderSta 17 import net.minecraft.client.renderer.entity.state.LivingEntityRenderSta .. te; .. te; 18 import net.minecraft.client.renderer.entity.state.VillagerDataHolderRen 18 import net.minecraft.client.renderer.entity.state.VillagerDataHolderRen .. derState; .. derState; .. 19 import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite; 19 import net.minecraft.client.resources.metadata.animation.VillagerMetada 20 import net.minecraft.client.resources.metadata.animation.VillagerMetada .. taSection; .. taSection; 20 import net.minecraft.core.DefaultedRegistry; 21 import net.minecraft.core.Holder; 21 import net.minecraft.core.registries.BuiltInRegistries; 22 import net.minecraft.resources.ResourceKey; 22 import net.minecraft.resources.ResourceLocation; 23 import net.minecraft.resources.ResourceLocation; 23 import net.minecraft.server.packs.resources.ResourceManager; 24 import net.minecraft.server.packs.resources.ResourceManager; 24 import net.minecraft.util.Mth; 25 import net.minecraft.util.Mth; net/minecraft/client/renderer/entity/layers/VillagerProfessionLayer.java --- 2/3 --- Java 36 $$0.put(4, ResourceLocation.withDefaultNamespace("emerald")); 37 $$0.put(4, ResourceLocation.withDefaultNamespace("emerald")); 37 $$0.put(5, ResourceLocation.withDefaultNamespace("diamond")); 38 $$0.put(5, ResourceLocation.withDefaultNamespace("diamond")); 38 }); 39 }); 39 private final Object2ObjectMap<VillagerType, VillagerMetadataSection 40 private final Object2ObjectMap<ResourceKey<VillagerType>, VillagerMe .. .Hat> typeHatCache = new Object2ObjectOpenHashMap<>(); .. tadataSection.Hat> typeHatCache = new Object2ObjectOpenHashMap<>(); 40 private final Object2ObjectMap<VillagerProfession, VillagerMetadataS 41 private final Object2ObjectMap<ResourceKey<VillagerProfession>, Vill .. ection.Hat> professionHatCache = new Object2ObjectOpenHashMap<>(); .. agerMetadataSection.Hat> professionHatCache = new Object2ObjectOpenHash .. .. Map<>(); 41 private final ResourceManager resourceManager; 42 private final ResourceManager resourceManager; 42 private final String path; 43 private final String path; 43 44 net/minecraft/client/renderer/entity/layers/VillagerProfessionLayer.java --- 3/3 --- Java 50 public void render(PoseStack $$0, MultiBufferSource $$1, int $$2, S 51 public void render(PoseStack $$0, MultiBufferSource $$1, int $$2, S .. $$3, float $$4, float $$5) { .. $$3, float $$4, float $$5) { 51 if (!$$3.isInvisible) { 52 if (!$$3.isInvisible) { 52 VillagerData $$6 = $$3.getVillagerData(); 53 VillagerData $$6 = $$3.getVillagerData(); .. 54 if ($$6 != null) { 53 VillagerType $$7 = $$6.getType(); 55 Holder<VillagerType> $$7 = $$6.type(); 54 VillagerProfession $$8 = $$6.getProfession(); 56 Holder<VillagerProfession> $$8 = $$6.profession(); 55 VillagerMetadataSection.Hat $$9 = this.getHatData(this.typeHat 57 VillagerMetadataSection.Hat $$9 = this.getHatData(this.type .. Cache, "type", BuiltInRegistries.VILLAGER_TYPE, $$7); .. HatCache, "type", $$7); 56 VillagerMetadataSection.Hat $$10 = this.getHatData(this.profes 58 VillagerMetadataSection.Hat $$10 = this.getHatData(this.pro .. sionHatCache, "profession", BuiltInRegistries.VILLAGER_PROFESSION, $$8) .. fessionHatCache, "profession", $$8); .. ; .. 57 M $$11 = this.getParentModel(); 59 M $$11 = this.getParentModel(); 58 $$11.hatVisible($$10 == VillagerMetadataSection.Hat.NONE || $$ 60 $$11.hatVisible($$10 == VillagerMetadataSection.Hat.NONE || .. 10 == VillagerMetadataSection.Hat.PARTIAL && $$9 != VillagerMetadataSec .. $$10 == VillagerMetadataSection.Hat.PARTIAL && $$9 != VillagerMetadata .. tion.Hat.FULL); .. Section.Hat.FULL); 59 ResourceLocation $$12 = this.getResourceLocation("type", Built 61 ResourceLocation $$12 = this.getResourceLocation("type", $$ .. InRegistries.VILLAGER_TYPE.getKey($$7)); .. 7); 60 renderColoredCutoutModel($$11, $$12, $$0, $$1, $$2, $$3, -1); 62 renderColoredCutoutModel($$11, $$12, $$0, $$1, $$2, $$3, -1 .. .. ); 61 $$11.hatVisible(true); 63 $$11.hatVisible(true); 62 if ($$8 != VillagerProfession.NONE && !$$3.isBaby) { 64 if (!$$8.is(VillagerProfession.NONE) && !$$3.isBaby) { 63 ResourceLocation $$13 = this.getResourceLocation("professio 65 ResourceLocation $$13 = this.getResourceLocation("profes .. n", BuiltInRegistries.VILLAGER_PROFESSION.getKey($$8)); .. sion", $$8); 64 renderColoredCutoutModel($$11, $$13, $$0, $$1, $$2, $$3, -1 66 renderColoredCutoutModel($$11, $$13, $$0, $$1, $$2, $$3, .. ); .. -1); 65 if ($$8 != VillagerProfession.NITWIT) { 67 if (!$$8.is(VillagerProfession.NITWIT)) { 66 ResourceLocation $$14 = this.getResourceLocation("profes 68 ResourceLocation $$14 = this.getResourceLocation("pro .. sion_level", LEVEL_LOCATIONS.get(Mth.clamp($$6.getLevel(), 1, LEVEL_LOC .. fession_level", LEVEL_LOCATIONS.get(Mth.clamp($$6.level(), 1, LEVEL_LOC .. ATIONS.size()))); .. ATIONS.size()))); 67 renderColoredCutoutModel($$11, $$14, $$0, $$1, $$2, $$3, 69 renderColoredCutoutModel($$11, $$14, $$0, $$1, $$2, $ .. -1); .. $3, -1); 68 } 70 } 69 } 71 } .. 72 } 70 } 73 } 71 } 74 } 72 75 73 private ResourceLocation getResourceLocation(String $$0, ResourceLoc 76 private ResourceLocation getResourceLocation(String $$0, ResourceLoc .. ation $$1) { .. ation $$1) { 74 return $$1.withPath($$1x -> "textures/entity/" + this.path + "/" 77 return $$1.withPath($$1x -> "textures/entity/" + this.path + "/" .. + $$0 + "/" + $$1x + ".png"); .. + $$0 + "/" + $$1x + ".png"); 75 } 78 } .. 79 .. 80 private ResourceLocation getResourceLocation(String $$0, Holder<?> $ .. .. $1) { .. 81 return $$1.unwrapKey().map($$1x -> this.getResourceLocation($$0, .. .. $$1x.location())).orElse(MissingTextureAtlasSprite.getLocation()); .. 82 } 76 83 77 public <K> VillagerMetadataSection.Hat getHatData(Object2ObjectMap<K 84 public <K> VillagerMetadataSection.Hat getHatData(Object2ObjectMap<R .. , VillagerMetadataSection.Hat> $$0, String $$1, DefaultedRegistry<K> $$ .. esourceKey<K>, VillagerMetadataSection.Hat> $$0, String $$1, Holder<K> .. 2, K $$3) { .. $$2) { .. 85 ResourceKey<K> $$3 = $$2.unwrapKey().orElse(null); 78 return $$0.computeIfAbsent($$3, $$3x -> this.resourceManager.getR 86 return $$3 == null .. esource(this.getResourceLocation($$1, $$2.getKey($$3))).flatMap($$0xx - .. .. > { .. .. 87 ? VillagerMetadataSection.Hat.NONE .. 88 : $$0.computeIfAbsent($$3, $$2x -> this.resourceManager.getRes .. .. ource(this.getResourceLocation($$1, $$3.location())).flatMap($$0xx -> { 79 try { 89 try { 80 return $$0xx.metadata().getSection(VillagerMetadataSecti 90 return $$0xx.metadata().getSection(VillagerMetadataSe .. on.TYPE).map(VillagerMetadataSection::hat); .. ction.TYPE).map(VillagerMetadataSection::hat); 81 } catch (IOException var2x) { 91 } catch (IOException var2x) { net/minecraft/world/level/levelgen/feature/SpikeFeature.java --- Java 112 if ($$19 != null) { 112 if ($$19 != null) { 113 $$19.setBeamTarget($$2.getCrystalBeamTarget()); 113 $$19.setBeamTarget($$2.getCrystalBeamTarget()); 114 $$19.setInvulnerable($$2.isCrystalInvulnerable()); 114 $$19.setInvulnerable($$2.isCrystalInvulnerable()); 115 $$19.moveTo((double)$$3.getCenterX() + 0.5, (double)($$3.getH 115 $$19.snapTo((double)$$3.getCenterX() + 0.5, (double)($$3.getH ... eight() + 1), (double)$$3.getCenterZ() + 0.5, $$1.nextFloat() * 360.0F ... eight() + 1), (double)$$3.getCenterZ() + 0.5, $$1.nextFloat() * 360.0F ... , 0.0F); ... , 0.0F); 116 $$0.addFreshEntity($$19); 116 $$0.addFreshEntity($$19); 117 BlockPos $$20 = $$19.blockPosition(); 117 BlockPos $$20 = $$19.blockPosition(); 118 this.setBlock($$0, $$20.below(), Blocks.BEDROCK.defaultBlockS 118 this.setBlock($$0, $$20.below(), Blocks.BEDROCK.defaultBlockS tate()); tate()); net/minecraft/client/model/geom/ModelLayers.java --- 1/6 --- Java 53 public static final ModelLayerLocation BREEZE_WIND = register("breez 53 public static final ModelLayerLocation BREEZE_WIND = register("breez .. e_wind"); .. e_wind"); 54 public static final ModelLayerLocation CAMEL = register("camel"); 54 public static final ModelLayerLocation CAMEL = register("camel"); 55 public static final ModelLayerLocation CAMEL_BABY = register("camel_ 55 public static final ModelLayerLocation CAMEL_BABY = register("camel_ .. baby"); .. baby"); .. 56 public static final ModelLayerLocation CAMEL_SADDLE = register("came .. .. l", "saddle"); .. 57 public static final ModelLayerLocation CAMEL_BABY_SADDLE = register( .. .. "camel_baby", "saddle"); 56 public static final ModelLayerLocation CAT = register("cat"); 58 public static final ModelLayerLocation CAT = register("cat"); 57 public static final ModelLayerLocation CAT_BABY = register("cat_baby 59 public static final ModelLayerLocation CAT_BABY = register("cat_baby .. "); .. "); 58 public static final ModelLayerLocation CAT_BABY_COLLAR = register("c 60 public static final ModelLayerLocation CAT_BABY_COLLAR = register("c at_baby", "collar"); at_baby", "collar"); net/minecraft/client/model/geom/ModelLayers.java --- 2/6 --- Java 86 public static final ModelLayerLocation DOLPHIN_BABY = register("dolp 88 public static final ModelLayerLocation DOLPHIN_BABY = register("dolp .. hin_baby"); .. hin_baby"); 87 public static final ModelLayerLocation DONKEY = register("donkey"); 89 public static final ModelLayerLocation DONKEY = register("donkey"); 88 public static final ModelLayerLocation DONKEY_BABY = register("donke 90 public static final ModelLayerLocation DONKEY_BABY = register("donke .. y_baby"); .. y_baby"); .. 91 public static final ModelLayerLocation DONKEY_SADDLE = register("don .. .. key", "saddle"); .. 92 public static final ModelLayerLocation DONKEY_BABY_SADDLE = register .. .. ("donkey_baby", "saddle"); 89 public static final ModelLayerLocation DOUBLE_CHEST_LEFT = register( 93 public static final ModelLayerLocation DOUBLE_CHEST_LEFT = register( .. "double_chest_left"); .. "double_chest_left"); 90 public static final ModelLayerLocation DOUBLE_CHEST_RIGHT = register 94 public static final ModelLayerLocation DOUBLE_CHEST_RIGHT = register .. ("double_chest_right"); .. ("double_chest_right"); 91 public static final ModelLayerLocation DRAGON_SKULL = register("drag 95 public static final ModelLayerLocation DRAGON_SKULL = register("drag on_skull"); on_skull"); net/minecraft/client/model/geom/ModelLayers.java --- 3/6 --- Java 124 public static final ModelLayerLocation HOPPER_MINECART = register(" 128 public static final ModelLayerLocation HOPPER_MINECART = register(" ... hopper_minecart"); ... hopper_minecart"); 125 public static final ModelLayerLocation HORSE = register("horse"); 129 public static final ModelLayerLocation HORSE = register("horse"); 126 public static final ModelLayerLocation HORSE_ARMOR = register("hors 130 public static final ModelLayerLocation HORSE_ARMOR = register("hors ... e_armor"); ... e_armor"); ... 131 public static final ModelLayerLocation HORSE_SADDLE = register("hor ... ... se", "saddle"); 127 public static final ModelLayerLocation HORSE_BABY = register("horse 132 public static final ModelLayerLocation HORSE_BABY = register("horse ... _baby"); ... _baby"); 128 public static final ModelLayerLocation HORSE_BABY_ARMOR = register( 133 public static final ModelLayerLocation HORSE_BABY_ARMOR = register( ... "horse_armor_baby"); ... "horse_armor_baby"); ... 134 public static final ModelLayerLocation HORSE_BABY_SADDLE = register ... ... ("horse_baby", "saddle"); 129 public static final ModelLayerLocation HUSK = register("husk"); 135 public static final ModelLayerLocation HUSK = register("husk"); 130 public static final ModelLayerLocation HUSK_BABY = register("husk_b 136 public static final ModelLayerLocation HUSK_BABY = register("husk_b ... aby"); ... aby"); 131 public static final ModelLayerLocation HUSK_BABY_INNER_ARMOR = regi 137 public static final ModelLayerLocation HUSK_BABY_INNER_ARMOR = regi sterInnerArmor("husk_baby"); sterInnerArmor("husk_baby"); net/minecraft/client/model/geom/ModelLayers.java --- 4/6 --- Java 150 public static final ModelLayerLocation MOOSHROOM_BABY = register("m 156 public static final ModelLayerLocation MOOSHROOM_BABY = register("m ... ooshroom_baby"); ... ooshroom_baby"); 151 public static final ModelLayerLocation MULE = register("mule"); 157 public static final ModelLayerLocation MULE = register("mule"); 152 public static final ModelLayerLocation MULE_BABY = register("mule_b 158 public static final ModelLayerLocation MULE_BABY = register("mule_b ... aby"); ... aby"); ... 159 public static final ModelLayerLocation MULE_SADDLE = register("mule ... ... ", "saddle"); ... 160 public static final ModelLayerLocation MULE_BABY_SADDLE = register( ... ... "mule_baby", "saddle"); 153 public static final ModelLayerLocation OAK_BOAT = register("boat/oa 161 public static final ModelLayerLocation OAK_BOAT = register("boat/oa ... k"); ... k"); 154 public static final ModelLayerLocation OAK_CHEST_BOAT = register("c 162 public static final ModelLayerLocation OAK_CHEST_BOAT = register("c ... hest_boat/oak"); ... hest_boat/oak"); 155 public static final ModelLayerLocation OCELOT = register("ocelot"); 163 public static final ModelLayerLocation OCELOT = register("ocelot"); net/minecraft/client/model/geom/ModelLayers.java --- 5/6 --- Java 208 public static final ModelLayerLocation SKELETON = register("skeleto 216 public static final ModelLayerLocation SKELETON = register("skeleto ... n"); ... n"); 209 public static final ModelLayerLocation SKELETON_HORSE = register("s 217 public static final ModelLayerLocation SKELETON_HORSE = register("s ... keleton_horse"); ... keleton_horse"); 210 public static final ModelLayerLocation SKELETON_HORSE_BABY = regist 218 public static final ModelLayerLocation SKELETON_HORSE_BABY = regist ... er("skeleton_horse_baby"); ... er("skeleton_horse_baby"); ... 219 public static final ModelLayerLocation SKELETON_HORSE_SADDLE = regi ... ... ster("skeleton_horse", "saddle"); ... 220 public static final ModelLayerLocation SKELETON_HORSE_BABY_SADDLE = ... ... register("skeleton_horse_baby", "saddle"); 211 public static final ModelLayerLocation SKELETON_INNER_ARMOR = regis 221 public static final ModelLayerLocation SKELETON_INNER_ARMOR = regis ... terInnerArmor("skeleton"); ... terInnerArmor("skeleton"); 212 public static final ModelLayerLocation SKELETON_OUTER_ARMOR = regis 222 public static final ModelLayerLocation SKELETON_OUTER_ARMOR = regis ... terOuterArmor("skeleton"); ... terOuterArmor("skeleton"); 213 public static final ModelLayerLocation SKELETON_SKULL = register("s 223 public static final ModelLayerLocation SKELETON_SKULL = register("s keleton_skull"); keleton_skull"); net/minecraft/client/model/geom/ModelLayers.java --- 6/6 --- Java 269 public static final ModelLayerLocation ZOMBIE_HEAD = register("zomb 279 public static final ModelLayerLocation ZOMBIE_HEAD = register("zomb ... ie_head"); ... ie_head"); 270 public static final ModelLayerLocation ZOMBIE_HORSE = register("zom 280 public static final ModelLayerLocation ZOMBIE_HORSE = register("zom ... bie_horse"); ... bie_horse"); 271 public static final ModelLayerLocation ZOMBIE_HORSE_BABY = register 281 public static final ModelLayerLocation ZOMBIE_HORSE_BABY = register ... ("zombie_horse_baby"); ... ("zombie_horse_baby"); ... 282 public static final ModelLayerLocation ZOMBIE_HORSE_SADDLE = regist ... ... er("zombie_horse", "saddle"); ... 283 public static final ModelLayerLocation ZOMBIE_HORSE_BABY_SADDLE = r ... ... egister("zombie_horse_baby", "saddle"); 272 public static final ModelLayerLocation ZOMBIE_INNER_ARMOR = registe 284 public static final ModelLayerLocation ZOMBIE_INNER_ARMOR = registe ... rInnerArmor("zombie"); ... rInnerArmor("zombie"); 273 public static final ModelLayerLocation ZOMBIE_OUTER_ARMOR = registe 285 public static final ModelLayerLocation ZOMBIE_OUTER_ARMOR = registe ... rOuterArmor("zombie"); ... rOuterArmor("zombie"); 274 public static final ModelLayerLocation ZOMBIE_VILLAGER = register(" 286 public static final ModelLayerLocation ZOMBIE_VILLAGER = register(" zombie_villager"); zombie_villager"); net/minecraft/util/datafix/schemas/V703.java --- Java 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 18 $$1.remove("EntityHorse"); 18 $$1.remove("EntityHorse"); 19 $$0.register( 19 $$0.register($$1, "Horse", () -> DSL.optionalFields("ArmorItem", .. .. References.ITEM_STACK.in($$0), "SaddleItem", References.ITEM_STACK.in($ .. .. $0))); 20 $$1, "Horse", () -> DSL.optionalFields("ArmorItem", References .. .. .ITEM_STACK.in($$0), "SaddleItem", References.ITEM_STACK.in($$0), V100. .. .. equipment($$0)) .. 21 ); .. 22 $$0.register( 20 $$0.register($$1, "Donkey", () -> DSL.optionalFields("Items", DSL .. .. .list(References.ITEM_STACK.in($$0)), "SaddleItem", References.ITEM_STA .. .. CK.in($$0))); 23 $$1, .. 24 "Donkey", .. 25 () -> DSL.optionalFields("Items", DSL.list(References.ITEM_STA .. .. CK.in($$0)), "SaddleItem", References.ITEM_STACK.in($$0), V100.equipmen .. .. t($$0)) .. 26 ); .. 27 $$0.register( 21 $$0.register($$1, "Mule", () -> DSL.optionalFields("Items", DSL.l .. .. ist(References.ITEM_STACK.in($$0)), "SaddleItem", References.ITEM_STACK .. .. .in($$0))); 28 $$1, .. 29 "Mule", .. 30 () -> DSL.optionalFields("Items", DSL.list(References.ITEM_STA .. .. CK.in($$0)), "SaddleItem", References.ITEM_STACK.in($$0), V100.equipmen .. .. t($$0)) .. 31 ); .. 32 $$0.register($$1, "ZombieHorse", () -> DSL.optionalFields("Saddle 22 $$0.register($$1, "ZombieHorse", () -> DSL.optionalFields("Saddle .. Item", References.ITEM_STACK.in($$0), V100.equipment($$0))); .. Item", References.ITEM_STACK.in($$0))); 33 $$0.register($$1, "SkeletonHorse", () -> DSL.optionalFields("Sadd 23 $$0.register($$1, "SkeletonHorse", () -> DSL.optionalFields("Sadd .. leItem", References.ITEM_STACK.in($$0), V100.equipment($$0))); .. leItem", References.ITEM_STACK.in($$0))); 34 return $$1; 24 return $$1; 35 } 25 } 36 } 26 } net/minecraft/util/datafix/schemas/V3816.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:bogged", () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, "minecraft:bogged"); 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/client/model/geom/PartNames.java --- Java 57 public static final String MANE = "mane"; 57 public static final String MANE = "mane"; 58 public static final String NECK = "neck"; 58 public static final String NECK = "neck"; 59 public static final String MOUTH = "mouth"; 59 public static final String MOUTH = "mouth"; .. 60 public static final String UPPER_MOUTH = "upper_mouth"; 60 public static final String HEAD = "head"; 61 public static final String HEAD = "head"; 61 public static final String HAT = "hat"; 62 public static final String HAT = "hat"; 62 public static final String BODY = "body"; 63 public static final String BODY = "body"; net/minecraft/world/entity/raid/Raid.java --- Java 513 $$7++; 513 $$7++; 514 if ($$10 != null) { 514 if ($$10 != null) { 515 this.joinRaid($$2, $$10, $$0, false); 515 this.joinRaid($$2, $$10, $$0, false); 516 $$10.moveTo($$0, 0.0F, 0.0F); 516 $$10.snapTo($$0, 0.0F, 0.0F); 517 $$10.startRiding($$9); 517 $$10.startRiding($$9); 518 } 518 } 519 } 519 } net/minecraft/client/renderer/entity/layers/TropicalFishPatternLayer.java --- Java 38 } 38 } 39 39 40 public void render(PoseStack $$0, MultiBufferSource $$1, int $$2, Tr 40 public void render(PoseStack $$0, MultiBufferSource $$1, int $$2, Tr .. opicalFishRenderState $$3, float $$4, float $$5) { .. opicalFishRenderState $$3, float $$4, float $$5) { 41 TropicalFish.Pattern $$6 = $$3.variant; 41 TropicalFish.Pattern $$6 = $$3.pattern; 42 42 43 EntityModel<TropicalFishRenderState> $$7 = (EntityModel<TropicalF 43 EntityModel<TropicalFishRenderState> $$7 = (EntityModel<TropicalF .. ishRenderState>)(switch ($$6.base()) { .. ishRenderState>)(switch ($$6.base()) { 44 case SMALL -> this.modelA; 44 case SMALL -> this.modelA; net/minecraft/util/datafix/schemas/V1904.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:cat", () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, "minecraft:cat"); 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/world/entity/ai/behavior/TradeWithVillager.java --- 1/2 --- Java 46 if (!($$1.distanceToSqr($$3) > 5.0)) { 46 if (!($$1.distanceToSqr($$3) > 5.0)) { 47 BehaviorUtils.lockGazeAndWalkToEachOther($$1, $$3, 0.5F, 2); 47 BehaviorUtils.lockGazeAndWalkToEachOther($$1, $$3, 0.5F, 2); 48 $$1.gossip($$0, $$3, $$2); 48 $$1.gossip($$0, $$3, $$2); .. 49 boolean $$4 = $$1.getVillagerData().profession().is(VillagerPr .. .. ofession.FARMER); 49 if ($$1.hasExcessFood() && ($$1.getVillagerData().getProfessio 50 if ($$1.hasExcessFood() && ($$4 || $$3.wantsMoreFood())) { .. n() == VillagerProfession.FARMER || $$3.wantsMoreFood())) { .. 50 throwHalfStack($$1, Villager.FOOD_POINTS.keySet(), $$3); 51 throwHalfStack($$1, Villager.FOOD_POINTS.keySet(), $$3); 51 } 52 } 52 53 53 if ($$3.getVillagerData().getProfession() == VillagerProfessio 54 if ($$4 && $$1.getInventory().countItem(Items.WHEAT) > Items.W .. n.FARMER .. HEAT.getDefaultMaxStackSize() / 2) { 54 && $$1.getInventory().countItem(Items.WHEAT) > Items.WHEAT. .. .. getDefaultMaxStackSize() / 2) { .. 55 throwHalfStack($$1, ImmutableSet.of(Items.WHEAT), $$3); 55 throwHalfStack($$1, ImmutableSet.of(Items.WHEAT), $$3); 56 } 56 } net/minecraft/world/entity/ai/behavior/TradeWithVillager.java --- 2/2 --- Java 66 } 66 } 67 67 68 private static Set<Item> figureOutWhatIAmWillingToTrade(Villager $$0 68 private static Set<Item> figureOutWhatIAmWillingToTrade(Villager $$0 .. , Villager $$1) { .. , Villager $$1) { 69 ImmutableSet<Item> $$2 = $$1.getVillagerData().getProfession().re 69 ImmutableSet<Item> $$2 = $$1.getVillagerData().profession().value .. questedItems(); .. ().requestedItems(); 70 ImmutableSet<Item> $$3 = $$0.getVillagerData().getProfession().re 70 ImmutableSet<Item> $$3 = $$0.getVillagerData().profession().value .. questedItems(); .. ().requestedItems(); 71 return $$2.stream().filter($$1x -> !$$3.contains($$1x)).collect(C 71 return $$2.stream().filter($$1x -> !$$3.contains($$1x)).collect(C .. ollectors.toSet()); .. ollectors.toSet()); 72 } 72 } 73 73 net/minecraft/client/renderer/entity/layers/HorseArmorLayer.java --- Java 1 package net.minecraft.client.renderer.entity.layers; 2 3 import com.mojang.blaze3d.vertex.PoseStack; 4 import net.fabricmc.api.EnvType; 5 import net.fabricmc.api.Environment; 6 import net.minecraft.client.model.HorseModel; 7 import net.minecraft.client.model.geom.EntityModelSet; 8 import net.minecraft.client.model.geom.ModelLayers; 9 import net.minecraft.client.renderer.MultiBufferSource; 10 import net.minecraft.client.renderer.entity.RenderLayerParent; 11 import net.minecraft.client.renderer.entity.state.HorseRenderState; 12 import net.minecraft.client.resources.model.EquipmentClientInfo; 13 import net.minecraft.core.component.DataComponents; 14 import net.minecraft.world.item.ItemStack; 15 import net.minecraft.world.item.equipment.Equippable; 16 17 @Environment(EnvType.CLIENT) 18 public class HorseArmorLayer extends RenderLayer<HorseRenderState, HorseModel> { 19 private final HorseModel adultModel; 20 private final HorseModel babyModel; 21 private final EquipmentLayerRenderer equipmentRenderer; 22 23 public HorseArmorLayer(RenderLayerParent<HorseRenderState, HorseModel> $$0, EntityModelSet $$1, EquipmentLayerRenderer $$2) { 24 super($$0); 25 this.equipmentRenderer = $$2; 26 this.adultModel = new HorseModel($$1.bakeLayer(ModelLayers.HORSE_ARMOR)); 27 this.babyModel = new HorseModel($$1.bakeLayer(ModelLayers.HORSE_BABY_ARMOR)); 28 } 29 30 public void render(PoseStack $$0, MultiBufferSource $$1, int $$2, HorseRenderState $$3, float $$4, float $$5) { 31 ItemStack $$6 = $$3.bodyArmorItem; 32 Equippable $$7 = $$6.get(DataComponents.EQUIPPABLE); 33 if ($$7 != null && !$$7.assetId().isEmpty()) { 34 HorseModel $$8 = $$3.isBaby ? this.babyModel : this.adultModel; 35 $$8.setupAnim($$3); 36 this.equipmentRenderer.renderLayers(EquipmentClientInfo.LayerType.HORSE_BODY, $$7.assetId().get(), $$8, $$6, $$0, $$1, $$2); 37 } 38 } 39 } 40 net/minecraft/data/loot/EntityLootSubProvider.java --- 1/3 --- Java 16 import net.minecraft.advancements.critereon.EntityEquipmentPredicate; 16 import net.minecraft.advancements.critereon.EntityEquipmentPredicate; 17 import net.minecraft.advancements.critereon.EntityFlagsPredicate; 17 import net.minecraft.advancements.critereon.EntityFlagsPredicate; 18 import net.minecraft.advancements.critereon.EntityPredicate; 18 import net.minecraft.advancements.critereon.EntityPredicate; 19 import net.minecraft.advancements.critereon.EntitySubPredicates; .. 20 import net.minecraft.advancements.critereon.ItemEnchantmentsPredicate; 19 import net.minecraft.advancements.critereon.ItemEnchantmentsPredicate; 21 import net.minecraft.advancements.critereon.ItemPredicate; 20 import net.minecraft.advancements.critereon.ItemPredicate; 22 import net.minecraft.advancements.critereon.ItemSubPredicates; 21 import net.minecraft.advancements.critereon.ItemSubPredicates; 23 import net.minecraft.advancements.critereon.MinMaxBounds; 22 import net.minecraft.advancements.critereon.MinMaxBounds; 24 import net.minecraft.advancements.critereon.SheepPredicate; 23 import net.minecraft.advancements.critereon.SheepPredicate; 25 import net.minecraft.core.HolderGetter; 24 import net.minecraft.core.HolderGetter; 26 import net.minecraft.core.HolderLookup; 25 import net.minecraft.core.HolderLookup; .. 26 import net.minecraft.core.component.DataComponentPredicate; .. 27 import net.minecraft.core.component.DataComponents; 27 import net.minecraft.core.registries.BuiltInRegistries; 28 import net.minecraft.core.registries.BuiltInRegistries; 28 import net.minecraft.core.registries.Registries; 29 import net.minecraft.core.registries.Registries; 29 import net.minecraft.resources.ResourceKey; 30 import net.minecraft.resources.ResourceKey; net/minecraft/data/loot/EntityLootSubProvider.java --- 2/3 --- Java 92 NestedLootTable.lootTableReference($$2.getValue()) 93 NestedLootTable.lootTableReference($$2.getValue()) 93 .when( 94 .when( 94 LootItemEntityPropertyCondition.hasProperties( 95 LootItemEntityPropertyCondition.hasProperties( 95 LootContext.EntityTarget.THIS, EntityPredicate.Bui 96 LootContext.EntityTarget.THIS, .. lder.entity().subPredicate(SheepPredicate.hasWool($$2.getKey())) .. .. 97 EntityPredicate.Builder.entity() .. 98 .components(DataComponentPredicate.expect(DataC .. .. omponents.SHEEP_COLOR, $$2.getKey())) .. 99 .subPredicate(SheepPredicate.hasWool()) 96 ) 100 ) 97 ) 101 ) 98 ); 102 ); net/minecraft/data/loot/EntityLootSubProvider.java --- 3/3 --- Java 160 .source( 164 .source( 161 EntityPredicate.Builder.entity() 165 EntityPredicate.Builder.entity() 162 .of($$0, EntityType.FROG) 166 .of($$0, EntityType.FROG) 163 .subPredicate(EntitySubPredicates.frogVariant(BuiltI 167 .components(DataComponentPredicate.expect(DataCompon ... nRegistries.FROG_VARIANT.getOrThrow($$1))) ... ents.FROG_VARIANT, BuiltInRegistries.FROG_VARIANT.getOrThrow($$1))) 164 ) 168 ) 165 ); 169 ); 166 } 170 } net/minecraft/client/model/geom/builders/PartDefinition.java --- Java 39 } 39 } 40 40 41 public PartDefinition clearChild(String $$0) { 41 public PartDefinition clearChild(String $$0) { .. 42 PartDefinition $$1 = this.children.get($$0); .. 43 if ($$1 == null) { .. 44 throw new IllegalArgumentException("No child with name: " + $$ .. .. 0); .. 45 } else { 42 return this.addOrReplaceChild($$0, CubeListBuilder.create(), Part 46 return this.addOrReplaceChild($$0, CubeListBuilder.create(), $ .. Pose.ZERO); .. $1.partPose); .. 47 } 43 } 48 } 44 49 45 public ModelPart bake(int $$0, int $$1) { 50 public ModelPart bake(int $$0, int $$1) { net/minecraft/client/model/geom/builders/MeshDefinition.java --- Java 26 return new MeshDefinition(this.root.transformed($$0)); 26 return new MeshDefinition(this.root.transformed($$0)); 27 } 27 } .. 28 .. 29 public MeshDefinition apply(MeshTransformer $$0) { .. 30 return $$0.apply(this); .. 31 } 28 } 32 } net/minecraft/data/loot/packs/VanillaShearingLoot.java --- 1/2 --- Java 2 2 3 import java.util.function.BiConsumer; 3 import java.util.function.BiConsumer; 4 import net.minecraft.advancements.critereon.EntityPredicate; 4 import net.minecraft.advancements.critereon.EntityPredicate; 5 import net.minecraft.advancements.critereon.EntitySubPredicates; . 6 import net.minecraft.core.HolderLookup; 5 import net.minecraft.core.HolderLookup; . 6 import net.minecraft.core.component.DataComponentPredicate; . 7 import net.minecraft.core.component.DataComponents; 7 import net.minecraft.data.loot.EntityLootSubProvider; 8 import net.minecraft.data.loot.EntityLootSubProvider; 8 import net.minecraft.data.loot.LootTableSubProvider; 9 import net.minecraft.data.loot.LootTableSubProvider; 9 import net.minecraft.resources.ResourceKey; 10 import net.minecraft.resources.ResourceKey; net/minecraft/data/loot/packs/VanillaShearingLoot.java --- 2/2 --- Java 55 .when( 56 .when( 56 LootItemEntityPropertyCondition.hasProper 57 LootItemEntityPropertyCondition.hasProper .. ties( .. ties( 57 LootContext.EntityTarget.THIS, 58 LootContext.EntityTarget.THIS, 58 EntityPredicate.Builder.entity().subPr 59 EntityPredicate.Builder.entity() .. edicate(EntitySubPredicates.MOOSHROOM.createPredicate(MushroomCow.Varia .. .. nt.RED)) .. .. 60 .components(DataComponentPredicate. .. .. expect(DataComponents.MOOSHROOM_VARIANT, MushroomCow.Variant.RED)) 59 ) 61 ) 60 ), 62 ), 61 NestedLootTable.lootTableReference(BuiltInLootT 63 NestedLootTable.lootTableReference(BuiltInLootT .. ables.SHEAR_BROWN_MOOSHROOM) .. ables.SHEAR_BROWN_MOOSHROOM) 62 .when( 64 .when( 63 LootItemEntityPropertyCondition.hasProper 65 LootItemEntityPropertyCondition.hasProper .. ties( .. ties( 64 LootContext.EntityTarget.THIS, 66 LootContext.EntityTarget.THIS, 65 EntityPredicate.Builder.entity().subPr 67 EntityPredicate.Builder.entity() .. edicate(EntitySubPredicates.MOOSHROOM.createPredicate(MushroomCow.Varia .. .. nt.BROWN)) .. .. 68 .components(DataComponentPredicate. .. .. expect(DataComponents.MOOSHROOM_VARIANT, MushroomCow.Variant.BROWN)) 66 ) 69 ) 67 ) 70 ) 68 ) 71 ) net/minecraft/client/model/geom/builders/MeshTransformer.java --- Java 6 @FunctionalInterface 6 @FunctionalInterface 7 @Environment(EnvType.CLIENT) 7 @Environment(EnvType.CLIENT) 8 public interface MeshTransformer { 8 public interface MeshTransformer { . 9 MeshTransformer IDENTITY = $$0 -> $$0; . 10 9 static MeshTransformer scaling(float $$0) { 11 static MeshTransformer scaling(float $$0) { 10 float $$1 = 24.016F * (1.0F - $$0); 12 float $$1 = 24.016F * (1.0F - $$0); net/minecraft/client/renderer/blockentity/BeaconRenderer.java --- 1/3 --- Java 12 import net.minecraft.resources.ResourceLocation; 12 import net.minecraft.resources.ResourceLocation; 13 import net.minecraft.util.ARGB; 13 import net.minecraft.util.ARGB; 14 import net.minecraft.util.Mth; 14 import net.minecraft.util.Mth; 15 import net.minecraft.world.level.block.entity.BeaconBlockEntity; 15 import net.minecraft.world.level.block.entity.BeaconBeamOwner; .. 16 import net.minecraft.world.level.block.entity.BlockEntity; 16 import net.minecraft.world.phys.Vec3; 17 import net.minecraft.world.phys.Vec3; 17 18 18 @Environment(EnvType.CLIENT) 19 @Environment(EnvType.CLIENT) 19 public class BeaconRenderer implements BlockEntityRenderer<BeaconBlockE 20 public class BeaconRenderer<T extends BlockEntity & BeaconBeamOwner> im .. ntity> { .. plements BlockEntityRenderer<T> { 20 public static final ResourceLocation BEAM_LOCATION = ResourceLocatio 21 public static final ResourceLocation BEAM_LOCATION = ResourceLocatio .. n.withDefaultNamespace("textures/entity/beacon_beam.png"); .. n.withDefaultNamespace("textures/entity/beacon_beam.png"); 21 public static final int MAX_RENDER_Y = 1024; 22 public static final int MAX_RENDER_Y = 1024; 22 23 23 public BeaconRenderer(BlockEntityRendererProvider.Context $$0) { 24 public BeaconRenderer(BlockEntityRendererProvider.Context $$0) { 24 } 25 } 25 26 .. 27 @Override 26 public void render(BeaconBlockEntity $$0, float $$1, PoseStack $$2, 28 public void render(T $$0, float $$1, PoseStack $$2, MultiBufferSourc .. MultiBufferSource $$3, int $$4, int $$5) { .. e $$3, int $$4, int $$5) { 27 long $$6 = $$0.getLevel().getGameTime(); 29 long $$6 = $$0.getLevel().getGameTime(); 28 List<BeaconBlockEntity.BeaconBeamSection> $$7 = $$0.getBeamSectio 30 List<BeaconBeamOwner.Section> $$7 = $$0.getBeamSections(); .. ns(); .. 29 int $$8 = 0; 31 int $$8 = 0; 30 32 31 for (int $$9 = 0; $$9 < $$7.size(); $$9++) { 33 for (int $$9 = 0; $$9 < $$7.size(); $$9++) { 32 BeaconBlockEntity.BeaconBeamSection $$10 = $$7.get($$9); 34 BeaconBeamOwner.Section $$10 = $$7.get($$9); 33 renderBeaconBeam($$2, $$3, $$1, $$6, $$8, $$9 == $$7.size() - 35 renderBeaconBeam($$2, $$3, $$1, $$6, $$8, $$9 == $$7.size() - .. 1 ? 1024 : $$10.getHeight(), $$10.getColor()); .. 1 ? 1024 : $$10.getHeight(), $$10.getColor()); 34 $$8 += $$10.getHeight(); 36 $$8 += $$10.getHeight(); 35 } 37 } net/minecraft/client/renderer/blockentity/BeaconRenderer.java --- 2/3 --- Java 148 .setNormal($$0, 0.0F, 1.0F, 0.0F); 150 .setNormal($$0, 0.0F, 1.0F, 0.0F); 149 } 151 } 150 152 ... 153 @Override 151 public boolean shouldRenderOffScreen(BeaconBlockEntity $$0) { 154 public boolean shouldRenderOffScreen(T $$0) { 152 return true; 155 return true; 153 } 156 } 154 157 net/minecraft/client/renderer/blockentity/BeaconRenderer.java --- 3/3 --- Java 157 return 256; 160 return 256; 158 } 161 } 159 162 ... 163 @Override 160 public boolean shouldRender(BeaconBlockEntity $$0, Vec3 $$1) { 164 public boolean shouldRender(T $$0, Vec3 $$1) { 161 return Vec3.atCenterOf($$0.getBlockPos()).multiply(1.0, 0.0, 1.0 165 return Vec3.atCenterOf($$0.getBlockPos()).multiply(1.0, 0.0, 1.0 ... ).closerThan($$1.multiply(1.0, 0.0, 1.0), (double)this.getViewDistance ... ).closerThan($$1.multiply(1.0, 0.0, 1.0), (double)this.getViewDistance ... ()); ... ()); 162 } 166 } 163 } 167 } net/minecraft/client/renderer/entity/TropicalFishRenderer.java --- 1/2 --- Java 29 } 29 } 30 30 31 public ResourceLocation getTextureLocation(TropicalFishRenderState $ 31 public ResourceLocation getTextureLocation(TropicalFishRenderState $ .. $0) { .. $0) { 32 return switch ($$0.variant.base()) { 32 return switch ($$0.pattern.base()) { 33 case SMALL -> MODEL_A_TEXTURE; 33 case SMALL -> MODEL_A_TEXTURE; 34 case LARGE -> MODEL_B_TEXTURE; 34 case LARGE -> MODEL_B_TEXTURE; 35 }; 35 }; net/minecraft/client/renderer/entity/TropicalFishRenderer.java --- 2/2 --- Java 41 41 42 public void extractRenderState(TropicalFish $$0, TropicalFishRenderS 42 public void extractRenderState(TropicalFish $$0, TropicalFishRenderS .. tate $$1, float $$2) { .. tate $$1, float $$2) { 43 super.extractRenderState($$0, $$1, $$2); 43 super.extractRenderState($$0, $$1, $$2); 44 $$1.variant = $$0.getVariant(); 44 $$1.pattern = $$0.getPattern(); 45 $$1.baseColor = $$0.getBaseColor().getTextureDiffuseColor(); 45 $$1.baseColor = $$0.getBaseColor().getTextureDiffuseColor(); 46 $$1.patternColor = $$0.getPatternColor().getTextureDiffuseColor() 46 $$1.patternColor = $$0.getPatternColor().getTextureDiffuseColor() .. ; .. ; 47 } 47 } 48 48 49 public void render(TropicalFishRenderState $$0, PoseStack $$1, Multi 49 public void render(TropicalFishRenderState $$0, PoseStack $$1, Multi .. BufferSource $$2, int $$3) { .. BufferSource $$2, int $$3) { 50 this.model = switch ($$0.variant.base()) { 50 this.model = switch ($$0.pattern.base()) { 51 case SMALL -> this.modelA; 51 case SMALL -> this.modelA; 52 case LARGE -> this.modelB; 52 case LARGE -> this.modelB; 53 }; 53 }; net/minecraft/world/level/block/PointedDripstoneBlock.java --- 1/2 --- Java 59 private static final float STALACTITE_DAMAGE_PER_FALL_DISTANCE_AND_S 59 private static final float STALACTITE_DAMAGE_PER_FALL_DISTANCE_AND_S .. IZE = 1.0F; .. IZE = 1.0F; 60 private static final int STALACTITE_MAX_DAMAGE = 40; 60 private static final int STALACTITE_MAX_DAMAGE = 40; 61 private static final int MAX_STALACTITE_HEIGHT_FOR_DAMAGE_CALCULATIO 61 private static final int MAX_STALACTITE_HEIGHT_FOR_DAMAGE_CALCULATIO .. N = 6; .. N = 6; 62 private static final float STALAGMITE_FALL_DISTANCE_OFFSET = 2.0F; 62 private static final float STALAGMITE_FALL_DISTANCE_OFFSET = 2.5F; 63 private static final int STALAGMITE_FALL_DAMAGE_MODIFIER = 2; 63 private static final int STALAGMITE_FALL_DAMAGE_MODIFIER = 2; 64 private static final float AVERAGE_DAYS_PER_GROWTH = 5.0F; 64 private static final float AVERAGE_DAYS_PER_GROWTH = 5.0F; 65 private static final float GROWTH_PROBABILITY_PER_RANDOM_TICK = 0.01 65 private static final float GROWTH_PROBABILITY_PER_RANDOM_TICK = 0.01 1377778F; 1377778F; net/minecraft/world/level/block/PointedDripstoneBlock.java --- 2/2 --- Java 146 } 146 } 147 147 148 @Override 148 @Override 149 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity 149 public void fallOn(Level $$0, BlockState $$1, BlockPos $$2, Entity ... $$3, float $$4) { ... $$3, double $$4) { 150 if ($$1.getValue(TIP_DIRECTION) == Direction.UP && $$1.getValue( 150 if ($$1.getValue(TIP_DIRECTION) == Direction.UP && $$1.getValue( ... THICKNESS) == DripstoneThickness.TIP) { ... THICKNESS) == DripstoneThickness.TIP) { 151 $$3.causeFallDamage($$4 + 2.0F, 2.0F, $$0.damageSources().sta 151 $$3.causeFallDamage($$4 + 2.5, 2.0F, $$0.damageSources().stal ... lagmite()); ... agmite()); 152 } else { 152 } else { 153 super.fallOn($$0, $$1, $$2, $$3, $$4); 153 super.fallOn($$0, $$1, $$2, $$3, $$4); 154 } 154 } net/minecraft/network/chat/HoverEvent.java --- Java 152 } 152 } 153 } 153 } 154 154 155 public static record ShowText(Component text) implements HoverEvent 155 public static record ShowText(Component value) implements HoverEven ... { ... t { 156 public static final MapCodec<HoverEvent.ShowText> CODEC = Record 156 public static final MapCodec<HoverEvent.ShowText> CODEC = Record ... CodecBuilder.mapCodec( ... CodecBuilder.mapCodec( 157 $$0 -> $$0.group(ComponentSerialization.CODEC.fieldOf("text") 157 $$0 -> $$0.group(ComponentSerialization.CODEC.fieldOf("value" ... .forGetter(HoverEvent.ShowText::text)).apply($$0, HoverEvent.ShowText: ... ).forGetter(HoverEvent.ShowText::value)).apply($$0, HoverEvent.ShowTex ... :new) ... t::new) 158 ); 158 ); 159 159 160 @Override 160 @Override net/minecraft/world/level/material/Fluid.java --- 1/2 --- Java 18 import net.minecraft.world.level.LevelReader; 18 import net.minecraft.world.level.LevelReader; 19 import net.minecraft.world.level.block.state.BlockState; 19 import net.minecraft.world.level.block.state.BlockState; 20 import net.minecraft.world.level.block.state.StateDefinition; 20 import net.minecraft.world.level.block.state.StateDefinition; .. 21 import net.minecraft.world.phys.AABB; 21 import net.minecraft.world.phys.Vec3; 22 import net.minecraft.world.phys.Vec3; 22 import net.minecraft.world.phys.shapes.VoxelShape; 23 import net.minecraft.world.phys.shapes.VoxelShape; 23 24 net/minecraft/world/level/material/Fluid.java --- 2/2 --- Java 102 103 103 public abstract VoxelShape getShape(FluidState var1, BlockGetter va 104 public abstract VoxelShape getShape(FluidState var1, BlockGetter va ... r2, BlockPos var3); ... r2, BlockPos var3); ... 105 ... 106 @Nullable ... 107 public AABB getAABB(FluidState $$0, BlockGetter $$1, BlockPos $$2) ... ... { ... 108 if (this.isEmpty()) { ... 109 return null; ... 110 } else { ... 111 float $$3 = $$0.getHeight($$1, $$2); ... 112 return new AABB( ... 113 (double)$$2.getX(), (double)$$2.getY(), (double)$$2.getZ() ... ... , (double)$$2.getX() + 1.0, (double)((float)$$2.getY() + $$3), (double ... ... )$$2.getZ() + 1.0 ... 114 ); ... 115 } ... 116 } 104 117 105 public Optional<SoundEvent> getPickupSound() { 118 public Optional<SoundEvent> getPickupSound() { 106 return Optional.empty(); 119 return Optional.empty(); net/minecraft/world/entity/npc/VillagerData.java --- Java 2 2 3 import com.mojang.serialization.Codec; 3 import com.mojang.serialization.Codec; 4 import com.mojang.serialization.codecs.RecordCodecBuilder; 4 import com.mojang.serialization.codecs.RecordCodecBuilder; . 5 import net.minecraft.core.Holder; . 6 import net.minecraft.core.HolderGetter; 5 import net.minecraft.core.registries.BuiltInRegistries; 7 import net.minecraft.core.registries.BuiltInRegistries; 6 import net.minecraft.core.registries.Registries; 8 import net.minecraft.core.registries.Registries; 7 import net.minecraft.network.RegistryFriendlyByteBuf; 9 import net.minecraft.network.RegistryFriendlyByteBuf; 8 import net.minecraft.network.codec.ByteBufCodecs; 10 import net.minecraft.network.codec.ByteBufCodecs; 9 import net.minecraft.network.codec.StreamCodec; 11 import net.minecraft.network.codec.StreamCodec; . 12 import net.minecraft.resources.ResourceKey; 10 13 11 public class VillagerData { 14 public record VillagerData(Holder<VillagerType> type, Holder<VillagerPr .. .. ofession> profession, int level) { 12 public static final int MIN_VILLAGER_LEVEL = 1; 15 public static final int MIN_VILLAGER_LEVEL = 1; 13 public static final int MAX_VILLAGER_LEVEL = 5; 16 public static final int MAX_VILLAGER_LEVEL = 5; 14 private static final int[] NEXT_LEVEL_XP_THRESHOLDS = new int[]{0, 1 17 private static final int[] NEXT_LEVEL_XP_THRESHOLDS = new int[]{0, 1 .. 0, 70, 150, 250}; .. 0, 70, 150, 250}; 15 public static final Codec<VillagerData> CODEC = RecordCodecBuilder.c 18 public static final Codec<VillagerData> CODEC = RecordCodecBuilder.c .. reate( .. reate( 16 $$0 -> $$0.group( 19 $$0 -> $$0.group( 17 BuiltInRegistries.VILLAGER_TYPE.byNameCodec().fieldOf("t 20 BuiltInRegistries.VILLAGER_TYPE .. ype").orElseGet(() -> VillagerType.PLAINS).forGetter($$0x -> $$0x.type) .. .. , .. .. 21 .holderByNameCodec() .. 22 .fieldOf("type") .. 23 .orElseGet(() -> BuiltInRegistries.VILLAGER_TYPE.getO .. .. rThrow(VillagerType.PLAINS)) .. 24 .forGetter($$0x -> $$0x.type), 18 BuiltInRegistries.VILLAGER_PROFESSION 25 BuiltInRegistries.VILLAGER_PROFESSION 19 .byNameCodec() 26 .holderByNameCodec() 20 .fieldOf("profession") 27 .fieldOf("profession") 21 .orElseGet(() -> VillagerProfession.NONE) 28 .orElseGet(() -> BuiltInRegistries.VILLAGER_PROFESSIO .. .. N.getOrThrow(VillagerProfession.NONE)) 22 .forGetter($$0x -> $$0x.profession), 29 .forGetter($$0x -> $$0x.profession), 23 Codec.INT.fieldOf("level").orElse(1).forGetter($$0x -> $ 30 Codec.INT.fieldOf("level").orElse(1).forGetter($$0x -> $ .. $0x.level) .. $0x.level) 24 ) 31 ) 25 .apply($$0, VillagerData::new) 32 .apply($$0, VillagerData::new) 26 ); 33 ); 27 public static final StreamCodec<RegistryFriendlyByteBuf, VillagerDat 34 public static final StreamCodec<RegistryFriendlyByteBuf, VillagerDat .. a> STREAM_CODEC = StreamCodec.composite( .. a> STREAM_CODEC = StreamCodec.composite( 28 ByteBufCodecs.registry(Registries.VILLAGER_TYPE), 35 ByteBufCodecs.holderRegistry(Registries.VILLAGER_TYPE), 29 $$0 -> $$0.type, 36 VillagerData::type, 30 ByteBufCodecs.registry(Registries.VILLAGER_PROFESSION), 37 ByteBufCodecs.holderRegistry(Registries.VILLAGER_PROFESSION), 31 $$0 -> $$0.profession, 38 VillagerData::profession, 32 ByteBufCodecs.VAR_INT, 39 ByteBufCodecs.VAR_INT, 33 $$0 -> $$0.level, 40 VillagerData::level, 34 VillagerData::new 41 VillagerData::new 35 ); 42 ); 36 private final VillagerType type; .. 37 private final VillagerProfession profession; .. 38 private final int level; .. 39 43 40 public VillagerData(VillagerType $$0, VillagerProfession $$1, int $$ 44 public VillagerData(Holder<VillagerType> type, Holder<VillagerProfes .. 2) { .. sion> profession, int level) { .. 45 level = Math.max(1, level); 41 this.type = $$0; 46 this.type = type; 42 this.profession = $$1; 47 this.profession = profession; 43 this.level = Math.max(1, $$2); 48 this.level = level; 44 } 49 } 45 .. 46 public VillagerType getType() { .. 47 return this.type; .. 48 } .. 49 50 50 public VillagerProfession getProfession() { 51 public VillagerData withType(Holder<VillagerType> $$0) { 51 return this.profession; 52 return new VillagerData($$0, this.profession, this.level); 52 } 53 } 53 54 54 public int getLevel() { 55 public VillagerData withType(HolderGetter.Provider $$0, ResourceKey< .. .. VillagerType> $$1) { 55 return this.level; 56 return this.withType($$0.getOrThrow($$1)); 56 } 57 } 57 58 58 public VillagerData setType(VillagerType $$0) { 59 public VillagerData withProfession(Holder<VillagerProfession> $$0) { 59 return new VillagerData($$0, this.profession, this.level); 60 return new VillagerData(this.type, $$0, this.level); 60 } 61 } 61 62 62 public VillagerData setProfession(VillagerProfession $$0) { 63 public VillagerData withProfession(HolderGetter.Provider $$0, Resour .. .. ceKey<VillagerProfession> $$1) { 63 return new VillagerData(this.type, $$0, this.level); 64 return this.withProfession($$0.getOrThrow($$1)); 64 } 65 } 65 66 66 public VillagerData setLevel(int $$0) { 67 public VillagerData withLevel(int $$0) { 67 return new VillagerData(this.type, this.profession, $$0); 68 return new VillagerData(this.type, this.profession, $$0); 68 } 69 } 69 70 net/minecraft/client/renderer/entity/UndeadHorseRenderer.java --- 1/2 --- Java 3 import net.fabricmc.api.EnvType; 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 4 import net.fabricmc.api.Environment; 5 import net.minecraft.client.model.AbstractEquineModel; 5 import net.minecraft.client.model.AbstractEquineModel; . 6 import net.minecraft.client.model.EquineSaddleModel; 6 import net.minecraft.client.model.HorseModel; 7 import net.minecraft.client.model.HorseModel; 7 import net.minecraft.client.model.geom.ModelLayerLocation; 8 import net.minecraft.client.model.geom.ModelLayerLocation; . 9 import net.minecraft.client.model.geom.ModelLayers; . 10 import net.minecraft.client.renderer.entity.layers.SimpleEquipmentLayer . .. ; 8 import net.minecraft.client.renderer.entity.state.EquineRenderState; 11 import net.minecraft.client.renderer.entity.state.EquineRenderState; . 12 import net.minecraft.client.resources.model.EquipmentClientInfo; 9 import net.minecraft.resources.ResourceLocation; 13 import net.minecraft.resources.ResourceLocation; 10 import net.minecraft.world.entity.animal.horse.AbstractHorse; 14 import net.minecraft.world.entity.animal.horse.AbstractHorse; 11 15 12 @Environment(EnvType.CLIENT) 16 @Environment(EnvType.CLIENT) 13 public class UndeadHorseRenderer extends AbstractHorseRenderer<Abstract 17 public class UndeadHorseRenderer extends AbstractHorseRenderer<Abstract .. Horse, EquineRenderState, AbstractEquineModel<EquineRenderState>> { .. Horse, EquineRenderState, AbstractEquineModel<EquineRenderState>> { 14 private static final ResourceLocation ZOMBIE_TEXTURE = ResourceLocat .. .. ion.withDefaultNamespace("textures/entity/horse/horse_zombie.png"); .. 15 private static final ResourceLocation SKELETON_TEXTURE = ResourceLoc .. .. ation.withDefaultNamespace("textures/entity/horse/horse_skeleton.png"); .. 16 private final ResourceLocation texture; 18 private final ResourceLocation texture; 17 19 18 public UndeadHorseRenderer(EntityRendererProvider.Context $$0, Model 20 public UndeadHorseRenderer(EntityRendererProvider.Context $$0, Undea .. LayerLocation $$1, ModelLayerLocation $$2, boolean $$3) { .. dHorseRenderer.Type $$1) { 19 super($$0, new HorseModel($$0.bakeLayer($$1)), new HorseModel($$0 21 super($$0, new HorseModel($$0.bakeLayer($$1.model)), new HorseMod .. .bakeLayer($$2))); .. el($$0.bakeLayer($$1.babyModel))); 20 this.texture = $$3 ? SKELETON_TEXTURE : ZOMBIE_TEXTURE; 22 this.texture = $$1.texture; .. 23 this.addLayer( .. 24 new SimpleEquipmentLayer<>( .. 25 this, .. 26 $$0.getEquipmentRenderer(), .. 27 $$1.saddleLayer, .. 28 $$0x -> $$0x.saddle, .. 29 new EquineSaddleModel($$0.bakeLayer($$1.saddleModel)), .. 30 new EquineSaddleModel($$0.bakeLayer($$1.babySaddleModel)) .. 31 ) .. 32 ); 21 } 33 } 22 34 23 public ResourceLocation getTextureLocation(EquineRenderState $$0) { 35 public ResourceLocation getTextureLocation(EquineRenderState $$0) { net/minecraft/client/renderer/entity/UndeadHorseRenderer.java --- 2/2 --- Java 28 return new EquineRenderState(); 40 return new EquineRenderState(); 29 } 41 } .. 42 .. 43 @Environment(EnvType.CLIENT) .. 44 public static enum Type { .. 45 SKELETON( .. 46 ResourceLocation.withDefaultNamespace("textures/entity/horse/h .. .. orse_skeleton.png"), .. 47 ModelLayers.SKELETON_HORSE, .. 48 ModelLayers.SKELETON_HORSE_BABY, .. 49 EquipmentClientInfo.LayerType.SKELETON_HORSE_SADDLE, .. 50 ModelLayers.SKELETON_HORSE_SADDLE, .. 51 ModelLayers.SKELETON_HORSE_BABY_SADDLE .. 52 ), .. 53 ZOMBIE( .. 54 ResourceLocation.withDefaultNamespace("textures/entity/horse/h .. .. orse_zombie.png"), .. 55 ModelLayers.ZOMBIE_HORSE, .. 56 ModelLayers.ZOMBIE_HORSE_BABY, .. 57 EquipmentClientInfo.LayerType.ZOMBIE_HORSE_SADDLE, .. 58 ModelLayers.ZOMBIE_HORSE_SADDLE, .. 59 ModelLayers.ZOMBIE_HORSE_BABY_SADDLE .. 60 ); .. 61 .. 62 final ResourceLocation texture; .. 63 final ModelLayerLocation model; .. 64 final ModelLayerLocation babyModel; .. 65 final EquipmentClientInfo.LayerType saddleLayer; .. 66 final ModelLayerLocation saddleModel; .. 67 final ModelLayerLocation babySaddleModel; .. 68 .. 69 private Type( .. 70 final ResourceLocation $$0, .. 71 final ModelLayerLocation $$1, .. 72 final ModelLayerLocation $$2, .. 73 final EquipmentClientInfo.LayerType $$3, .. 74 final ModelLayerLocation $$4, .. 75 final ModelLayerLocation $$5 .. 76 ) { .. 77 this.texture = $$0; .. 78 this.model = $$1; .. 79 this.babyModel = $$2; .. 80 this.saddleLayer = $$3; .. 81 this.saddleModel = $$4; .. 82 this.babySaddleModel = $$5; .. 83 } .. 84 } 30 } 85 } net/minecraft/world/entity/vehicle/OldMinecartBehavior.java --- Java 400 400 401 @Override 401 @Override 402 public Vec3 getKnownMovement(Vec3 $$0) { 402 public Vec3 getKnownMovement(Vec3 $$0) { 403 return new Vec3(Mth.clamp($$0.x, -0.4, 0.4), $$0.y, Mth.clamp($$ 403 return !Double.isNaN($$0.x) && !Double.isNaN($$0.y) && !Double.i ... 0.z, -0.4, 0.4)); ... sNaN($$0.z) ... 404 ? new Vec3(Mth.clamp($$0.x, -0.4, 0.4), $$0.y, Mth.clamp($$0. ... ... z, -0.4, 0.4)) ... 405 : Vec3.ZERO; 404 } 406 } 405 407 406 @Override 408 @Override net/minecraft/client/renderer/blockentity/BlockEntityRenderers.java --- Java 45 register(BlockEntityType.BEACON, BeaconRenderer::new); 45 register(BlockEntityType.BEACON, BeaconRenderer::new); 46 register(BlockEntityType.SKULL, SkullBlockRenderer::new); 46 register(BlockEntityType.SKULL, SkullBlockRenderer::new); 47 register(BlockEntityType.BANNER, BannerRenderer::new); 47 register(BlockEntityType.BANNER, BannerRenderer::new); 48 register(BlockEntityType.STRUCTURE_BLOCK, StructureBlockRenderer: 48 register(BlockEntityType.STRUCTURE_BLOCK, BlockEntityWithBounding .. :new); .. BoxRenderer::new); .. 49 register(BlockEntityType.TEST_INSTANCE_BLOCK, TestInstanceRendere .. .. r::new); 49 register(BlockEntityType.SHULKER_BOX, ShulkerBoxRenderer::new); 50 register(BlockEntityType.SHULKER_BOX, ShulkerBoxRenderer::new); 50 register(BlockEntityType.BED, BedRenderer::new); 51 register(BlockEntityType.BED, BedRenderer::new); 51 register(BlockEntityType.CONDUIT, ConduitRenderer::new); 52 register(BlockEntityType.CONDUIT, ConduitRenderer::new); net/minecraft/client/renderer/blockentity/TestInstanceRenderer.java --- Java 1 package net.minecraft.client.renderer.blockentity; 2 3 import com.mojang.blaze3d.vertex.PoseStack; 4 import net.fabricmc.api.EnvType; 5 import net.fabricmc.api.Environment; 6 import net.minecraft.client.renderer.MultiBufferSource; 7 import net.minecraft.world.level.block.entity.TestInstanceBlockEntity; 8 import net.minecraft.world.phys.Vec3; 9 10 @Environment(EnvType.CLIENT) 11 public class TestInstanceRenderer implements BlockEntityRenderer<TestInstanceBlockEntity> { 12 private final BeaconRenderer<TestInstanceBlockEntity> beacon; 13 private final BlockEntityWithBoundingBoxRenderer<TestInstanceBlockEntity> box; 14 15 public TestInstanceRenderer(BlockEntityRendererProvider.Context $$0) { 16 this.beacon = new BeaconRenderer<>($$0); 17 this.box = new BlockEntityWithBoundingBoxRenderer<>($$0); 18 } 19 20 public void render(TestInstanceBlockEntity $$0, float $$1, PoseStack $$2, MultiBufferSource $$3, int $$4, int $$5) { 21 this.beacon.render($$0, $$1, $$2, $$3, $$4, $$5); 22 this.box.render($$0, $$1, $$2, $$3, $$4, $$5); 23 } 24 25 public boolean shouldRenderOffScreen(TestInstanceBlockEntity $$0) { 26 return this.beacon.shouldRenderOffScreen($$0) || this.box.shouldRenderOffScreen($$0); 27 } 28 29 @Override 30 public int getViewDistance() { 31 return Math.max(this.beacon.getViewDistance(), this.box.getViewDistance()); 32 } 33 34 public boolean shouldRender(TestInstanceBlockEntity $$0, Vec3 $$1) { 35 return this.beacon.shouldRender($$0, $$1) || this.box.shouldRender($$0, $$1); 36 } 37 } 38 net/minecraft/util/datafix/fixes/SaddleEquipmentSlotFix.java --- Java 1 package net.minecraft.util.datafix.fixes; 2 3 import com.mojang.datafixers.DSL; 4 import com.mojang.datafixers.DataFix; 5 import com.mojang.datafixers.OpticFinder; 6 import com.mojang.datafixers.TypeRewriteRule; 7 import com.mojang.datafixers.Typed; 8 import com.mojang.datafixers.schemas.Schema; 9 import com.mojang.datafixers.types.Type; 10 import com.mojang.datafixers.types.templates.TaggedChoice.TaggedChoiceType; 11 import com.mojang.datafixers.util.Pair; 12 import com.mojang.serialization.Dynamic; 13 import java.util.Set; 14 import net.minecraft.Util; 15 import net.minecraft.util.datafix.ExtraDataFixUtils; 16 import net.minecraft.util.datafix.schemas.NamespacedSchema; 17 18 public class SaddleEquipmentSlotFix extends DataFix { 19 private static final Set<String> ENTITIES_WITH_SADDLE_ITEM = Set.of( 20 "minecraft:horse", 21 "minecraft:skeleton_horse", 22 "minecraft:zombie_horse", 23 "minecraft:donkey", 24 "minecraft:mule", 25 "minecraft:camel", 26 "minecraft:llama", 27 "minecraft:trader_llama" 28 ); 29 private static final Set<String> ENTITIES_WITH_SADDLE_FLAG = Set.of("minecraft:pig", "minecraft:strider"); 30 private static final String SADDLE_FLAG = "Saddle"; 31 private static final String NEW_SADDLE = "saddle"; 32 33 public SaddleEquipmentSlotFix(Schema $$0) { 34 super($$0, true); 35 } 36 37 @Override 38 protected TypeRewriteRule makeRule() { 39 TaggedChoiceType<String> $$0 = (TaggedChoiceType<String>)this.getInputSchema().findChoiceType(References.ENTITY); 40 OpticFinder<Pair<String, ?>> $$1 = DSL.typeFinder($$0); 41 Type<?> $$2 = this.getInputSchema().getType(References.ENTITY); 42 Type<?> $$3 = this.getOutputSchema().getType(References.ENTITY); 43 Type<?> $$4 = ExtraDataFixUtils.patchSubType($$2, $$2, $$3); 44 return this.fixTypeEverywhereTyped( 45 "SaddleEquipmentSlotFix", 46 $$2, 47 $$3, 48 $$3x -> { 49 String $$4x = $$3x.getOptional($$1).map(Pair::getFirst).map(NamespacedSchema::ensureNamespaced).orElse(""); 50 Typed<?> $$5 = ExtraDataFixUtils.cast($$4, $$3x); 51 if (ENTITIES_WITH_SADDLE_ITEM.contains($$4x)) { 52 return Util.writeAndReadTypedOrThrow($$5, $$3, SaddleEquipmentSlotFix::fixEntityWithSaddleItem); 53 } else { 54 return ENTITIES_WITH_SADDLE_FLAG.contains($$4x) 55 ? Util.writeAndReadTypedOrThrow($$5, $$3, SaddleEquipmentSlotFix::fixEntityWithSaddleFlag) 56 : ExtraDataFixUtils.cast($$3, $$3x); 57 } 58 } 59 ); 60 } 61 62 private static Dynamic<?> fixEntityWithSaddleItem(Dynamic<?> $$0) { 63 return $$0.get("SaddleItem").result().isEmpty() ? $$0 : fixDropChances($$0.renameField("SaddleItem", "saddle")); 64 } 65 66 private static Dynamic<?> fixEntityWithSaddleFlag(Dynamic<?> $$0) { 67 boolean $$1 = $$0.get("Saddle").asBoolean(false); 68 $$0 = $$0.remove("Saddle"); 69 if (!$$1) { 70 return $$0; 71 } else { 72 Dynamic<?> $$2 = $$0.emptyMap().set("id", $$0.createString("minecraft:saddle")).set("count", $$0.createInt(1)); 73 return fixDropChances($$0.set("saddle", $$2)); 74 } 75 } 76 77 private static Dynamic<?> fixDropChances(Dynamic<?> $$0) { 78 Dynamic<?> $$1 = $$0.get("drop_chances").orElseEmptyMap().set("saddle", $$0.createFloat(2.0F)); 79 return $$0.set("drop_chances", $$1); 80 } 81 } 82 net/minecraft/client/renderer/entity/CamelRenderer.java --- 1/3 --- Java 3 import net.fabricmc.api.EnvType; 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 4 import net.fabricmc.api.Environment; 5 import net.minecraft.client.model.CamelModel; 5 import net.minecraft.client.model.CamelModel; . 6 import net.minecraft.client.model.CamelSaddleModel; 6 import net.minecraft.client.model.geom.ModelLayers; 7 import net.minecraft.client.model.geom.ModelLayers; . 8 import net.minecraft.client.renderer.entity.layers.SimpleEquipmentLayer . . ; 7 import net.minecraft.client.renderer.entity.state.CamelRenderState; 9 import net.minecraft.client.renderer.entity.state.CamelRenderState; . 10 import net.minecraft.client.resources.model.EquipmentClientInfo; 8 import net.minecraft.resources.ResourceLocation; 11 import net.minecraft.resources.ResourceLocation; . 12 import net.minecraft.world.entity.EquipmentSlot; 9 import net.minecraft.world.entity.animal.camel.Camel; 13 import net.minecraft.world.entity.animal.camel.Camel; 10 14 11 @Environment(EnvType.CLIENT) 15 @Environment(EnvType.CLIENT) net/minecraft/client/renderer/entity/CamelRenderer.java --- 2/3 --- Java 14 18 15 public CamelRenderer(EntityRendererProvider.Context $$0) { 19 public CamelRenderer(EntityRendererProvider.Context $$0) { 16 super($$0, new CamelModel($$0.bakeLayer(ModelLayers.CAMEL)), new 20 super($$0, new CamelModel($$0.bakeLayer(ModelLayers.CAMEL)), new .. CamelModel($$0.bakeLayer(ModelLayers.CAMEL_BABY)), 0.7F); .. CamelModel($$0.bakeLayer(ModelLayers.CAMEL_BABY)), 0.7F); .. 21 this.addLayer( .. 22 new SimpleEquipmentLayer<>( .. 23 this, .. 24 $$0.getEquipmentRenderer(), .. 25 EquipmentClientInfo.LayerType.CAMEL_SADDLE, .. 26 $$0x -> $$0x.saddle, .. 27 new CamelSaddleModel($$0.bakeLayer(ModelLayers.CAMEL_SADDLE .. .. )), .. 28 new CamelSaddleModel($$0.bakeLayer(ModelLayers.CAMEL_BABY_S .. .. ADDLE)) .. 29 ) .. 30 ); 17 } 31 } 18 32 19 public ResourceLocation getTextureLocation(CamelRenderState $$0) { 33 public ResourceLocation getTextureLocation(CamelRenderState $$0) { net/minecraft/client/renderer/entity/CamelRenderer.java --- 3/3 --- Java 26 40 27 public void extractRenderState(Camel $$0, CamelRenderState $$1, floa 41 public void extractRenderState(Camel $$0, CamelRenderState $$1, floa .. t $$2) { .. t $$2) { 28 super.extractRenderState($$0, $$1, $$2); 42 super.extractRenderState($$0, $$1, $$2); 29 $$1.isSaddled = $$0.isSaddled(); 43 $$1.saddle = $$0.getItemBySlot(EquipmentSlot.SADDLE).copy(); 30 $$1.isRidden = $$0.isVehicle(); 44 $$1.isRidden = $$0.isVehicle(); 31 $$1.jumpCooldown = Math.max((float)$$0.getJumpCooldown() - $$2, 0 45 $$1.jumpCooldown = Math.max((float)$$0.getJumpCooldown() - $$2, 0 .. .0F); .. .0F); 32 $$1.sitAnimationState.copyFrom($$0.sitAnimationState); 46 $$1.sitAnimationState.copyFrom($$0.sitAnimationState); net/minecraft/client/renderer/blockentity/StructureBlockRenderer.java --- Java 1 package net.minecraft.client.renderer.blockentity; 2 3 import com.mojang.blaze3d.vertex.PoseStack; 4 import com.mojang.blaze3d.vertex.VertexConsumer; 5 import net.fabricmc.api.EnvType; 6 import net.fabricmc.api.Environment; 7 import net.minecraft.client.Minecraft; 8 import net.minecraft.client.renderer.MultiBufferSource; 9 import net.minecraft.client.renderer.RenderType; 10 import net.minecraft.client.renderer.ShapeRenderer; 11 import net.minecraft.core.BlockPos; 12 import net.minecraft.core.Vec3i; 13 import net.minecraft.gametest.framework.StructureUtils; 14 import net.minecraft.world.level.BlockGetter; 15 import net.minecraft.world.level.block.Blocks; 16 import net.minecraft.world.level.block.entity.StructureBlockEntity; 17 import net.minecraft.world.level.block.state.BlockState; 18 import net.minecraft.world.level.block.state.properties.StructureMode; 19 import net.minecraft.world.phys.shapes.BitSetDiscreteVoxelShape; 20 import net.minecraft.world.phys.shapes.DiscreteVoxelShape; 21 22 @Environment(EnvType.CLIENT) 23 public class StructureBlockRenderer implements BlockEntityRenderer<StructureBlockEntity> { 24 public StructureBlockRenderer(BlockEntityRendererProvider.Context $$0) { 25 } 26 27 public void render(StructureBlockEntity $$0, float $$1, PoseStack $$2, MultiBufferSource $$3, int $$4, int $$5) { 28 if (Minecraft.getInstance().player.canUseGameMasterBlocks() || Minecraft.getInstance().player.isSpectator()) { 29 BlockPos $$6 = $$0.getStructurePos(); 30 Vec3i $$7 = $$0.getStructureSize(); 31 if ($$7.getX() >= 1 && $$7.getY() >= 1 && $$7.getZ() >= 1) { 32 if ($$0.getMode() == StructureMode.SAVE || $$0.getMode() == StructureMode.LOAD) { 33 double $$8 = (double)$$6.getX(); 34 double $$9 = (double)$$6.getZ(); 35 double $$10 = (double)$$6.getY(); 36 double $$11 = $$10 + (double)$$7.getY(); 37 double $$12; 38 double $$13; 39 switch ($$0.getMirror()) { 40 case LEFT_RIGHT: 41 $$12 = (double)$$7.getX(); 42 $$13 = (double)(-$$7.getZ()); 43 break; 44 case FRONT_BACK: 45 $$12 = (double)(-$$7.getX()); 46 $$13 = (double)$$7.getZ(); 47 break; 48 default: 49 $$12 = (double)$$7.getX(); 50 $$13 = (double)$$7.getZ(); 51 } 52 53 double $$30; 54 double $$31; 55 double $$32; 56 double $$33; 57 switch ($$0.getRotation()) { 58 case CLOCKWISE_90: 59 $$30 = $$13 < 0.0 ? $$8 : $$8 + 1.0; 60 $$31 = $$12 < 0.0 ? $$9 + 1.0 : $$9; 61 $$32 = $$30 - $$13; 62 $$33 = $$31 + $$12; 63 break; 64 case CLOCKWISE_180: 65 $$30 = $$12 < 0.0 ? $$8 : $$8 + 1.0; 66 $$31 = $$13 < 0.0 ? $$9 : $$9 + 1.0; 67 $$32 = $$30 - $$12; 68 $$33 = $$31 - $$13; 69 break; 70 case COUNTERCLOCKWISE_90: 71 $$30 = $$13 < 0.0 ? $$8 + 1.0 : $$8; 72 $$31 = $$12 < 0.0 ? $$9 : $$9 + 1.0; 73 $$32 = $$30 + $$13; 74 $$33 = $$31 - $$12; 75 break; 76 default: 77 $$30 = $$12 < 0.0 ? $$8 + 1.0 : $$8; 78 $$31 = $$13 < 0.0 ? $$9 + 1.0 : $$9; 79 $$32 = $$30 + $$12; 80 $$33 = $$31 + $$13; 81 } 82 83 float $$34 = 1.0F; 84 float $$35 = 0.9F; 85 float $$36 = 0.5F; 86 if ($$0.getMode() == StructureMode.SAVE || $$0.getShowBoundingBox()) { 87 VertexConsumer $$37 = $$3.getBuffer(RenderType.lines()); 88 ShapeRenderer.renderLineBox($$2, $$37, $$30, $$10, $$31, $$32, $$11, $$33, 0.9F, 0.9F, 0.9F, 1.0F, 0.5F, 0.5F, 0.5F); 89 } 90 91 if ($$0.getMode() == StructureMode.SAVE && $$0.getShowAir()) { 92 this.renderInvisibleBlocks($$0, $$3, $$2); 93 } 94 } 95 } 96 } 97 } 98 99 private void renderInvisibleBlocks(StructureBlockEntity $$0, MultiBufferSource $$1, PoseStack $$2) { 100 BlockGetter $$3 = $$0.getLevel(); 101 VertexConsumer $$4 = $$1.getBuffer(RenderType.lines()); 102 BlockPos $$5 = $$0.getBlockPos(); 103 BlockPos $$6 = StructureUtils.getStructureOrigin($$0); 104 105 for (BlockPos $$7 : BlockPos.betweenClosed($$6, $$6.offset($$0.getStructureSize()).offset(-1, -1, -1))) { 106 BlockState $$8 = $$3.getBlockState($$7); 107 boolean $$9 = $$8.isAir(); 108 boolean $$10 = $$8.is(Blocks.STRUCTURE_VOID); 109 boolean $$11 = $$8.is(Blocks.BARRIER); 110 boolean $$12 = $$8.is(Blocks.LIGHT); 111 boolean $$13 = $$10 || $$11 || $$12; 112 if ($$9 || $$13) { 113 float $$14 = $$9 ? 0.05F : 0.0F; 114 double $$15 = (double)((float)($$7.getX() - $$5.getX()) + 0.45F - $$14); 115 double $$16 = (double)((float)($$7.getY() - $$5.getY()) + 0.45F - $$14); 116 double $$17 = (double)((float)($$7.getZ() - $$5.getZ()) + 0.45F - $$14); 117 double $$18 = (double)((float)($$7.getX() - $$5.getX()) + 0.55F + $$14); 118 double $$19 = (double)((float)($$7.getY() - $$5.getY()) + 0.55F + $$14); 119 double $$20 = (double)((float)($$7.getZ() - $$5.getZ()) + 0.55F + $$14); 120 if ($$9) { 121 ShapeRenderer.renderLineBox($$2, $$4, $$15, $$16, $$17, $$18, $$19, $$20, 0.5F, 0.5F, 1.0F, 1.0F, 0.5F, 0.5F, 1.0F); 122 } else if ($$10) { 123 ShapeRenderer.renderLineBox($$2, $$4, $$15, $$16, $$17, $$18, $$19, $$20, 1.0F, 0.75F, 0.75F, 1.0F, 1.0F, 0.75F, 0.75F); 124 } else if ($$11) { 125 ShapeRenderer.renderLineBox($$2, $$4, $$15, $$16, $$17, $$18, $$19, $$20, 1.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.0F, 0.0F); 126 } else if ($$12) { 127 ShapeRenderer.renderLineBox($$2, $$4, $$15, $$16, $$17, $$18, $$19, $$20, 1.0F, 1.0F, 0.0F, 1.0F, 1.0F, 1.0F, 0.0F); 128 } 129 } 130 } 131 } 132 133 private void renderStructureVoids(StructureBlockEntity $$0, VertexConsumer $$1, PoseStack $$2) { 134 BlockGetter $$3 = $$0.getLevel(); 135 if ($$3 != null) { 136 BlockPos $$4 = $$0.getBlockPos(); 137 BlockPos $$5 = StructureUtils.getStructureOrigin($$0); 138 Vec3i $$6 = $$0.getStructureSize(); 139 DiscreteVoxelShape $$7 = new BitSetDiscreteVoxelShape($$6.getX(), $$6.getY(), $$6.getZ()); 140 141 for (BlockPos $$8 : BlockPos.betweenClosed($$5, $$5.offset($$6).offset(-1, -1, -1))) { 142 if ($$3.getBlockState($$8).is(Blocks.STRUCTURE_VOID)) { 143 $$7.fill($$8.getX() - $$5.getX(), $$8.getY() - $$5.getY(), $$8.getZ() - $$5.getZ()); 144 } 145 } 146 147 $$7.forAllFaces(($$4x, $$5x, $$6x, $$7x) -> { 148 float $$8x = 0.48F; 149 float $$9 = (float)($$5x + $$5.getX() - $$4.getX()) + 0.5F - 0.48F; 150 float $$10 = (float)($$6x + $$5.getY() - $$4.getY()) + 0.5F - 0.48F; 151 float $$11 = (float)($$7x + $$5.getZ() - $$4.getZ()) + 0.5F - 0.48F; 152 float $$12 = (float)($$5x + $$5.getX() - $$4.getX()) + 0.5F + 0.48F; 153 float $$13 = (float)($$6x + $$5.getY() - $$4.getY()) + 0.5F + 0.48F; 154 float $$14 = (float)($$7x + $$5.getZ() - $$4.getZ()) + 0.5F + 0.48F; 155 ShapeRenderer.renderFace($$2, $$1, $$4x, $$9, $$10, $$11, $$12, $$13, $$14, 0.75F, 0.75F, 1.0F, 0.2F); 156 }); 157 } 158 } 159 160 public boolean shouldRenderOffScreen(StructureBlockEntity $$0) { 161 return true; 162 } 163 164 @Override 165 public int getViewDistance() { 166 return 96; 167 } 168 } 169 net/minecraft/world/level/material/FluidState.java --- 1/2 --- Java 19 import net.minecraft.world.level.block.state.BlockState; 19 import net.minecraft.world.level.block.state.BlockState; 20 import net.minecraft.world.level.block.state.StateHolder; 20 import net.minecraft.world.level.block.state.StateHolder; 21 import net.minecraft.world.level.block.state.properties.Property; 21 import net.minecraft.world.level.block.state.properties.Property; .. 22 import net.minecraft.world.phys.AABB; 22 import net.minecraft.world.phys.Vec3; 23 import net.minecraft.world.phys.Vec3; 23 import net.minecraft.world.phys.shapes.VoxelShape; 24 import net.minecraft.world.phys.shapes.VoxelShape; 24 25 net/minecraft/world/level/material/FluidState.java --- 2/2 --- Java 126 return this.getType().getShape(this, $$0, $$1); 127 return this.getType().getShape(this, $$0, $$1); 127 } 128 } ... 129 ... 130 @Nullable ... 131 public AABB getAABB(BlockGetter $$0, BlockPos $$1) { ... 132 return this.getType().getAABB(this, $$0, $$1); ... 133 } 128 134 129 public Holder<Fluid> holder() { 135 public Holder<Fluid> holder() { 130 return this.owner.builtInRegistryHolder(); 136 return this.owner.builtInRegistryHolder(); net/minecraft/world/inventory/HorseInventoryMenu.java --- 1/4 --- Java 8 import net.minecraft.world.entity.player.Inventory; 8 import net.minecraft.world.entity.player.Inventory; 9 import net.minecraft.world.entity.player.Player; 9 import net.minecraft.world.entity.player.Player; 10 import net.minecraft.world.item.ItemStack; 10 import net.minecraft.world.item.ItemStack; 11 import net.minecraft.world.item.Items; .. 12 11 13 public class HorseInventoryMenu extends AbstractContainerMenu { 12 public class HorseInventoryMenu extends AbstractContainerMenu { 14 static final ResourceLocation SADDLE_SLOT_SPRITE = ResourceLocation. 13 private static final ResourceLocation SADDLE_SLOT_SPRITE = ResourceL .. withDefaultNamespace("container/slot/saddle"); .. ocation.withDefaultNamespace("container/slot/saddle"); 15 private static final ResourceLocation LLAMA_ARMOR_SLOT_SPRITE = Reso 14 private static final ResourceLocation LLAMA_ARMOR_SLOT_SPRITE = Reso .. urceLocation.withDefaultNamespace("container/slot/llama_armor"); .. urceLocation.withDefaultNamespace("container/slot/llama_armor"); 16 private static final ResourceLocation ARMOR_SLOT_SPRITE = ResourceLo 15 private static final ResourceLocation ARMOR_SLOT_SPRITE = ResourceLo .. cation.withDefaultNamespace("container/slot/horse_armor"); .. cation.withDefaultNamespace("container/slot/horse_armor"); 17 private final Container horseContainer; 16 private final Container horseContainer; 18 private final Container armorContainer; 17 private final AbstractHorse horse; 19 private final AbstractHorse horse; 18 private static final int SLOT_SADDLE = 0; 20 private static final int SLOT_BODY_ARMOR = 1; 19 private static final int SLOT_BODY_ARMOR = 1; 21 private static final int SLOT_HORSE_INVENTORY_START = 2; 20 private static final int SLOT_HORSE_INVENTORY_START = 2; 22 21 23 public HorseInventoryMenu(int $$0, Inventory $$1, Container $$2, fin 22 public HorseInventoryMenu(int $$0, Inventory $$1, Container $$2, Abs .. al AbstractHorse $$3, int $$4) { .. tractHorse $$3, int $$4) { 24 super(null, $$0); 23 super(null, $$0); 25 this.horseContainer = $$2; 24 this.horseContainer = $$2; 26 this.armorContainer = $$3.getBodyArmorAccess(); .. 27 this.horse = $$3; 25 this.horse = $$3; 28 $$2.startOpen($$1.player); 26 $$2.startOpen($$1.player); .. 27 Container $$5 = $$3.createEquipmentSlotContainer(EquipmentSlot.BO .. .. DY); .. 28 Container $$6 = $$3.createEquipmentSlotContainer(EquipmentSlot.SA .. .. DDLE); 29 this.addSlot(new Slot($$2, 0, 8, 18) { 29 this.addSlot(new ArmorSlot($$6, $$3, EquipmentSlot.SADDLE, 0, 8, .. .. 18, SADDLE_SLOT_SPRITE)); 30 @Override .. 31 public boolean mayPlace(ItemStack $$0) { .. 32 return $$0.is(Items.SADDLE) && !this.hasItem() && $$3.isSad .. .. dleable(); .. 33 } .. 34 .. 35 @Override .. 36 public boolean isActive() { .. 37 return $$3.isSaddleable(); .. 38 } .. 39 .. 40 @Override .. 41 public ResourceLocation getNoItemIcon() { .. 42 return HorseInventoryMenu.SADDLE_SLOT_SPRITE; .. 43 } .. 44 }); .. 45 ResourceLocation $$5 = $$3 instanceof Llama ? LLAMA_ARMOR_SLOT_SP 30 ResourceLocation $$7 = $$3 instanceof Llama ? LLAMA_ARMOR_SLOT_SP .. RITE : ARMOR_SLOT_SPRITE; .. RITE : ARMOR_SLOT_SPRITE; 46 this.addSlot(new ArmorSlot(this.armorContainer, $$3, EquipmentSlo 31 this.addSlot(new ArmorSlot($$5, $$3, EquipmentSlot.BODY, 0, 8, 36 .. t.BODY, 0, 8, 36, $$5) { .. , $$7)); 47 @Override .. 48 public boolean mayPlace(ItemStack $$0) { .. 49 return $$3.isEquippableInSlot($$0, EquipmentSlot.BODY); .. 50 } .. 51 .. 52 @Override .. 53 public boolean isActive() { .. 54 return $$3.canUseSlot(EquipmentSlot.BODY); .. 55 } .. 56 }); .. 57 if ($$4 > 0) { 32 if ($$4 > 0) { 58 for (int $$6 = 0; $$6 < 3; $$6++) { 33 for (int $$8 = 0; $$8 < 3; $$8++) { 59 for (int $$7 = 0; $$7 < $$4; $$7++) { 34 for (int $$9 = 0; $$9 < $$4; $$9++) { 60 this.addSlot(new Slot($$2, 1 + $$7 + $$6 * $$4, 80 + $$7 35 this.addSlot(new Slot($$2, $$9 + $$8 * $$4, 80 + $$9 * 1 .. * 18, 18 + $$6 * 18)); .. 8, 18 + $$8 * 18)); 61 } 36 } 62 } 37 } 63 } 38 } net/minecraft/world/inventory/HorseInventoryMenu.java --- 2/4 --- Java 69 public boolean stillValid(Player $$0) { 44 public boolean stillValid(Player $$0) { 70 return !this.horse.hasInventoryChanged(this.horseContainer) 45 return !this.horse.hasInventoryChanged(this.horseContainer) 71 && this.horseContainer.stillValid($$0) 46 && this.horseContainer.stillValid($$0) 72 && this.armorContainer.stillValid($$0) .. 73 && this.horse.isAlive() 47 && this.horse.isAlive() 74 && $$0.canInteractWithEntity(this.horse, 4.0); 48 && $$0.canInteractWithEntity(this.horse, 4.0); 75 } 49 } net/minecraft/world/inventory/HorseInventoryMenu.java --- 3/4 --- Java 81 if ($$3 != null && $$3.hasItem()) { 55 if ($$3 != null && $$3.hasItem()) { 82 ItemStack $$4 = $$3.getItem(); 56 ItemStack $$4 = $$3.getItem(); 83 $$2 = $$4.copy(); 57 $$2 = $$4.copy(); 84 int $$5 = this.horseContainer.getContainerSize() + 1; 58 int $$5 = 2 + this.horseContainer.getContainerSize(); 85 if ($$1 < $$5) { 59 if ($$1 < $$5) { 86 if (!this.moveItemStackTo($$4, $$5, this.slots.size(), true 60 if (!this.moveItemStackTo($$4, $$5, this.slots.size(), true .. )) { .. )) { 87 return ItemStack.EMPTY; 61 return ItemStack.EMPTY; net/minecraft/world/inventory/HorseInventoryMenu.java --- 4/4 --- Java 90 if (!this.moveItemStackTo($$4, 1, 2, false)) { 64 if (!this.moveItemStackTo($$4, 1, 2, false)) { 91 return ItemStack.EMPTY; 65 return ItemStack.EMPTY; 92 } 66 } 93 } else if (this.getSlot(0).mayPlace($$4)) { 67 } else if (this.getSlot(0).mayPlace($$4) && !this.getSlot(0). .. .. hasItem()) { 94 if (!this.moveItemStackTo($$4, 0, 1, false)) { 68 if (!this.moveItemStackTo($$4, 0, 1, false)) { 95 return ItemStack.EMPTY; 69 return ItemStack.EMPTY; 96 } 70 } 97 } else if ($$5 <= 1 || !this.moveItemStackTo($$4, 2, $$5, fal 71 } else if (this.horseContainer.getContainerSize() == 0 || !th .. se)) { .. is.moveItemStackTo($$4, 2, $$5, false)) { 98 int $$7 = $$5 + 27; 72 int $$6 = $$5 + 27; 99 int $$9 = $$7 + 9; 73 int $$8 = $$6 + 9; 100 if ($$1 >= $$7 && $$1 < $$9) { 74 if ($$1 >= $$6 && $$1 < $$8) { 101 if (!this.moveItemStackTo($$4, $$5, $$7, false)) { 75 if (!this.moveItemStackTo($$4, $$5, $$6, false)) { 102 return ItemStack.EMPTY; 76 return ItemStack.EMPTY; 103 } 77 } 104 } else if ($$1 >= $$5 && $$1 < $$7) { 78 } else if ($$1 >= $$5 && $$1 < $$6) { 105 if (!this.moveItemStackTo($$4, $$7, $$9, false)) { 79 if (!this.moveItemStackTo($$4, $$6, $$8, false)) { 106 return ItemStack.EMPTY; 80 return ItemStack.EMPTY; 107 } 81 } 108 } else if (!this.moveItemStackTo($$4, $$7, $$7, false)) { 82 } else if (!this.moveItemStackTo($$4, $$6, $$6, false)) { 109 return ItemStack.EMPTY; 83 return ItemStack.EMPTY; 110 } 84 } 111 85 net/minecraft/world/level/block/entity/EnchantingTableBlockEntity.java --- 1/2 --- Java 3 import javax.annotation.Nullable; 3 import javax.annotation.Nullable; 4 import net.minecraft.core.BlockPos; 4 import net.minecraft.core.BlockPos; 5 import net.minecraft.core.HolderLookup; 5 import net.minecraft.core.HolderLookup; . 6 import net.minecraft.core.component.DataComponentGetter; 6 import net.minecraft.core.component.DataComponentMap; 7 import net.minecraft.core.component.DataComponentMap; 7 import net.minecraft.core.component.DataComponents; 8 import net.minecraft.core.component.DataComponents; 8 import net.minecraft.nbt.CompoundTag; 9 import net.minecraft.nbt.CompoundTag; net/minecraft/world/level/block/entity/EnchantingTableBlockEntity.java --- 2/2 --- Java 125 } 126 } 126 127 127 @Override 128 @Override 128 protected void applyImplicitComponents(BlockEntity.DataComponentInp 129 protected void applyImplicitComponents(DataComponentGetter $$0) { ... ut $$0) { ... 129 super.applyImplicitComponents($$0); 130 super.applyImplicitComponents($$0); 130 this.name = $$0.get(DataComponents.CUSTOM_NAME); 131 this.name = $$0.get(DataComponents.CUSTOM_NAME); 131 } 132 } net/minecraft/world/level/levelgen/feature/EndPodiumFeature.java --- 1/3 --- Java 3 import net.minecraft.core.BlockPos; 3 import net.minecraft.core.BlockPos; 4 import net.minecraft.core.Direction; 4 import net.minecraft.core.Direction; 5 import net.minecraft.world.level.WorldGenLevel; 5 import net.minecraft.world.level.WorldGenLevel; . 6 import net.minecraft.world.level.block.Block; 6 import net.minecraft.world.level.block.Blocks; 7 import net.minecraft.world.level.block.Blocks; 7 import net.minecraft.world.level.block.WallTorchBlock; 8 import net.minecraft.world.level.block.WallTorchBlock; 8 import net.minecraft.world.level.levelgen.feature.configurations.NoneFea 9 import net.minecraft.world.level.levelgen.feature.configurations.NoneFea tureConfiguration; tureConfiguration; net/minecraft/world/level/levelgen/feature/EndPodiumFeature.java --- 2/3 --- Java 38 if ($$4) { 39 if ($$4) { 39 this.setBlock($$2, $$3, Blocks.BEDROCK.defaultBlockSt 40 this.setBlock($$2, $$3, Blocks.BEDROCK.defaultBlockSt .. ate()); .. ate()); 40 } else if ($$3.getY() < $$1.getY()) { 41 } else if ($$3.getY() < $$1.getY()) { .. 42 if (this.active) { .. 43 this.dropPreviousAndSetBlock($$2, $$3, Blocks.END_ .. .. STONE); .. 44 } else { 41 this.setBlock($$2, $$3, Blocks.END_STONE.defaultBlock 45 this.setBlock($$2, $$3, Blocks.END_STONE.defaultBl .. State()); .. ockState()); 42 } 46 } .. 47 } 43 } else if ($$3.getY() > $$1.getY()) { 48 } else if ($$3.getY() > $$1.getY()) { .. 49 if (this.active) { .. 50 this.dropPreviousAndSetBlock($$2, $$3, Blocks.AIR); .. 51 } else { 44 this.setBlock($$2, $$3, Blocks.AIR.defaultBlockState()); 52 this.setBlock($$2, $$3, Blocks.AIR.defaultBlockState( .. .. )); 45 } else if (!$$4) { 53 } .. 54 } else if (!$$4) { 46 this.setBlock($$2, $$3, Blocks.BEDROCK.defaultBlockState 55 this.setBlock($$2, $$3, Blocks.BEDROCK.defaultBlockState .. ()); .. ()); 47 } else if (this.active) { 56 } else if (this.active) { 48 this.setBlock($$2, new BlockPos($$3), Blocks.END_PORTAL. 57 this.dropPreviousAndSetBlock($$2, new BlockPos($$3), Blo .. defaultBlockState()); .. cks.END_PORTAL); 49 } else { 58 } else { 50 this.setBlock($$2, new BlockPos($$3), Blocks.AIR.default 59 this.setBlock($$2, new BlockPos($$3), Blocks.AIR.default .. BlockState()); .. BlockState()); 51 } 60 } net/minecraft/world/level/levelgen/feature/EndPodiumFeature.java --- 3/3 --- Java 65 return true; 74 return true; 66 } 75 } .. 76 .. 77 private void dropPreviousAndSetBlock(WorldGenLevel $$0, BlockPos $$1 .. .. , Block $$2) { .. 78 if (!$$0.getBlockState($$1).is($$2)) { .. 79 $$0.destroyBlock($$1, true, null); .. 80 this.setBlock($$0, $$1, $$2.defaultBlockState()); .. 81 } .. 82 } 67 } 83 } net/minecraft/world/level/NaturalSpawner.java --- 1/3 --- Java 180 return; 180 return; 181 } 181 } 182 182 183 $$26.moveTo($$21, (double)$$8, $$22, $$1.rando 183 $$26.snapTo($$21, (double)$$8, $$22, $$1.rando ... m.nextFloat() * 360.0F, 0.0F); ... m.nextFloat() * 360.0F, 0.0F); 184 if (isValidPositionForMob($$1, $$26, $$24)) { 184 if (isValidPositionForMob($$1, $$26, $$24)) { 185 $$17 = $$26.finalizeSpawn($$1, $$1.getCurre 185 $$17 = $$26.finalizeSpawn($$1, $$1.getCurre ... ntDifficultyAt($$26.blockPosition()), EntitySpawnReason.NATURAL, $$17) ... ntDifficultyAt($$26.blockPosition()), EntitySpawnReason.NATURAL, $$17) ... ; ... ; 186 $$11++; 186 $$11++; net/minecraft/world/level/NaturalSpawner.java --- 2/3 --- Java 266 private static boolean canSpawnMobAt( 266 private static boolean canSpawnMobAt( 267 ServerLevel $$0, StructureManager $$1, ChunkGenerator $$2, MobCa 267 ServerLevel $$0, StructureManager $$1, ChunkGenerator $$2, MobCa ... tegory $$3, MobSpawnSettings.SpawnerData $$4, BlockPos $$5 ... tegory $$3, MobSpawnSettings.SpawnerData $$4, BlockPos $$5 268 ) { 268 ) { 269 return mobsAt($$0, $$1, $$2, $$3, $$5, null).unwrap().contains($ 269 return mobsAt($$0, $$1, $$2, $$3, $$5, null).contains($$4); ... $4); ... 270 } 270 } 271 271 272 private static WeightedList<MobSpawnSettings.SpawnerData> mobsAt( 272 private static WeightedList<MobSpawnSettings.SpawnerData> mobsAt( net/minecraft/world/level/NaturalSpawner.java --- 3/3 --- Java 353 continue; 353 continue; 354 } 354 } 355 355 356 $$23.moveTo($$21, (double)$$19.getY(), $$22, $ 356 $$23.snapTo($$21, (double)$$19.getY(), $$22, $ ... $3.nextFloat() * 360.0F, 0.0F); ... $3.nextFloat() * 360.0F, 0.0F); 357 if ($$23 instanceof Mob $$26 && $$26.checkSpaw 357 if ($$23 instanceof Mob $$26 && $$26.checkSpaw ... nRules($$0, EntitySpawnReason.CHUNK_GENERATION) && $$26.checkSpawnObst ... nRules($$0, EntitySpawnReason.CHUNK_GENERATION) && $$26.checkSpawnObst ... ruction($$0)) { ... ruction($$0)) { 358 $$11 = $$26.finalizeSpawn($$0, $$0.getCurre 358 $$11 = $$26.finalizeSpawn($$0, $$0.getCurre ... ntDifficultyAt($$26.blockPosition()), EntitySpawnReason.CHUNK_GENERATI ... ntDifficultyAt($$26.blockPosition()), EntitySpawnReason.CHUNK_GENERATI ... ON, $$11); ... ON, $$11); 359 $$0.addFreshEntityWithPassengers($$26); 359 $$0.addFreshEntityWithPassengers($$26); net/minecraft/world/entity/vehicle/MinecartTNT.java --- 1/5 --- Java 31 private static final String TAG_FUSE = "fuse"; 31 private static final String TAG_FUSE = "fuse"; 32 private static final float DEFAULT_EXPLOSION_POWER_BASE = 4.0F; 32 private static final float DEFAULT_EXPLOSION_POWER_BASE = 4.0F; 33 private static final float DEFAULT_EXPLOSION_SPEED_FACTOR = 1.0F; 33 private static final float DEFAULT_EXPLOSION_SPEED_FACTOR = 1.0F; .. 34 @Nullable .. 35 private DamageSource ignitionSource; 34 private int fuse = -1; 36 private int fuse = -1; 35 private float explosionPowerBase = 4.0F; 37 private float explosionPowerBase = 4.0F; 36 private float explosionSpeedFactor = 1.0F; 38 private float explosionSpeedFactor = 1.0F; net/minecraft/world/entity/vehicle/MinecartTNT.java --- 2/5 --- Java 51 this.fuse--; 53 this.fuse--; 52 this.level().addParticle(ParticleTypes.SMOKE, this.getX(), thi 54 this.level().addParticle(ParticleTypes.SMOKE, this.getX(), thi .. s.getY() + 0.5, this.getZ(), 0.0, 0.0, 0.0); .. s.getY() + 0.5, this.getZ(), 0.0, 0.0, 0.0); 53 } else if (this.fuse == 0) { 55 } else if (this.fuse == 0) { 54 this.explode(this.getDeltaMovement().horizontalDistanceSqr()); 56 this.explode(this.ignitionSource, this.getDeltaMovement().hori .. .. zontalDistanceSqr()); 55 } 57 } 56 58 57 if (this.horizontalCollision) { 59 if (this.horizontalCollision) { net/minecraft/world/entity/vehicle/MinecartTNT.java --- 3/5 --- Java 79 this.destroy($$0, this.getDropItem()); 81 this.destroy($$0, this.getDropItem()); 80 } else { 82 } else { 81 if (this.fuse < 0) { 83 if (this.fuse < 0) { 82 this.primeFuse(); 84 this.primeFuse($$1); 83 this.fuse = this.random.nextInt(20) + this.random.nextInt(2 85 this.fuse = this.random.nextInt(20) + this.random.nextInt(2 .. 0); .. 0); 84 } 86 } 85 } 87 } net/minecraft/world/entity/vehicle/MinecartTNT.java --- 4/5 --- Java 118 } 120 } 119 121 120 @Override 122 @Override 121 public boolean causeFallDamage(float $$0, float $$1, DamageSource $ 123 public boolean causeFallDamage(double $$0, float $$1, DamageSource ... $2) { ... $$2) { 122 if ($$0 >= 3.0F) { 124 if ($$0 >= 3.0) { 123 float $$3 = $$0 / 10.0F; 125 double $$3 = $$0 / 10.0; 124 this.explode((double)($$3 * $$3)); 126 this.explode($$3 * $$3); 125 } 127 } 126 128 127 return super.causeFallDamage($$0, $$1, $$2); 129 return super.causeFallDamage($$0, $$1, $$2); net/minecraft/world/entity/vehicle/MinecartTNT.java --- 5/5 --- Java 130 @Override 132 @Override 131 public void activateMinecart(int $$0, int $$1, int $$2, boolean $$3 133 public void activateMinecart(int $$0, int $$1, int $$2, boolean $$3 ... ) { ... ) { 132 if ($$3 && this.fuse < 0) { 134 if ($$3 && this.fuse < 0) { 133 this.primeFuse(); 135 this.primeFuse(null); 134 } 136 } 135 } 137 } 136 138 137 @Override 139 @Override 138 public void handleEntityEvent(byte $$0) { 140 public void handleEntityEvent(byte $$0) { 139 if ($$0 == 10) { 141 if ($$0 == 10) { 140 this.primeFuse(); 142 this.primeFuse(null); 141 } else { 143 } else { 142 super.handleEntityEvent($$0); 144 super.handleEntityEvent($$0); 143 } 145 } 144 } 146 } 145 147 146 public void primeFuse() { 148 public void primeFuse(@Nullable DamageSource $$0) { 147 this.fuse = 80; 149 this.fuse = 80; 148 if (!this.level().isClientSide) { 150 if (!this.level().isClientSide) { ... 151 if ($$0 != null && this.ignitionSource == null) { ... 152 this.ignitionSource = this.damageSources().explosion(this, ... ... $$0.getEntity()); ... 153 } ... 154 149 this.level().broadcastEntityEvent(this, (byte)10); 155 this.level().broadcastEntityEvent(this, (byte)10); 150 if (!this.isSilent()) { 156 if (!this.isSilent()) { net/minecraft/world/level/block/entity/trialspawner/TrialSpawner.java --- Java 204 } 204 } 205 205 206 Entity $$14 = EntityType.loadEntityRecursive($$4, $$ 206 Entity $$14 = EntityType.loadEntityRecursive($$4, $$ ... 0, EntitySpawnReason.TRIAL_SPAWNER, $$4x -> { ... 0, EntitySpawnReason.TRIAL_SPAWNER, $$4x -> { 207 $$4x.moveTo($$8, $$9, $$10, $$2.nextFloat() * 360 207 $$4x.snapTo($$8, $$9, $$10, $$2.nextFloat() * 360 ... .0F, 0.0F); ... .0F, 0.0F); 208 return $$4x; 208 return $$4x; 209 }); 209 }); 210 if ($$14 == null) { 210 if ($$14 == null) { net/minecraft/client/renderer/blockentity/BlockEntityWithBoundingBoxRenderer.java --- Java 1 package net.minecraft.client.renderer.blockentity; 2 3 import com.mojang.blaze3d.vertex.PoseStack; 4 import com.mojang.blaze3d.vertex.VertexConsumer; 5 import net.fabricmc.api.EnvType; 6 import net.fabricmc.api.Environment; 7 import net.minecraft.client.Minecraft; 8 import net.minecraft.client.renderer.MultiBufferSource; 9 import net.minecraft.client.renderer.RenderType; 10 import net.minecraft.client.renderer.ShapeRenderer; 11 import net.minecraft.core.BlockPos; 12 import net.minecraft.core.Vec3i; 13 import net.minecraft.world.level.BlockGetter; 14 import net.minecraft.world.level.block.Blocks; 15 import net.minecraft.world.level.block.entity.BlockEntity; 16 import net.minecraft.world.level.block.entity.BoundingBoxRenderable; 17 import net.minecraft.world.level.block.state.BlockState; 18 import net.minecraft.world.phys.shapes.BitSetDiscreteVoxelShape; 19 import net.minecraft.world.phys.shapes.DiscreteVoxelShape; 20 21 @Environment(EnvType.CLIENT) 22 public class BlockEntityWithBoundingBoxRenderer<T extends BlockEntity & BoundingBoxRenderable> implements BlockEntityRenderer<T> { 23 public BlockEntityWithBoundingBoxRenderer(BlockEntityRendererProvider.Context $$0) { 24 } 25 26 @Override 27 public void render(T $$0, float $$1, PoseStack $$2, MultiBufferSource $$3, int $$4, int $$5) { 28 if (Minecraft.getInstance().player.canUseGameMasterBlocks() || Minecraft.getInstance().player.isSpectator()) { 29 BoundingBoxRenderable.Mode $$6 = $$0.renderMode(); 30 if ($$6 != BoundingBoxRenderable.Mode.NONE) { 31 BoundingBoxRenderable.RenderableBox $$7 = $$0.getRenderableBox(); 32 BlockPos $$8 = $$7.localPos(); 33 Vec3i $$9 = $$7.size(); 34 if ($$9.getX() >= 1 && $$9.getY() >= 1 && $$9.getZ() >= 1) { 35 float $$10 = 1.0F; 36 float $$11 = 0.9F; 37 float $$12 = 0.5F; 38 VertexConsumer $$13 = $$3.getBuffer(RenderType.lines()); 39 BlockPos $$14 = $$8.offset($$9); 40 ShapeRenderer.renderLineBox( 41 $$2, 42 $$13, 43 (double)$$8.getX(), 44 (double)$$8.getY(), 45 (double)$$8.getZ(), 46 (double)$$14.getX(), 47 (double)$$14.getY(), 48 (double)$$14.getZ(), 49 0.9F, 50 0.9F, 51 0.9F, 52 1.0F, 53 0.5F, 54 0.5F, 55 0.5F 56 ); 57 if ($$6 == BoundingBoxRenderable.Mode.BOX_AND_INVISIBLE_BLOCKS && $$0.getLevel() != null) { 58 this.renderInvisibleBlocks($$0, $$0.getLevel(), $$8, $$9, $$3, $$2); 59 } 60 } 61 } 62 } 63 } 64 65 private void renderInvisibleBlocks(T $$0, BlockGetter $$1, BlockPos $$2, Vec3i $$3, MultiBufferSource $$4, PoseStack $$5) { 66 VertexConsumer $$6 = $$4.getBuffer(RenderType.lines()); 67 BlockPos $$7 = $$0.getBlockPos(); 68 BlockPos $$8 = $$7.offset($$2); 69 70 for (BlockPos $$9 : BlockPos.betweenClosed($$8, $$8.offset($$3).offset(-1, -1, -1))) { 71 BlockState $$10 = $$1.getBlockState($$9); 72 boolean $$11 = $$10.isAir(); 73 boolean $$12 = $$10.is(Blocks.STRUCTURE_VOID); 74 boolean $$13 = $$10.is(Blocks.BARRIER); 75 boolean $$14 = $$10.is(Blocks.LIGHT); 76 boolean $$15 = $$12 || $$13 || $$14; 77 if ($$11 || $$15) { 78 float $$16 = $$11 ? 0.05F : 0.0F; 79 double $$17 = (double)((float)($$9.getX() - $$7.getX()) + 0.45F - $$16); 80 double $$18 = (double)((float)($$9.getY() - $$7.getY()) + 0.45F - $$16); 81 double $$19 = (double)((float)($$9.getZ() - $$7.getZ()) + 0.45F - $$16); 82 double $$20 = (double)((float)($$9.getX() - $$7.getX()) + 0.55F + $$16); 83 double $$21 = (double)((float)($$9.getY() - $$7.getY()) + 0.55F + $$16); 84 double $$22 = (double)((float)($$9.getZ() - $$7.getZ()) + 0.55F + $$16); 85 if ($$11) { 86 ShapeRenderer.renderLineBox($$5, $$6, $$17, $$18, $$19, $$20, $$21, $$22, 0.5F, 0.5F, 1.0F, 1.0F, 0.5F, 0.5F, 1.0F); 87 } else if ($$12) { 88 ShapeRenderer.renderLineBox($$5, $$6, $$17, $$18, $$19, $$20, $$21, $$22, 1.0F, 0.75F, 0.75F, 1.0F, 1.0F, 0.75F, 0.75F); 89 } else if ($$13) { 90 ShapeRenderer.renderLineBox($$5, $$6, $$17, $$18, $$19, $$20, $$21, $$22, 1.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.0F, 0.0F); 91 } else if ($$14) { 92 ShapeRenderer.renderLineBox($$5, $$6, $$17, $$18, $$19, $$20, $$21, $$22, 1.0F, 1.0F, 0.0F, 1.0F, 1.0F, 1.0F, 0.0F); 93 } 94 } 95 } 96 } 97 98 private void renderStructureVoids(T $$0, BlockPos $$1, Vec3i $$2, VertexConsumer $$3, PoseStack $$4) { 99 BlockGetter $$5 = $$0.getLevel(); 100 if ($$5 != null) { 101 BlockPos $$6 = $$0.getBlockPos(); 102 DiscreteVoxelShape $$7 = new BitSetDiscreteVoxelShape($$2.getX(), $$2.getY(), $$2.getZ()); 103 104 for (BlockPos $$8 : BlockPos.betweenClosed($$1, $$1.offset($$2).offset(-1, -1, -1))) { 105 if ($$5.getBlockState($$8).is(Blocks.STRUCTURE_VOID)) { 106 $$7.fill($$8.getX() - $$1.getX(), $$8.getY() - $$1.getY(), $$8.getZ() - $$1.getZ()); 107 } 108 } 109 110 $$7.forAllFaces(($$4x, $$5x, $$6x, $$7x) -> { 111 float $$8x = 0.48F; 112 float $$9 = (float)($$5x + $$1.getX() - $$6.getX()) + 0.5F - 0.48F; 113 float $$10 = (float)($$6x + $$1.getY() - $$6.getY()) + 0.5F - 0.48F; 114 float $$11 = (float)($$7x + $$1.getZ() - $$6.getZ()) + 0.5F - 0.48F; 115 float $$12 = (float)($$5x + $$1.getX() - $$6.getX()) + 0.5F + 0.48F; 116 float $$13 = (float)($$6x + $$1.getY() - $$6.getY()) + 0.5F + 0.48F; 117 float $$14 = (float)($$7x + $$1.getZ() - $$6.getZ()) + 0.5F + 0.48F; 118 ShapeRenderer.renderFace($$4, $$3, $$4x, $$9, $$10, $$11, $$12, $$13, $$14, 0.75F, 0.75F, 1.0F, 0.2F); 119 }); 120 } 121 } 122 123 @Override 124 public boolean shouldRenderOffScreen(T $$0) { 125 return true; 126 } 127 128 @Override 129 public int getViewDistance() { 130 return 96; 131 } 132 } 133 net/minecraft/util/datafix/schemas/V2568.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:piglin_brute", () -> V100.equipment( 16 $$0.registerSimple($$1, "minecraft:piglin_brute"); .. $$0)); .. 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/client/renderer/entity/HorseRenderer.java --- 1/2 --- Java 4 import java.util.Map; 4 import java.util.Map; 5 import net.fabricmc.api.EnvType; 5 import net.fabricmc.api.EnvType; 6 import net.fabricmc.api.Environment; 6 import net.fabricmc.api.Environment; . 7 import net.minecraft.client.model.EquineSaddleModel; 7 import net.minecraft.client.model.HorseModel; 8 import net.minecraft.client.model.HorseModel; 8 import net.minecraft.client.model.geom.ModelLayers; 9 import net.minecraft.client.model.geom.ModelLayers; 9 import net.minecraft.client.renderer.entity.layers.HorseArmorLayer; . 10 import net.minecraft.client.renderer.entity.layers.HorseMarkingLayer; 10 import net.minecraft.client.renderer.entity.layers.HorseMarkingLayer; .. 11 import net.minecraft.client.renderer.entity.layers.SimpleEquipmentLayer .. .. ; 11 import net.minecraft.client.renderer.entity.state.HorseRenderState; 12 import net.minecraft.client.renderer.entity.state.HorseRenderState; .. 13 import net.minecraft.client.resources.model.EquipmentClientInfo; 12 import net.minecraft.resources.ResourceLocation; 14 import net.minecraft.resources.ResourceLocation; 13 import net.minecraft.world.entity.animal.horse.Horse; 15 import net.minecraft.world.entity.animal.horse.Horse; 14 import net.minecraft.world.entity.animal.horse.Variant; 16 import net.minecraft.world.entity.animal.horse.Variant; net/minecraft/client/renderer/entity/HorseRenderer.java --- 2/2 --- Java 37 public HorseRenderer(EntityRendererProvider.Context $$0) { 39 public HorseRenderer(EntityRendererProvider.Context $$0) { 38 super($$0, new HorseModel($$0.bakeLayer(ModelLayers.HORSE)), new 40 super($$0, new HorseModel($$0.bakeLayer(ModelLayers.HORSE)), new .. HorseModel($$0.bakeLayer(ModelLayers.HORSE_BABY))); .. HorseModel($$0.bakeLayer(ModelLayers.HORSE_BABY))); 39 this.addLayer(new HorseMarkingLayer(this)); 41 this.addLayer(new HorseMarkingLayer(this)); 40 this.addLayer(new HorseArmorLayer(this, $$0.getModelSet(), $$0.ge 42 this.addLayer( .. tEquipmentRenderer())); .. .. 43 new SimpleEquipmentLayer<>( .. 44 this, .. 45 $$0.getEquipmentRenderer(), .. 46 EquipmentClientInfo.LayerType.HORSE_BODY, .. 47 $$0x -> $$0x.bodyArmorItem, .. 48 new HorseModel($$0.bakeLayer(ModelLayers.HORSE_ARMOR)), .. 49 new HorseModel($$0.bakeLayer(ModelLayers.HORSE_BABY_ARMOR)) .. 50 ) .. 51 ); .. 52 this.addLayer( .. 53 new SimpleEquipmentLayer<>( .. 54 this, .. 55 $$0.getEquipmentRenderer(), .. 56 EquipmentClientInfo.LayerType.HORSE_SADDLE, .. 57 $$0x -> $$0x.saddle, .. 58 new EquineSaddleModel($$0.bakeLayer(ModelLayers.HORSE_SADDL .. .. E)), .. 59 new EquineSaddleModel($$0.bakeLayer(ModelLayers.HORSE_BABY_ .. .. SADDLE)) .. 60 ) .. 61 ); 41 } 62 } 42 63 43 public ResourceLocation getTextureLocation(HorseRenderState $$0) { 64 public ResourceLocation getTextureLocation(HorseRenderState $$0) { net/minecraft/util/datafix/schemas/V4292.java --- Java 31 DSL.string(), 31 DSL.string(), 32 Map.of( 32 Map.of( 33 "show_text", 33 "show_text", 34 DSL.optionalFields("text", References.TEXT_COMP 34 DSL.optionalFields("value", References.TEXT_COM .. ONENT.in($$0)), .. PONENT.in($$0)), 35 "show_item", 35 "show_item", 36 References.ITEM_STACK.in($$0), 36 References.ITEM_STACK.in($$0), 37 "show_entity", 37 "show_entity", net/minecraft/world/level/dimension/end/EndDragonFight.java --- Java 428 $$0.setDragonFight(this); 428 $$0.setDragonFight(this); 429 $$0.setFightOrigin(this.origin); 429 $$0.setFightOrigin(this.origin); 430 $$0.getPhaseManager().setPhase(EnderDragonPhase.HOLDING_PATTE 430 $$0.getPhaseManager().setPhase(EnderDragonPhase.HOLDING_PATTE ... RN); ... RN); 431 $$0.moveTo((double)this.origin.getX(), (double)(128 + this.or 431 $$0.snapTo((double)this.origin.getX(), (double)(128 + this.or ... igin.getY()), (double)this.origin.getZ(), this.level.random.nextFloat( ... igin.getY()), (double)this.origin.getZ(), this.level.random.nextFloat( ... ) * 360.0F, 0.0F); ... ) * 360.0F, 0.0F); 432 this.level.addFreshEntity($$0); 432 this.level.addFreshEntity($$0); 433 this.dragonUUID = $$0.getUUID(); 433 this.dragonUUID = $$0.getUUID(); 434 } 434 } net/minecraft/world/level/block/entity/trialspawner/TrialSpawnerState.java --- Java 154 if (this.timeToSpawnItemSpawner($$0, $$3)) { 154 if (this.timeToSpawnItemSpawner($$0, $$3)) { 155 calculatePositionToSpawnSpawner($$0, $$1, $$2, $$3).ifPres 155 calculatePositionToSpawnSpawner($$0, $$1, $$2, $$3).ifPres ... ent($$4x -> { ... ent($$4x -> { 156 OminousItemSpawner $$5x = OminousItemSpawner.create($$0 156 OminousItemSpawner $$5x = OminousItemSpawner.create($$0 ... , $$5); ... , $$5); 157 $$5x.moveTo($$4x); 157 $$5x.snapTo($$4x); 158 $$0.addFreshEntity($$5x); 158 $$0.addFreshEntity($$5x); 159 float $$6 = ($$0.getRandom().nextFloat() - $$0.getRando 159 float $$6 = ($$0.getRandom().nextFloat() - $$0.getRando ... m().nextFloat()) * 0.2F + 1.0F; ... m().nextFloat()) * 0.2F + 1.0F; 160 $$0.playSound(null, BlockPos.containing($$4x), SoundEve 160 $$0.playSound(null, BlockPos.containing($$4x), SoundEve nts.TRIAL_SPAWNER_SPAWN_ITEM_BEGIN, SoundSource.BLOCKS, 1.0F, $$6); nts.TRIAL_SPAWNER_SPAWN_ITEM_BEGIN, SoundSource.BLOCKS, 1.0F, $$6); net/minecraft/util/datafix/schemas/V1928.java --- Java 11 } 11 } 12 12 13 protected static void registerMob(Schema $$0, Map<String, Supplier<T 13 protected static void registerMob(Schema $$0, Map<String, Supplier<T .. ypeTemplate>> $$1, String $$2) { .. ypeTemplate>> $$1, String $$2) { 14 $$0.register($$1, $$2, () -> V100.equipment($$0)); 14 $$0.registerSimple($$1, $$2); 15 } 15 } 16 16 17 @Override 17 @Override net/minecraft/world/entity/vehicle/AbstractMinecart.java --- Java 269 this.updateInWaterStateAndDoFluidPushing(); 269 this.updateInWaterStateAndDoFluidPushing(); 270 if (this.isInLava()) { 270 if (this.isInLava()) { 271 this.lavaHurt(); 271 this.lavaHurt(); 272 this.fallDistance *= 0.5F; 272 this.fallDistance *= 0.5; 273 } 273 } 274 274 275 this.firstTick = false; 275 this.firstTick = false; net/minecraft/util/datafix/fixes/EquipmentFormatFix.java --- Java 1 package net.minecraft.util.datafix.fixes; 2 3 import com.mojang.datafixers.DSL; 4 import com.mojang.datafixers.DataFix; 5 import com.mojang.datafixers.OpticFinder; 6 import com.mojang.datafixers.TypeRewriteRule; 7 import com.mojang.datafixers.Typed; 8 import com.mojang.datafixers.schemas.Schema; 9 import com.mojang.datafixers.types.Type; 10 import com.mojang.datafixers.util.Either; 11 import com.mojang.datafixers.util.Pair; 12 import com.mojang.datafixers.util.Unit; 13 import com.mojang.serialization.Dynamic; 14 import java.util.List; 15 import java.util.function.Function; 16 import java.util.function.Predicate; 17 18 public class EquipmentFormatFix extends DataFix { 19 public EquipmentFormatFix(Schema $$0) { 20 super($$0, true); 21 } 22 23 @Override 24 protected TypeRewriteRule makeRule() { 25 Type<?> $$0 = this.getInputSchema().getTypeRaw(References.ITEM_STACK); 26 Type<?> $$1 = this.getOutputSchema().getTypeRaw(References.ITEM_STACK); 27 OpticFinder<?> $$2 = $$0.findField("id"); 28 return this.fix($$0, $$1, $$2); 29 } 30 31 private <ItemStackOld, ItemStackNew> TypeRewriteRule fix(Type<ItemStackOld> $$0, Type<ItemStackNew> $$1, OpticFinder<?> $$2) { 32 Type<Pair<String, Pair<Either<List<ItemStackOld>, Unit>, Pair<Either<List<ItemStackOld>, Unit>, Pair<Either<ItemStackOld, Unit>, Either<ItemStackOld, Unit>>>>>> $$3 = DSL.named( 33 References.ENTITY_EQUIPMENT.typeName(), 34 DSL.and( 35 DSL.optional(DSL.field("ArmorItems", DSL.list($$0))), 36 DSL.optional(DSL.field("HandItems", DSL.list($$0))), 37 DSL.optional(DSL.field("body_armor_item", $$0)), 38 DSL.optional(DSL.field("saddle", $$0)) 39 ) 40 ); 41 Type<Pair<String, Either<Pair<Either<ItemStackNew, Unit>, Pair<Either<ItemStackNew, Unit>, Pair<Either<ItemStackNew, Unit>, Pair<Either<ItemStackNew, Unit>, Pair<Either<ItemStackNew, Unit>, Pair<Either<ItemStackNew, Unit>, Pair<Either<ItemStackNew, Unit>, Pair<Either<ItemStackNew, Unit>, Dynamic<?>>>>>>>>>, Unit>>> $$4 = DSL.named( 42 References.ENTITY_EQUIPMENT.typeName(), 43 DSL.optional( 44 DSL.field( 45 "equipment", 46 DSL.and( 47 DSL.optional(DSL.field("mainhand", $$1)), 48 DSL.optional(DSL.field("offhand", $$1)), 49 DSL.optional(DSL.field("feet", $$1)), 50 DSL.and( 51 DSL.optional(DSL.field("legs", $$1)), 52 DSL.optional(DSL.field("chest", $$1)), 53 DSL.optional(DSL.field("head", $$1)), 54 DSL.and(DSL.optional(DSL.field("body", $$1)), DSL.optional(DSL.field("saddle", $$1)), DSL.remainderType()) 55 ) 56 ) 57 ) 58 ) 59 ); 60 if (!$$3.equals(this.getInputSchema().getType(References.ENTITY_EQUIPMENT))) { 61 throw new IllegalStateException("Input entity_equipment type does not match expected"); 62 } else if (!$$4.equals(this.getOutputSchema().getType(References.ENTITY_EQUIPMENT))) { 63 throw new IllegalStateException("Output entity_equipment type does not match expected"); 64 } else { 65 return this.fixTypeEverywhere( 66 "EquipmentFormatFix", 67 $$3, 68 $$4, 69 $$2x -> { 70 Predicate<ItemStackOld> $$3x = $$3xx -> { 71 Typed<ItemStackOld> $$4x = new Typed<>($$0, $$2x, (ItemStackOld)$$3xx); 72 return $$4x.getOptional($$2).isEmpty(); 73 }; 74 return $$2xx -> { 75 String $$3xx = (String)$$2xx.getFirst(); 76 Pair<Either<List<ItemStackOld>, Unit>, Pair<Either<List<ItemStackOld>, Unit>, Pair<Either<ItemStackOld, Unit>, Either<ItemStackOld, Unit>>>> $$4x = (Pair<Either<List<ItemStackOld>, Unit>, Pair<Either<List<ItemStackOld>, Unit>, Pair<Either<ItemStackOld, Unit>, Either<ItemStackOld, Unit>>>>)$$2xx.getSecond(); 77 List<ItemStackOld> $$5 = $$4x.getFirst().map(Function.identity(), $$0xxx -> List.of()); 78 List<ItemStackOld> $$6 = $$4x.getSecond().getFirst().map(Function.identity(), $$0xxx -> List.of()); 79 Either<ItemStackOld, Unit> $$7 = $$4x.getSecond().getSecond().getFirst(); 80 Either<ItemStackOld, Unit> $$8 = $$4x.getSecond().getSecond().getSecond(); 81 Either<ItemStackOld, Unit> $$9 = getItemFromList(0, $$5, $$3x); 82 Either<ItemStackOld, Unit> $$10 = getItemFromList(1, $$5, $$3x); 83 Either<ItemStackOld, Unit> $$11 = getItemFromList(2, $$5, $$3x); 84 Either<ItemStackOld, Unit> $$12 = getItemFromList(3, $$5, $$3x); 85 Either<ItemStackOld, Unit> $$13 = getItemFromList(0, $$6, $$3x); 86 Either<ItemStackOld, Unit> $$14 = getItemFromList(1, $$6, $$3x); 87 return areAllEmpty($$7, $$8, $$9, $$10, $$11, $$12, $$13, $$14) 88 ? Pair.of($$3xx, Either.right(Unit.INSTANCE)) 89 : Pair.of( 90 $$3xx, 91 Either.left( 92 Pair.of( 93 (Either<ItemStackNew, Unit>)$$13, 94 Pair.of( 95 (Either<ItemStackNew, Unit>)$$14, 96 Pair.of( 97 (Either<ItemStackNew, Unit>)$$9, 98 Pair.of( 99 (Either<ItemStackNew, Unit>)$$10, 100 Pair.of( 101 (Either<ItemStackNew, Unit>)$$11, 102 Pair.of( 103 (Either<ItemStackNew, Unit>)$$12, 104 Pair.of((Either<ItemStackNew, Unit>)$$7, Pair.of((Either<ItemStackNew, Unit>)$$8, new Dynamic($$2x))) 105 ) 106 ) 107 ) 108 ) 109 ) 110 ) 111 ) 112 ); 113 }; 114 } 115 ); 116 } 117 } 118 119 @SafeVarargs 120 private static boolean areAllEmpty(Either<?, Unit>... $$0) { 121 for (Either<?, Unit> $$1 : $$0) { 122 if ($$1.right().isEmpty()) { 123 return false; 124 } 125 } 126 127 return true; 128 } 129 130 private static <ItemStack> Either<ItemStack, Unit> getItemFromList(int $$0, List<ItemStack> $$1, Predicate<ItemStack> $$2) { 131 if ($$0 >= $$1.size()) { 132 return Either.right(Unit.INSTANCE); 133 } else { 134 ItemStack $$3 = $$1.get($$0); 135 return $$2.test($$3) ? Either.right(Unit.INSTANCE) : Either.left($$3); 136 } 137 } 138 } 139 net/minecraft/client/data/models/BlockModelGenerators.java --- 1/4 --- Java 72 import net.minecraft.world.level.block.PitcherCropBlock; 72 import net.minecraft.world.level.block.PitcherCropBlock; 73 import net.minecraft.world.level.block.SkullBlock; 73 import net.minecraft.world.level.block.SkullBlock; 74 import net.minecraft.world.level.block.SnifferEggBlock; 74 import net.minecraft.world.level.block.SnifferEggBlock; .. 75 import net.minecraft.world.level.block.TestBlock; 75 import net.minecraft.world.level.block.VaultBlock; 76 import net.minecraft.world.level.block.VaultBlock; 76 import net.minecraft.world.level.block.state.properties.AttachFace; 77 import net.minecraft.world.level.block.state.properties.AttachFace; 77 import net.minecraft.world.level.block.state.properties.BambooLeaves; 78 import net.minecraft.world.level.block.state.properties.BambooLeaves; net/minecraft/client/data/models/BlockModelGenerators.java --- 2/4 --- Java 93 import net.minecraft.world.level.block.state.properties.SculkSensorPhas 94 import net.minecraft.world.level.block.state.properties.SculkSensorPhas .. e; .. e; 94 import net.minecraft.world.level.block.state.properties.SlabType; 95 import net.minecraft.world.level.block.state.properties.SlabType; 95 import net.minecraft.world.level.block.state.properties.StairsShape; 96 import net.minecraft.world.level.block.state.properties.StairsShape; .. 97 import net.minecraft.world.level.block.state.properties.TestBlockMode; 96 import net.minecraft.world.level.block.state.properties.Tilt; 98 import net.minecraft.world.level.block.state.properties.Tilt; 97 import net.minecraft.world.level.block.state.properties.WallSide; 99 import net.minecraft.world.level.block.state.properties.WallSide; 98 100 net/minecraft/client/data/models/BlockModelGenerators.java --- 3/4 --- Java 3783 ); 3785 ); 3784 } 3786 } .... 3787 .... 3788 private void createTestBlock() { .... 3789 Map<TestBlockMode, ResourceLocation> $$0 = new HashMap<>(); .... 3790 .... 3791 for (TestBlockMode $$1 : TestBlockMode.values()) { .... 3792 $$0.put($$1, this.createSuffixedVariant(Blocks.TEST_BLOCK, " .... .... _" + $$1.getSerializedName(), ModelTemplates.CUBE_ALL, TextureMapping .... .... ::cube)); .... 3793 } .... 3794 .... 3795 this.blockStateOutput .... 3796 .accept( .... 3797 MultiVariantGenerator.multiVariant(Blocks.TEST_BLOCK) .... 3798 .with( .... 3799 PropertyDispatch.property(BlockStateProperties.TEST .... .... _BLOCK_MODE) .... 3800 .generate($$1x -> Variant.variant().with(Variant .... .... Properties.MODEL, $$0.get($$1x))) .... 3801 ) .... 3802 ); .... 3803 this.itemModelOutput .... 3804 .accept( .... 3805 Items.TEST_BLOCK, .... 3806 ItemModelUtils.selectBlockItemProperty( .... 3807 TestBlock.MODE, .... 3808 ItemModelUtils.plainModel($$0.get(TestBlockMode.START) .... .... ), .... 3809 Map.of( .... 3810 TestBlockMode.FAIL, .... 3811 ItemModelUtils.plainModel($$0.get(TestBlockMode.FAI .... .... L)), .... 3812 TestBlockMode.LOG, .... 3813 ItemModelUtils.plainModel($$0.get(TestBlockMode.LOG .... .... )), .... 3814 TestBlockMode.ACCEPT, .... 3815 ItemModelUtils.plainModel($$0.get(TestBlockMode.ACC .... .... EPT)) .... 3816 ) .... 3817 ) .... 3818 ); .... 3819 } 3785 3820 3786 private void createSweetBerryBush() { 3821 private void createSweetBerryBush() { 3787 this.registerSimpleFlatItemModel(Items.SWEET_BERRIES); 3822 this.registerSimpleFlatItemModel(Items.SWEET_BERRIES); net/minecraft/client/data/models/BlockModelGenerators.java --- 4/4 --- Java 4809 this.createStonecutter(); 4844 this.createStonecutter(); 4810 this.createStructureBlock(); 4845 this.createStructureBlock(); 4811 this.createSweetBerryBush(); 4846 this.createSweetBerryBush(); .... 4847 this.createTestBlock(); .... 4848 this.createTrivialCube(Blocks.TEST_INSTANCE_BLOCK); 4812 this.createTripwire(); 4849 this.createTripwire(); 4813 this.createTripwireHook(); 4850 this.createTripwireHook(); 4814 this.createTurtleEgg(); 4851 this.createTurtleEgg(); net/minecraft/server/packs/repository/BuiltInPackSource.java --- Java 23 public abstract class BuiltInPackSource implements RepositorySource { 23 public abstract class BuiltInPackSource implements RepositorySource { 24 private static final Logger LOGGER = LogUtils.getLogger(); 24 private static final Logger LOGGER = LogUtils.getLogger(); 25 public static final String VANILLA_ID = "vanilla"; 25 public static final String VANILLA_ID = "vanilla"; .. 26 public static final String TESTS_ID = "tests"; 26 public static final KnownPack CORE_PACK_INFO = KnownPack.vanilla("co 27 public static final KnownPack CORE_PACK_INFO = KnownPack.vanilla("co .. re"); .. re"); 27 private final PackType packType; 28 private final PackType packType; 28 private final VanillaPackResources vanillaPack; 29 private final VanillaPackResources vanillaPack; net/minecraft/client/gui/components/FittingMultiLineTextWidget.java --- 1/2 --- Java 42 42 43 @Override 43 @Override 44 protected void renderBackground(GuiGraphics $$0) { 44 protected void renderBackground(GuiGraphics $$0) { 45 if (this.scrollbarVisible()) { .. 46 super.renderBackground($$0); 45 super.renderBackground($$0); 47 } else if (this.isFocused()) { .. 48 this.renderBorder( .. 49 $$0, .. 50 this.getX() - this.innerPadding(), .. 51 this.getY() - this.innerPadding(), .. 52 this.getWidth() + this.totalInnerPadding(), .. 53 this.getHeight() + this.totalInnerPadding() .. 54 ); .. 55 } .. 56 } 46 } 57 .. 58 @Override .. 59 public void renderWidget(GuiGraphics $$0, int $$1, int $$2, float $$ .. .. 3) { .. 60 if (this.visible) { .. 61 if (!this.scrollbarVisible()) { .. 62 this.renderBackground($$0); .. 63 $$0.pose().pushPose(); .. 64 $$0.pose().translate((float)this.getX(), (float)this.getY() .. .. , 0.0F); .. 65 this.multilineWidget.render($$0, $$1, $$2, $$3); .. 66 $$0.pose().popPose(); .. 67 } else { .. 68 super.renderWidget($$0, $$1, $$2, $$3); .. 69 } .. 70 } .. 71 } .. 72 47 73 public boolean showingScrollBar() { 48 public boolean showingScrollBar() { 74 return super.scrollbarVisible(); 49 return super.scrollbarVisible(); net/minecraft/client/gui/components/FittingMultiLineTextWidget.java --- 2/2 --- Java 87 $$0.add(NarratedElementType.TITLE, this.getMessage()); 62 $$0.add(NarratedElementType.TITLE, this.getMessage()); 88 } 63 } .. 64 .. 65 @Override .. 66 public void setMessage(Component $$0) { .. 67 super.setMessage($$0); .. 68 this.multilineWidget.setMessage($$0); .. 69 } 89 } 70 } net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 1/12 --- Java 6 import com.mojang.datafixers.util.Pair; 6 import com.mojang.datafixers.util.Pair; 7 import java.util.Optional; 7 import java.util.Optional; 8 import net.minecraft.core.BlockPos; 8 import net.minecraft.core.BlockPos; . 9 import net.minecraft.core.Holder; 9 import net.minecraft.server.level.ServerLevel; 10 import net.minecraft.server.level.ServerLevel; 10 import net.minecraft.tags.BlockTags; 11 import net.minecraft.tags.BlockTags; 11 import net.minecraft.world.entity.AgeableMob; 12 import net.minecraft.world.entity.AgeableMob; net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 2/12 --- Java 28 public static final int INTERACT_WALKUP_DIST = 2; 29 public static final int INTERACT_WALKUP_DIST = 2; 29 public static final float INTERACT_SPEED_MODIFIER = 0.5F; 30 public static final float INTERACT_SPEED_MODIFIER = 0.5F; 30 31 31 public static ImmutableList<Pair<Integer, ? extends BehaviorControl< 32 public static ImmutableList<Pair<Integer, ? extends BehaviorControl< .. ? super Villager>>> getCorePackage(VillagerProfession $$0, float $$1) { .. ? super Villager>>> getCorePackage(Holder<VillagerProfession> $$0, floa .. .. t $$1) { 32 return ImmutableList.of( 33 return ImmutableList.of( 33 Pair.of(0, new Swim<>(0.8F)), 34 Pair.of(0, new Swim<>(0.8F)), 34 Pair.of(0, InteractWithDoor.create()), 35 Pair.of(0, InteractWithDoor.create()), net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 3/12 --- Java 37 Pair.of(0, WakeUp.create()), 38 Pair.of(0, WakeUp.create()), 38 Pair.of(0, ReactToBell.create()), 39 Pair.of(0, ReactToBell.create()), 39 Pair.of(0, SetRaidStatus.create()), 40 Pair.of(0, SetRaidStatus.create()), 40 Pair.of(0, ValidateNearbyPoi.create($$0.heldJobSite(), MemoryM 41 Pair.of(0, ValidateNearbyPoi.create($$0.value().heldJobSite(), .. oduleType.JOB_SITE)), .. MemoryModuleType.JOB_SITE)), 41 Pair.of(0, ValidateNearbyPoi.create($$0.acquirableJobSite(), M 42 Pair.of(0, ValidateNearbyPoi.create($$0.value().acquirableJobS .. emoryModuleType.POTENTIAL_JOB_SITE)), .. ite(), MemoryModuleType.POTENTIAL_JOB_SITE)), 42 Pair.of(1, new MoveToTargetSink()), 43 Pair.of(1, new MoveToTargetSink()), 43 Pair.of(2, PoiCompetitorScan.create()), 44 Pair.of(2, PoiCompetitorScan.create()), 44 Pair.of(3, new LookAndFollowTradingPlayerSink($$1)), 45 Pair.of(3, new LookAndFollowTradingPlayerSink($$1)), 45 Pair.of(5, GoToWantedItem.create($$1, false, 4)), 46 Pair.of(5, GoToWantedItem.create($$1, false, 4)), 46 Pair.of( 47 Pair.of( 47 6, 48 6, 48 AcquirePoi.create( 49 AcquirePoi.create( 49 $$0.acquirableJobSite(), MemoryModuleType.JOB_SITE, Memo 50 $$0.value().acquirableJobSite(), MemoryModuleType.JOB_SI .. ryModuleType.POTENTIAL_JOB_SITE, true, Optional.empty(), ($$0x, $$1x) - .. TE, MemoryModuleType.POTENTIAL_JOB_SITE, true, Optional.empty(), ($$0x, .. > true .. $$1x) -> true 50 ) 51 ) 51 ), 52 ), 52 Pair.of(7, new GoToPotentialJobSite($$1)), 53 Pair.of(7, new GoToPotentialJobSite($$1)), net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 4/12 --- Java 65 return $$2.is(BlockTags.BEDS) && !$$2.getValue(BedBlock.OCCUPIED) 66 return $$2.is(BlockTags.BEDS) && !$$2.getValue(BedBlock.OCCUPIED) .. ; .. ; 66 } 67 } 67 68 68 public static ImmutableList<Pair<Integer, ? extends BehaviorControl< 69 public static ImmutableList<Pair<Integer, ? extends BehaviorControl< .. ? super Villager>>> getWorkPackage(VillagerProfession $$0, float $$1) { .. ? super Villager>>> getWorkPackage(Holder<VillagerProfession> $$0, floa .. .. t $$1) { 69 WorkAtPoi $$2; 70 WorkAtPoi $$2; 70 if ($$0 == VillagerProfession.FARMER) { 71 if ($$0.is(VillagerProfession.FARMER)) { 71 $$2 = new WorkAtComposter(); 72 $$2 = new WorkAtComposter(); 72 } else { 73 } else { 73 $$2 = new WorkAtPoi(); 74 $$2 = new WorkAtPoi(); net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 5/12 --- Java 83 Pair.of(StrollAroundPoi.create(MemoryModuleType.JOB_S 84 Pair.of(StrollAroundPoi.create(MemoryModuleType.JOB_S .. ITE, 0.4F, 4), 2), .. ITE, 0.4F, 4), 2), 84 Pair.of(StrollToPoi.create(MemoryModuleType.JOB_SITE, 85 Pair.of(StrollToPoi.create(MemoryModuleType.JOB_SITE, .. 0.4F, 1, 10), 5), .. 0.4F, 1, 10), 5), 85 Pair.of(StrollToPoiList.create(MemoryModuleType.SECON 86 Pair.of(StrollToPoiList.create(MemoryModuleType.SECON .. DARY_JOB_SITE, $$1, 1, 6, MemoryModuleType.JOB_SITE), 5), .. DARY_JOB_SITE, $$1, 1, 6, MemoryModuleType.JOB_SITE), 5), 86 Pair.of(new HarvestFarmland(), $$0 == VillagerProfess 87 Pair.of(new HarvestFarmland(), $$0.is(VillagerProfess .. ion.FARMER ? 2 : 5), .. ion.FARMER) ? 2 : 5), 87 Pair.of(new UseBonemeal(), $$0 == VillagerProfession. 88 Pair.of(new UseBonemeal(), $$0.is(VillagerProfession. .. FARMER ? 4 : 7) .. FARMER) ? 4 : 7) 88 ) 89 ) 89 ) 90 ) 90 ), 91 ), net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 6/12 --- Java 119 ); 120 ); 120 } 121 } 121 122 122 public static ImmutableList<Pair<Integer, ? extends BehaviorControl 123 public static ImmutableList<Pair<Integer, ? extends BehaviorControl ... <? super Villager>>> getRestPackage(VillagerProfession $$0, float $$1) ... <? super Villager>>> getRestPackage(Holder<VillagerProfession> $$0, fl ... { ... oat $$1) { 123 return ImmutableList.of( 124 return ImmutableList.of( 124 Pair.of(2, SetWalkTargetFromBlockMemory.create(MemoryModuleTy 125 Pair.of(2, SetWalkTargetFromBlockMemory.create(MemoryModuleTy ... pe.HOME, $$1, 1, 150, 1200)), ... pe.HOME, $$1, 1, 150, 1200)), 125 Pair.of(3, ValidateNearbyPoi.create($$0x -> $$0x.is(PoiTypes. 126 Pair.of(3, ValidateNearbyPoi.create($$0x -> $$0x.is(PoiTypes. HOME), MemoryModuleType.HOME)), HOME), MemoryModuleType.HOME)), net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 7/12 --- Java 141 ); 142 ); 142 } 143 } 143 144 144 public static ImmutableList<Pair<Integer, ? extends BehaviorControl 145 public static ImmutableList<Pair<Integer, ? extends BehaviorControl ... <? super Villager>>> getMeetPackage(VillagerProfession $$0, float $$1) ... <? super Villager>>> getMeetPackage(Holder<VillagerProfession> $$0, fl ... { ... oat $$1) { 145 return ImmutableList.of( 146 return ImmutableList.of( 146 Pair.of( 147 Pair.of( 147 2, 148 2, net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 8/12 --- Java 169 ); 170 ); 170 } 171 } 171 172 172 public static ImmutableList<Pair<Integer, ? extends BehaviorControl 173 public static ImmutableList<Pair<Integer, ? extends BehaviorControl ... <? super Villager>>> getIdlePackage(VillagerProfession $$0, float $$1) ... <? super Villager>>> getIdlePackage(Holder<VillagerProfession> $$0, fl ... { ... oat $$1) { 173 return ImmutableList.of( 174 return ImmutableList.of( 174 Pair.of( 175 Pair.of( 175 2, 176 2, net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 9/12 --- Java 213 ); 214 ); 214 } 215 } 215 216 216 public static ImmutableList<Pair<Integer, ? extends BehaviorControl 217 public static ImmutableList<Pair<Integer, ? extends BehaviorControl ... <? super Villager>>> getPanicPackage(VillagerProfession $$0, float $$1 ... <? super Villager>>> getPanicPackage(Holder<VillagerProfession> $$0, f ... ) { ... loat $$1) { 217 float $$2 = $$1 * 1.5F; 218 float $$2 = $$1 * 1.5F; 218 return ImmutableList.of( 219 return ImmutableList.of( 219 Pair.of(0, VillagerCalmDown.create()), 220 Pair.of(0, VillagerCalmDown.create()), net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 10/12 --- Java 224 ); 225 ); 225 } 226 } 226 227 227 public static ImmutableList<Pair<Integer, ? extends BehaviorControl 228 public static ImmutableList<Pair<Integer, ? extends BehaviorControl ... <? super Villager>>> getPreRaidPackage(VillagerProfession $$0, float $ ... <? super Villager>>> getPreRaidPackage(Holder<VillagerProfession> $$0, ... $1) { ... float $$1) { 228 return ImmutableList.of( 229 return ImmutableList.of( 229 Pair.of(0, RingBell.create()), 230 Pair.of(0, RingBell.create()), 230 Pair.of( 231 Pair.of( net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 11/12 --- Java 241 ); 242 ); 242 } 243 } 243 244 244 public static ImmutableList<Pair<Integer, ? extends BehaviorControl 245 public static ImmutableList<Pair<Integer, ? extends BehaviorControl ... <? super Villager>>> getRaidPackage(VillagerProfession $$0, float $$1) ... <? super Villager>>> getRaidPackage(Holder<VillagerProfession> $$0, fl ... { ... oat $$1) { 245 return ImmutableList.of( 246 return ImmutableList.of( 246 Pair.of( 247 Pair.of( 247 0, 248 0, net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java --- 12/12 --- Java 259 ); 260 ); 260 } 261 } 261 262 262 public static ImmutableList<Pair<Integer, ? extends BehaviorControl 263 public static ImmutableList<Pair<Integer, ? extends BehaviorControl ... <? super Villager>>> getHidePackage(VillagerProfession $$0, float $$1) ... <? super Villager>>> getHidePackage(Holder<VillagerProfession> $$0, fl ... { ... oat $$1) { 263 int $$2 = 2; 264 int $$2 = 2; 264 return ImmutableList.of(Pair.of(0, SetHiddenState.create(15, 3)) 265 return ImmutableList.of(Pair.of(0, SetHiddenState.create(15, 3)) ... , Pair.of(1, LocateHidingPlace.create(32, $$1 * 1.25F, 2)), getMinimal ... , Pair.of(1, LocateHidingPlace.create(32, $$1 * 1.25F, 2)), getMinimal ... LookBehavior()); ... LookBehavior()); 265 } 266 } net/minecraft/world/level/block/entity/BeehiveBlockEntity.java --- 1/4 --- Java 12 import net.minecraft.core.BlockPos; 12 import net.minecraft.core.BlockPos; 13 import net.minecraft.core.Direction; 13 import net.minecraft.core.Direction; 14 import net.minecraft.core.HolderLookup; 14 import net.minecraft.core.HolderLookup; .. 15 import net.minecraft.core.component.DataComponentGetter; 15 import net.minecraft.core.component.DataComponentMap; 16 import net.minecraft.core.component.DataComponentMap; 16 import net.minecraft.core.component.DataComponents; 17 import net.minecraft.core.component.DataComponents; 17 import net.minecraft.core.registries.BuiltInRegistries; 18 import net.minecraft.core.registries.BuiltInRegistries; net/minecraft/world/level/block/entity/BeehiveBlockEntity.java --- 2/4 --- Java 51 "Brain", 52 "Brain", 52 "CanPickUpLoot", 53 "CanPickUpLoot", 53 "DeathTime", 54 "DeathTime", 54 "FallDistance", 55 "fall_distance", 55 "FallFlying", 56 "FallFlying", 56 "Fire", 57 "Fire", 57 "HandItems", 58 "HandItems", net/minecraft/world/level/block/entity/BeehiveBlockEntity.java --- 3/4 --- Java 234 double $$16 = (double)$$1.getX() + 0.5 + $$15 * (dou 235 double $$16 = (double)$$1.getX() + 0.5 + $$15 * (dou ... ble)$$7.getStepX(); ... ble)$$7.getStepX(); 235 double $$17 = (double)$$1.getY() + 0.5 - (double)($$ 236 double $$17 = (double)$$1.getY() + 0.5 - (double)($$ ... 10.getBbHeight() / 2.0F); ... 10.getBbHeight() / 2.0F); 236 double $$18 = (double)$$1.getZ() + 0.5 + $$15 * (dou 237 double $$18 = (double)$$1.getZ() + 0.5 + $$15 * (dou ... ble)$$7.getStepZ(); ... ble)$$7.getStepZ(); 237 $$10.moveTo($$16, $$17, $$18, $$10.getYRot(), $$10.g 238 $$10.snapTo($$16, $$17, $$18, $$10.getYRot(), $$10.g ... etXRot()); ... etXRot()); 238 } 239 } 239 240 240 $$0.playSound(null, $$1, SoundEvents.BEEHIVE_EXIT, Soun 241 $$0.playSound(null, $$1, SoundEvents.BEEHIVE_EXIT, Soun dSource.BLOCKS, 1.0F, 1.0F); dSource.BLOCKS, 1.0F, 1.0F); net/minecraft/world/level/block/entity/BeehiveBlockEntity.java --- 4/4 --- Java 309 } 310 } 310 311 311 @Override 312 @Override 312 protected void applyImplicitComponents(BlockEntity.DataComponentInp 313 protected void applyImplicitComponents(DataComponentGetter $$0) { ... ut $$0) { ... 313 super.applyImplicitComponents($$0); 314 super.applyImplicitComponents($$0); 314 this.stored.clear(); 315 this.stored.clear(); 315 List<BeehiveBlockEntity.Occupant> $$1 = $$0.getOrDefault(DataCom 316 List<BeehiveBlockEntity.Occupant> $$1 = $$0.getOrDefault(DataCom ponents.BEES, List.of()); ponents.BEES, List.of()); net/minecraft/world/level/block/Blocks.java --- Java 5578 JigsawBlock::new, 5578 JigsawBlock::new, 5579 BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_LIGHT_GR 5579 BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_LIGHT_GR .... AY).requiresCorrectToolForDrops().strength(-1.0F, 3600000.0F).noLootT .... AY).requiresCorrectToolForDrops().strength(-1.0F, 3600000.0F).noLootT .... able() .... able() 5580 ); 5580 ); .... 5581 public static final Block TEST_BLOCK = register( .... 5582 "test_block", TestBlock::new, BlockBehaviour.Properties.of().ma .... .... pColor(MapColor.COLOR_LIGHT_GRAY).strength(-1.0F, 3600000.0F).noLootT .... .... able() .... 5583 ); .... 5584 public static final Block TEST_INSTANCE_BLOCK = register( .... 5585 "test_instance_block", .... 5586 TestInstanceBlock::new, .... 5587 BlockBehaviour.Properties.of().noOcclusion().strength(-1.0F, 36 .... .... 00000.0F).noLootTable().isViewBlocking(Blocks::never) .... 5588 ); 5581 public static final Block COMPOSTER = register( 5589 public static final Block COMPOSTER = register( 5582 "composter", 5590 "composter", 5583 ComposterBlock::new, 5591 ComposterBlock::new, net/minecraft/server/players/PlayerList.java --- Java 413 } 413 } 414 414 415 Vec3 $$7 = $$3.position(); 415 Vec3 $$7 = $$3.position(); 416 $$5.moveTo($$7.x, $$7.y, $$7.z, $$3.yRot(), $$3.xRot()); 416 $$5.snapTo($$7.x, $$7.y, $$7.z, $$3.yRot(), $$3.xRot()); 417 if ($$3.missingRespawnBlock()) { 417 if ($$3.missingRespawnBlock()) { 418 $$5.connection.send(new ClientboundGameEventPacket(Clientboun 418 $$5.connection.send(new ClientboundGameEventPacket(Clientboun ... dGameEventPacket.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F)); ... dGameEventPacket.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F)); 419 } 419 } net/minecraft/world/level/block/entity/TestBlockEntity.java --- Java 1 package net.minecraft.world.level.block.entity; 2 3 import com.mojang.logging.LogUtils; 4 import javax.annotation.Nullable; 5 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.HolderLookup; 7 import net.minecraft.nbt.CompoundTag; 8 import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; 9 import net.minecraft.world.level.block.Block; 10 import net.minecraft.world.level.block.Blocks; 11 import net.minecraft.world.level.block.TestBlock; 12 import net.minecraft.world.level.block.state.BlockState; 13 import net.minecraft.world.level.block.state.properties.TestBlockMode; 14 import org.slf4j.Logger; 15 16 public class TestBlockEntity extends BlockEntity { 17 private static final Logger LOGGER = LogUtils.getLogger(); 18 private TestBlockMode mode; 19 private String message = ""; 20 private boolean powered; 21 private boolean triggered; 22 23 public TestBlockEntity(BlockPos $$0, BlockState $$1) { 24 super(BlockEntityType.TEST_BLOCK, $$0, $$1); 25 this.mode = $$1.getValue(TestBlock.MODE); 26 } 27 28 @Override 29 public void saveAdditional(CompoundTag $$0, HolderLookup.Provider $$1) { 30 $$0.putString("mode", this.mode.getSerializedName()); 31 $$0.putString("message", this.message); 32 $$0.putBoolean("powered", this.powered); 33 } 34 35 @Override 36 public void loadAdditional(CompoundTag $$0, HolderLookup.Provider $$1) { 37 String $$2 = $$0.getString("mode"); 38 TestBlockMode $$3 = TestBlockMode.CODEC.byName($$2); 39 this.mode = $$3 != null ? $$3 : TestBlockMode.FAIL; 40 this.message = $$0.getString("message"); 41 this.powered = $$0.getBoolean("powered"); 42 } 43 44 private void updateBlockState() { 45 if (this.level != null) { 46 BlockPos $$0 = this.getBlockPos(); 47 BlockState $$1 = this.level.getBlockState($$0); 48 if ($$1.is(Blocks.TEST_BLOCK)) { 49 this.level.setBlock($$0, $$1.setValue(TestBlock.MODE, this.mode), 2); 50 } 51 } 52 } 53 54 @Nullable 55 public ClientboundBlockEntityDataPacket getUpdatePacket() { 56 return ClientboundBlockEntityDataPacket.create(this); 57 } 58 59 @Override 60 public CompoundTag getUpdateTag(HolderLookup.Provider $$0) { 61 return this.saveCustomOnly($$0); 62 } 63 64 public boolean isPowered() { 65 return this.powered; 66 } 67 68 public void setPowered(boolean $$0) { 69 this.powered = $$0; 70 } 71 72 public TestBlockMode getMode() { 73 return this.mode; 74 } 75 76 public void setMode(TestBlockMode $$0) { 77 this.mode = $$0; 78 this.updateBlockState(); 79 } 80 81 private Block getBlockType() { 82 return this.getBlockState().getBlock(); 83 } 84 85 public void reset() { 86 this.triggered = false; 87 if (this.mode == TestBlockMode.START && this.level != null) { 88 this.setPowered(false); 89 this.level.updateNeighborsAt(this.getBlockPos(), this.getBlockType()); 90 } 91 } 92 93 public void trigger() { 94 if (this.mode == TestBlockMode.START && this.level != null) { 95 this.setPowered(true); 96 BlockPos $$0 = this.getBlockPos(); 97 this.level.updateNeighborsAt($$0, this.getBlockType()); 98 this.level.getBlockTicks().willTickThisTick($$0, this.getBlockType()); 99 this.log(); 100 } else { 101 if (this.mode == TestBlockMode.LOG) { 102 this.log(); 103 } 104 105 this.triggered = true; 106 } 107 } 108 109 public void log() { 110 if (!this.message.isBlank()) { 111 LOGGER.info("Test {} (at {}): {}", this.mode.getSerializedName(), this.getBlockPos(), this.message); 112 } 113 } 114 115 public boolean hasTriggered() { 116 return this.triggered; 117 } 118 119 public String getMessage() { 120 return this.message; 121 } 122 123 public void setMessage(String $$0) { 124 this.message = $$0; 125 } 126 } 127 net/minecraft/util/datafix/schemas/V3808_2.java --- Java 18 $$0.register( 18 $$0.register( 19 $$1, 19 $$1, 20 "minecraft:trader_llama", 20 "minecraft:trader_llama", 21 $$1x -> DSL.optionalFields("Items", DSL.list(References.ITEM_S 21 $$1x -> DSL.optionalFields("Items", DSL.list(References.ITEM_S .. TACK.in($$0)), "SaddleItem", References.ITEM_STACK.in($$0), V100.equipm .. TACK.in($$0)), "SaddleItem", References.ITEM_STACK.in($$0)) .. ent($$0)) .. 22 ); 22 ); 23 return $$1; 23 return $$1; 24 } 24 } net/minecraft/world/entity/vehicle/AbstractBoat.java --- Java 723 if ($$1) { 723 if ($$1) { 724 this.resetFallDistance(); 724 this.resetFallDistance(); 725 } else if (!this.level().getFluidState(this.blockPosition().b 725 } else if (!this.level().getFluidState(this.blockPosition().b ... elow()).is(FluidTags.WATER) && $$0 < 0.0) { ... elow()).is(FluidTags.WATER) && $$0 < 0.0) { 726 this.fallDistance -= (float)$$0; 726 this.fallDistance -= (double)((float)$$0); 727 } 727 } 728 } 728 } 729 } 729 } net/minecraft/sounds/SoundEvents.java --- 1/5 --- Java 247 public static final SoundEvent CAMEL_DEATH = register("entity.camel 247 public static final SoundEvent CAMEL_DEATH = register("entity.camel ... .death"); ... .death"); 248 public static final SoundEvent CAMEL_EAT = register("entity.camel.e 248 public static final SoundEvent CAMEL_EAT = register("entity.camel.e ... at"); ... at"); 249 public static final SoundEvent CAMEL_HURT = register("entity.camel. 249 public static final SoundEvent CAMEL_HURT = register("entity.camel. ... hurt"); ... hurt"); 250 public static final SoundEvent CAMEL_SADDLE = register("entity.came 250 public static final Holder.Reference<SoundEvent> CAMEL_SADDLE = reg ... l.saddle"); ... isterForHolder("entity.camel.saddle"); 251 public static final SoundEvent CAMEL_SIT = register("entity.camel.s 251 public static final SoundEvent CAMEL_SIT = register("entity.camel.s ... it"); ... it"); 252 public static final SoundEvent CAMEL_STAND = register("entity.camel 252 public static final SoundEvent CAMEL_STAND = register("entity.camel ... .stand"); ... .stand"); 253 public static final SoundEvent CAMEL_STEP = register("entity.camel. 253 public static final SoundEvent CAMEL_STEP = register("entity.camel. step"); step"); net/minecraft/sounds/SoundEvents.java --- 2/5 --- Java 750 public static final SoundEvent HORSE_HURT = register("entity.horse. 750 public static final SoundEvent HORSE_HURT = register("entity.horse. ... hurt"); ... hurt"); 751 public static final SoundEvent HORSE_JUMP = register("entity.horse. 751 public static final SoundEvent HORSE_JUMP = register("entity.horse. ... jump"); ... jump"); 752 public static final SoundEvent HORSE_LAND = register("entity.horse. 752 public static final SoundEvent HORSE_LAND = register("entity.horse. ... land"); ... land"); 753 public static final SoundEvent HORSE_SADDLE = register("entity.hors 753 public static final Holder.Reference<SoundEvent> HORSE_SADDLE = reg ... e.saddle"); ... isterForHolder("entity.horse.saddle"); 754 public static final SoundEvent HORSE_STEP = register("entity.horse. 754 public static final SoundEvent HORSE_STEP = register("entity.horse. ... step"); ... step"); 755 public static final SoundEvent HORSE_STEP_WOOD = register("entity.h 755 public static final SoundEvent HORSE_STEP_WOOD = register("entity.h ... orse.step_wood"); ... orse.step_wood"); 756 public static final SoundEvent HOSTILE_BIG_FALL = register("entity. 756 public static final SoundEvent HOSTILE_BIG_FALL = register("entity. hostile.big_fall"); hostile.big_fall"); net/minecraft/sounds/SoundEvents.java --- 3/5 --- Java 828 public static final SoundEvent LLAMA_HURT = register("entity.llama. 828 public static final SoundEvent LLAMA_HURT = register("entity.llama. ... hurt"); ... hurt"); 829 public static final SoundEvent LLAMA_SPIT = register("entity.llama. 829 public static final SoundEvent LLAMA_SPIT = register("entity.llama. ... spit"); ... spit"); 830 public static final SoundEvent LLAMA_STEP = register("entity.llama. 830 public static final SoundEvent LLAMA_STEP = register("entity.llama. ... step"); ... step"); 831 public static final Holder<SoundEvent> LLAMA_SWAG = registerForHold 831 public static final Holder.Reference<SoundEvent> LLAMA_SWAG = regis ... er("entity.llama.swag"); ... terForHolder("entity.llama.swag"); 832 public static final SoundEvent MAGMA_CUBE_DEATH_SMALL = register("e 832 public static final SoundEvent MAGMA_CUBE_DEATH_SMALL = register("e ... ntity.magma_cube.death_small"); ... ntity.magma_cube.death_small"); 833 public static final SoundEvent LODESTONE_BREAK = register("block.lo 833 public static final SoundEvent LODESTONE_BREAK = register("block.lo ... destone.break"); ... destone.break"); 834 public static final SoundEvent LODESTONE_STEP = register("block.lod 834 public static final SoundEvent LODESTONE_STEP = register("block.lod estone.step"); estone.step"); net/minecraft/sounds/SoundEvents.java --- 4/5 --- Java 1113 public static final SoundEvent PIG_AMBIENT = register("entity.pig. 1113 public static final SoundEvent PIG_AMBIENT = register("entity.pig. .... ambient"); .... ambient"); 1114 public static final SoundEvent PIG_DEATH = register("entity.pig.de 1114 public static final SoundEvent PIG_DEATH = register("entity.pig.de .... ath"); .... ath"); 1115 public static final SoundEvent PIG_HURT = register("entity.pig.hur 1115 public static final SoundEvent PIG_HURT = register("entity.pig.hur .... t"); .... t"); 1116 public static final SoundEvent PIG_SADDLE = register("entity.pig.s 1116 public static final Holder.Reference<SoundEvent> PIG_SADDLE = regi .... addle"); .... sterForHolder("entity.pig.saddle"); 1117 public static final SoundEvent PIG_STEP = register("entity.pig.ste 1117 public static final SoundEvent PIG_STEP = register("entity.pig.ste .... p"); .... p"); 1118 public static final SoundEvent PIGLIN_ADMIRING_ITEM = register("en 1118 public static final SoundEvent PIGLIN_ADMIRING_ITEM = register("en .... tity.piglin.admiring_item"); .... tity.piglin.admiring_item"); 1119 public static final SoundEvent PIGLIN_AMBIENT = register("entity.p 1119 public static final SoundEvent PIGLIN_AMBIENT = register("entity.p iglin.ambient"); iglin.ambient"); net/minecraft/sounds/SoundEvents.java --- 5/5 --- Java 1362 public static final SoundEvent STRIDER_STEP = register("entity.str 1362 public static final SoundEvent STRIDER_STEP = register("entity.str .... ider.step"); .... ider.step"); 1363 public static final SoundEvent STRIDER_STEP_LAVA = register("entit 1363 public static final SoundEvent STRIDER_STEP_LAVA = register("entit .... y.strider.step_lava"); .... y.strider.step_lava"); 1364 public static final SoundEvent STRIDER_EAT = register("entity.stri 1364 public static final SoundEvent STRIDER_EAT = register("entity.stri .... der.eat"); .... der.eat"); 1365 public static final SoundEvent STRIDER_SADDLE = register("entity.s 1365 public static final Holder.Reference<SoundEvent> STRIDER_SADDLE = .... trider.saddle"); .... registerForHolder("entity.strider.saddle"); 1366 public static final SoundEvent SLIME_DEATH_SMALL = register("entit 1366 public static final SoundEvent SLIME_DEATH_SMALL = register("entit .... y.slime.death_small"); .... y.slime.death_small"); 1367 public static final SoundEvent SLIME_HURT_SMALL = register("entity 1367 public static final SoundEvent SLIME_HURT_SMALL = register("entity .... .slime.hurt_small"); .... .slime.hurt_small"); 1368 public static final SoundEvent SLIME_JUMP_SMALL = register("entity 1368 public static final SoundEvent SLIME_JUMP_SMALL = register("entity .slime.jump_small"); .slime.jump_small"); net/minecraft/client/multiplayer/ClientLevel.java --- Text (8 Java parse errors, exceeded DFT_PARSE_ERROR_LIMIT) 150 this.setBlock($$0, $$1, 19); 150 this.setBlock($$0, $$1, 19); 151 Player $$4 = this.minecraft.player; 151 Player $$4 = this.minecraft.player; 152 if (this == $$4.level() && $$4.isColliding($$0, $$1)) { 152 if (this == $$4.level() && $$4.isColliding($$0, $$1)) { 153 $$4.absMoveTo($$2.x, $$2.y, $$2.z); 153 $$4.absSnapTo($$2.x, $$2.y, $$2.z); 154 } 154 } 155 } 155 } 156 } 156 } net/minecraft/util/datafix/schemas/V2509.java --- Java 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$1.remove("minecraft:zombie_pigman"); 16 $$1.remove("minecraft:zombie_pigman"); 17 $$0.register($$1, "minecraft:zombified_piglin", () -> V100.equipm 17 $$0.registerSimple($$1, "minecraft:zombified_piglin"); .. ent($$0)); .. 18 return $$1; 18 return $$1; 19 } 19 } 20 } 20 } net/minecraft/util/datafix/schemas/V2505.java --- 1/2 --- Java 1 package net.minecraft.util.datafix.schemas; 1 package net.minecraft.util.datafix.schemas; 2 2 . 3 import com.mojang.datafixers.DSL; 3 import com.mojang.datafixers.schemas.Schema; 4 import com.mojang.datafixers.schemas.Schema; 4 import com.mojang.datafixers.types.templates.TypeTemplate; 5 import com.mojang.datafixers.types.templates.TypeTemplate; 5 import java.util.Map; 6 import java.util.Map; 6 import java.util.function.Supplier; 7 import java.util.function.Supplier; . 8 import net.minecraft.util.datafix.fixes.References; 7 9 8 public class V2505 extends NamespacedSchema { 10 public class V2505 extends NamespacedSchema { 9 public V2505(int $$0, Schema $$1) { 11 public V2505(int $$0, Schema $$1) { net/minecraft/util/datafix/schemas/V2505.java --- 2/2 --- Java 13 @Override 15 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 16 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:piglin", () -> V100.equipment($$0)); 18 $$0.register($$1, "minecraft:piglin", () -> DSL.optionalFields("I .. .. nventory", DSL.list(References.ITEM_STACK.in($$0)))); 17 return $$1; 19 return $$1; 18 } 20 } 19 } 21 } net/minecraft/world/entity/EntityEquipment.java --- Java 1 package net.minecraft.world.entity; 2 3 import com.mojang.serialization.Codec; 4 import java.util.EnumMap; 5 import java.util.Map; 6 import java.util.Objects; 7 import net.minecraft.world.item.ItemStack; 8 9 public class EntityEquipment { 10 public static final Codec<EntityEquipment> CODEC = Codec.unboundedMap(EquipmentSlot.CODEC, ItemStack.CODEC).xmap($$0 -> { 11 EnumMap<EquipmentSlot, ItemStack> $$1 = new EnumMap<>(EquipmentSlot.class); 12 $$1.putAll((Map<? extends EquipmentSlot, ? extends ItemStack>)$$0); 13 return new EntityEquipment($$1); 14 }, $$0 -> { 15 Map<EquipmentSlot, ItemStack> $$1 = new EnumMap<>($$0.items); 16 $$1.values().removeIf(ItemStack::isEmpty); 17 return $$1; 18 }); 19 private final EnumMap<EquipmentSlot, ItemStack> items; 20 21 private EntityEquipment(EnumMap<EquipmentSlot, ItemStack> $$0) { 22 this.items = $$0; 23 } 24 25 public EntityEquipment() { 26 this(new EnumMap<>(EquipmentSlot.class)); 27 } 28 29 public ItemStack set(EquipmentSlot $$0, ItemStack $$1) { 30 return Objects.requireNonNullElse(this.items.put($$0, $$1), ItemStack.EMPTY); 31 } 32 33 public ItemStack get(EquipmentSlot $$0) { 34 return this.items.getOrDefault($$0, ItemStack.EMPTY); 35 } 36 37 public boolean isEmpty() { 38 for (ItemStack $$0 : this.items.values()) { 39 if (!$$0.isEmpty()) { 40 return false; 41 } 42 } 43 44 return true; 45 } 46 } 47 net/minecraft/gametest/Main.java --- Java 1 package net.minecraft.gametest; 2 3 import net.minecraft.SharedConstants; 4 import net.minecraft.gametest.framework.GameTestMainUtil; 5 import net.minecraft.obfuscate.DontObfuscate; 6 7 public class Main { 8 @DontObfuscate 9 public static void main(String[] $$0) throws Exception { 10 SharedConstants.tryDetectVersion(); 11 GameTestMainUtil.runGameTestServer($$0, $$0x -> { 12 }); 13 } 14 } 15 net/minecraft/advancements/critereon/EntitySubPredicates.java --- 1/2 --- Java 1 package net.minecraft.advancements.critereon; 1 package net.minecraft.advancements.critereon; 2 2 3 import com.mojang.serialization.Codec; . 4 import com.mojang.serialization.MapCodec; 3 import com.mojang.serialization.MapCodec; 5 import com.mojang.serialization.codecs.RecordCodecBuilder; . 6 import java.util.Optional; . 7 import java.util.function.Function; . 8 import javax.annotation.Nullable; . 9 import net.minecraft.core.Holder; . 10 import net.minecraft.core.HolderSet; . 11 import net.minecraft.core.Registry; 4 import net.minecraft.core.Registry; 12 import net.minecraft.core.RegistryCodecs; . 13 import net.minecraft.core.registries.BuiltInRegistries; 5 import net.minecraft.core.registries.BuiltInRegistries; 14 import net.minecraft.core.registries.Registries; . 15 import net.minecraft.resources.ResourceKey; . 16 import net.minecraft.server.level.ServerLevel; . 17 import net.minecraft.world.entity.Entity; . 18 import net.minecraft.world.entity.animal.Cat; . 19 import net.minecraft.world.entity.animal.CatVariant; . 20 import net.minecraft.world.entity.animal.Fox; . 21 import net.minecraft.world.entity.animal.FrogVariant; . 22 import net.minecraft.world.entity.animal.MushroomCow; . 23 import net.minecraft.world.entity.animal.Parrot; . 24 import net.minecraft.world.entity.animal.Pig; . 25 import net.minecraft.world.entity.animal.PigVariant; . 26 import net.minecraft.world.entity.animal.Rabbit; . 27 import net.minecraft.world.entity.animal.Salmon; . 28 import net.minecraft.world.entity.animal.TropicalFish; . 29 import net.minecraft.world.entity.animal.Wolf; . 30 import net.minecraft.world.entity.animal.WolfVariant; . 31 import net.minecraft.world.entity.animal.axolotl.Axolotl; . 32 import net.minecraft.world.entity.animal.frog.Frog; . 33 import net.minecraft.world.entity.animal.horse.Horse; . 34 import net.minecraft.world.entity.animal.horse.Llama; . 35 import net.minecraft.world.entity.animal.horse.Variant; . 36 import net.minecraft.world.entity.decoration.Painting; . 37 import net.minecraft.world.entity.decoration.PaintingVariant; . 38 import net.minecraft.world.entity.npc.VillagerDataHolder; . 39 import net.minecraft.world.entity.npc.VillagerType; . 40 import net.minecraft.world.phys.Vec3; . 41 6 42 public class EntitySubPredicates { 7 public class EntitySubPredicates { 43 public static final MapCodec<LightningBoltPredicate> LIGHTNING = reg 8 public static final MapCodec<LightningBoltPredicate> LIGHTNING = reg ister("lightning", LightningBoltPredicate.CODEC); ister("lightning", LightningBoltPredicate.CODEC); net/minecraft/advancements/critereon/EntitySubPredicates.java --- 2/2 --- Java 46 public static final MapCodec<SlimePredicate> SLIME = register("slim 11 public static final MapCodec<SlimePredicate> SLIME = register("slim .. e", SlimePredicate.CODEC); .. e", SlimePredicate.CODEC); 47 public static final MapCodec<RaiderPredicate> RAIDER = register("ra 12 public static final MapCodec<RaiderPredicate> RAIDER = register("ra .. ider", RaiderPredicate.CODEC); .. ider", RaiderPredicate.CODEC); 48 public static final MapCodec<SheepPredicate> SHEEP = register("shee 13 public static final MapCodec<SheepPredicate> SHEEP = register("shee .. p", SheepPredicate.CODEC); .. p", SheepPredicate.CODEC); 49 public static final EntitySubPredicates.EntityVariantPredicateType< .. .. Axolotl.Variant> AXOLOTL = register( .. 50 "axolotl", .. 51 EntitySubPredicates.EntityVariantPredicateType.create( .. 52 Axolotl.Variant.CODEC, $$0 -> $$0 instanceof Axolotl $$1 ? Op .. .. tional.of($$1.getVariant()) : Optional.empty() .. 53 ) .. 54 ); .. 55 public static final EntitySubPredicates.EntityVariantPredicateType< .. .. Fox.Variant> FOX = register( .. 56 "fox", .. 57 EntitySubPredicates.EntityVariantPredicateType.create(Fox.Varian .. .. t.CODEC, $$0 -> $$0 instanceof Fox $$1 ? Optional.of($$1.getVariant()) .. .. : Optional.empty()) .. 58 ); .. 59 public static final EntitySubPredicates.EntityVariantPredicateType< .. .. MushroomCow.Variant> MOOSHROOM = register( .. 60 "mooshroom", .. 61 EntitySubPredicates.EntityVariantPredicateType.create( .. 62 MushroomCow.Variant.CODEC, $$0 -> $$0 instanceof MushroomCow .. .. $$1 ? Optional.of($$1.getVariant()) : Optional.empty() .. 63 ) .. 64 ); .. 65 public static final EntitySubPredicates.EntityVariantPredicateType< .. .. Rabbit.Variant> RABBIT = register( .. 66 "rabbit", .. 67 EntitySubPredicates.EntityVariantPredicateType.create( .. 68 Rabbit.Variant.CODEC, $$0 -> $$0 instanceof Rabbit $$1 ? Opti .. .. onal.of($$1.getVariant()) : Optional.empty() .. 69 ) .. 70 ); .. 71 public static final EntitySubPredicates.EntityVariantPredicateType< .. .. Variant> HORSE = register( .. 72 "horse", .. 73 EntitySubPredicates.EntityVariantPredicateType.create(Variant.CO .. .. DEC, $$0 -> $$0 instanceof Horse $$1 ? Optional.of($$1.getVariant()) : .. .. Optional.empty()) .. 74 ); .. 75 public static final EntitySubPredicates.EntityVariantPredicateType< .. .. Llama.Variant> LLAMA = register( .. 76 "llama", .. 77 EntitySubPredicates.EntityVariantPredicateType.create( .. 78 Llama.Variant.CODEC, $$0 -> $$0 instanceof Llama $$1 ? Option .. .. al.of($$1.getVariant()) : Optional.empty() .. 79 ) .. 80 ); .. 81 public static final EntitySubPredicates.EntityVariantPredicateType< .. .. VillagerType> VILLAGER = register( .. 82 "villager", .. 83 EntitySubPredicates.EntityVariantPredicateType.create( .. 84 BuiltInRegistries.VILLAGER_TYPE.byNameCodec(), $$0 -> $$0 ins .. .. tanceof VillagerDataHolder $$1 ? Optional.of($$1.getVariant()) : Optio .. .. nal.empty() .. 85 ) .. 86 ); .. 87 public static final EntitySubPredicates.EntityVariantPredicateType< .. .. Parrot.Variant> PARROT = register( .. 88 "parrot", .. 89 EntitySubPredicates.EntityVariantPredicateType.create( .. 90 Parrot.Variant.CODEC, $$0 -> $$0 instanceof Parrot $$1 ? Opti .. .. onal.of($$1.getVariant()) : Optional.empty() .. 91 ) .. 92 ); .. 93 public static final EntitySubPredicates.EntityVariantPredicateType< .. .. Salmon.Variant> SALMON = register( .. 94 "salmon", .. 95 EntitySubPredicates.EntityVariantPredicateType.create( .. 96 Salmon.Variant.CODEC, $$0 -> $$0 instanceof Salmon $$1 ? Opti .. .. onal.of($$1.getVariant()) : Optional.empty() .. 97 ) .. 98 ); .. 99 public static final EntitySubPredicates.EntityVariantPredicateType< .. .. TropicalFish.Pattern> TROPICAL_FISH = register( .. 100 "tropical_fish", .. 101 EntitySubPredicates.EntityVariantPredicateType.create( .. 102 TropicalFish.Pattern.CODEC, $$0 -> $$0 instanceof TropicalFis .. ... h $$1 ? Optional.of($$1.getVariant()) : Optional.empty() .. 103 ) .. 104 ); .. 105 public static final EntitySubPredicates.EntityHolderVariantPredicat .. ... eType<PaintingVariant> PAINTING = register( .. 106 "painting", .. 107 EntitySubPredicates.EntityHolderVariantPredicateType.create( .. 108 Registries.PAINTING_VARIANT, $$0 -> $$0 instanceof Painting $ .. ... $1 ? Optional.of($$1.getVariant()) : Optional.empty() .. 109 ) .. 110 ); .. 111 public static final EntitySubPredicates.EntityHolderVariantPredicat .. ... eType<CatVariant> CAT = register( .. 112 "cat", .. 113 EntitySubPredicates.EntityHolderVariantPredicateType.create( .. 114 Registries.CAT_VARIANT, $$0 -> $$0 instanceof Cat $$1 ? Optio .. ... nal.of($$1.getVariant()) : Optional.empty() .. 115 ) .. 116 ); .. 117 public static final EntitySubPredicates.EntityHolderVariantPredicat .. ... eType<FrogVariant> FROG = register( .. 118 "frog", .. 119 EntitySubPredicates.EntityHolderVariantPredicateType.create( .. 120 Registries.FROG_VARIANT, $$0 -> $$0 instanceof Frog $$1 ? Opt .. ... ional.of($$1.getVariant()) : Optional.empty() .. 121 ) .. 122 ); .. 123 public static final EntitySubPredicates.EntityHolderVariantPredicat .. ... eType<WolfVariant> WOLF = register( .. 124 "wolf", .. 125 EntitySubPredicates.EntityHolderVariantPredicateType.create( .. 126 Registries.WOLF_VARIANT, $$0 -> $$0 instanceof Wolf $$1 ? Opt .. ... ional.of($$1.getVariant()) : Optional.empty() .. 127 ) .. 128 ); .. 129 public static final EntitySubPredicates.EntityHolderVariantPredicat .. ... eType<PigVariant> PIG = register( .. 130 "pig", .. 131 EntitySubPredicates.EntityHolderVariantPredicateType.create( .. 132 Registries.PIG_VARIANT, $$0 -> $$0 instanceof Pig $$1 ? Optio .. ... nal.of($$1.getVariant()) : Optional.empty() .. 133 ) .. 134 ); .. 135 14 136 private static <T extends EntitySubPredicate> MapCodec<T> register( 15 private static <T extends EntitySubPredicate> MapCodec<T> register( ... String $$0, MapCodec<T> $$1) { .. String $$0, MapCodec<T> $$1) { 137 return Registry.register(BuiltInRegistries.ENTITY_SUB_PREDICATE_ 16 return Registry.register(BuiltInRegistries.ENTITY_SUB_PREDICATE_ ... TYPE, $$0, $$1); .. TYPE, $$0, $$1); 138 } 17 } 139 .. 140 private static <V> EntitySubPredicates.EntityVariantPredicateType<V .. ... > register(String $$0, EntitySubPredicates.EntityVariantPredicateType< .. ... V> $$1) { .. 141 Registry.register(BuiltInRegistries.ENTITY_SUB_PREDICATE_TYPE, $ .. ... $0, $$1.codec); .. 142 return $$1; .. 143 } .. 144 .. 145 private static <V> EntitySubPredicates.EntityHolderVariantPredicate .. ... Type<V> register(String $$0, EntitySubPredicates.EntityHolderVariantPr .. ... edicateType<V> $$1) { .. 146 Registry.register(BuiltInRegistries.ENTITY_SUB_PREDICATE_TYPE, $ .. ... $0, $$1.codec); .. 147 return $$1; .. 148 } .. 149 18 150 public static MapCodec<? extends EntitySubPredicate> bootstrap(Regi 19 public static MapCodec<? extends EntitySubPredicate> bootstrap(Regi ... stry<MapCodec<? extends EntitySubPredicate>> $$0) { .. stry<MapCodec<? extends EntitySubPredicate>> $$0) { 151 return LIGHTNING; 20 return LIGHTNING; 152 } 21 } 153 .. 154 public static EntitySubPredicate catVariant(Holder<CatVariant> $$0) .. ... { .. 155 return CAT.createPredicate(HolderSet.direct($$0)); .. 156 } .. 157 .. 158 public static EntitySubPredicate frogVariant(Holder<FrogVariant> $$ .. ... 0) { .. 159 return FROG.createPredicate(HolderSet.direct($$0)); .. 160 } .. 161 .. 162 public static EntitySubPredicate wolfVariant(HolderSet<WolfVariant> .. ... $$0) { .. 163 return WOLF.createPredicate($$0); .. 164 } .. 165 .. 166 public static class EntityHolderVariantPredicateType<V> { .. 167 final MapCodec<EntitySubPredicates.EntityHolderVariantPredicateT .. ... ype<V>.Instance> codec; .. 168 final Function<Entity, Optional<Holder<V>>> getter; .. 169 .. 170 public static <V> EntitySubPredicates.EntityHolderVariantPredica .. ... teType<V> create( .. 171 ResourceKey<? extends Registry<V>> $$0, Function<Entity, Opti .. ... onal<Holder<V>>> $$1 .. 172 ) { .. 173 return new EntitySubPredicates.EntityHolderVariantPredicateTy .. ... pe<>($$0, $$1); .. 174 } .. 175 .. 176 public EntityHolderVariantPredicateType(ResourceKey<? extends Re .. ... gistry<V>> $$0, Function<Entity, Optional<Holder<V>>> $$1) { .. 177 this.getter = $$1; .. 178 this.codec = RecordCodecBuilder.mapCodec( .. 179 $$1x -> $$1x.group(RegistryCodecs.homogeneousList($$0).fie .. ... ldOf("variant").forGetter($$0xx -> $$0xx.variants)) .. 180 .apply($$1x, $$0xx -> new EntitySubPredicates.Entity .. ... HolderVariantPredicateType.Instance($$0xx)) .. 181 ); .. 182 } .. 183 .. 184 public EntitySubPredicate createPredicate(HolderSet<V> $$0) { .. 185 return new EntitySubPredicates.EntityHolderVariantPredicateTy .. ... pe.Instance($$0); .. 186 } .. 187 .. 188 class Instance implements EntitySubPredicate { .. 189 final HolderSet<V> variants; .. 190 .. 191 Instance(final HolderSet<V> $$0) { .. 192 this.variants = $$0; .. 193 } .. 194 .. 195 @Override .. 196 public MapCodec<EntitySubPredicates.EntityHolderVariantPredic .. ... ateType<V>.Instance> codec() { .. 197 return EntityHolderVariantPredicateType.this.codec; .. 198 } .. 199 .. 200 @Override .. 201 public boolean matches(Entity $$0, ServerLevel $$1, @Nullable .. ... Vec3 $$2) { .. 202 return EntityHolderVariantPredicateType.this.getter.apply( .. ... $$0).filter(this.variants::contains).isPresent(); .. 203 } .. 204 } .. 205 } .. 206 .. 207 public static class EntityVariantPredicateType<V> { .. 208 final MapCodec<EntitySubPredicates.EntityVariantPredicateType<V> .. ... .Instance> codec; .. 209 final Function<Entity, Optional<V>> getter; .. 210 .. 211 public static <V> EntitySubPredicates.EntityVariantPredicateType .. ... <V> create(Registry<V> $$0, Function<Entity, Optional<V>> $$1) { .. 212 return new EntitySubPredicates.EntityVariantPredicateType<>($ .. ... $0.byNameCodec(), $$1); .. 213 } .. 214 .. 215 public static <V> EntitySubPredicates.EntityVariantPredicateType .. ... <V> create(Codec<V> $$0, Function<Entity, Optional<V>> $$1) { .. 216 return new EntitySubPredicates.EntityVariantPredicateType<>($ .. ... $0, $$1); .. 217 } .. 218 .. 219 public EntityVariantPredicateType(Codec<V> $$0, Function<Entity, .. ... Optional<V>> $$1) { .. 220 this.getter = $$1; .. 221 this.codec = RecordCodecBuilder.mapCodec( .. 222 $$1x -> $$1x.group($$0.fieldOf("variant").forGetter($$0xx .. ... -> $$0xx.variant)) .. 223 .apply($$1x, $$0xx -> new EntitySubPredicates.Entity .. ... VariantPredicateType.Instance($$0xx)) .. 224 ); .. 225 } .. 226 .. 227 public EntitySubPredicate createPredicate(V $$0) { .. 228 return new EntitySubPredicates.EntityVariantPredicateType.Ins .. ... tance($$0); .. 229 } .. 230 .. 231 class Instance implements EntitySubPredicate { .. 232 final V variant; .. 233 .. 234 Instance(final V $$0) { .. 235 this.variant = $$0; .. 236 } .. 237 .. 238 @Override .. 239 public MapCodec<EntitySubPredicates.EntityVariantPredicateTyp .. ... e<V>.Instance> codec() { .. 240 return EntityVariantPredicateType.this.codec; .. 241 } .. 242 .. 243 @Override .. 244 public boolean matches(Entity $$0, ServerLevel $$1, @Nullable .. ... Vec3 $$2) { .. 245 return EntityVariantPredicateType.this.getter.apply($$0).f .. ... ilter(this.variant::equals).isPresent(); .. 246 } .. 247 } .. 248 } .. 249 } 22 } net/minecraft/world/level/block/entity/SkullBlockEntity.java --- 1/2 --- Java 16 import net.minecraft.Util; 16 import net.minecraft.Util; 17 import net.minecraft.core.BlockPos; 17 import net.minecraft.core.BlockPos; 18 import net.minecraft.core.HolderLookup; 18 import net.minecraft.core.HolderLookup; .. 19 import net.minecraft.core.component.DataComponentGetter; 19 import net.minecraft.core.component.DataComponentMap; 20 import net.minecraft.core.component.DataComponentMap; 20 import net.minecraft.core.component.DataComponents; 21 import net.minecraft.core.component.DataComponents; 21 import net.minecraft.nbt.CompoundTag; 22 import net.minecraft.nbt.CompoundTag; net/minecraft/world/level/block/entity/SkullBlockEntity.java --- 2/2 --- Java 212 } 213 } 213 214 214 @Override 215 @Override 215 protected void applyImplicitComponents(BlockEntity.DataComponentInp 216 protected void applyImplicitComponents(DataComponentGetter $$0) { ... ut $$0) { ... 216 super.applyImplicitComponents($$0); 217 super.applyImplicitComponents($$0); 217 this.setOwner($$0.get(DataComponents.PROFILE)); 218 this.setOwner($$0.get(DataComponents.PROFILE)); 218 this.noteBlockSound = $$0.get(DataComponents.NOTE_BLOCK_SOUND); 219 this.noteBlockSound = $$0.get(DataComponents.NOTE_BLOCK_SOUND); net/minecraft/world/entity/ai/behavior/ResetProfession.java --- Java 14 $$0, . 15 $$0x -> ($$0xx, $$1, $$2) -> { . 16 VillagerData $$3 = $$1.getVillagerData(); 12 VillagerData $$3 = $$1.getVillagerData(); .. 13 boolean $$4 = !$$3.profession().is(VillagerProfession.NO .. .. NE) && !$$3.profession().is(VillagerProfession.NITWIT); 17 if ($$3.getProfession() != VillagerProfession.N 14 if ($$4 && $$1.getVillagerXp() == 0 && $$3.level() <= 1) .. ONE .. { 18 && $$3.getProfession() != VillagerProfession .. .. .NITWIT .. 19 && $$1.getVillagerXp() == 0 .. 20 && $$3.getLevel() <= 1) { .. 21 $$1.setVillagerData($$1.getVillagerData().se 15 $$1.setVillagerData($$1.getVillagerData().withProfess .. tProfession(VillagerProfession.NONE)); .. ion($$0xx.registryAccess(), VillagerProfession.NONE)); 22 $$1.refreshBrain($$0xx); 16 $$1.refreshBrain($$0xx); 23 return true; 17 return true; 24 } else { 18 } else { net/minecraft/server/packs/VanillaPackResourcesBuilder.java --- 1/4 --- Java 6 import java.io.IOException; 6 import java.io.IOException; 7 import java.net.URI; 7 import java.net.URI; 8 import java.net.URL; 8 import java.net.URL; 9 import java.nio.file.FileSystemAlreadyExistsException; . 10 import java.nio.file.FileSystemNotFoundException; . 11 import java.nio.file.FileSystems; . 12 import java.nio.file.Files; 9 import java.nio.file.Files; 13 import java.nio.file.Path; 10 import java.nio.file.Path; 14 import java.nio.file.Paths; 11 import java.nio.file.Paths; net/minecraft/server/packs/VanillaPackResourcesBuilder.java --- 2/4 --- Java 25 import java.util.Set; 22 import java.util.Set; 26 import java.util.function.Consumer; 23 import java.util.function.Consumer; 27 import net.minecraft.Util; 24 import net.minecraft.Util; .. 25 import net.minecraft.util.FileSystemUtil; 28 import org.slf4j.Logger; 26 import org.slf4j.Logger; 29 27 30 public class VanillaPackResourcesBuilder { 28 public class VanillaPackResourcesBuilder { net/minecraft/server/packs/VanillaPackResourcesBuilder.java --- 3/4 --- Java 48 LOGGER.warn("Assets URL '{}' uses unexpected schem 46 LOGGER.warn("Assets URL '{}' uses unexpected schem .. a", $$4); .. a", $$4); 49 } 47 } 50 48 51 Path $$6 = safeGetPath($$4); 49 Path $$6 = FileSystemUtil.safeGetPath($$4); 52 $$0.put($$1, $$6.getParent()); 50 $$0.put($$1, $$6.getParent()); 53 } catch (Exception var12) { 51 } catch (Exception var12) { 54 LOGGER.error("Couldn't resolve path to vanilla assets 52 LOGGER.error("Couldn't resolve path to vanilla assets ", (Throwable)var12); ", (Throwable)var12); net/minecraft/server/packs/VanillaPackResourcesBuilder.java --- 4/4 --- Java 64 private BuiltInMetadata metadata = BuiltInMetadata.of(); 62 private BuiltInMetadata metadata = BuiltInMetadata.of(); 65 private final Set<String> namespaces = new HashSet<>(); 63 private final Set<String> namespaces = new HashSet<>(); 66 .. 67 private static Path safeGetPath(URI $$0) throws IOException { .. 68 try { .. 69 return Paths.get($$0); .. 70 } catch (FileSystemNotFoundException var3) { .. 71 } catch (Throwable var4) { .. 72 LOGGER.warn("Unable to get path for: {}", $$0, var4); .. 73 } .. 74 .. 75 try { .. 76 FileSystems.newFileSystem($$0, Collections.emptyMap()); .. 77 } catch (FileSystemAlreadyExistsException var2) { .. 78 } .. 79 .. 80 return Paths.get($$0); .. 81 } .. 82 64 83 private boolean validateDirPath(Path $$0) { 65 private boolean validateDirPath(Path $$0) { 84 if (!Files.exists($$0)) { 66 if (!Files.exists($$0)) { net/minecraft/world/entity/ai/behavior/GiveGiftToHero.java --- 1/2 --- Java 21 private static final int MIN_TIME_BETWEEN_GIFTS = 600; 21 private static final int MIN_TIME_BETWEEN_GIFTS = 600; 22 private static final int MAX_TIME_BETWEEN_GIFTS = 6600; 22 private static final int MAX_TIME_BETWEEN_GIFTS = 6600; 23 private static final int TIME_TO_DELAY_FOR_HEAD_TO_FINISH_TURNING = 23 private static final int TIME_TO_DELAY_FOR_HEAD_TO_FINISH_TURNING = .. 20; .. 20; 24 private static final Map<VillagerProfession, ResourceKey<LootTable>> 24 private static final Map<ResourceKey<VillagerProfession>, ResourceKe .. GIFTS = ImmutableMap.<VillagerProfession, ResourceKey<LootTable>>build .. y<LootTable>> GIFTS = ImmutableMap.<ResourceKey<VillagerProfession>, Re .. er() .. sourceKey<LootTable>>builder() 25 .put(VillagerProfession.ARMORER, BuiltInLootTables.ARMORER_GIFT) 25 .put(VillagerProfession.ARMORER, BuiltInLootTables.ARMORER_GIFT) 26 .put(VillagerProfession.BUTCHER, BuiltInLootTables.BUTCHER_GIFT) 26 .put(VillagerProfession.BUTCHER, BuiltInLootTables.BUTCHER_GIFT) 27 .put(VillagerProfession.CARTOGRAPHER, BuiltInLootTables.CARTOGRAP 27 .put(VillagerProfession.CARTOGRAPHER, BuiltInLootTables.CARTOGRAP HER_GIFT) HER_GIFT) net/minecraft/world/entity/ai/behavior/GiveGiftToHero.java --- 2/2 --- Java 108 if ($$0.isBaby()) { 108 if ($$0.isBaby()) { 109 return BuiltInLootTables.BABY_VILLAGER_GIFT; 109 return BuiltInLootTables.BABY_VILLAGER_GIFT; 110 } else { 110 } else { 111 VillagerProfession $$1 = $$0.getVillagerData().getProfession( 111 Optional<ResourceKey<VillagerProfession>> $$1 = $$0.getVillag ... ); ... erData().profession().unwrapKey(); 112 return GIFTS.getOrDefault($$1, BuiltInLootTables.UNEMPLOYED_G 112 return $$1.isEmpty() ? BuiltInLootTables.UNEMPLOYED_GIFT : GI ... IFT); ... FTS.getOrDefault($$1.get(), BuiltInLootTables.UNEMPLOYED_GIFT); 113 } 113 } 114 } 114 } 115 115 net/minecraft/util/datafix/fixes/FixWolfHealth.java --- Java 1 package net.minecraft.util.datafix.fixes; 2 3 import com.mojang.datafixers.DSL; 4 import com.mojang.datafixers.Typed; 5 import com.mojang.datafixers.schemas.Schema; 6 import net.minecraft.util.datafix.schemas.NamespacedSchema; 7 import org.apache.commons.lang3.mutable.MutableBoolean; 8 9 public class FixWolfHealth extends NamedEntityFix { 10 private static final String WOLF_ID = "minecraft:wolf"; 11 private static final String WOLF_HEALTH = "minecraft:generic.max_health"; 12 13 public FixWolfHealth(Schema $$0) { 14 super($$0, false, "FixWolfHealth", References.ENTITY, "minecraft:wolf"); 15 } 16 17 @Override 18 protected Typed<?> fix(Typed<?> $$0) { 19 return $$0.update( 20 DSL.remainderFinder(), 21 $$0x -> { 22 MutableBoolean $$1 = new MutableBoolean(false); 23 $$0x = $$0x.update( 24 "Attributes", 25 $$1x -> $$1x.createList( 26 $$1x.asStream() 27 .map( 28 $$1xx -> "minecraft:generic.max_health".equals(NamespacedSchema.ensureNamespaced($$1xx.get("Name").asString(""))) 29 ? $$1xx.update("Base", $$1xxx -> { 30 if ($$1xxx.asDouble(0.0) == 20.0) { 31 $$1.setTrue(); 32 return $$1xxx.createDouble(40.0); 33 } else { 34 return $$1xxx; 35 } 36 }) 37 : $$1xx 38 ) 39 ) 40 ); 41 if ($$1.isTrue()) { 42 $$0x = $$0x.update("Health", $$0xx -> $$0xx.createFloat($$0xx.asFloat(0.0F) * 2.0F)); 43 } 44 45 return $$0x; 46 } 47 ); 48 } 49 } 50 net/minecraft/world/entity/animal/Bucketable.java --- Java 32 32 33 @Deprecated 33 @Deprecated 34 static void saveDefaultDataToBucketTag(Mob $$0, ItemStack $$1) { 34 static void saveDefaultDataToBucketTag(Mob $$0, ItemStack $$1) { 35 $$1.set(DataComponents.CUSTOM_NAME, $$0.getCustomName()); 35 $$1.copyFrom(DataComponents.CUSTOM_NAME, $$0); 36 CustomData.update(DataComponents.BUCKET_ENTITY_DATA, $$1, $$1x -> 36 CustomData.update(DataComponents.BUCKET_ENTITY_DATA, $$1, $$1x -> .. { .. { 37 if ($$0.isNoAi()) { 37 if ($$0.isNoAi()) { 38 $$1x.putBoolean("NoAI", $$0.isNoAi()); 38 $$1x.putBoolean("NoAI", $$0.isNoAi()); net/minecraft/gametest/framework/GameTestAssertPosException.java --- Java 2 2 3 import javax.annotation.Nullable; 3 import javax.annotation.Nullable; 4 import net.minecraft.core.BlockPos; 4 import net.minecraft.core.BlockPos; . 5 import net.minecraft.network.chat.Component; 5 6 6 public class GameTestAssertPosException extends GameTestAssertException 7 public class GameTestAssertPosException extends GameTestAssertException . { . { 7 private final BlockPos absolutePos; 8 private final BlockPos absolutePos; 8 private final BlockPos relativePos; 9 private final BlockPos relativePos; 9 private final long tick; . 10 10 11 public GameTestAssertPosException(String $$0, BlockPos $$1, BlockPos 11 public GameTestAssertPosException(Component $$0, BlockPos $$1, Block .. $$2, long $$3) { .. Pos $$2, int $$3) { 12 super($$0); 12 super($$0, $$3); 13 this.absolutePos = $$1; 13 this.absolutePos = $$1; 14 this.relativePos = $$2; 14 this.relativePos = $$2; 15 this.tick = $$3; .. 16 } 15 } 17 16 18 @Override 17 @Override 19 public String getMessage() { 18 public Component getDescription() { .. 19 return Component.translatable( .. 20 "test.error.position", .. 21 this.message, 20 String $$0 = this.absolutePos.getX() 22 this.absolutePos.getX(), 21 + "," .. 22 + this.absolutePos.getY() 23 this.absolutePos.getY(), 23 + "," .. 24 + this.absolutePos.getZ() 24 this.absolutePos.getZ(), 25 + " (relative: " .. 26 + this.relativePos.getX() 25 this.relativePos.getX(), 27 + "," .. 28 + this.relativePos.getY() 26 this.relativePos.getY(), 29 + "," .. 30 + this.relativePos.getZ() 27 this.relativePos.getZ(), .. 28 this.tick 31 + ")"; 29 ); 32 return super.getMessage() + " at " + $$0 + " (t=" + this.tick + " .. .. )"; .. 33 } 30 } 34 31 35 @Nullable 32 @Nullable net/minecraft/gametest/framework/StructureBlockPosFinder.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.util.stream.Stream; 4 import net.minecraft.core.BlockPos; 5 6 @FunctionalInterface 7 public interface StructureBlockPosFinder { 8 Stream<BlockPos> findStructureBlockPos(); 9 } 10 net/minecraft/network/protocol/game/ClientboundTestInstanceBlockStatus.java --- Java 1 package net.minecraft.network.protocol.game; 2 3 import java.util.Optional; 4 import net.minecraft.core.Vec3i; 5 import net.minecraft.network.RegistryFriendlyByteBuf; 6 import net.minecraft.network.chat.Component; 7 import net.minecraft.network.chat.ComponentSerialization; 8 import net.minecraft.network.codec.ByteBufCodecs; 9 import net.minecraft.network.codec.StreamCodec; 10 import net.minecraft.network.protocol.Packet; 11 import net.minecraft.network.protocol.PacketType; 12 13 public record ClientboundTestInstanceBlockStatus(Component status, Optional<Vec3i> size) implements Packet<ClientGamePacketListener> { 14 public static final StreamCodec<RegistryFriendlyByteBuf, ClientboundTestInstanceBlockStatus> STREAM_CODEC = StreamCodec.composite( 15 ComponentSerialization.STREAM_CODEC, 16 ClientboundTestInstanceBlockStatus::status, 17 ByteBufCodecs.optional(Vec3i.STREAM_CODEC), 18 ClientboundTestInstanceBlockStatus::size, 19 ClientboundTestInstanceBlockStatus::new 20 ); 21 22 @Override 23 public PacketType<ClientboundTestInstanceBlockStatus> type() { 24 return GamePacketTypes.CLIENTBOUND_TEST_INSTANCE_BLOCK_STATUS; 25 } 26 27 public void handle(ClientGamePacketListener $$0) { 28 $$0.handleTestInstanceBlockStatus(this); 29 } 30 } 31 net/minecraft/gametest/framework/GameTestRegistry.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import com.google.common.collect.Lists; 4 import com.google.common.collect.Maps; 5 import com.google.common.collect.Sets; 6 import java.lang.annotation.Annotation; 7 import java.lang.reflect.InvocationTargetException; 8 import java.lang.reflect.Method; 9 import java.util.Arrays; 10 import java.util.Collection; 11 import java.util.Comparator; 12 import java.util.Map; 13 import java.util.Optional; 14 import java.util.Set; 15 import java.util.function.Consumer; 16 import java.util.function.Function; 17 import java.util.stream.Stream; 18 import net.minecraft.server.level.ServerLevel; 19 import net.minecraft.world.level.block.Rotation; 20 21 public class GameTestRegistry { 22 private static final Collection<TestFunction> TEST_FUNCTIONS = Lists.newArrayList(); 23 private static final Set<String> TEST_CLASS_NAMES = Sets.newHashSet(); 24 private static final Map<String, Consumer<ServerLevel>> BEFORE_BATCH_FUNCTIONS = Maps.newHashMap(); 25 private static final Map<String, Consumer<ServerLevel>> AFTER_BATCH_FUNCTIONS = Maps.newHashMap(); 26 private static final Set<TestFunction> LAST_FAILED_TESTS = Sets.newHashSet(); 27 28 public static void register(Class<?> $$0) { 29 Arrays.stream($$0.getDeclaredMethods()).sorted(Comparator.comparing(Method::getName)).forEach(GameTestRegistry::register); 30 } 31 32 public static void register(Method $$0) { 33 String $$1 = $$0.getDeclaringClass().getSimpleName(); 34 GameTest $$2 = $$0.getAnnotation(GameTest.class); 35 if ($$2 != null) { 36 TEST_FUNCTIONS.add(turnMethodIntoTestFunction($$0)); 37 TEST_CLASS_NAMES.add($$1); 38 } 39 40 GameTestGenerator $$3 = $$0.getAnnotation(GameTestGenerator.class); 41 if ($$3 != null) { 42 TEST_FUNCTIONS.addAll(useTestGeneratorMethod($$0)); 43 TEST_CLASS_NAMES.add($$1); 44 } 45 46 registerBatchFunction($$0, BeforeBatch.class, BeforeBatch::batch, BEFORE_BATCH_FUNCTIONS); 47 registerBatchFunction($$0, AfterBatch.class, AfterBatch::batch, AFTER_BATCH_FUNCTIONS); 48 } 49 50 private static <T extends Annotation> void registerBatchFunction(Method $$0, Class<T> $$1, Function<T, String> $$2, Map<String, Consumer<ServerLevel>> $$3) { 51 T $$4 = $$0.getAnnotation($$1); 52 if ($$4 != null) { 53 String $$5 = $$2.apply($$4); 54 Consumer<ServerLevel> $$6 = $$3.putIfAbsent($$5, (Consumer<ServerLevel>)turnMethodIntoConsumer($$0)); 55 if ($$6 != null) { 56 throw new RuntimeException("Hey, there should only be one " + $$1 + " method per batch. Batch '" + $$5 + "' has more than one!"); 57 } 58 } 59 } 60 61 public static Stream<TestFunction> getTestFunctionsForClassName(String $$0) { 62 return TEST_FUNCTIONS.stream().filter($$1 -> isTestFunctionPartOfClass($$1, $$0)); 63 } 64 65 public static Collection<TestFunction> getAllTestFunctions() { 66 return TEST_FUNCTIONS; 67 } 68 69 public static Collection<String> getAllTestClassNames() { 70 return TEST_CLASS_NAMES; 71 } 72 73 public static boolean isTestClass(String $$0) { 74 return TEST_CLASS_NAMES.contains($$0); 75 } 76 77 public static Consumer<ServerLevel> getBeforeBatchFunction(String $$0) { 78 return BEFORE_BATCH_FUNCTIONS.getOrDefault($$0, $$0x -> { 79 }); 80 } 81 82 public static Consumer<ServerLevel> getAfterBatchFunction(String $$0) { 83 return AFTER_BATCH_FUNCTIONS.getOrDefault($$0, $$0x -> { 84 }); 85 } 86 87 public static Optional<TestFunction> findTestFunction(String $$0) { 88 return getAllTestFunctions().stream().filter($$1 -> $$1.testName().equalsIgnoreCase($$0)).findFirst(); 89 } 90 91 public static TestFunction getTestFunction(String $$0) { 92 Optional<TestFunction> $$1 = findTestFunction($$0); 93 if ($$1.isEmpty()) { 94 throw new IllegalArgumentException("Can't find the test function for " + $$0); 95 } else { 96 return $$1.get(); 97 } 98 } 99 100 private static Collection<TestFunction> useTestGeneratorMethod(Method $$0) { 101 try { 102 Object $$1 = $$0.getDeclaringClass().newInstance(); 103 return (Collection<TestFunction>)$$0.invoke($$1); 104 } catch (ReflectiveOperationException var2) { 105 throw new RuntimeException(var2); 106 } 107 } 108 109 private static TestFunction turnMethodIntoTestFunction(Method $$0) { 110 GameTest $$1 = $$0.getAnnotation(GameTest.class); 111 String $$2 = $$0.getDeclaringClass().getSimpleName(); 112 String $$3 = $$2.toLowerCase(); 113 String $$4 = $$3 + "." + $$0.getName().toLowerCase(); 114 String $$5 = $$1.template().isEmpty() ? $$4 : $$3 + "." + $$1.template(); 115 String $$6 = $$1.batch(); 116 Rotation $$7 = StructureUtils.getRotationForRotationSteps($$1.rotationSteps()); 117 return new TestFunction( 118 $$6, 119 $$4, 120 $$5, 121 $$7, 122 $$1.timeoutTicks(), 123 $$1.setupTicks(), 124 $$1.required(), 125 $$1.manualOnly(), 126 $$1.requiredSuccesses(), 127 $$1.attempts(), 128 $$1.skyAccess(), 129 (Consumer<GameTestHelper>)turnMethodIntoConsumer($$0) 130 ); 131 } 132 133 private static Consumer<?> turnMethodIntoConsumer(Method $$0) { 134 return $$1 -> { 135 try { 136 Object $$2 = $$0.getDeclaringClass().newInstance(); 137 $$0.invoke($$2, $$1); 138 } catch (InvocationTargetException var3) { 139 if (var3.getCause() instanceof RuntimeException) { 140 throw (RuntimeException)var3.getCause(); 141 } else { 142 throw new RuntimeException(var3.getCause()); 143 } 144 } catch (ReflectiveOperationException var4) { 145 throw new RuntimeException(var4); 146 } 147 }; 148 } 149 150 private static boolean isTestFunctionPartOfClass(TestFunction $$0, String $$1) { 151 return $$0.testName().toLowerCase().startsWith($$1.toLowerCase() + "."); 152 } 153 154 public static Stream<TestFunction> getLastFailedTests() { 155 return LAST_FAILED_TESTS.stream(); 156 } 157 158 public static void rememberFailedTest(TestFunction $$0) { 159 LAST_FAILED_TESTS.add($$0); 160 } 161 162 public static void forgetFailedTests() { 163 LAST_FAILED_TESTS.clear(); 164 } 165 } 166 net/minecraft/gametest/framework/GameTestInstance.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import com.mojang.serialization.Codec; 4 import com.mojang.serialization.MapCodec; 5 import net.minecraft.ChatFormatting; 6 import net.minecraft.core.Holder; 7 import net.minecraft.core.Registry; 8 import net.minecraft.core.registries.BuiltInRegistries; 9 import net.minecraft.core.registries.Registries; 10 import net.minecraft.network.chat.Component; 11 import net.minecraft.network.chat.MutableComponent; 12 import net.minecraft.resources.ResourceKey; 13 import net.minecraft.resources.ResourceLocation; 14 import net.minecraft.world.level.block.Rotation; 15 16 public abstract class GameTestInstance { 17 public static final Codec<GameTestInstance> DIRECT_CODEC = BuiltInRegistries.TEST_INSTANCE_TYPE.byNameCodec().dispatch(GameTestInstance::codec, $$0 -> $$0); 18 private final TestData<Holder<TestEnvironmentDefinition>> info; 19 20 public static MapCodec<? extends GameTestInstance> bootstrap(Registry<MapCodec<? extends GameTestInstance>> $$0) { 21 register($$0, "block_based", BlockBasedTestInstance.CODEC); 22 return register($$0, "function", FunctionGameTestInstance.CODEC); 23 } 24 25 private static MapCodec<? extends GameTestInstance> register( 26 Registry<MapCodec<? extends GameTestInstance>> $$0, String $$1, MapCodec<? extends GameTestInstance> $$2 27 ) { 28 return Registry.register($$0, ResourceKey.create(Registries.TEST_INSTANCE_TYPE, ResourceLocation.withDefaultNamespace($$1)), $$2); 29 } 30 31 protected GameTestInstance(TestData<Holder<TestEnvironmentDefinition>> $$0) { 32 this.info = $$0; 33 } 34 35 public abstract void run(GameTestHelper var1); 36 37 public abstract MapCodec<? extends GameTestInstance> codec(); 38 39 public Holder<TestEnvironmentDefinition> batch() { 40 return this.info.environment(); 41 } 42 43 public ResourceLocation structure() { 44 return this.info.structure(); 45 } 46 47 public int maxTicks() { 48 return this.info.maxTicks(); 49 } 50 51 public int setupTicks() { 52 return this.info.setupTicks(); 53 } 54 55 public boolean required() { 56 return this.info.required(); 57 } 58 59 public boolean manualOnly() { 60 return this.info.manualOnly(); 61 } 62 63 public int maxAttempts() { 64 return this.info.maxAttempts(); 65 } 66 67 public int requiredSuccesses() { 68 return this.info.requiredSuccesses(); 69 } 70 71 public boolean skyAccess() { 72 return this.info.skyAccess(); 73 } 74 75 public Rotation rotation() { 76 return this.info.rotation(); 77 } 78 79 protected TestData<Holder<TestEnvironmentDefinition>> info() { 80 return this.info; 81 } 82 83 protected abstract MutableComponent typeDescription(); 84 85 public Component describe() { 86 return this.describeType().append(this.describeInfo()); 87 } 88 89 protected MutableComponent describeType() { 90 return this.descriptionRow("test_instance.description.type", this.typeDescription()); 91 } 92 93 protected Component describeInfo() { 94 return this.descriptionRow("test_instance.description.structure", this.info.structure().toString()) 95 .append(this.descriptionRow("test_instance.description.batch", this.info.environment().getRegisteredName())); 96 } 97 98 protected MutableComponent descriptionRow(String $$0, String $$1) { 99 return this.descriptionRow($$0, Component.literal($$1)); 100 } 101 102 protected MutableComponent descriptionRow(String $$0, MutableComponent $$1) { 103 return Component.translatable($$0, $$1.withStyle(ChatFormatting.BLUE)).append(Component.literal("\n")); 104 } 105 } 106 net/minecraft/network/protocol/game/ServerboundTestInstanceBlockActionPacket.java --- Java 1 package net.minecraft.network.protocol.game; 2 3 import io.netty.buffer.ByteBuf; 4 import java.util.Optional; 5 import java.util.function.IntFunction; 6 import net.minecraft.core.BlockPos; 7 import net.minecraft.core.Vec3i; 8 import net.minecraft.gametest.framework.GameTestInstance; 9 import net.minecraft.network.RegistryFriendlyByteBuf; 10 import net.minecraft.network.codec.ByteBufCodecs; 11 import net.minecraft.network.codec.StreamCodec; 12 import net.minecraft.network.protocol.Packet; 13 import net.minecraft.network.protocol.PacketType; 14 import net.minecraft.resources.ResourceKey; 15 import net.minecraft.util.ByIdMap; 16 import net.minecraft.world.level.block.Rotation; 17 import net.minecraft.world.level.block.entity.TestInstanceBlockEntity; 18 19 public record ServerboundTestInstanceBlockActionPacket(BlockPos pos, ServerboundTestInstanceBlockActionPacket.Action action, TestInstanceBlockEntity.Data data) 20 implements Packet<ServerGamePacketListener> { 21 public static final StreamCodec<RegistryFriendlyByteBuf, ServerboundTestInstanceBlockActionPacket> STREAM_CODEC = StreamCodec.composite( 22 BlockPos.STREAM_CODEC, 23 ServerboundTestInstanceBlockActionPacket::pos, 24 ServerboundTestInstanceBlockActionPacket.Action.STREAM_CODEC, 25 ServerboundTestInstanceBlockActionPacket::action, 26 TestInstanceBlockEntity.Data.STREAM_CODEC, 27 ServerboundTestInstanceBlockActionPacket::data, 28 ServerboundTestInstanceBlockActionPacket::new 29 ); 30 31 public ServerboundTestInstanceBlockActionPacket( 32 BlockPos $$0, ServerboundTestInstanceBlockActionPacket.Action $$1, Optional<ResourceKey<GameTestInstance>> $$2, Vec3i $$3, Rotation $$4, boolean $$5 33 ) { 34 this($$0, $$1, new TestInstanceBlockEntity.Data($$2, $$3, $$4, $$5, TestInstanceBlockEntity.Status.CLEARED, Optional.empty())); 35 } 36 37 @Override 38 public PacketType<ServerboundTestInstanceBlockActionPacket> type() { 39 return GamePacketTypes.SERVERBOUND_TEST_INSTANCE_BLOCK_ACTION; 40 } 41 42 public void handle(ServerGamePacketListener $$0) { 43 $$0.handleTestInstanceBlockAction(this); 44 } 45 46 public static enum Action { 47 INIT(0), 48 QUERY(1), 49 SET(2), 50 RESET(3), 51 SAVE(4), 52 EXPORT(5), 53 RUN(6); 54 55 private static final IntFunction<ServerboundTestInstanceBlockActionPacket.Action> BY_ID = ByIdMap.continuous( 56 $$0 -> $$0.id, values(), ByIdMap.OutOfBoundsStrategy.ZERO 57 ); 58 public static final StreamCodec<ByteBuf, ServerboundTestInstanceBlockActionPacket.Action> STREAM_CODEC = ByteBufCodecs.idMapper(BY_ID, $$0 -> $$0.id); 59 private final int id; 60 61 private Action(final int $$0) { 62 this.id = $$0; 63 } 64 } 65 } 66 net/minecraft/world/entity/projectile/AbstractArrow.java --- Text (4 Java parse errors, exceeded DFT_PARSE_ERROR_LIMIT) 81 protected AbstractArrow(EntityType<? extends AbstractArrow> $$0, dou 81 protected AbstractArrow(EntityType<? extends AbstractArrow> $$0, dou .. ble $$1, double $$2, double $$3, Level $$4, ItemStack $$5, @Nullable It .. ble $$1, double $$2, double $$3, Level $$4, ItemStack $$5, @Nullable It .. emStack $$6) { .. emStack $$6) { 82 this($$0, $$4); 82 this($$0, $$4); 83 this.pickupItemStack = $$5.copy(); 83 this.pickupItemStack = $$5.copy(); 84 this.setCustomName($$5.get(DataComponents.CUSTOM_NAME)); 84 this.applyComponentsFromItemStack($$5); 85 Unit $$7 = $$5.remove(DataComponents.INTANGIBLE_PROJECTILE); 85 Unit $$7 = $$5.remove(DataComponents.INTANGIBLE_PROJECTILE); 86 if ($$7 != null) { 86 if ($$7 != null) { 87 this.pickup = AbstractArrow.Pickup.CREATIVE_ONLY; 87 this.pickup = AbstractArrow.Pickup.CREATIVE_ONLY; net/minecraft/world/entity/monster/Spider.java --- Java 147 if ($$4.nextInt(100) == 0) { 147 if ($$4.nextInt(100) == 0) { 148 Skeleton $$5 = EntityType.SKELETON.create(this.level(), Entit 148 Skeleton $$5 = EntityType.SKELETON.create(this.level(), Entit ... ySpawnReason.JOCKEY); ... ySpawnReason.JOCKEY); 149 if ($$5 != null) { 149 if ($$5 != null) { 150 $$5.moveTo(this.getX(), this.getY(), this.getZ(), this.get 150 $$5.snapTo(this.getX(), this.getY(), this.getZ(), this.get ... YRot(), 0.0F); ... YRot(), 0.0F); 151 $$5.finalizeSpawn($$0, $$1, $$2, null); 151 $$5.finalizeSpawn($$0, $$1, $$2, null); 152 $$5.startRiding(this); 152 $$5.startRiding(this); 153 } 153 } net/minecraft/world/level/entity/PersistentEntitySectionManager.java --- Java 100 return $$0.isAlwaysTicking() ? Visibility.TICKING : $$1; 100 return $$0.isAlwaysTicking() ? Visibility.TICKING : $$1; 101 } 101 } ... 102 ... 103 public boolean isTicking(ChunkPos $$0) { ... 104 return this.chunkVisibility.get($$0.toLong()).isTicking(); ... 105 } 102 106 103 public void addLegacyChunkEntities(Stream<T> $$0) { 107 public void addLegacyChunkEntities(Stream<T> $$0) { 104 $$0.forEach($$0x -> this.addEntity((T)$$0x, true)); 108 $$0.forEach($$0x -> this.addEntity((T)$$0x, true)); net/minecraft/world/level/BaseSpawner.java --- 1/2 --- Java 113 } 113 } 114 114 115 Entity $$15 = EntityType.loadEntityRecursive($$6, $$ 115 Entity $$15 = EntityType.loadEntityRecursive($$6, $$ ... 0, EntitySpawnReason.SPAWNER, $$3x -> { ... 0, EntitySpawnReason.SPAWNER, $$3x -> { 116 $$3x.moveTo($$10, $$11, $$12, $$3x.getYRot(), $$3 116 $$3x.snapTo($$10, $$11, $$12, $$3x.getYRot(), $$3 ... x.getXRot()); ... x.getXRot()); 117 return $$3x; 117 return $$3x; 118 }); 118 }); 119 if ($$15 == null) { 119 if ($$15 == null) { net/minecraft/world/level/BaseSpawner.java --- 2/2 --- Java 140 return; 140 return; 141 } 141 } 142 142 143 $$15.moveTo($$15.getX(), $$15.getY(), $$15.getZ(), $ 143 $$15.snapTo($$15.getX(), $$15.getY(), $$15.getZ(), $ ... $3.nextFloat() * 360.0F, 0.0F); ... $3.nextFloat() * 360.0F, 0.0F); 144 if ($$15 instanceof Mob $$17) { 144 if ($$15 instanceof Mob $$17) { 145 if ($$4.getCustomSpawnRules().isEmpty() && !$$17. 145 if ($$4.getCustomSpawnRules().isEmpty() && !$$17. ... checkSpawnRules($$0, EntitySpawnReason.SPAWNER) || !$$17.checkSpawnObs ... checkSpawnRules($$0, EntitySpawnReason.SPAWNER) || !$$17.checkSpawnObs ... truction($$0)) { ... truction($$0)) { 146 continue; 146 continue; net/minecraft/gametest/framework/GameTestInstances.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.util.function.Consumer; 4 import net.minecraft.core.HolderGetter; 5 import net.minecraft.core.registries.Registries; 6 import net.minecraft.data.worldgen.BootstrapContext; 7 import net.minecraft.resources.ResourceKey; 8 import net.minecraft.resources.ResourceLocation; 9 10 public interface GameTestInstances { 11 ResourceKey<GameTestInstance> ALWAYS_PASS = create("always_pass"); 12 13 static void bootstrap(BootstrapContext<GameTestInstance> $$0) { 14 HolderGetter<Consumer<GameTestHelper>> $$1 = $$0.lookup(Registries.TEST_FUNCTION); 15 HolderGetter<TestEnvironmentDefinition> $$2 = $$0.lookup(Registries.TEST_ENVIRONMENT); 16 $$0.register( 17 ALWAYS_PASS, 18 new FunctionGameTestInstance( 19 $$1.getOrThrow(BuiltinTestFunctions.ALWAYS_PASS), 20 new TestData<>($$2.getOrThrow(GameTestEnvironments.DEFAULT_KEY), ResourceLocation.withDefaultNamespace("empty"), 1, 1, false) 21 ) 22 ); 23 } 24 25 private static ResourceKey<GameTestInstance> create(String $$0) { 26 return ResourceKey.create(Registries.TEST_INSTANCE, ResourceLocation.withDefaultNamespace($$0)); 27 } 28 } 29 net/minecraft/world/entity/ExperienceOrb.java --- 1/9 --- Java 5 import javax.annotation.Nullable; 5 import javax.annotation.Nullable; 6 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.BlockPos; 7 import net.minecraft.nbt.CompoundTag; 7 import net.minecraft.nbt.CompoundTag; . 8 import net.minecraft.network.syncher.EntityDataAccessor; . 9 import net.minecraft.network.syncher.EntityDataSerializers; 8 import net.minecraft.network.syncher.SynchedEntityData; 10 import net.minecraft.network.syncher.SynchedEntityData; 9 import net.minecraft.server.level.ServerLevel; 11 import net.minecraft.server.level.ServerLevel; 10 import net.minecraft.server.level.ServerPlayer; 12 import net.minecraft.server.level.ServerPlayer; net/minecraft/world/entity/ExperienceOrb.java --- 2/9 --- Java 22 import net.minecraft.world.phys.Vec3; 24 import net.minecraft.world.phys.Vec3; 23 25 24 public class ExperienceOrb extends Entity { 26 public class ExperienceOrb extends Entity { .. 27 protected static final EntityDataAccessor<Integer> DATA_VALUE = Sync .. .. hedEntityData.defineId(ExperienceOrb.class, EntityDataSerializers.INT); 25 private static final int LIFETIME = 6000; 28 private static final int LIFETIME = 6000; 26 private static final int ENTITY_SCAN_PERIOD = 20; 29 private static final int ENTITY_SCAN_PERIOD = 20; 27 private static final int MAX_FOLLOW_DIST = 8; 30 private static final int MAX_FOLLOW_DIST = 8; 28 private static final int ORB_GROUPS_PER_AREA = 40; 31 private static final int ORB_GROUPS_PER_AREA = 40; 29 private static final double ORB_MERGE_DISTANCE = 0.5; 32 private static final double ORB_MERGE_DISTANCE = 0.5; 30 private int age; 33 private int age; 31 private int health = 5; 34 private int health = 5; 32 private int value; .. 33 private int count = 1; 35 private int count = 1; 34 @Nullable 36 @Nullable 35 private Player followingPlayer; 37 private Player followingPlayer; net/minecraft/world/entity/ExperienceOrb.java --- 3/9 --- Java 45 ); 47 ); 46 } 48 } 47 49 48 this.value = $$4; 50 this.setValue($$4); 49 } 51 } 50 52 51 public ExperienceOrb(EntityType<? extends ExperienceOrb> $$0, Level 53 public ExperienceOrb(EntityType<? extends ExperienceOrb> $$0, Level $$1) { $$1) { net/minecraft/world/entity/ExperienceOrb.java --- 4/9 --- Java 59 61 60 @Override 62 @Override 61 protected void defineSynchedData(SynchedEntityData.Builder $$0) { 63 protected void defineSynchedData(SynchedEntityData.Builder $$0) { .. 64 $$0.define(DATA_VALUE, 0); 62 } 65 } 63 66 64 @Override 67 @Override net/minecraft/world/entity/ExperienceOrb.java --- 5/9 --- Java 107 this.setDeltaMovement(this.getDeltaMovement().scale((double)$ 110 this.setDeltaMovement(this.getDeltaMovement().scale((double)$ ... $2)); ... $2)); 108 if (this.verticalCollisionBelow && $$1 < -this.getGravity()) 111 if (this.verticalCollisionBelow && $$1 < -this.getGravity()) ... { ... { 109 this.setDeltaMovement(new Vec3(this.getDeltaMovement().x, 112 this.setDeltaMovement(new Vec3(this.getDeltaMovement().x, ... -$$1 * 0.4, this.getDeltaMovement().z)); ... -$$1 * 0.4, this.getDeltaMovement().z)); 110 this.hasImpulse = true; ... 111 } 113 } 112 114 113 this.age++; 115 this.age++; net/minecraft/world/entity/ExperienceOrb.java --- 6/9 --- Java 177 } 179 } 178 180 179 private boolean canMerge(ExperienceOrb $$0) { 181 private boolean canMerge(ExperienceOrb $$0) { 180 return $$0 != this && canMerge($$0, this.getId(), this.value); 182 return $$0 != this && canMerge($$0, this.getId(), this.getValue( ... ... )); 181 } 183 } 182 184 183 private static boolean canMerge(ExperienceOrb $$0, int $$1, int $$2 185 private static boolean canMerge(ExperienceOrb $$0, int $$1, int $$2 ... ) { ... ) { 184 return !$$0.isRemoved() && ($$0.getId() - $$1) % 40 == 0 && $$0. 186 return !$$0.isRemoved() && ($$0.getId() - $$1) % 40 == 0 && $$0. ... value == $$2; ... getValue() == $$2; 185 } 187 } 186 188 187 private void merge(ExperienceOrb $$0) { 189 private void merge(ExperienceOrb $$0) { net/minecraft/world/entity/ExperienceOrb.java --- 7/9 --- Java 223 public void addAdditionalSaveData(CompoundTag $$0) { 225 public void addAdditionalSaveData(CompoundTag $$0) { 224 $$0.putShort("Health", (short)this.health); 226 $$0.putShort("Health", (short)this.health); 225 $$0.putShort("Age", (short)this.age); 227 $$0.putShort("Age", (short)this.age); 226 $$0.putShort("Value", (short)this.value); 228 $$0.putShort("Value", (short)this.getValue()); 227 $$0.putInt("Count", this.count); 229 $$0.putInt("Count", this.count); 228 } 230 } 229 231 230 @Override 232 @Override 231 public void readAdditionalSaveData(CompoundTag $$0) { 233 public void readAdditionalSaveData(CompoundTag $$0) { 232 this.health = $$0.getShort("Health"); 234 this.health = $$0.getShort("Health"); 233 this.age = $$0.getShort("Age"); 235 this.age = $$0.getShort("Age"); 234 this.value = $$0.getShort("Value"); 236 this.setValue($$0.getShort("Value")); 235 this.count = Math.max($$0.getInt("Count"), 1); 237 this.count = Math.max($$0.getInt("Count"), 1); 236 } 238 } 237 239 net/minecraft/world/entity/ExperienceOrb.java --- 8/9 --- Java 241 if ($$0.takeXpDelay == 0) { 243 if ($$0.takeXpDelay == 0) { 242 $$0.takeXpDelay = 2; 244 $$0.takeXpDelay = 2; 243 $$0.take(this, 1); 245 $$0.take(this, 1); 244 int $$3 = this.repairPlayerItems($$1, this.value); 246 int $$3 = this.repairPlayerItems($$1, this.getValue()); 245 if ($$3 > 0) { 247 if ($$3 > 0) { 246 $$0.giveExperiencePoints($$3); 248 $$0.giveExperiencePoints($$3); 247 } 249 } net/minecraft/world/entity/ExperienceOrb.java --- 9/9 --- Java 275 } 277 } 276 278 277 public int getValue() { 279 public int getValue() { 278 return this.value; 280 return this.entityData.get(DATA_VALUE); 279 } 281 } ... 282 ... 283 private void setValue(int $$0) { ... 284 this.entityData.set(DATA_VALUE, $$0); ... 285 } 280 286 281 public int getIcon() { 287 public int getIcon() { ... 288 int $$0 = this.getValue(); 282 if (this.value >= 2477) { 289 if ($$0 >= 2477) { 283 return 10; 290 return 10; 284 } else if (this.value >= 1237) { 291 } else if ($$0 >= 1237) { 285 return 9; 292 return 9; 286 } else if (this.value >= 617) { 293 } else if ($$0 >= 617) { 287 return 8; 294 return 8; 288 } else if (this.value >= 307) { 295 } else if ($$0 >= 307) { 289 return 7; 296 return 7; 290 } else if (this.value >= 149) { 297 } else if ($$0 >= 149) { 291 return 6; 298 return 6; 292 } else if (this.value >= 73) { 299 } else if ($$0 >= 73) { 293 return 5; 300 return 5; 294 } else if (this.value >= 37) { 301 } else if ($$0 >= 37) { 295 return 4; 302 return 4; 296 } else if (this.value >= 17) { 303 } else if ($$0 >= 17) { 297 return 3; 304 return 3; 298 } else if (this.value >= 7) { 305 } else if ($$0 >= 7) { 299 return 2; 306 return 2; 300 } else { 307 } else { 301 return this.value >= 3 ? 1 : 0; 308 return $$0 >= 3 ? 1 : 0; 302 } 309 } 303 } 310 } 304 311 net/minecraft/resources/RegistryDataLoader.java --- 1/4 --- Java 34 import net.minecraft.core.RegistrySynchronization; 34 import net.minecraft.core.RegistrySynchronization; 35 import net.minecraft.core.WritableRegistry; 35 import net.minecraft.core.WritableRegistry; 36 import net.minecraft.core.registries.Registries; 36 import net.minecraft.core.registries.Registries; .. 37 import net.minecraft.gametest.framework.GameTestInstance; .. 38 import net.minecraft.gametest.framework.TestEnvironmentDefinition; 37 import net.minecraft.nbt.NbtOps; 39 import net.minecraft.nbt.NbtOps; 38 import net.minecraft.nbt.Tag; 40 import net.minecraft.nbt.Tag; 39 import net.minecraft.network.chat.ChatType; 41 import net.minecraft.network.chat.ChatType; net/minecraft/resources/RegistryDataLoader.java --- 2/4 --- Java 109 new RegistryDataLoader.RegistryData<>(Registries.ENCHANTMENT, En 111 new RegistryDataLoader.RegistryData<>(Registries.ENCHANTMENT, En ... chantment.DIRECT_CODEC), ... chantment.DIRECT_CODEC), 110 new RegistryDataLoader.RegistryData<>(Registries.ENCHANTMENT_PRO 112 new RegistryDataLoader.RegistryData<>(Registries.ENCHANTMENT_PRO ... VIDER, EnchantmentProvider.DIRECT_CODEC), ... VIDER, EnchantmentProvider.DIRECT_CODEC), 111 new RegistryDataLoader.RegistryData<>(Registries.JUKEBOX_SONG, J 113 new RegistryDataLoader.RegistryData<>(Registries.JUKEBOX_SONG, J ... ukeboxSong.DIRECT_CODEC), ... ukeboxSong.DIRECT_CODEC), 112 new RegistryDataLoader.RegistryData<>(Registries.INSTRUMENT, Ins 114 new RegistryDataLoader.RegistryData<>(Registries.INSTRUMENT, Ins ... trument.DIRECT_CODEC) ... trument.DIRECT_CODEC), ... 115 new RegistryDataLoader.RegistryData<>(Registries.TEST_ENVIRONMEN ... ... T, TestEnvironmentDefinition.DIRECT_CODEC), ... 116 new RegistryDataLoader.RegistryData<>(Registries.TEST_INSTANCE, ... ... GameTestInstance.DIRECT_CODEC) 113 ); 117 ); 114 public static final List<RegistryDataLoader.RegistryData<?>> DIMENS 118 public static final List<RegistryDataLoader.RegistryData<?>> DIMENS ... ION_REGISTRIES = List.of( ... ION_REGISTRIES = List.of( 115 new RegistryDataLoader.RegistryData<>(Registries.LEVEL_STEM, Lev 119 new RegistryDataLoader.RegistryData<>(Registries.LEVEL_STEM, Lev elStem.CODEC) elStem.CODEC) net/minecraft/resources/RegistryDataLoader.java --- 3/4 --- Java 127 new RegistryDataLoader.RegistryData<>(Registries.BANNER_PATTERN, 131 new RegistryDataLoader.RegistryData<>(Registries.BANNER_PATTERN, ... BannerPattern.DIRECT_CODEC), ... BannerPattern.DIRECT_CODEC), 128 new RegistryDataLoader.RegistryData<>(Registries.ENCHANTMENT, En 132 new RegistryDataLoader.RegistryData<>(Registries.ENCHANTMENT, En ... chantment.DIRECT_CODEC), ... chantment.DIRECT_CODEC), 129 new RegistryDataLoader.RegistryData<>(Registries.JUKEBOX_SONG, J 133 new RegistryDataLoader.RegistryData<>(Registries.JUKEBOX_SONG, J ... ukeboxSong.DIRECT_CODEC), ... ukeboxSong.DIRECT_CODEC), 130 new RegistryDataLoader.RegistryData<>(Registries.INSTRUMENT, Ins 134 new RegistryDataLoader.RegistryData<>(Registries.INSTRUMENT, Ins ... trument.DIRECT_CODEC) ... trument.DIRECT_CODEC), ... 135 new RegistryDataLoader.RegistryData<>(Registries.TEST_ENVIRONMEN ... ... T, TestEnvironmentDefinition.DIRECT_CODEC), ... 136 new RegistryDataLoader.RegistryData<>(Registries.TEST_INSTANCE, ... ... GameTestInstance.DIRECT_CODEC) 131 ); 137 ); 132 138 133 public static RegistryAccess.Frozen load(ResourceManager $$0, List< 139 public static RegistryAccess.Frozen load(ResourceManager $$0, List< HolderLookup.RegistryLookup<?>> $$1, List<RegistryDataLoader.RegistryD HolderLookup.RegistryLookup<?>> $$1, List<RegistryDataLoader.RegistryD ata<?>> $$2) { ata<?>> $$2) { net/minecraft/resources/RegistryDataLoader.java --- 4/4 --- Java 160 } 166 } 161 167 162 if ($$1x.data.requiredNonEmpty && $$2x.size() == 0) { 168 if ($$1x.data.requiredNonEmpty && $$2x.size() == 0) { 163 $$3.put($$2x.key(), new IllegalStateException("Registry mu 169 $$3.put($$2x.key(), new IllegalStateException("Registry mu ... st be non-empty")); ... st be non-empty: " + $$2x.key().location())); 164 } 170 } 165 }); 171 }); 166 if (!$$3.isEmpty()) { 172 if (!$$3.isEmpty()) { net/minecraft/util/datafix/fixes/References.java --- Java 29 public static final TypeReference VILLAGER_TRADE = reference("villag 29 public static final TypeReference VILLAGER_TRADE = reference("villag .. er_trade"); .. er_trade"); 30 public static final TypeReference PARTICLE = reference("particle"); 30 public static final TypeReference PARTICLE = reference("particle"); 31 public static final TypeReference TEXT_COMPONENT = reference("text_c 31 public static final TypeReference TEXT_COMPONENT = reference("text_c .. omponent"); .. omponent"); .. 32 public static final TypeReference ENTITY_EQUIPMENT = reference("enti .. .. ty_equipment"); 32 public static final TypeReference ENTITY_NAME = reference("entity_na 33 public static final TypeReference ENTITY_NAME = reference("entity_na .. me"); .. me"); 33 public static final TypeReference ENTITY_TREE = reference("entity_tr 34 public static final TypeReference ENTITY_TREE = reference("entity_tr .. ee"); .. ee"); 34 public static final TypeReference ENTITY = reference("entity"); 35 public static final TypeReference ENTITY = reference("entity"); net/minecraft/world/item/ItemStack.java --- 1/6 --- Java 26 import net.minecraft.core.HolderLookup; 26 import net.minecraft.core.HolderLookup; 27 import net.minecraft.core.HolderSet; 27 import net.minecraft.core.HolderSet; 28 import net.minecraft.core.NonNullList; 28 import net.minecraft.core.NonNullList; .. 29 import net.minecraft.core.component.DataComponentGetter; 29 import net.minecraft.core.component.DataComponentHolder; 30 import net.minecraft.core.component.DataComponentHolder; 30 import net.minecraft.core.component.DataComponentMap; 31 import net.minecraft.core.component.DataComponentMap; 31 import net.minecraft.core.component.DataComponentPatch; 32 import net.minecraft.core.component.DataComponentPatch; net/minecraft/world/item/ItemStack.java --- 2/6 --- Java 87 import net.minecraft.world.item.enchantment.EnchantmentHelper; 88 import net.minecraft.world.item.enchantment.EnchantmentHelper; 88 import net.minecraft.world.item.enchantment.ItemEnchantments; 89 import net.minecraft.world.item.enchantment.ItemEnchantments; 89 import net.minecraft.world.item.enchantment.Repairable; 90 import net.minecraft.world.item.enchantment.Repairable; .. 91 import net.minecraft.world.item.equipment.Equippable; 90 import net.minecraft.world.level.ItemLike; 92 import net.minecraft.world.level.ItemLike; 91 import net.minecraft.world.level.Level; 93 import net.minecraft.world.level.Level; 92 import net.minecraft.world.level.block.state.BlockState; 94 import net.minecraft.world.level.block.state.BlockState; net/minecraft/world/item/ItemStack.java --- 3/6 --- Java 269 } 271 } 270 272 271 public static DataResult<Unit> validateComponents(DataComponentMap 273 public static DataResult<Unit> validateComponents(DataComponentMap ... $$0) { ... $$0) { 272 if ($$0.has(DataComponents.MAX_DAMAGE) && $$0.getOrDefault(DataC 274 if ($$0.has(DataComponents.MAX_DAMAGE) && $$0.getOrDefault(DataC ... omponents.MAX_STACK_SIZE, 1) > 1) { ... omponents.MAX_STACK_SIZE, Integer.valueOf(1)) > 1) { 273 return DataResult.error(() -> "Item cannot be both damageable 275 return DataResult.error(() -> "Item cannot be both damageable ... and stackable"); ... and stackable"); 274 } else { 276 } else { 275 ItemContainerContents $$1 = $$0.getOrDefault(DataComponents.C 277 ItemContainerContents $$1 = $$0.getOrDefault(DataComponents.C ONTAINER, ItemContainerContents.EMPTY); ONTAINER, ItemContainerContents.EMPTY); net/minecraft/world/item/ItemStack.java --- 4/6 --- Java 563 this.getItem().postHurtEnemy(this, $$0, $$1); 565 this.getItem().postHurtEnemy(this, $$0, $$1); 564 Weapon $$2 = this.get(DataComponents.WEAPON); 566 Weapon $$2 = this.get(DataComponents.WEAPON); 565 if ($$2 != null) { 567 if ($$2 != null) { 566 this.hurtAndBreak($$2.damagePerAttack(), $$1, EquipmentSlot.M 568 this.hurtAndBreak($$2.itemDamagePerAttack(), $$1, EquipmentSl ... AINHAND); ... ot.MAINHAND); 567 } 569 } 568 } 570 } 569 571 net/minecraft/world/item/ItemStack.java --- 5/6 --- Java 579 } 581 } 580 582 581 public InteractionResult interactLivingEntity(Player $$0, LivingEnt 583 public InteractionResult interactLivingEntity(Player $$0, LivingEnt ... ity $$1, InteractionHand $$2) { ... ity $$1, InteractionHand $$2) { ... 584 Equippable $$3 = this.get(DataComponents.EQUIPPABLE); ... 585 if ($$3 != null && $$3.equipOnInteract()) { ... 586 InteractionResult $$4 = $$3.equipOnTarget($$0, $$1, this); ... 587 if ($$4 != InteractionResult.PASS) { ... 588 return $$4; ... 589 } ... 590 } ... 591 582 return this.getItem().interactLivingEntity(this, $$0, $$1, $$2); 592 return this.getItem().interactLivingEntity(this, $$0, $$1, $$2); 583 } 593 } net/minecraft/world/item/ItemStack.java --- 6/6 --- Java 724 return this.components.set($$0, $$1); 734 return this.components.set($$0, $$1); 725 } 735 } ... 736 ... 737 public <T> void copyFrom(DataComponentType<T> $$0, DataComponentGet ... ... ter $$1) { ... 738 this.set($$0, $$1.get($$0)); ... 739 } 726 740 727 @Nullable 741 @Nullable 728 public <T, U> T update(DataComponentType<T> $$0, T $$1, U $$2, BiFu 742 public <T, U> T update(DataComponentType<T> $$0, T $$1, U $$2, BiFu nction<T, U, T> $$3) { nction<T, U, T> $$3) { net/minecraft/gametest/framework/BlockBasedTestInstance.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import com.mojang.serialization.MapCodec; 4 import com.mojang.serialization.codecs.RecordCodecBuilder; 5 import java.util.ArrayList; 6 import java.util.List; 7 import java.util.function.Consumer; 8 import net.minecraft.core.BlockPos; 9 import net.minecraft.core.Holder; 10 import net.minecraft.network.chat.Component; 11 import net.minecraft.network.chat.MutableComponent; 12 import net.minecraft.world.level.block.Blocks; 13 import net.minecraft.world.level.block.TestBlock; 14 import net.minecraft.world.level.block.entity.TestBlockEntity; 15 import net.minecraft.world.level.block.state.BlockState; 16 import net.minecraft.world.level.block.state.properties.TestBlockMode; 17 18 public class BlockBasedTestInstance extends GameTestInstance { 19 public static final MapCodec<BlockBasedTestInstance> CODEC = RecordCodecBuilder.mapCodec( 20 $$0 -> $$0.group(TestData.CODEC.forGetter(GameTestInstance::info)).apply($$0, BlockBasedTestInstance::new) 21 ); 22 23 public BlockBasedTestInstance(TestData<Holder<TestEnvironmentDefinition>> $$0) { 24 super($$0); 25 } 26 27 @Override 28 public void run(GameTestHelper $$0) { 29 BlockPos $$1 = this.findTestBlock($$0, TestBlockMode.START); 30 TestBlockEntity $$2 = $$0.getBlockEntity($$1, TestBlockEntity.class); 31 $$2.trigger(); 32 $$0.onEachTick(() -> { 33 BlockPos $$1x = this.findTestBlock($$0, TestBlockMode.ACCEPT); 34 TestBlockEntity $$2x = $$0.getBlockEntity($$1x, TestBlockEntity.class); 35 if ($$2x.hasTriggered()) { 36 $$0.succeed(); 37 } else { 38 this.forAllTriggeredTestBlocks($$0, TestBlockMode.FAIL, $$1xx -> $$0.fail(Component.literal($$1xx.getMessage()))); 39 this.forAllTriggeredTestBlocks($$0, TestBlockMode.LOG, TestBlockEntity::trigger); 40 } 41 }); 42 } 43 44 private void forAllTriggeredTestBlocks(GameTestHelper $$0, TestBlockMode $$1, Consumer<TestBlockEntity> $$2) { 45 for (BlockPos $$4 : this.findTestBlocks($$0, $$1)) { 46 TestBlockEntity $$5 = $$0.getBlockEntity($$4, TestBlockEntity.class); 47 if ($$5.hasTriggered()) { 48 $$2.accept($$5); 49 $$5.reset(); 50 } 51 } 52 } 53 54 private BlockPos findTestBlock(GameTestHelper $$0, TestBlockMode $$1) { 55 List<BlockPos> $$2 = this.findTestBlocks($$0, $$1); 56 if ($$2.isEmpty()) { 57 $$0.fail(Component.translatable("test_block.error.missing", $$1.getDisplayName())); 58 } 59 60 if ($$2.size() != 1) { 61 $$0.fail(Component.translatable("test_block.error.too_many", $$1.getDisplayName())); 62 } 63 64 return $$2.getFirst(); 65 } 66 67 private List<BlockPos> findTestBlocks(GameTestHelper $$0, TestBlockMode $$1) { 68 List<BlockPos> $$2 = new ArrayList<>(); 69 $$0.forEveryBlockInStructure($$3 -> { 70 BlockState $$4 = $$0.getBlockState($$3); 71 if ($$4.is(Blocks.TEST_BLOCK) && $$4.getValue(TestBlock.MODE) == $$1) { 72 $$2.add($$3.immutable()); 73 } 74 }); 75 return $$2; 76 } 77 78 @Override 79 public MapCodec<BlockBasedTestInstance> codec() { 80 return CODEC; 81 } 82 83 @Override 84 protected MutableComponent typeDescription() { 85 return Component.translatable("test_instance.type.block_based"); 86 } 87 } 88 net/minecraft/gametest/framework/GameTestAssertException.java --- Java 1 package net.minecraft.gametest.framework; 1 package net.minecraft.gametest.framework; . 2 . 3 import net.minecraft.network.chat.Component; 2 4 3 public class GameTestAssertException extends RuntimeException { 5 public class GameTestAssertException extends RuntimeException { . 6 protected final Component message; . 7 protected final int tick; . 8 4 public GameTestAssertException(String $$0) { 9 public GameTestAssertException(Component $$0, int $$1) { 5 super($$0); 10 super($$0.getString()); . 11 this.message = $$0; . 12 this.tick = $$1; 6 } 13 } . 14 . 15 public Component getDescription() { . 16 return Component.translatable("test.error.tick", this.message, thi . .. s.tick); . 17 } . 18 . 19 @Override . 20 public String getMessage() { . 21 return this.getDescription().getString(); . 22 } 7 } 23 } net/minecraft/world/level/GameRules.java --- 1/6 --- Java 10 import com.mojang.brigadier.context.CommandContext; 10 import com.mojang.brigadier.context.CommandContext; 11 import com.mojang.brigadier.exceptions.CommandSyntaxException; 11 import com.mojang.brigadier.exceptions.CommandSyntaxException; 12 import com.mojang.logging.LogUtils; 12 import com.mojang.logging.LogUtils; .. 13 import com.mojang.serialization.Codec; .. 14 import com.mojang.serialization.DataResult; 13 import com.mojang.serialization.DynamicLike; 15 import com.mojang.serialization.DynamicLike; 14 import java.util.Comparator; 16 import java.util.Comparator; 15 import java.util.Map; 17 import java.util.Map; net/minecraft/world/level/GameRules.java --- 2/6 --- Java 217 private final Map<GameRules.Key<?>, GameRules.Value<?>> rules; 219 private final Map<GameRules.Key<?>, GameRules.Value<?>> rules; 218 private final FeatureFlagSet enabledFeatures; 220 private final FeatureFlagSet enabledFeatures; ... 221 ... 222 public static <T extends GameRules.Value<T>> GameRules.Type<T> getT ... ... ype(GameRules.Key<T> $$0) { ... 223 return (GameRules.Type<T>)GAME_RULE_TYPES.get($$0); ... 224 } ... 225 ... 226 public static <T extends GameRules.Value<T>> Codec<GameRules.Key<T> ... ... > keyCodec(Class<T> $$0) { ... 227 return Codec.STRING ... 228 .comapFlatMap( ... 229 $$1 -> GAME_RULE_TYPES.entrySet() ... 230 .stream() ... 231 .filter($$1x -> ((GameRules.Type)$$1x.getValue()).va ... ... lueClass == $$0) ... 232 .map(Entry::getKey) ... 233 .filter($$1x -> $$1x.getId().equals($$1)) ... 234 .map($$0xx -> $$0xx) ... 235 .findFirst() ... 236 .map(DataResult::success) ... 237 .orElseGet(() -> DataResult.error(() -> "Invalid gam ... ... e rule ID for type: " + $$1)), ... 238 GameRules.Key::getId ... 239 ); ... 240 } 219 241 220 private static <T extends GameRules.Value<T>> GameRules.Key<T> regi 242 private static <T extends GameRules.Value<T>> GameRules.Key<T> regi ... ster(String $$0, GameRules.Category $$1, GameRules.Type<T> $$2) { ... ster(String $$0, GameRules.Category $$1, GameRules.Type<T> $$2) { 221 GameRules.Key<T> $$3 = new GameRules.Key<>($$0, $$1); 243 GameRules.Key<T> $$3 = new GameRules.Key<>($$0, $$1); net/minecraft/world/level/GameRules.java --- 3/6 --- Java ... 335 $$1x -> new GameRules.BooleanValue($$1x, $$0), ... 336 $$1, ... 337 GameRules.GameRuleTypeVisitor::visitBoolean, ... 338 GameRules.BooleanValue.class, ... 339 FeatureFlagSet.of() 313 ); 340 ); 314 } 341 } net/minecraft/world/level/GameRules.java --- 4/6 --- Java ... 433 $$1x -> new GameRules.IntegerValue($$1x, $$0), ... 434 $$1, ... 435 GameRules.GameRuleTypeVisitor::visitInteger, ... 436 GameRules.IntegerValue.class, ... 437 FeatureFlagSet.of() 406 ); 438 ); 407 } 439 } net/minecraft/world/level/GameRules.java --- 5/6 --- Java ... 446 $$1x -> new GameRules.IntegerValue($$1x, $$0), ... 447 $$4, ... 448 GameRules.GameRuleTypeVisitor::visitInteger, ... 449 GameRules.IntegerValue.class, ... 450 $$3 414 ); 451 ); 415 } 452 } net/minecraft/world/level/GameRules.java --- 6/6 --- Java 531 private final Function<GameRules.Type<T>, T> constructor; 568 private final Function<GameRules.Type<T>, T> constructor; 532 final BiConsumer<MinecraftServer, T> callback; 569 final BiConsumer<MinecraftServer, T> callback; 533 private final GameRules.VisitorCaller<T> visitorCaller; 570 private final GameRules.VisitorCaller<T> visitorCaller; ... 571 final Class<T> valueClass; 534 final FeatureFlagSet requiredFeatures; 572 final FeatureFlagSet requiredFeatures; 535 573 536 Type( 574 Type( 537 Supplier<ArgumentType<?>> $$0, 575 Supplier<ArgumentType<?>> $$0, 538 Function<GameRules.Type<T>, T> $$1, 576 Function<GameRules.Type<T>, T> $$1, 539 BiConsumer<MinecraftServer, T> $$2, 577 BiConsumer<MinecraftServer, T> $$2, 540 GameRules.VisitorCaller<T> $$3, 578 GameRules.VisitorCaller<T> $$3, 541 FeatureFlagSet $$4 579 Class<T> $$4, ... 580 FeatureFlagSet $$5 542 ) { 581 ) { 543 this.argument = $$0; 582 this.argument = $$0; 544 this.constructor = $$1; 583 this.constructor = $$1; 545 this.callback = $$2; 584 this.callback = $$2; 546 this.visitorCaller = $$3; 585 this.visitorCaller = $$3; ... 586 this.valueClass = $$4; 547 this.requiredFeatures = $$4; 587 this.requiredFeatures = $$5; 548 } 588 } 549 589 550 public RequiredArgumentBuilder<CommandSourceStack, ?> createArgu 590 public RequiredArgumentBuilder<CommandSourceStack, ?> createArgu ment(String $$0) { ment(String $$0) { net/minecraft/gametest/framework/BuiltinTestFunctions.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.util.function.BiConsumer; 4 import java.util.function.Consumer; 5 import net.minecraft.core.Registry; 6 import net.minecraft.core.registries.Registries; 7 import net.minecraft.resources.ResourceKey; 8 import net.minecraft.resources.ResourceLocation; 9 10 public class BuiltinTestFunctions extends TestFunctionLoader { 11 public static final ResourceKey<Consumer<GameTestHelper>> ALWAYS_PASS = create("always_pass"); 12 public static final Consumer<GameTestHelper> ALWAYS_PASS_INSTANCE = GameTestHelper::succeed; 13 14 private static ResourceKey<Consumer<GameTestHelper>> create(String $$0) { 15 return ResourceKey.create(Registries.TEST_FUNCTION, ResourceLocation.withDefaultNamespace($$0)); 16 } 17 18 public static Consumer<GameTestHelper> bootstrap(Registry<Consumer<GameTestHelper>> $$0) { 19 registerLoader(new BuiltinTestFunctions()); 20 runLoaders($$0); 21 return ALWAYS_PASS_INSTANCE; 22 } 23 24 @Override 25 public void load(BiConsumer<ResourceKey<Consumer<GameTestHelper>>, Consumer<GameTestHelper>> $$0) { 26 $$0.accept(ALWAYS_PASS, ALWAYS_PASS_INSTANCE); 27 } 28 } 29 net/minecraft/world/item/Item.java --- 1/2 --- Java 132 } 132 } 133 133 134 public int getDefaultMaxStackSize() { 134 public int getDefaultMaxStackSize() { 135 return this.components.getOrDefault(DataComponents.MAX_STACK_SIZ 135 return this.components.getOrDefault(DataComponents.MAX_STACK_SIZ ... E, 1); ... E, Integer.valueOf(1)); 136 } 136 } 137 137 138 public void onUseTick(Level $$0, LivingEntity $$1, ItemStack $$2, i 138 public void onUseTick(Level $$0, LivingEntity $$1, ItemStack $$2, i nt $$3) { nt $$3) { net/minecraft/world/item/Item.java --- 2/2 --- Java 475 475 476 DataComponentMap buildAndValidateComponents(Component $$0, Resou 476 DataComponentMap buildAndValidateComponents(Component $$0, Resou ... rceLocation $$1) { ... rceLocation $$1) { 477 DataComponentMap $$2 = this.components.set(DataComponents.ITE 477 DataComponentMap $$2 = this.components.set(DataComponents.ITE ... M_NAME, $$0).set(DataComponents.ITEM_MODEL, $$1).build(); ... M_NAME, $$0).set(DataComponents.ITEM_MODEL, $$1).build(); 478 if ($$2.has(DataComponents.DAMAGE) && $$2.getOrDefault(DataCo 478 if ($$2.has(DataComponents.DAMAGE) && $$2.getOrDefault(DataCo ... mponents.MAX_STACK_SIZE, 1) > 1) { ... mponents.MAX_STACK_SIZE, Integer.valueOf(1)) > 1) { 479 throw new IllegalStateException("Item cannot have both dur 479 throw new IllegalStateException("Item cannot have both dur ... ability and be stackable"); ... ability and be stackable"); 480 } else { 480 } else { 481 return $$2; 481 return $$2; net/minecraft/gametest/framework/JUnitLikeTestReporter.java --- Java 35 private Element createTestCase(GameTestInfo $$0, String $$1) { 35 private Element createTestCase(GameTestInfo $$0, String $$1) { 36 Element $$2 = this.document.createElement("testcase"); 36 Element $$2 = this.document.createElement("testcase"); 37 $$2.setAttribute("name", $$1); 37 $$2.setAttribute("name", $$1); 38 $$2.setAttribute("classname", $$0.getStructureName()); 38 $$2.setAttribute("classname", $$0.getStructure().toString()); 39 $$2.setAttribute("time", String.valueOf((double)$$0.getRunTime() 39 $$2.setAttribute("time", String.valueOf((double)$$0.getRunTime() .. / 1000.0)); .. / 1000.0)); 40 this.testSuite.appendChild($$2); 40 this.testSuite.appendChild($$2); 41 return $$2; 41 return $$2; 42 } 42 } 43 43 44 @Override 44 @Override 45 public void onTestFailed(GameTestInfo $$0) { 45 public void onTestFailed(GameTestInfo $$0) { 46 String $$1 = $$0.getTestName(); 46 String $$1 = $$0.id().toString(); 47 String $$2 = $$0.getError().getMessage(); 47 String $$2 = $$0.getError().getMessage(); 48 Element $$3 = this.document.createElement($$0.isRequired() ? "fai 48 Element $$3 = this.document.createElement($$0.isRequired() ? "fai .. lure" : "skipped"); .. lure" : "skipped"); 49 $$3.setAttribute("message", "(" + $$0.getTestOrigin().toShortStri 49 $$3.setAttribute("message", "(" + $$0.getTestBlockPos().toShortSt .. ng() + ") " + $$2); .. ring() + ") " + $$2); 50 Element $$4 = this.createTestCase($$0, $$1); 50 Element $$4 = this.createTestCase($$0, $$1); 51 $$4.appendChild($$3); 51 $$4.appendChild($$3); 52 } 52 } 53 53 54 @Override 54 @Override 55 public void onTestSuccess(GameTestInfo $$0) { 55 public void onTestSuccess(GameTestInfo $$0) { 56 String $$1 = $$0.getTestName(); 56 String $$1 = $$0.id().toString(); 57 this.createTestCase($$0, $$1); 57 this.createTestCase($$0, $$1); 58 } 58 } 59 59 net/minecraft/world/entity/projectile/ThrownEgg.java --- Java 69 Chicken $$3 = EntityType.CHICKEN.create(this.level(), En 69 Chicken $$3 = EntityType.CHICKEN.create(this.level(), En .. titySpawnReason.TRIGGERED); .. titySpawnReason.TRIGGERED); 70 if ($$3 != null) { 70 if ($$3 != null) { 71 $$3.setAge(-24000); 71 $$3.setAge(-24000); 72 $$3.moveTo(this.getX(), this.getY(), this.getZ(), thi 72 $$3.snapTo(this.getX(), this.getY(), this.getZ(), thi .. s.getYRot(), 0.0F); .. s.getYRot(), 0.0F); 73 if (!$$3.fudgePositionAfterSizeChange(ZERO_SIZED_DIME 73 if (!$$3.fudgePositionAfterSizeChange(ZERO_SIZED_DIME .. NSIONS)) { .. NSIONS)) { 74 break; 74 break; 75 } 75 } net/minecraft/gametest/framework/TestEnvironmentDefinition.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import com.mojang.logging.LogUtils; 4 import com.mojang.serialization.Codec; 5 import com.mojang.serialization.MapCodec; 6 import com.mojang.serialization.codecs.RecordCodecBuilder; 7 import java.util.Arrays; 8 import java.util.List; 9 import java.util.Optional; 10 import net.minecraft.commands.CommandSourceStack; 11 import net.minecraft.commands.functions.CommandFunction; 12 import net.minecraft.core.Holder; 13 import net.minecraft.core.Registry; 14 import net.minecraft.core.registries.BuiltInRegistries; 15 import net.minecraft.core.registries.Registries; 16 import net.minecraft.resources.RegistryFileCodec; 17 import net.minecraft.resources.ResourceLocation; 18 import net.minecraft.server.MinecraftServer; 19 import net.minecraft.server.ServerFunctionManager; 20 import net.minecraft.server.level.ServerLevel; 21 import net.minecraft.util.ExtraCodecs; 22 import net.minecraft.util.StringRepresentable; 23 import net.minecraft.world.level.GameRules; 24 import org.slf4j.Logger; 25 26 public interface TestEnvironmentDefinition { 27 Codec<TestEnvironmentDefinition> DIRECT_CODEC = BuiltInRegistries.TEST_ENVIRONMENT_DEFINITION_TYPE 28 .byNameCodec() 29 .dispatch(TestEnvironmentDefinition::codec, $$0 -> $$0); 30 Codec<Holder<TestEnvironmentDefinition>> CODEC = RegistryFileCodec.create(Registries.TEST_ENVIRONMENT, DIRECT_CODEC); 31 32 static MapCodec<? extends TestEnvironmentDefinition> bootstrap(Registry<MapCodec<? extends TestEnvironmentDefinition>> $$0) { 33 Registry.register($$0, "all_of", TestEnvironmentDefinition.AllOf.CODEC); 34 Registry.register($$0, "game_rules", TestEnvironmentDefinition.SetGameRules.CODEC); 35 Registry.register($$0, "time_of_day", TestEnvironmentDefinition.TimeOfDay.CODEC); 36 Registry.register($$0, "raining", TestEnvironmentDefinition.Weather.CODEC); 37 return Registry.register($$0, "function", TestEnvironmentDefinition.Functions.CODEC); 38 } 39 40 void setup(ServerLevel var1); 41 42 default void teardown(ServerLevel $$0) { 43 } 44 45 MapCodec<? extends TestEnvironmentDefinition> codec(); 46 47 public static record AllOf(List<Holder<TestEnvironmentDefinition>> definitions) implements TestEnvironmentDefinition { 48 public static final MapCodec<TestEnvironmentDefinition.AllOf> CODEC = RecordCodecBuilder.mapCodec( 49 $$0 -> $$0.group(TestEnvironmentDefinition.CODEC.listOf().fieldOf("definitions").forGetter(TestEnvironmentDefinition.AllOf::definitions)) 50 .apply($$0, TestEnvironmentDefinition.AllOf::new) 51 ); 52 53 public AllOf(TestEnvironmentDefinition... $$0) { 54 this(Arrays.stream($$0).map(Holder::direct).toList()); 55 } 56 57 @Override 58 public void setup(ServerLevel $$0) { 59 this.definitions.forEach($$1 -> $$1.value().setup($$0)); 60 } 61 62 @Override 63 public void teardown(ServerLevel $$0) { 64 this.definitions.forEach($$1 -> $$1.value().teardown($$0)); 65 } 66 67 @Override 68 public MapCodec<TestEnvironmentDefinition.AllOf> codec() { 69 return CODEC; 70 } 71 } 72 73 public static record Functions(Optional<ResourceLocation> setupFunction, Optional<ResourceLocation> teardownFunction) implements TestEnvironmentDefinition { 74 private static final Logger LOGGER = LogUtils.getLogger(); 75 public static final MapCodec<TestEnvironmentDefinition.Functions> CODEC = RecordCodecBuilder.mapCodec( 76 $$0 -> $$0.group( 77 ResourceLocation.CODEC.optionalFieldOf("setup").forGetter(TestEnvironmentDefinition.Functions::setupFunction), 78 ResourceLocation.CODEC.optionalFieldOf("teardown").forGetter(TestEnvironmentDefinition.Functions::teardownFunction) 79 ) 80 .apply($$0, TestEnvironmentDefinition.Functions::new) 81 ); 82 83 @Override 84 public void setup(ServerLevel $$0) { 85 this.setupFunction.ifPresent($$1 -> run($$0, $$1)); 86 } 87 88 @Override 89 public void teardown(ServerLevel $$0) { 90 this.teardownFunction.ifPresent($$1 -> run($$0, $$1)); 91 } 92 93 private static void run(ServerLevel $$0, ResourceLocation $$1) { 94 MinecraftServer $$2 = $$0.getServer(); 95 ServerFunctionManager $$3 = $$2.getFunctions(); 96 Optional<CommandFunction<CommandSourceStack>> $$4 = $$3.get($$1); 97 if ($$4.isPresent()) { 98 CommandSourceStack $$5 = $$2.createCommandSourceStack().withPermission(2).withSuppressedOutput().withLevel($$0); 99 $$3.execute($$4.get(), $$5); 100 } else { 101 LOGGER.error("Test Batch failed for non-existent function {}", $$1); 102 } 103 } 104 105 @Override 106 public MapCodec<TestEnvironmentDefinition.Functions> codec() { 107 return CODEC; 108 } 109 } 110 111 public static record SetGameRules( 112 List<TestEnvironmentDefinition.SetGameRules.Entry<Boolean, GameRules.BooleanValue>> boolRules, 113 List<TestEnvironmentDefinition.SetGameRules.Entry<Integer, GameRules.IntegerValue>> intRules 114 ) implements TestEnvironmentDefinition { 115 public static final MapCodec<TestEnvironmentDefinition.SetGameRules> CODEC = RecordCodecBuilder.mapCodec( 116 $$0 -> $$0.group( 117 TestEnvironmentDefinition.SetGameRules.Entry.codec(GameRules.BooleanValue.class, Codec.BOOL) 118 .listOf() 119 .fieldOf("bool_rules") 120 .forGetter(TestEnvironmentDefinition.SetGameRules::boolRules), 121 TestEnvironmentDefinition.SetGameRules.Entry.codec(GameRules.IntegerValue.class, Codec.INT) 122 .listOf() 123 .fieldOf("int_rules") 124 .forGetter(TestEnvironmentDefinition.SetGameRules::intRules) 125 ) 126 .apply($$0, TestEnvironmentDefinition.SetGameRules::new) 127 ); 128 129 @Override 130 public void setup(ServerLevel $$0) { 131 GameRules $$1 = $$0.getGameRules(); 132 MinecraftServer $$2 = $$0.getServer(); 133 134 for (TestEnvironmentDefinition.SetGameRules.Entry<Boolean, GameRules.BooleanValue> $$3 : this.boolRules) { 135 $$1.getRule($$3.key()).set($$3.value(), $$2); 136 } 137 138 for (TestEnvironmentDefinition.SetGameRules.Entry<Integer, GameRules.IntegerValue> $$4 : this.intRules) { 139 $$1.getRule($$4.key()).set($$4.value(), $$2); 140 } 141 } 142 143 @Override 144 public void teardown(ServerLevel $$0) { 145 GameRules $$1 = $$0.getGameRules(); 146 MinecraftServer $$2 = $$0.getServer(); 147 148 for (TestEnvironmentDefinition.SetGameRules.Entry<Boolean, GameRules.BooleanValue> $$3 : this.boolRules) { 149 $$1.getRule($$3.key()).setFrom(GameRules.getType($$3.key()).createRule(), $$2); 150 } 151 152 for (TestEnvironmentDefinition.SetGameRules.Entry<Integer, GameRules.IntegerValue> $$4 : this.intRules) { 153 $$1.getRule($$4.key()).setFrom(GameRules.getType($$4.key()).createRule(), $$2); 154 } 155 } 156 157 @Override 158 public MapCodec<TestEnvironmentDefinition.SetGameRules> codec() { 159 return CODEC; 160 } 161 162 public static <S, T extends GameRules.Value<T>> TestEnvironmentDefinition.SetGameRules.Entry<S, T> entry(GameRules.Key<T> $$0, S $$1) { 163 return new TestEnvironmentDefinition.SetGameRules.Entry<>($$0, $$1); 164 } 165 166 public static record Entry<S, T extends GameRules.Value<T>>(GameRules.Key<T> key, S value) { 167 public static <S, T extends GameRules.Value<T>> Codec<TestEnvironmentDefinition.SetGameRules.Entry<S, T>> codec(Class<T> $$0, Codec<S> $$1) { 168 return RecordCodecBuilder.create( 169 $$2 -> $$2.group( 170 GameRules.keyCodec($$0).fieldOf("rule").forGetter(TestEnvironmentDefinition.SetGameRules.Entry::key), 171 $$1.fieldOf("value").forGetter(TestEnvironmentDefinition.SetGameRules.Entry::value) 172 ) 173 .apply($$2, TestEnvironmentDefinition.SetGameRules.Entry::new) 174 ); 175 } 176 } 177 } 178 179 public static record TimeOfDay(int time) implements TestEnvironmentDefinition { 180 public static final MapCodec<TestEnvironmentDefinition.TimeOfDay> CODEC = RecordCodecBuilder.mapCodec( 181 $$0 -> $$0.group(ExtraCodecs.NON_NEGATIVE_INT.fieldOf("time").forGetter(TestEnvironmentDefinition.TimeOfDay::time)) 182 .apply($$0, TestEnvironmentDefinition.TimeOfDay::new) 183 ); 184 185 @Override 186 public void setup(ServerLevel $$0) { 187 $$0.setDayTime((long)this.time); 188 } 189 190 @Override 191 public MapCodec<TestEnvironmentDefinition.TimeOfDay> codec() { 192 return CODEC; 193 } 194 } 195 196 public static record Weather(TestEnvironmentDefinition.Weather.Type weather) implements TestEnvironmentDefinition { 197 public static final MapCodec<TestEnvironmentDefinition.Weather> CODEC = RecordCodecBuilder.mapCodec( 198 $$0 -> $$0.group(TestEnvironmentDefinition.Weather.Type.CODEC.fieldOf("weather").forGetter(TestEnvironmentDefinition.Weather::weather)) 199 .apply($$0, TestEnvironmentDefinition.Weather::new) 200 ); 201 202 @Override 203 public void setup(ServerLevel $$0) { 204 this.weather.apply($$0); 205 } 206 207 @Override 208 public void teardown(ServerLevel $$0) { 209 $$0.resetWeatherCycle(); 210 } 211 212 @Override 213 public MapCodec<TestEnvironmentDefinition.Weather> codec() { 214 return CODEC; 215 } 216 217 public static enum Type implements StringRepresentable { 218 CLEAR("clear", 100000, 0, false, false), 219 RAIN("rain", 0, 100000, true, false), 220 THUNDER("thunder", 0, 100000, true, true); 221 222 public static final Codec<TestEnvironmentDefinition.Weather.Type> CODEC = StringRepresentable.fromEnum(TestEnvironmentDefinition.Weather.Type::values); 223 private final String id; 224 private final int clearTime; 225 private final int rainTime; 226 private final boolean raining; 227 private final boolean thundering; 228 229 private Type(final String $$0, final int $$1, final int $$2, final boolean $$3, final boolean $$4) { 230 this.id = $$0; 231 this.clearTime = $$1; 232 this.rainTime = $$2; 233 this.raining = $$3; 234 this.thundering = $$4; 235 } 236 237 void apply(ServerLevel $$0) { 238 $$0.setWeatherParameters(this.clearTime, this.rainTime, this.raining, this.thundering); 239 } 240 241 @Override 242 public String getSerializedName() { 243 return this.id; 244 } 245 } 246 } 247 } 248 net/minecraft/gametest/framework/GameTest.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.lang.annotation.ElementType; 4 import java.lang.annotation.Retention; 5 import java.lang.annotation.RetentionPolicy; 6 import java.lang.annotation.Target; 7 8 @Target({ElementType.METHOD}) 9 @Retention(RetentionPolicy.RUNTIME) 10 public @interface GameTest { 11 int timeoutTicks() default 100; 12 13 String batch() default "defaultBatch"; 14 15 boolean skyAccess() default false; 16 17 int rotationSteps() default 0; 18 19 boolean required() default true; 20 21 boolean manualOnly() default false; 22 23 String template() default ""; 24 25 long setupTicks() default 0L; 26 27 int attempts() default 1; 28 29 int requiredSuccesses() default 1; 30 } 31 net/minecraft/gametest/framework/GameTestMainUtil.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import com.mojang.logging.LogUtils; 4 import java.io.File; 5 import java.io.IOException; 6 import java.nio.file.Files; 7 import java.nio.file.Path; 8 import java.nio.file.Paths; 9 import java.util.Optional; 10 import java.util.function.Consumer; 11 import joptsimple.OptionParser; 12 import joptsimple.OptionSet; 13 import joptsimple.OptionSpec; 14 import net.minecraft.SuppressForbidden; 15 import net.minecraft.Util; 16 import net.minecraft.server.Bootstrap; 17 import net.minecraft.server.MinecraftServer; 18 import net.minecraft.server.packs.repository.PackRepository; 19 import net.minecraft.server.packs.repository.ServerPacksSource; 20 import net.minecraft.world.level.storage.LevelStorageSource; 21 import org.apache.commons.io.FileUtils; 22 import org.slf4j.Logger; 23 24 public class GameTestMainUtil { 25 private static final Logger LOGGER = LogUtils.getLogger(); 26 private static final String DEFAULT_UNIVERSE_DIR = "gametestserver"; 27 private static final String LEVEL_NAME = "gametestworld"; 28 private static final OptionParser parser = new OptionParser(); 29 private static final OptionSpec<String> universe = parser.accepts( 30 "universe", "The path to where the test server world will be created. Any existing folder will be replaced." 31 ) 32 .withRequiredArg() 33 .defaultsTo("gametestserver"); 34 private static final OptionSpec<File> report = parser.accepts("report", "Exports results in a junit-like XML report at the given path.") 35 .withRequiredArg() 36 .ofType(File.class); 37 private static final OptionSpec<String> tests = parser.accepts( 38 "tests", "Which test(s) to run (namespaced ID selector using wildcards). Empty means run all." 39 ) 40 .withRequiredArg(); 41 private static final OptionSpec<Boolean> verify = parser.accepts( 42 "verify", "Runs the tests specified with `test` or `testNamespace` 100 times for each 90 degree rotation step" 43 ) 44 .withRequiredArg() 45 .ofType(Boolean.class) 46 .defaultsTo(false); 47 private static final OptionSpec<String> packs = parser.accepts("packs", "A folder of datapacks to include in the world").withRequiredArg(); 48 private static final OptionSpec<Void> help = parser.accepts("help").forHelp(); 49 50 @SuppressForbidden( 51 a = "Using System.err due to no bootstrap" 52 ) 53 public static void runGameTestServer(String[] $$0, Consumer<String> $$1) throws Exception { 54 parser.allowsUnrecognizedOptions(); 55 OptionSet $$2 = parser.parse($$0); 56 if ($$2.has(help)) { 57 parser.printHelpOn(System.err); 58 } else { 59 if ($$2.valueOf(verify) && !$$2.has(tests)) { 60 LOGGER.error("Please specify a test selection to run the verify option. For example: --verify --tests example:test_something_*"); 61 System.exit(-1); 62 } 63 64 LOGGER.info("Running GameTestMain with cwd '{}', universe path '{}'", System.getProperty("user.dir"), $$2.valueOf(universe)); 65 if ($$2.has(report)) { 66 GlobalTestReporter.replaceWith(new JUnitLikeTestReporter(report.value($$2))); 67 } 68 69 Bootstrap.bootStrap(); 70 Util.startTimerHackThread(); 71 String $$3 = $$2.valueOf(universe); 72 createOrResetDir($$3); 73 $$1.accept($$3); 74 if ($$2.has(packs)) { 75 String $$4 = $$2.valueOf(packs); 76 copyPacks($$3, $$4); 77 } 78 79 LevelStorageSource.LevelStorageAccess $$5 = LevelStorageSource.createDefault(Paths.get("gametestserver")).createAccess("gametestworld"); 80 PackRepository $$6 = ServerPacksSource.createVanillaTrustedRepository(); 81 MinecraftServer.spin($$3x -> GameTestServer.create($$3x, $$5, $$6, optionalFromOption($$2, tests), $$2.has(verify))); 82 } 83 } 84 85 private static Optional<String> optionalFromOption(OptionSet $$0, OptionSpec<String> $$1) { 86 return $$0.has($$1) ? Optional.of($$0.valueOf($$1)) : Optional.empty(); 87 } 88 89 private static void createOrResetDir(String $$0) throws IOException { 90 Path $$1 = Paths.get($$0); 91 if (Files.exists($$1)) { 92 FileUtils.deleteDirectory($$1.toFile()); 93 } 94 95 Files.createDirectories($$1); 96 } 97 98 private static void copyPacks(String $$0, String $$1) throws IOException { 99 Path $$2 = Paths.get($$0).resolve("gametestworld").resolve("datapacks"); 100 if (!Files.exists($$2)) { 101 Files.createDirectories($$2); 102 } 103 104 Path $$3 = Paths.get($$1); 105 if (Files.exists($$3)) { 106 for (Path $$4 : Files.list($$3).toList()) { 107 Path $$5 = $$2.resolve($$4.getFileName()); 108 if (Files.isDirectory($$4)) { 109 if (Files.isRegularFile($$4.resolve("pack.mcmeta"))) { 110 FileUtils.copyDirectory($$4.toFile(), $$5.toFile()); 111 LOGGER.info("Included folder pack " + $$4.getFileName()); 112 } 113 } else if ($$4.endsWith(".zip")) { 114 Files.copy($$4, $$5); 115 LOGGER.info("Included zip pack " + $$4.getFileName()); 116 } 117 } 118 } 119 } 120 } 121 net/minecraft/gametest/framework/TestClassNameArgument.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import com.mojang.brigadier.Message; 4 import com.mojang.brigadier.StringReader; 5 import com.mojang.brigadier.arguments.ArgumentType; 6 import com.mojang.brigadier.context.CommandContext; 7 import com.mojang.brigadier.exceptions.CommandSyntaxException; 8 import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; 9 import com.mojang.brigadier.suggestion.Suggestions; 10 import com.mojang.brigadier.suggestion.SuggestionsBuilder; 11 import java.util.Arrays; 12 import java.util.Collection; 13 import java.util.concurrent.CompletableFuture; 14 import net.minecraft.commands.CommandSourceStack; 15 import net.minecraft.commands.SharedSuggestionProvider; 16 import net.minecraft.network.chat.Component; 17 18 public class TestClassNameArgument implements ArgumentType<String> { 19 private static final Collection<String> EXAMPLES = Arrays.asList("techtests", "mobtests"); 20 21 public String parse(StringReader $$0) throws CommandSyntaxException { 22 String $$1 = $$0.readUnquotedString(); 23 if (GameTestRegistry.isTestClass($$1)) { 24 return $$1; 25 } else { 26 Message $$2 = Component.literal("No such test class: " + $$1); 27 throw new CommandSyntaxException(new SimpleCommandExceptionType($$2), $$2); 28 } 29 } 30 31 public static TestClassNameArgument testClassName() { 32 return new TestClassNameArgument(); 33 } 34 35 public static String getTestClassName(CommandContext<CommandSourceStack> $$0, String $$1) { 36 return $$0.getArgument($$1, String.class); 37 } 38 39 @Override 40 public <S> CompletableFuture<Suggestions> listSuggestions(CommandContext<S> $$0, SuggestionsBuilder $$1) { 41 return SharedSuggestionProvider.suggest(GameTestRegistry.getAllTestClassNames().stream(), $$1); 42 } 43 44 @Override 45 public Collection<String> getExamples() { 46 return EXAMPLES; 47 } 48 } 49 net/minecraft/world/entity/ai/goal/RemoveBlockGoal.java --- Java 52 @Override 52 @Override 53 public void stop() { 53 public void stop() { 54 super.stop(); 54 super.stop(); 55 this.removerMob.fallDistance = 1.0F; 55 this.removerMob.fallDistance = 1.0; 56 } 56 } 57 57 58 @Override 58 @Override net/minecraft/world/entity/projectile/ShulkerBullet.java --- Java 53 this(EntityType.SHULKER_BULLET, $$0); 53 this(EntityType.SHULKER_BULLET, $$0); 54 this.setOwner($$1); 54 this.setOwner($$1); 55 Vec3 $$4 = $$1.getBoundingBox().getCenter(); 55 Vec3 $$4 = $$1.getBoundingBox().getCenter(); 56 this.moveTo($$4.x, $$4.y, $$4.z, this.getYRot(), this.getXRot()); 56 this.snapTo($$4.x, $$4.y, $$4.z, this.getYRot(), this.getXRot()); 57 this.finalTarget = $$2; 57 this.finalTarget = $$2; 58 this.currentMoveDirection = Direction.UP; 58 this.currentMoveDirection = Direction.UP; 59 this.selectNextMoveDirection($$3); 59 this.selectNextMoveDirection($$3); net/minecraft/world/entity/projectile/ThrownEnderpearl.java --- Java 125 if (this.random.nextFloat() < 0.05F && $$2.getGameRu 125 if (this.random.nextFloat() < 0.05F && $$2.getGameRu ... les().getBoolean(GameRules.RULE_DOMOBSPAWNING)) { ... les().getBoolean(GameRules.RULE_DOMOBSPAWNING)) { 126 Endermite $$7 = EntityType.ENDERMITE.create($$2, 126 Endermite $$7 = EntityType.ENDERMITE.create($$2, ... EntitySpawnReason.TRIGGERED); ... EntitySpawnReason.TRIGGERED); 127 if ($$7 != null) { 127 if ($$7 != null) { 128 $$7.moveTo($$4.getX(), $$4.getY(), $$4.getZ(), 128 $$7.snapTo($$4.getX(), $$4.getY(), $$4.getZ(), ... $$4.getYRot(), $$4.getXRot()); ... $$4.getYRot(), $$4.getXRot()); 129 $$2.addFreshEntity($$7); 129 $$2.addFreshEntity($$7); 130 } 130 } 131 } 131 } net/minecraft/client/model/CamelSaddleModel.java --- Java 1 package net.minecraft.client.model; 2 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 5 import net.minecraft.client.model.geom.ModelPart; 6 import net.minecraft.client.model.geom.PartPose; 7 import net.minecraft.client.model.geom.builders.CubeDeformation; 8 import net.minecraft.client.model.geom.builders.CubeListBuilder; 9 import net.minecraft.client.model.geom.builders.LayerDefinition; 10 import net.minecraft.client.model.geom.builders.MeshDefinition; 11 import net.minecraft.client.model.geom.builders.PartDefinition; 12 import net.minecraft.client.renderer.entity.state.CamelRenderState; 13 14 @Environment(EnvType.CLIENT) 15 public class CamelSaddleModel extends CamelModel { 16 private static final String SADDLE = "saddle"; 17 private static final String BRIDLE = "bridle"; 18 private static final String REINS = "reins"; 19 private final ModelPart reins = this.head.getChild("reins"); 20 21 public CamelSaddleModel(ModelPart $$0) { 22 super($$0); 23 } 24 25 public static LayerDefinition createSaddleLayer() { 26 MeshDefinition $$0 = createBodyMesh(); 27 PartDefinition $$1 = $$0.getRoot(); 28 PartDefinition $$2 = $$1.getChild("body"); 29 PartDefinition $$3 = $$2.getChild("head"); 30 CubeDeformation $$4 = new CubeDeformation(0.05F); 31 $$2.addOrReplaceChild( 32 "saddle", 33 CubeListBuilder.create() 34 .texOffs(74, 64) 35 .addBox(-4.5F, -17.0F, -15.5F, 9.0F, 5.0F, 11.0F, $$4) 36 .texOffs(92, 114) 37 .addBox(-3.5F, -20.0F, -15.5F, 7.0F, 3.0F, 11.0F, $$4) 38 .texOffs(0, 89) 39 .addBox(-7.5F, -12.0F, -23.5F, 15.0F, 12.0F, 27.0F, $$4), 40 PartPose.offset(0.0F, 0.0F, 0.0F) 41 ); 42 $$3.addOrReplaceChild( 43 "reins", 44 CubeListBuilder.create() 45 .texOffs(98, 42) 46 .addBox(3.51F, -18.0F, -17.0F, 0.0F, 7.0F, 15.0F) 47 .texOffs(84, 57) 48 .addBox(-3.5F, -18.0F, -2.0F, 7.0F, 7.0F, 0.0F) 49 .texOffs(98, 42) 50 .addBox(-3.51F, -18.0F, -17.0F, 0.0F, 7.0F, 15.0F), 51 PartPose.offset(0.0F, 0.0F, 0.0F) 52 ); 53 $$3.addOrReplaceChild( 54 "bridle", 55 CubeListBuilder.create() 56 .texOffs(60, 87) 57 .addBox(-3.5F, -7.0F, -15.0F, 7.0F, 8.0F, 19.0F, $$4) 58 .texOffs(21, 64) 59 .addBox(-3.5F, -21.0F, -15.0F, 7.0F, 14.0F, 7.0F, $$4) 60 .texOffs(50, 64) 61 .addBox(-2.5F, -21.0F, -21.0F, 5.0F, 5.0F, 6.0F, $$4) 62 .texOffs(74, 70) 63 .addBox(2.5F, -19.0F, -18.0F, 1.0F, 2.0F, 2.0F) 64 .texOffs(74, 70) 65 .mirror() 66 .addBox(-3.5F, -19.0F, -18.0F, 1.0F, 2.0F, 2.0F), 67 PartPose.offset(0.0F, 0.0F, 0.0F) 68 ); 69 return LayerDefinition.create($$0, 128, 128); 70 } 71 72 @Override 73 public void setupAnim(CamelRenderState $$0) { 74 super.setupAnim($$0); 75 this.reins.visible = $$0.isRidden; 76 } 77 } 78 net/minecraft/world/damagesource/CombatTracker.java --- Java 37 public void recordDamage(DamageSource $$0, float $$1) { 37 public void recordDamage(DamageSource $$0, float $$1) { 38 this.recheckStatus(); 38 this.recheckStatus(); 39 FallLocation $$2 = FallLocation.getCurrentFallLocation(this.mob); 39 FallLocation $$2 = FallLocation.getCurrentFallLocation(this.mob); 40 CombatEntry $$3 = new CombatEntry($$0, $$1, $$2, this.mob.fallDis 40 CombatEntry $$3 = new CombatEntry($$0, $$1, $$2, (float)this.mob. .. tance); .. fallDistance); 41 this.entries.add($$3); 41 this.entries.add($$3); 42 this.lastDamageTime = this.mob.tickCount; 42 this.lastDamageTime = this.mob.tickCount; 43 this.takingDamage = true; 43 this.takingDamage = true; net/minecraft/util/datafix/fixes/EntitySpawnerItemVariantComponentFix.java --- Java 1 package net.minecraft.util.datafix.fixes; 2 3 import com.mojang.datafixers.DSL; 4 import com.mojang.datafixers.DataFix; 5 import com.mojang.datafixers.OpticFinder; 6 import com.mojang.datafixers.TypeRewriteRule; 7 import com.mojang.datafixers.Typed; 8 import com.mojang.datafixers.schemas.Schema; 9 import com.mojang.datafixers.types.Type; 10 import com.mojang.datafixers.util.Pair; 11 import com.mojang.serialization.Dynamic; 12 import java.util.Optional; 13 import java.util.function.Function; 14 import net.minecraft.Util; 15 import net.minecraft.util.datafix.ExtraDataFixUtils; 16 import net.minecraft.util.datafix.schemas.NamespacedSchema; 17 18 public class EntitySpawnerItemVariantComponentFix extends DataFix { 19 public EntitySpawnerItemVariantComponentFix(Schema $$0) { 20 super($$0, false); 21 } 22 23 @Override 24 public final TypeRewriteRule makeRule() { 25 Type<?> $$0 = this.getInputSchema().getType(References.ITEM_STACK); 26 OpticFinder<Pair<String, String>> $$1 = DSL.fieldFinder("id", DSL.named(References.ITEM_NAME.typeName(), NamespacedSchema.namespacedString())); 27 OpticFinder<?> $$2 = $$0.findField("components"); 28 return this.fixTypeEverywhereTyped( 29 "ItemStack bucket_entity_data variants to separate components", 30 $$0, 31 $$2x -> { 32 String $$3 = $$2x.getOptional($$1).map(Pair::getSecond).orElse(""); 33 34 return switch ($$3) { 35 case "minecraft:salmon_bucket" -> $$2x.updateTyped($$2, EntitySpawnerItemVariantComponentFix::fixSalmonBucket); 36 case "minecraft:axolotl_bucket" -> $$2x.updateTyped($$2, EntitySpawnerItemVariantComponentFix::fixAxolotlBucket); 37 case "minecraft:tropical_fish_bucket" -> $$2x.updateTyped($$2, EntitySpawnerItemVariantComponentFix::fixTropicalFishBucket); 38 case "minecraft:painting" -> $$2x.updateTyped( 39 $$2, $$0xx -> Util.writeAndReadTypedOrThrow($$0xx, $$0xx.getType(), EntitySpawnerItemVariantComponentFix::fixPainting) 40 ); 41 default -> $$2x; 42 }; 43 } 44 ); 45 } 46 47 private static String getBaseColor(int $$0) { 48 return ExtraDataFixUtils.dyeColorIdToName($$0 >> 16 & 0xFF); 49 } 50 51 private static String getPatternColor(int $$0) { 52 return ExtraDataFixUtils.dyeColorIdToName($$0 >> 24 & 0xFF); 53 } 54 55 private static String getPattern(int $$0) { 56 return switch ($$0 & 65535) { 57 case 1 -> "flopper"; 58 case 256 -> "sunstreak"; 59 case 257 -> "stripey"; 60 case 512 -> "snooper"; 61 case 513 -> "glitter"; 62 case 768 -> "dasher"; 63 case 769 -> "blockfish"; 64 case 1024 -> "brinely"; 65 case 1025 -> "betty"; 66 case 1280 -> "spotty"; 67 case 1281 -> "clayfish"; 68 default -> "kob"; 69 }; 70 } 71 72 private static <T> Dynamic<T> fixTropicalFishBucket(Dynamic<T> $$0, Dynamic<T> $$1) { 73 Optional<Number> $$2 = $$1.get("BucketVariantTag").asNumber().result(); 74 if ($$2.isEmpty()) { 75 return $$0; 76 } else { 77 int $$3 = $$2.get().intValue(); 78 String $$4 = getPattern($$3); 79 String $$5 = getBaseColor($$3); 80 String $$6 = getPatternColor($$3); 81 return $$0.update("minecraft:bucket_entity_data", $$0x -> $$0x.remove("BucketVariantTag")) 82 .set("minecraft:tropical_fish/pattern", $$0.createString($$4)) 83 .set("minecraft:tropical_fish/base_color", $$0.createString($$5)) 84 .set("minecraft:tropical_fish/pattern_color", $$0.createString($$6)); 85 } 86 } 87 88 private static <T> Dynamic<T> fixAxolotlBucket(Dynamic<T> $$0, Dynamic<T> $$1) { 89 Optional<Number> $$2 = $$1.get("Variant").asNumber().result(); 90 if ($$2.isEmpty()) { 91 return $$0; 92 } else { 93 String $$3 = switch ($$2.get().intValue()) { 94 case 1 -> "wild"; 95 case 2 -> "gold"; 96 case 3 -> "cyan"; 97 case 4 -> "blue"; 98 default -> "lucy"; 99 }; 100 return $$0.update("minecraft:bucket_entity_data", $$0x -> $$0x.remove("Variant")).set("minecraft:axolotl/variant", $$0.createString($$3)); 101 } 102 } 103 104 private static <T> Dynamic<T> fixSalmonBucket(Dynamic<T> $$0, Dynamic<T> $$1) { 105 Optional<Dynamic<T>> $$2 = $$1.get("type").result(); 106 return $$2.isEmpty() ? $$0 : $$0.update("minecraft:bucket_entity_data", $$0x -> $$0x.remove("type")).set("minecraft:salmon/size", $$2.get()); 107 } 108 109 private static <T> Dynamic<T> fixPainting(Dynamic<T> $$0) { 110 Optional<Dynamic<T>> $$1 = $$0.get("minecraft:entity_data").result(); 111 if ($$1.isEmpty()) { 112 return $$0; 113 } else if ($$1.get().get("id").asString().result().filter($$0x -> $$0x.equals("minecraft:painting")).isEmpty()) { 114 return $$0; 115 } else { 116 Optional<Dynamic<T>> $$2 = $$1.get().get("variant").result(); 117 Dynamic<T> $$3 = $$1.get().remove("variant"); 118 if ($$3.remove("id").equals($$3.emptyMap())) { 119 $$0 = $$0.remove("minecraft:entity_data"); 120 } else { 121 $$0 = $$0.set("minecraft:entity_data", $$3); 122 } 123 124 if ($$2.isPresent()) { 125 $$0 = $$0.set("minecraft:painting/variant", $$2.get()); 126 } 127 128 return $$0; 129 } 130 } 131 132 @FunctionalInterface 133 interface Fixer extends Function<Typed<?>, Typed<?>> { 134 default Typed<?> apply(Typed<?> $$0) { 135 return $$0.update(DSL.remainderFinder(), this::fixRemainder); 136 } 137 138 default <T> Dynamic<T> fixRemainder(Dynamic<T> $$0) { 139 return $$0.get("minecraft:bucket_entity_data").result().map($$1 -> this.fixRemainder($$0, (Dynamic<T>)$$1)).orElse($$0); 140 } 141 142 <T> Dynamic<T> fixRemainder(Dynamic<T> var1, Dynamic<T> var2); 143 } 144 } 145 net/minecraft/client/renderer/item/properties/select/SelectItemModelProperty.java --- Java 26 26 27 @Environment(EnvType.CLIENT) 27 @Environment(EnvType.CLIENT) 28 public static record Type<P extends SelectItemModelProperty<T>, T>(M 28 public static record Type<P extends SelectItemModelProperty<T>, T>(M .. apCodec<SelectItemModel.UnbakedSwitch<P, T>> switchCodec) { .. apCodec<SelectItemModel.UnbakedSwitch<P, T>> switchCodec) { 29 public static <P extends SelectItemModelProperty<T>, T> SelectIte 29 public static <P extends SelectItemModelProperty<T>, T> SelectIte .. mModelProperty.Type<P, T> create(MapCodec<P> $$0, Codec<T> $$1) { .. mModelProperty.Type<P, T> create(MapCodec<P> $$0, Codec<T> $$1) { .. 30 MapCodec<SelectItemModel.UnbakedSwitch<P, T>> $$2 = RecordCode .. .. cBuilder.mapCodec( .. 31 $$2x -> $$2x.group( .. 32 $$0.forGetter(SelectItemModel.UnbakedSwitch::prope .. .. rty), createCasesFieldCodec($$1).forGetter(SelectItemModel.UnbakedSwitc .. .. h::cases) .. 33 ) .. 34 .apply($$2x, SelectItemModel.UnbakedSwitch::new) .. 35 ); .. 36 return new SelectItemModelProperty.Type<>($$2); .. 37 } .. 38 .. 39 public static <T> MapCodec<List<SelectItemModel.SwitchCase<T>>> c .. .. reateCasesFieldCodec(Codec<T> $$0) { .. 40 return SelectItemModel.SwitchCase.codec($$0).listOf().validate .. .. (SelectItemModelProperty.Type::validateCases).fieldOf("cases"); .. 41 } .. 42 30 Codec<List<SelectItemModel.SwitchCase<T>>> $$2 = SelectItemMod 43 private static <T> DataResult<List<SelectItemModel.SwitchCase<T>> .. el.SwitchCase.codec($$1) .. > validateCases(List<SelectItemModel.SwitchCase<T>> $$0) { 31 .listOf() .. 32 .validate( .. 33 $$0x -> { .. 34 if ($$0x.isEmpty()) { 44 if ($$0.isEmpty()) { 35 return DataResult.error(() -> "Empty case list"); 45 return DataResult.error(() -> "Empty case list"); 36 } else { 46 } else { 37 Multiset<T> $$1x = HashMultiset.create(); 47 Multiset<T> $$1 = HashMultiset.create(); 38 48 39 for (SelectItemModel.SwitchCase<T> $$2x : $$0x) { 49 for (SelectItemModel.SwitchCase<T> $$2 : $$0) { 40 $$1x.addAll($$2x.values()); 50 $$1.addAll($$2.values()); 41 } 51 } 42 52 43 return $$1x.size() != $$1x.entrySet().size() 53 return $$1.size() != $$1.entrySet().size() 44 ? DataResult.error( 54 ? DataResult.error( 45 () -> "Duplicate case conditions: " 55 () -> "Duplicate case conditions: " 46 + $$1x.entrySet() 56 + $$1.entrySet() 47 .stream() 57 .stream() 48 .filter($$0xxx -> $$0xxx.getCount() 58 .filter($$0xx -> $$0xx.getCount() > 1) .. > 1) .. 49 .map($$0xxx -> $$0xxx.getElement(). 59 .map($$0xx -> $$0xx.getElement().toString()) .. toString()) .. 50 .collect(Collectors.joining(", ")) 60 .collect(Collectors.joining(", ")) 51 ) 61 ) 52 : DataResult.success($$0x); 62 : DataResult.success($$0); 53 } 63 } 54 } 64 } 55 ); .. 56 MapCodec<SelectItemModel.UnbakedSwitch<P, T>> $$3 = RecordCode .. .. cBuilder.mapCodec( .. 57 $$2x -> $$2x.group($$0.forGetter(SelectItemModel.UnbakedSwi .. .. tch::property), $$2.fieldOf("cases").forGetter(SelectItemModel.UnbakedS .. .. witch::cases)) .. 58 .apply($$2x, SelectItemModel.UnbakedSwitch::new) .. 59 ); .. 60 return new SelectItemModelProperty.Type<>($$3); .. 61 } .. 62 } 65 } 63 } 66 } net/minecraft/client/model/EquineSaddleModel.java --- Java 1 package net.minecraft.client.model; 2 3 import net.fabricmc.api.EnvType; 4 import net.fabricmc.api.Environment; 5 import net.minecraft.client.model.geom.ModelPart; 6 import net.minecraft.client.model.geom.PartPose; 7 import net.minecraft.client.model.geom.builders.CubeDeformation; 8 import net.minecraft.client.model.geom.builders.CubeListBuilder; 9 import net.minecraft.client.model.geom.builders.LayerDefinition; 10 import net.minecraft.client.model.geom.builders.MeshDefinition; 11 import net.minecraft.client.model.geom.builders.MeshTransformer; 12 import net.minecraft.client.model.geom.builders.PartDefinition; 13 import net.minecraft.client.renderer.entity.state.EquineRenderState; 14 15 @Environment(EnvType.CLIENT) 16 public class EquineSaddleModel extends AbstractEquineModel<EquineRenderState> { 17 private static final String SADDLE = "saddle"; 18 private static final String LEFT_SADDLE_MOUTH = "left_saddle_mouth"; 19 private static final String LEFT_SADDLE_LINE = "left_saddle_line"; 20 private static final String RIGHT_SADDLE_MOUTH = "right_saddle_mouth"; 21 private static final String RIGHT_SADDLE_LINE = "right_saddle_line"; 22 private static final String HEAD_SADDLE = "head_saddle"; 23 private static final String MOUTH_SADDLE_WRAP = "mouth_saddle_wrap"; 24 private final ModelPart[] ridingParts; 25 26 public EquineSaddleModel(ModelPart $$0) { 27 super($$0); 28 ModelPart $$1 = this.headParts.getChild("left_saddle_line"); 29 ModelPart $$2 = this.headParts.getChild("right_saddle_line"); 30 this.ridingParts = new ModelPart[]{$$1, $$2}; 31 } 32 33 public static LayerDefinition createSaddleLayer(boolean $$0) { 34 return createFullScaleSaddleLayer($$0).apply($$0 ? BABY_TRANSFORMER : MeshTransformer.IDENTITY); 35 } 36 37 public static LayerDefinition createFullScaleSaddleLayer(boolean $$0) { 38 MeshDefinition $$1 = $$0 ? createFullScaleBabyMesh(CubeDeformation.NONE) : createBodyMesh(CubeDeformation.NONE); 39 PartDefinition $$2 = $$1.getRoot(); 40 PartDefinition $$3 = $$2.getChild("body"); 41 PartDefinition $$4 = $$2.getChild("head_parts"); 42 $$3.addOrReplaceChild( 43 "saddle", CubeListBuilder.create().texOffs(26, 0).addBox(-5.0F, -8.0F, -9.0F, 10.0F, 9.0F, 9.0F, new CubeDeformation(0.5F)), PartPose.ZERO 44 ); 45 $$4.addOrReplaceChild("left_saddle_mouth", CubeListBuilder.create().texOffs(29, 5).addBox(2.0F, -9.0F, -6.0F, 1.0F, 2.0F, 2.0F), PartPose.ZERO); 46 $$4.addOrReplaceChild("right_saddle_mouth", CubeListBuilder.create().texOffs(29, 5).addBox(-3.0F, -9.0F, -6.0F, 1.0F, 2.0F, 2.0F), PartPose.ZERO); 47 $$4.addOrReplaceChild( 48 "left_saddle_line", 49 CubeListBuilder.create().texOffs(32, 2).addBox(3.1F, -6.0F, -8.0F, 0.0F, 3.0F, 16.0F), 50 PartPose.rotation((float) (-Math.PI / 6), 0.0F, 0.0F) 51 ); 52 $$4.addOrReplaceChild( 53 "right_saddle_line", 54 CubeListBuilder.create().texOffs(32, 2).addBox(-3.1F, -6.0F, -8.0F, 0.0F, 3.0F, 16.0F), 55 PartPose.rotation((float) (-Math.PI / 6), 0.0F, 0.0F) 56 ); 57 $$4.addOrReplaceChild( 58 "head_saddle", CubeListBuilder.create().texOffs(1, 1).addBox(-3.0F, -11.0F, -1.9F, 6.0F, 5.0F, 6.0F, new CubeDeformation(0.22F)), PartPose.ZERO 59 ); 60 $$4.addOrReplaceChild( 61 "mouth_saddle_wrap", CubeListBuilder.create().texOffs(19, 0).addBox(-2.0F, -11.0F, -4.0F, 4.0F, 5.0F, 2.0F, new CubeDeformation(0.2F)), PartPose.ZERO 62 ); 63 return LayerDefinition.create($$1, 64, 64); 64 } 65 66 @Override 67 public void setupAnim(EquineRenderState $$0) { 68 super.setupAnim($$0); 69 70 for (ModelPart $$1 : this.ridingParts) { 71 $$1.visible = $$0.isRidden; 72 } 73 } 74 } 75 net/minecraft/client/renderer/item/properties/select/SelectItemModelProperties.java --- Java 21 ID_MAPPER.put(ResourceLocation.withDefaultNamespace("local_time") 21 ID_MAPPER.put(ResourceLocation.withDefaultNamespace("local_time") .. , LocalTime.TYPE); .. , LocalTime.TYPE); 22 ID_MAPPER.put(ResourceLocation.withDefaultNamespace("context_enti 22 ID_MAPPER.put(ResourceLocation.withDefaultNamespace("context_enti .. ty_type"), ContextEntityType.TYPE); .. ty_type"), ContextEntityType.TYPE); 23 ID_MAPPER.put(ResourceLocation.withDefaultNamespace("context_dime 23 ID_MAPPER.put(ResourceLocation.withDefaultNamespace("context_dime .. nsion"), ContextDimension.TYPE); .. nsion"), ContextDimension.TYPE); .. 24 ID_MAPPER.put(ResourceLocation.withDefaultNamespace("component"), .. .. ComponentContents.castType()); 24 } 25 } 25 } 26 } net/minecraft/world/entity/EntityType.java --- 1/2 --- Java 1118 } 1118 } 1119 1119 1120 public static <T extends Entity> Consumer<T> appendDefaultStackCon 1120 public static <T extends Entity> Consumer<T> appendDefaultStackCon .... fig(Consumer<T> $$0, Level $$1, ItemStack $$2, @Nullable LivingEntity .... fig(Consumer<T> $$0, Level $$1, ItemStack $$2, @Nullable LivingEntity .... $$3) { .... $$3) { 1121 return appendCustomEntityStackConfig(appendCustomNameConfig($$0 1121 return appendCustomEntityStackConfig(appendComponentsConfig($$0 .... , $$2), $$1, $$2, $$3); .... , $$2), $$1, $$2, $$3); 1122 } 1122 } 1123 1123 1124 public static <T extends Entity> Consumer<T> appendCustomNameConfi 1124 public static <T extends Entity> Consumer<T> appendComponentsConfi .... g(Consumer<T> $$0, ItemStack $$1) { .... g(Consumer<T> $$0, ItemStack $$1) { 1125 Component $$2 = $$1.get(DataComponents.CUSTOM_NAME); .... 1126 return $$2 != null ? $$0.andThen($$1x -> $$1x.setCustomName($$2 1125 return $$0.andThen($$1x -> $$1x.applyComponentsFromItemStack($$ .... )) : $$0; .... 1)); 1127 } 1126 } 1128 1127 1129 public static <T extends Entity> Consumer<T> appendCustomEntitySta 1128 public static <T extends Entity> Consumer<T> appendCustomEntitySta ckConfig(Consumer<T> $$0, Level $$1, ItemStack $$2, @Nullable LivingE ckConfig(Consumer<T> $$0, Level $$1, ItemStack $$2, @Nullable LivingE ntity $$3) { ntity $$3) { net/minecraft/world/entity/EntityType.java --- 2/2 --- Java 1163 $$7 = 0.0; 1162 $$7 = 0.0; 1164 } 1163 } 1165 1164 1166 $$6.moveTo((double)$$2.getX() + 0.5, (double)$$2.getY() + $$ 1165 $$6.snapTo((double)$$2.getX() + 0.5, (double)$$2.getY() + $$ .... 7, (double)$$2.getZ() + 0.5, Mth.wrapDegrees($$0.random.nextFloat() * .... 7, (double)$$2.getZ() + 0.5, Mth.wrapDegrees($$0.random.nextFloat() * .... 360.0F), 0.0F); .... 360.0F), 0.0F); 1167 if ($$6 instanceof Mob $$9) { 1166 if ($$6 instanceof Mob $$9) { 1168 $$9.yHeadRot = $$9.getYRot(); 1167 $$9.yHeadRot = $$9.getYRot(); 1169 $$9.yBodyRot = $$9.getYRot(); 1168 $$9.yBodyRot = $$9.getYRot(); net/minecraft/util/datafix/ExtraDataFixUtils.java --- Java 85 return $$0.update($$1, $$2x -> DataFixUtils.orElse($$2x.asString( 85 return $$0.update($$1, $$2x -> DataFixUtils.orElse($$2x.asString( .. ).map($$2).map($$0::createString).result(), $$2x)); .. ).map($$2).map($$0::createString).result(), $$2x)); 86 } 86 } .. 87 .. 88 public static String dyeColorIdToName(int $$0) { .. 89 return switch ($$0) { .. 90 case 1 -> "orange"; .. 91 case 2 -> "magenta"; .. 92 case 3 -> "light_blue"; .. 93 case 4 -> "yellow"; .. 94 case 5 -> "lime"; .. 95 case 6 -> "pink"; .. 96 case 7 -> "gray"; .. 97 case 8 -> "light_gray"; .. 98 case 9 -> "cyan"; .. 99 case 10 -> "purple"; .. 100 case 11 -> "blue"; .. 101 case 12 -> "brown"; .. 102 case 13 -> "green"; .. 103 case 14 -> "red"; .. 104 case 15 -> "black"; .. 105 default -> "white"; .. 106 }; .. 107 } 87 } 108 } net/minecraft/world/entity/projectile/AbstractHurtingProjectile.java --- Java 31 31 32 public AbstractHurtingProjectile(EntityType<? extends AbstractHurtin 32 public AbstractHurtingProjectile(EntityType<? extends AbstractHurtin .. gProjectile> $$0, double $$1, double $$2, double $$3, Vec3 $$4, Level $ .. gProjectile> $$0, double $$1, double $$2, double $$3, Vec3 $$4, Level $ .. $5) { .. $5) { 33 this($$0, $$5); 33 this($$0, $$5); 34 this.moveTo($$1, $$2, $$3, this.getYRot(), this.getXRot()); 34 this.snapTo($$1, $$2, $$3, this.getYRot(), this.getXRot()); 35 this.reapplyPosition(); 35 this.reapplyPosition(); 36 this.assignDirectionalMovement($$4, this.accelerationPower); 36 this.assignDirectionalMovement($$4, this.accelerationPower); 37 } 37 } net/minecraft/client/model/geom/LayerDefinitions.java --- 1/4 --- Java 26 import net.minecraft.client.model.BookModel; 26 import net.minecraft.client.model.BookModel; 27 import net.minecraft.client.model.BreezeModel; 27 import net.minecraft.client.model.BreezeModel; 28 import net.minecraft.client.model.CamelModel; 28 import net.minecraft.client.model.CamelModel; .. 29 import net.minecraft.client.model.CamelSaddleModel; 29 import net.minecraft.client.model.CatModel; 30 import net.minecraft.client.model.CatModel; 30 import net.minecraft.client.model.ChestModel; 31 import net.minecraft.client.model.ChestModel; 31 import net.minecraft.client.model.ChickenModel; 32 import net.minecraft.client.model.ChickenModel; net/minecraft/client/model/geom/LayerDefinitions.java --- 2/4 --- Java 41 import net.minecraft.client.model.EndCrystalModel; 42 import net.minecraft.client.model.EndCrystalModel; 42 import net.minecraft.client.model.EndermanModel; 43 import net.minecraft.client.model.EndermanModel; 43 import net.minecraft.client.model.EndermiteModel; 44 import net.minecraft.client.model.EndermiteModel; .. 45 import net.minecraft.client.model.EquineSaddleModel; 44 import net.minecraft.client.model.EvokerFangsModel; 46 import net.minecraft.client.model.EvokerFangsModel; 45 import net.minecraft.client.model.FelineModel; 47 import net.minecraft.client.model.FelineModel; 46 import net.minecraft.client.model.FoxModel; 48 import net.minecraft.client.model.FoxModel; net/minecraft/client/model/geom/LayerDefinitions.java --- 3/4 --- Java 132 LayerDefinition $$6 = SkullModel.createMobHeadLayer(); 134 LayerDefinition $$6 = SkullModel.createMobHeadLayer(); 133 LayerDefinition $$7 = LayerDefinition.create(AbstractEquineModel 135 LayerDefinition $$7 = LayerDefinition.create(AbstractEquineModel ... .createBodyMesh(CubeDeformation.NONE), 64, 64); ... .createBodyMesh(CubeDeformation.NONE), 64, 64); 134 LayerDefinition $$8 = LayerDefinition.create(AbstractEquineModel 136 LayerDefinition $$8 = LayerDefinition.create(AbstractEquineModel ... .createBabyMesh(CubeDeformation.NONE), 64, 64); ... .createBabyMesh(CubeDeformation.NONE), 64, 64); ... 137 LayerDefinition $$9 = EquineSaddleModel.createSaddleLayer(false) ... ... ; ... 138 LayerDefinition $$10 = EquineSaddleModel.createSaddleLayer(true) ... ... ; 135 MeshTransformer $$9 = MeshTransformer.scaling(0.9375F); 139 MeshTransformer $$11 = MeshTransformer.scaling(0.9375F); 136 LayerDefinition $$10 = IllagerModel.createBodyLayer().apply($$9) 140 LayerDefinition $$12 = IllagerModel.createBodyLayer().apply($$11 ... ; ... ); 137 LayerDefinition $$11 = AxolotlModel.createBodyLayer(); 141 LayerDefinition $$13 = AxolotlModel.createBodyLayer(); 138 LayerDefinition $$12 = BeeModel.createBodyLayer(); 142 LayerDefinition $$14 = BeeModel.createBodyLayer(); 139 LayerDefinition $$13 = CowModel.createBodyLayer(); 143 LayerDefinition $$15 = CowModel.createBodyLayer(); 140 LayerDefinition $$14 = $$13.apply(CowModel.BABY_TRANSFORMER); 144 LayerDefinition $$16 = $$15.apply(CowModel.BABY_TRANSFORMER); 141 LayerDefinition $$15 = ElytraModel.createLayer(); 145 LayerDefinition $$17 = ElytraModel.createLayer(); 142 LayerDefinition $$16 = LayerDefinition.create(FelineModel.create 146 LayerDefinition $$18 = LayerDefinition.create(FelineModel.create ... BodyMesh(CubeDeformation.NONE), 64, 32); ... BodyMesh(CubeDeformation.NONE), 64, 32); 143 LayerDefinition $$17 = $$16.apply(FelineModel.BABY_TRANSFORMER); 147 LayerDefinition $$19 = $$18.apply(FelineModel.BABY_TRANSFORMER); 144 LayerDefinition $$18 = LayerDefinition.create(FelineModel.create 148 LayerDefinition $$20 = LayerDefinition.create(FelineModel.create ... BodyMesh(new CubeDeformation(0.01F)), 64, 32); ... BodyMesh(new CubeDeformation(0.01F)), 64, 32); 145 LayerDefinition $$19 = LayerDefinition.create(PiglinModel.create 149 LayerDefinition $$21 = LayerDefinition.create(PiglinModel.create ... Mesh(CubeDeformation.NONE), 64, 64); ... Mesh(CubeDeformation.NONE), 64, 64); 146 LayerDefinition $$20 = LayerDefinition.create(PiglinHeadModel.cr 150 LayerDefinition $$22 = LayerDefinition.create(PiglinHeadModel.cr ... eateHeadModel(), 64, 64); ... eateHeadModel(), 64, 64); 147 LayerDefinition $$21 = SkullModel.createHumanoidHeadLayer(); 151 LayerDefinition $$23 = SkullModel.createHumanoidHeadLayer(); 148 LayerDefinition $$22 = LlamaModel.createBodyLayer(CubeDeformatio 152 LayerDefinition $$24 = LlamaModel.createBodyLayer(CubeDeformatio ... n.NONE); ... n.NONE); 149 LayerDefinition $$23 = LlamaModel.createBodyLayer(new CubeDeform 153 LayerDefinition $$25 = LlamaModel.createBodyLayer(new CubeDeform ... ation(0.5F)); ... ation(0.5F)); 150 LayerDefinition $$24 = StriderModel.createBodyLayer(); 154 LayerDefinition $$26 = StriderModel.createBodyLayer(); 151 LayerDefinition $$25 = HoglinModel.createBodyLayer(); 155 LayerDefinition $$27 = HoglinModel.createBodyLayer(); 152 LayerDefinition $$26 = HoglinModel.createBabyLayer(); 156 LayerDefinition $$28 = HoglinModel.createBabyLayer(); 153 LayerDefinition $$27 = SkeletonModel.createBodyLayer(); 157 LayerDefinition $$29 = SkeletonModel.createBodyLayer(); 154 LayerDefinition $$28 = LayerDefinition.create(VillagerModel.crea 158 LayerDefinition $$30 = LayerDefinition.create(VillagerModel.crea ... teBodyModel(), 64, 64).apply($$9); ... teBodyModel(), 64, 64).apply($$11); 155 LayerDefinition $$29 = SpiderModel.createSpiderBodyLayer(); 159 LayerDefinition $$31 = SpiderModel.createSpiderBodyLayer(); 156 LayerDefinition $$30 = ArmadilloModel.createBodyLayer(); 160 LayerDefinition $$32 = ArmadilloModel.createBodyLayer(); 157 LayerDefinition $$31 = CamelModel.createBodyLayer(); 161 LayerDefinition $$33 = CamelModel.createBodyLayer(); ... 162 LayerDefinition $$34 = CamelSaddleModel.createSaddleLayer(); 158 LayerDefinition $$32 = ChickenModel.createBodyLayer(); 163 LayerDefinition $$35 = ChickenModel.createBodyLayer(); 159 LayerDefinition $$33 = GoatModel.createBodyLayer(); 164 LayerDefinition $$36 = GoatModel.createBodyLayer(); 160 LayerDefinition $$34 = PandaModel.createBodyLayer(); 165 LayerDefinition $$37 = PandaModel.createBodyLayer(); 161 LayerDefinition $$35 = PigModel.createBodyLayer(CubeDeformation. 166 LayerDefinition $$38 = PigModel.createBodyLayer(CubeDeformation. ... NONE); ... NONE); 162 LayerDefinition $$36 = ColdPigModel.createBodyLayer(CubeDeformat 167 LayerDefinition $$39 = ColdPigModel.createBodyLayer(CubeDeformat ... ion.NONE); ... ion.NONE); 163 LayerDefinition $$37 = PigModel.createSaddleLayer(new CubeDeform 168 LayerDefinition $$40 = PigModel.createBodyLayer(new CubeDeformat ... ation(0.5F)); ... ion(0.5F)); 164 LayerDefinition $$38 = PolarBearModel.createBodyLayer(); ... 165 LayerDefinition $$39 = SheepModel.createBodyLayer(); 169 LayerDefinition $$41 = SheepModel.createBodyLayer(); 166 LayerDefinition $$40 = SheepFurModel.createFurLayer(); 170 LayerDefinition $$42 = SheepFurModel.createFurLayer(); 167 LayerDefinition $$41 = SnifferModel.createBodyLayer(); 171 LayerDefinition $$43 = SnifferModel.createBodyLayer(); 168 LayerDefinition $$42 = TurtleModel.createBodyLayer(); 172 LayerDefinition $$44 = TurtleModel.createBodyLayer(); 169 LayerDefinition $$43 = LayerDefinition.create(WolfModel.createMe 173 LayerDefinition $$45 = LayerDefinition.create(WolfModel.createMe ... shDefinition(CubeDeformation.NONE), 64, 32); ... shDefinition(CubeDeformation.NONE), 64, 32); 170 LayerDefinition $$44 = LayerDefinition.create(WolfModel.createMe 174 LayerDefinition $$46 = LayerDefinition.create(WolfModel.createMe ... shDefinition(new CubeDeformation(0.2F)), 64, 32); ... shDefinition(new CubeDeformation(0.2F)), 64, 32); 171 LayerDefinition $$45 = ZombieVillagerModel.createBodyLayer(); 175 LayerDefinition $$47 = ZombieVillagerModel.createBodyLayer(); 172 LayerDefinition $$46 = ArmorStandModel.createBodyLayer(); 176 LayerDefinition $$48 = ArmorStandModel.createBodyLayer(); 173 LayerDefinition $$47 = ArmorStandArmorModel.createBodyLayer(INNE 177 LayerDefinition $$49 = ArmorStandArmorModel.createBodyLayer(INNE ... R_ARMOR_DEFORMATION); ... R_ARMOR_DEFORMATION); 174 LayerDefinition $$48 = ArmorStandArmorModel.createBodyLayer(OUTE 178 LayerDefinition $$50 = ArmorStandArmorModel.createBodyLayer(OUTE ... R_ARMOR_DEFORMATION); ... R_ARMOR_DEFORMATION); 175 LayerDefinition $$49 = DrownedModel.createBodyLayer(CubeDeformat 179 LayerDefinition $$51 = DrownedModel.createBodyLayer(CubeDeformat ... ion.NONE); ... ion.NONE); 176 LayerDefinition $$50 = DrownedModel.createBodyLayer(new CubeDefo 180 LayerDefinition $$52 = DrownedModel.createBodyLayer(new CubeDefo ... rmation(0.25F)); ... rmation(0.25F)); 177 LayerDefinition $$51 = SquidModel.createBodyLayer(); 181 LayerDefinition $$53 = SquidModel.createBodyLayer(); 178 LayerDefinition $$52 = DolphinModel.createBodyLayer(); 182 LayerDefinition $$54 = DolphinModel.createBodyLayer(); 179 LayerDefinition $$53 = SalmonModel.createBodyLayer(); 183 LayerDefinition $$55 = SalmonModel.createBodyLayer(); 180 $$0.put(ModelLayers.ALLAY, AllayModel.createBodyLayer()); 184 $$0.put(ModelLayers.ALLAY, AllayModel.createBodyLayer()); 181 $$0.put(ModelLayers.ARMADILLO, $$30); 185 $$0.put(ModelLayers.ARMADILLO, $$32); 182 $$0.put(ModelLayers.ARMADILLO_BABY, $$30.apply(ArmadilloModel.BA 186 $$0.put(ModelLayers.ARMADILLO_BABY, $$32.apply(ArmadilloModel.BA ... BY_TRANSFORMER)); ... BY_TRANSFORMER)); 183 $$0.put(ModelLayers.ARMOR_STAND, $$46); 187 $$0.put(ModelLayers.ARMOR_STAND, $$48); 184 $$0.put(ModelLayers.ARMOR_STAND_INNER_ARMOR, $$47); 188 $$0.put(ModelLayers.ARMOR_STAND_INNER_ARMOR, $$49); 185 $$0.put(ModelLayers.ARMOR_STAND_OUTER_ARMOR, $$48); 189 $$0.put(ModelLayers.ARMOR_STAND_OUTER_ARMOR, $$50); 186 $$0.put(ModelLayers.ARMOR_STAND_SMALL, $$46.apply(HumanoidModel. 190 $$0.put(ModelLayers.ARMOR_STAND_SMALL, $$48.apply(HumanoidModel. ... BABY_TRANSFORMER)); ... BABY_TRANSFORMER)); 187 $$0.put(ModelLayers.ARMOR_STAND_SMALL_INNER_ARMOR, $$47.apply(Hu 191 $$0.put(ModelLayers.ARMOR_STAND_SMALL_INNER_ARMOR, $$49.apply(Hu ... manoidModel.BABY_TRANSFORMER)); ... manoidModel.BABY_TRANSFORMER)); 188 $$0.put(ModelLayers.ARMOR_STAND_SMALL_OUTER_ARMOR, $$48.apply(Hu 192 $$0.put(ModelLayers.ARMOR_STAND_SMALL_OUTER_ARMOR, $$50.apply(Hu ... manoidModel.BABY_TRANSFORMER)); ... manoidModel.BABY_TRANSFORMER)); 189 $$0.put(ModelLayers.ARROW, ArrowModel.createBodyLayer()); 193 $$0.put(ModelLayers.ARROW, ArrowModel.createBodyLayer()); 190 $$0.put(ModelLayers.AXOLOTL, $$11); 194 $$0.put(ModelLayers.AXOLOTL, $$13); 191 $$0.put(ModelLayers.AXOLOTL_BABY, $$11.apply(AxolotlModel.BABY_T 195 $$0.put(ModelLayers.AXOLOTL_BABY, $$13.apply(AxolotlModel.BABY_T ... RANSFORMER)); ... RANSFORMER)); 192 $$0.put(ModelLayers.STANDING_BANNER, BannerModel.createBodyLayer 196 $$0.put(ModelLayers.STANDING_BANNER, BannerModel.createBodyLayer ... (true)); ... (true)); 193 $$0.put(ModelLayers.WALL_BANNER, BannerModel.createBodyLayer(fal 197 $$0.put(ModelLayers.WALL_BANNER, BannerModel.createBodyLayer(fal ... se)); ... se)); 194 $$0.put(ModelLayers.STANDING_BANNER_FLAG, BannerFlagModel.create 198 $$0.put(ModelLayers.STANDING_BANNER_FLAG, BannerFlagModel.create ... FlagLayer(true)); ... FlagLayer(true)); 195 $$0.put(ModelLayers.WALL_BANNER_FLAG, BannerFlagModel.createFlag 199 $$0.put(ModelLayers.WALL_BANNER_FLAG, BannerFlagModel.createFlag ... Layer(false)); ... Layer(false)); 196 $$0.put(ModelLayers.BAT, BatModel.createBodyLayer()); 200 $$0.put(ModelLayers.BAT, BatModel.createBodyLayer()); 197 $$0.put(ModelLayers.BED_FOOT, BedRenderer.createFootLayer()); 201 $$0.put(ModelLayers.BED_FOOT, BedRenderer.createFootLayer()); 198 $$0.put(ModelLayers.BED_HEAD, BedRenderer.createHeadLayer()); 202 $$0.put(ModelLayers.BED_HEAD, BedRenderer.createHeadLayer()); 199 $$0.put(ModelLayers.BEE, $$12); 203 $$0.put(ModelLayers.BEE, $$14); 200 $$0.put(ModelLayers.BEE_BABY, $$12.apply(BeeModel.BABY_TRANSFORM 204 $$0.put(ModelLayers.BEE_BABY, $$14.apply(BeeModel.BABY_TRANSFORM ... ER)); ... ER)); 201 $$0.put(ModelLayers.BEE_STINGER, BeeStingerModel.createBodyLayer 205 $$0.put(ModelLayers.BEE_STINGER, BeeStingerModel.createBodyLayer ... ()); ... ()); 202 $$0.put(ModelLayers.BELL, BellModel.createBodyLayer()); 206 $$0.put(ModelLayers.BELL, BellModel.createBodyLayer()); 203 $$0.put(ModelLayers.BLAZE, BlazeModel.createBodyLayer()); 207 $$0.put(ModelLayers.BLAZE, BlazeModel.createBodyLayer()); net/minecraft/client/model/geom/LayerDefinitions.java --- 4/4 --- Java 209 $$0.put(ModelLayers.BOOK, BookModel.createBodyLayer()); 213 $$0.put(ModelLayers.BOOK, BookModel.createBodyLayer()); 210 $$0.put(ModelLayers.BREEZE, BreezeModel.createBodyLayer(32, 32)) 214 $$0.put(ModelLayers.BREEZE, BreezeModel.createBodyLayer(32, 32)) ... ; ... ; 211 $$0.put(ModelLayers.BREEZE_WIND, BreezeModel.createBodyLayer(128 215 $$0.put(ModelLayers.BREEZE_WIND, BreezeModel.createBodyLayer(128 ... , 128)); ... , 128)); 212 $$0.put(ModelLayers.CAT, $$16.apply(CatModel.CAT_TRANSFORMER)); 216 $$0.put(ModelLayers.CAT, $$18.apply(CatModel.CAT_TRANSFORMER)); 213 $$0.put(ModelLayers.CAT_BABY, $$17.apply(CatModel.CAT_TRANSFORME 217 $$0.put(ModelLayers.CAT_BABY, $$19.apply(CatModel.CAT_TRANSFORME ... R)); ... R)); 214 $$0.put(ModelLayers.CAT_COLLAR, $$18.apply(CatModel.CAT_TRANSFOR 218 $$0.put(ModelLayers.CAT_COLLAR, $$20.apply(CatModel.CAT_TRANSFOR ... MER)); ... MER)); 215 $$0.put(ModelLayers.CAT_BABY_COLLAR, $$18.apply(FelineModel.BABY 219 $$0.put(ModelLayers.CAT_BABY_COLLAR, $$20.apply(FelineModel.BABY ... _TRANSFORMER).apply(CatModel.CAT_TRANSFORMER)); ... _TRANSFORMER).apply(CatModel.CAT_TRANSFORMER)); 216 $$0.put(ModelLayers.CAMEL, $$31); 220 $$0.put(ModelLayers.CAMEL, $$33); 217 $$0.put(ModelLayers.CAMEL_BABY, $$31.apply(CamelModel.BABY_TRANS 221 $$0.put(ModelLayers.CAMEL_BABY, $$33.apply(CamelModel.BABY_TRANS ... FORMER)); ... FORMER)); ... 222 $$0.put(ModelLayers.CAMEL_SADDLE, $$34); ... 223 $$0.put(ModelLayers.CAMEL_BABY_SADDLE, $$34.apply(CamelModel.BAB ... ... Y_TRANSFORMER)); 218 $$0.put(ModelLayers.CAVE_SPIDER, $$29.apply(MeshTransformer.scal 224 $$0.put(ModelLayers.CAVE_SPIDER, $$31.apply(MeshTransformer.scal ... ing(0.7F))); ... ing(0.7F))); 219 $$0.put(ModelLayers.CHEST, ChestModel.createSingleBodyLayer()); 225 $$0.put(ModelLayers.CHEST, ChestModel.createSingleBodyLayer()); 220 $$0.put(ModelLayers.CHEST_MINECART, $$5); 226 $$0.put(ModelLayers.CHEST_MINECART, $$5); 221 $$0.put(ModelLayers.CHICKEN, $$32); 227 $$0.put(ModelLayers.CHICKEN, $$35); 222 $$0.put(ModelLayers.CHICKEN_BABY, $$32.apply(ChickenModel.BABY_T 228 $$0.put(ModelLayers.CHICKEN_BABY, $$35.apply(ChickenModel.BABY_T ... RANSFORMER)); ... RANSFORMER)); 223 $$0.put(ModelLayers.COD, CodModel.createBodyLayer()); 229 $$0.put(ModelLayers.COD, CodModel.createBodyLayer()); 224 $$0.put(ModelLayers.COLD_PIG, $$36); 230 $$0.put(ModelLayers.COLD_PIG, $$39); 225 $$0.put(ModelLayers.COLD_PIG_BABY, $$36.apply(PigModel.BABY_TRAN 231 $$0.put(ModelLayers.COLD_PIG_BABY, $$39.apply(PigModel.BABY_TRAN ... SFORMER)); ... SFORMER)); 226 $$0.put(ModelLayers.COMMAND_BLOCK_MINECART, $$5); 232 $$0.put(ModelLayers.COMMAND_BLOCK_MINECART, $$5); 227 $$0.put(ModelLayers.CONDUIT_EYE, ConduitRenderer.createEyeLayer( 233 $$0.put(ModelLayers.CONDUIT_EYE, ConduitRenderer.createEyeLayer( ... )); ... )); 228 $$0.put(ModelLayers.CONDUIT_WIND, ConduitRenderer.createWindLaye 234 $$0.put(ModelLayers.CONDUIT_WIND, ConduitRenderer.createWindLaye ... r()); ... r()); 229 $$0.put(ModelLayers.CONDUIT_SHELL, ConduitRenderer.createShellLa 235 $$0.put(ModelLayers.CONDUIT_SHELL, ConduitRenderer.createShellLa ... yer()); ... yer()); 230 $$0.put(ModelLayers.CONDUIT_CAGE, ConduitRenderer.createCageLaye 236 $$0.put(ModelLayers.CONDUIT_CAGE, ConduitRenderer.createCageLaye ... r()); ... r()); 231 $$0.put(ModelLayers.COW, $$13); 237 $$0.put(ModelLayers.COW, $$15); 232 $$0.put(ModelLayers.COW_BABY, $$14); 238 $$0.put(ModelLayers.COW_BABY, $$16); 233 $$0.put(ModelLayers.CREAKING, CreakingModel.createBodyLayer()); 239 $$0.put(ModelLayers.CREAKING, CreakingModel.createBodyLayer()); 234 $$0.put(ModelLayers.CREEPER, CreeperModel.createBodyLayer(CubeDe 240 $$0.put(ModelLayers.CREEPER, CreeperModel.createBodyLayer(CubeDe ... formation.NONE)); ... formation.NONE)); 235 $$0.put(ModelLayers.CREEPER_ARMOR, CreeperModel.createBodyLayer( 241 $$0.put(ModelLayers.CREEPER_ARMOR, CreeperModel.createBodyLayer( ... new CubeDeformation(2.0F))); ... new CubeDeformation(2.0F))); 236 $$0.put(ModelLayers.CREEPER_HEAD, $$6); 242 $$0.put(ModelLayers.CREEPER_HEAD, $$6); 237 $$0.put(ModelLayers.DECORATED_POT_BASE, DecoratedPotRenderer.cre 243 $$0.put(ModelLayers.DECORATED_POT_BASE, DecoratedPotRenderer.cre ... ateBaseLayer()); ... ateBaseLayer()); 238 $$0.put(ModelLayers.DECORATED_POT_SIDES, DecoratedPotRenderer.cr 244 $$0.put(ModelLayers.DECORATED_POT_SIDES, DecoratedPotRenderer.cr ... eateSidesLayer()); ... eateSidesLayer()); 239 $$0.put(ModelLayers.DOLPHIN, $$52); 245 $$0.put(ModelLayers.DOLPHIN, $$54); 240 $$0.put(ModelLayers.DOLPHIN_BABY, $$52.apply(DolphinModel.BABY_T 246 $$0.put(ModelLayers.DOLPHIN_BABY, $$54.apply(DolphinModel.BABY_T ... RANSFORMER)); ... RANSFORMER)); 241 $$0.put(ModelLayers.DONKEY, DonkeyModel.createBodyLayer(0.87F)); 247 $$0.put(ModelLayers.DONKEY, DonkeyModel.createBodyLayer(0.87F)); 242 $$0.put(ModelLayers.DONKEY_BABY, DonkeyModel.createBabyLayer(0.8 248 $$0.put(ModelLayers.DONKEY_BABY, DonkeyModel.createBabyLayer(0.8 ... 7F)); ... 7F)); ... 249 $$0.put(ModelLayers.DONKEY_SADDLE, DonkeyModel.createSaddleLayer ... ... (0.87F, false)); ... 250 $$0.put(ModelLayers.DONKEY_BABY_SADDLE, DonkeyModel.createSaddle ... ... Layer(0.87F, true)); 243 $$0.put(ModelLayers.DOUBLE_CHEST_LEFT, ChestModel.createDoubleBo 251 $$0.put(ModelLayers.DOUBLE_CHEST_LEFT, ChestModel.createDoubleBo ... dyLeftLayer()); ... dyLeftLayer()); 244 $$0.put(ModelLayers.DOUBLE_CHEST_RIGHT, ChestModel.createDoubleB 252 $$0.put(ModelLayers.DOUBLE_CHEST_RIGHT, ChestModel.createDoubleB ... odyRightLayer()); ... odyRightLayer()); 245 $$0.put(ModelLayers.DRAGON_SKULL, DragonHeadModel.createHeadLaye 253 $$0.put(ModelLayers.DRAGON_SKULL, DragonHeadModel.createHeadLaye ... r()); ... r()); 246 $$0.put(ModelLayers.DROWNED, $$49); 254 $$0.put(ModelLayers.DROWNED, $$51); 247 $$0.put(ModelLayers.DROWNED_INNER_ARMOR, $$4); 255 $$0.put(ModelLayers.DROWNED_INNER_ARMOR, $$4); 248 $$0.put(ModelLayers.DROWNED_OUTER_ARMOR, $$4); 256 $$0.put(ModelLayers.DROWNED_OUTER_ARMOR, $$4); 249 $$0.put(ModelLayers.DROWNED_OUTER_LAYER, $$50); 257 $$0.put(ModelLayers.DROWNED_OUTER_LAYER, $$52); 250 $$0.put(ModelLayers.DROWNED_BABY, $$49.apply(HumanoidModel.BABY_ 258 $$0.put(ModelLayers.DROWNED_BABY, $$51.apply(HumanoidModel.BABY_ ... TRANSFORMER)); ... TRANSFORMER)); 251 $$0.put(ModelLayers.DROWNED_BABY_INNER_ARMOR, $$4.apply(Humanoid 259 $$0.put(ModelLayers.DROWNED_BABY_INNER_ARMOR, $$4.apply(Humanoid ... Model.BABY_TRANSFORMER)); ... Model.BABY_TRANSFORMER)); 252 $$0.put(ModelLayers.DROWNED_BABY_OUTER_ARMOR, $$4.apply(Humanoid 260 $$0.put(ModelLayers.DROWNED_BABY_OUTER_ARMOR, $$4.apply(Humanoid ... Model.BABY_TRANSFORMER)); ... Model.BABY_TRANSFORMER)); 253 $$0.put(ModelLayers.DROWNED_BABY_OUTER_LAYER, $$50.apply(Humanoi 261 $$0.put(ModelLayers.DROWNED_BABY_OUTER_LAYER, $$52.apply(Humanoi ... dModel.BABY_TRANSFORMER)); ... dModel.BABY_TRANSFORMER)); 254 $$0.put(ModelLayers.ELDER_GUARDIAN, GuardianModel.createElderGua 262 $$0.put(ModelLayers.ELDER_GUARDIAN, GuardianModel.createElderGua ... rdianLayer()); ... rdianLayer()); 255 $$0.put(ModelLayers.ELYTRA, $$15); 263 $$0.put(ModelLayers.ELYTRA, $$17); 256 $$0.put(ModelLayers.ELYTRA_BABY, $$15.apply(ElytraModel.BABY_TRA 264 $$0.put(ModelLayers.ELYTRA_BABY, $$17.apply(ElytraModel.BABY_TRA ... NSFORMER)); ... NSFORMER)); 257 $$0.put(ModelLayers.ENDERMAN, EndermanModel.createBodyLayer()); 265 $$0.put(ModelLayers.ENDERMAN, EndermanModel.createBodyLayer()); 258 $$0.put(ModelLayers.ENDERMITE, EndermiteModel.createBodyLayer()) 266 $$0.put(ModelLayers.ENDERMITE, EndermiteModel.createBodyLayer()) ... ; ... ; 259 $$0.put(ModelLayers.ENDER_DRAGON, EnderDragonModel.createBodyLay 267 $$0.put(ModelLayers.ENDER_DRAGON, EnderDragonModel.createBodyLay ... er()); ... er()); 260 $$0.put(ModelLayers.END_CRYSTAL, EndCrystalModel.createBodyLayer 268 $$0.put(ModelLayers.END_CRYSTAL, EndCrystalModel.createBodyLayer ... ()); ... ()); 261 $$0.put(ModelLayers.EVOKER, $$10); 269 $$0.put(ModelLayers.EVOKER, $$12); 262 $$0.put(ModelLayers.EVOKER_FANGS, EvokerFangsModel.createBodyLay 270 $$0.put(ModelLayers.EVOKER_FANGS, EvokerFangsModel.createBodyLay ... er()); ... er()); 263 $$0.put(ModelLayers.FOX, FoxModel.createBodyLayer()); 271 $$0.put(ModelLayers.FOX, FoxModel.createBodyLayer()); 264 $$0.put(ModelLayers.FOX_BABY, FoxModel.createBodyLayer().apply(F 272 $$0.put(ModelLayers.FOX_BABY, FoxModel.createBodyLayer().apply(F ... oxModel.BABY_TRANSFORMER)); ... oxModel.BABY_TRANSFORMER)); 265 $$0.put(ModelLayers.FROG, FrogModel.createBodyLayer()); 273 $$0.put(ModelLayers.FROG, FrogModel.createBodyLayer()); 266 $$0.put(ModelLayers.FURNACE_MINECART, $$5); 274 $$0.put(ModelLayers.FURNACE_MINECART, $$5); 267 $$0.put(ModelLayers.GHAST, GhastModel.createBodyLayer()); 275 $$0.put(ModelLayers.GHAST, GhastModel.createBodyLayer()); 268 MeshTransformer $$54 = MeshTransformer.scaling(6.0F); 276 MeshTransformer $$56 = MeshTransformer.scaling(6.0F); 269 $$0.put(ModelLayers.GIANT, $$1.apply($$54)); 277 $$0.put(ModelLayers.GIANT, $$1.apply($$56)); 270 $$0.put(ModelLayers.GIANT_INNER_ARMOR, $$4.apply($$54)); 278 $$0.put(ModelLayers.GIANT_INNER_ARMOR, $$4.apply($$56)); 271 $$0.put(ModelLayers.GIANT_OUTER_ARMOR, $$2.apply($$54)); 279 $$0.put(ModelLayers.GIANT_OUTER_ARMOR, $$2.apply($$56)); 272 $$0.put(ModelLayers.GLOW_SQUID, $$51); 280 $$0.put(ModelLayers.GLOW_SQUID, $$53); 273 $$0.put(ModelLayers.GLOW_SQUID_BABY, $$51.apply(SquidModel.BABY_ 281 $$0.put(ModelLayers.GLOW_SQUID_BABY, $$53.apply(SquidModel.BABY_ ... TRANSFORMER)); ... TRANSFORMER)); 274 $$0.put(ModelLayers.GOAT, $$33); 282 $$0.put(ModelLayers.GOAT, $$36); 275 $$0.put(ModelLayers.GOAT_BABY, $$33.apply(GoatModel.BABY_TRANSFO 283 $$0.put(ModelLayers.GOAT_BABY, $$36.apply(GoatModel.BABY_TRANSFO ... RMER)); ... RMER)); 276 $$0.put(ModelLayers.GUARDIAN, GuardianModel.createBodyLayer()); 284 $$0.put(ModelLayers.GUARDIAN, GuardianModel.createBodyLayer()); 277 $$0.put(ModelLayers.HOGLIN, $$25); 285 $$0.put(ModelLayers.HOGLIN, $$27); 278 $$0.put(ModelLayers.HOGLIN_BABY, $$26); 286 $$0.put(ModelLayers.HOGLIN_BABY, $$28); 279 $$0.put(ModelLayers.HOPPER_MINECART, $$5); 287 $$0.put(ModelLayers.HOPPER_MINECART, $$5); 280 MeshTransformer $$55 = MeshTransformer.scaling(1.1F); 288 MeshTransformer $$57 = MeshTransformer.scaling(1.1F); 281 $$0.put(ModelLayers.HORSE, $$7.apply($$55)); 289 $$0.put(ModelLayers.HORSE, $$7.apply($$57)); 282 $$0.put(ModelLayers.HORSE_BABY, $$8.apply($$55)); 290 $$0.put(ModelLayers.HORSE_BABY, $$8.apply($$57)); 283 $$0.put(ModelLayers.HORSE_ARMOR, LayerDefinition.create(Abstract 291 $$0.put(ModelLayers.HORSE_ARMOR, LayerDefinition.create(Abstract ... EquineModel.createBodyMesh(new CubeDeformation(0.1F)), 64, 64).apply($ ... EquineModel.createBodyMesh(new CubeDeformation(0.1F)), 64, 64).apply($ ... $55)); ... $57)); 284 $$0.put(ModelLayers.HORSE_BABY_ARMOR, LayerDefinition.create(Abs 292 $$0.put(ModelLayers.HORSE_BABY_ARMOR, LayerDefinition.create(Abs ... tractEquineModel.createBabyMesh(new CubeDeformation(0.1F)), 64, 64).ap ... tractEquineModel.createBabyMesh(new CubeDeformation(0.1F)), 64, 64).ap ... ply($$55)); ... ply($$57)); ... 293 $$0.put(ModelLayers.HORSE_SADDLE, $$9.apply($$57)); ... 294 $$0.put(ModelLayers.HORSE_BABY_SADDLE, $$10.apply($$57)); 285 MeshTransformer $$56 = MeshTransformer.scaling(1.0625F); 295 MeshTransformer $$58 = MeshTransformer.scaling(1.0625F); 286 $$0.put(ModelLayers.HUSK, $$1.apply($$56)); 296 $$0.put(ModelLayers.HUSK, $$1.apply($$58)); 287 $$0.put(ModelLayers.HUSK_INNER_ARMOR, $$4.apply($$56)); 297 $$0.put(ModelLayers.HUSK_INNER_ARMOR, $$4.apply($$58)); 288 $$0.put(ModelLayers.HUSK_OUTER_ARMOR, $$2.apply($$56)); 298 $$0.put(ModelLayers.HUSK_OUTER_ARMOR, $$2.apply($$58)); 289 $$0.put(ModelLayers.HUSK_BABY, $$1.apply(HumanoidModel.BABY_TRAN 299 $$0.put(ModelLayers.HUSK_BABY, $$1.apply(HumanoidModel.BABY_TRAN ... SFORMER).apply($$56)); ... SFORMER).apply($$58)); 290 $$0.put(ModelLayers.HUSK_BABY_INNER_ARMOR, $$4.apply(HumanoidMod 300 $$0.put(ModelLayers.HUSK_BABY_INNER_ARMOR, $$4.apply(HumanoidMod ... el.BABY_TRANSFORMER).apply($$56)); ... el.BABY_TRANSFORMER).apply($$58)); 291 $$0.put(ModelLayers.HUSK_BABY_OUTER_ARMOR, $$2.apply(HumanoidMod 301 $$0.put(ModelLayers.HUSK_BABY_OUTER_ARMOR, $$2.apply(HumanoidMod ... el.BABY_TRANSFORMER).apply($$56)); ... el.BABY_TRANSFORMER).apply($$58)); 292 $$0.put(ModelLayers.ILLUSIONER, $$10); 302 $$0.put(ModelLayers.ILLUSIONER, $$12); 293 $$0.put(ModelLayers.IRON_GOLEM, IronGolemModel.createBodyLayer() 303 $$0.put(ModelLayers.IRON_GOLEM, IronGolemModel.createBodyLayer() ... ); ... ); 294 $$0.put(ModelLayers.LEASH_KNOT, LeashKnotModel.createBodyLayer() 304 $$0.put(ModelLayers.LEASH_KNOT, LeashKnotModel.createBodyLayer() ... ); ... ); 295 $$0.put(ModelLayers.LLAMA, $$22); 305 $$0.put(ModelLayers.LLAMA, $$24); 296 $$0.put(ModelLayers.LLAMA_BABY, $$22.apply(LlamaModel.BABY_TRANS 306 $$0.put(ModelLayers.LLAMA_BABY, $$24.apply(LlamaModel.BABY_TRANS ... FORMER)); ... FORMER)); 297 $$0.put(ModelLayers.LLAMA_DECOR, $$23); 307 $$0.put(ModelLayers.LLAMA_DECOR, $$25); 298 $$0.put(ModelLayers.LLAMA_BABY_DECOR, $$23.apply(LlamaModel.BABY 308 $$0.put(ModelLayers.LLAMA_BABY_DECOR, $$25.apply(LlamaModel.BABY ... _TRANSFORMER)); ... _TRANSFORMER)); 299 $$0.put(ModelLayers.LLAMA_SPIT, LlamaSpitModel.createBodyLayer() 309 $$0.put(ModelLayers.LLAMA_SPIT, LlamaSpitModel.createBodyLayer() ... ); ... ); 300 $$0.put(ModelLayers.MAGMA_CUBE, LavaSlimeModel.createBodyLayer() 310 $$0.put(ModelLayers.MAGMA_CUBE, LavaSlimeModel.createBodyLayer() ... ); ... ); 301 $$0.put(ModelLayers.MINECART, $$5); 311 $$0.put(ModelLayers.MINECART, $$5); 302 $$0.put(ModelLayers.MOOSHROOM, $$13); 312 $$0.put(ModelLayers.MOOSHROOM, $$15); 303 $$0.put(ModelLayers.MOOSHROOM_BABY, $$14); 313 $$0.put(ModelLayers.MOOSHROOM_BABY, $$16); 304 $$0.put(ModelLayers.MULE, DonkeyModel.createBodyLayer(0.92F)); 314 $$0.put(ModelLayers.MULE, DonkeyModel.createBodyLayer(0.92F)); 305 $$0.put(ModelLayers.MULE_BABY, DonkeyModel.createBabyLayer(0.92F 315 $$0.put(ModelLayers.MULE_BABY, DonkeyModel.createBabyLayer(0.92F ... )); ... )); ... 316 $$0.put(ModelLayers.MULE_SADDLE, DonkeyModel.createSaddleLayer(0 ... ... .92F, false)); ... 317 $$0.put(ModelLayers.MULE_BABY_SADDLE, DonkeyModel.createSaddleLa ... ... yer(0.92F, true)); 306 $$0.put(ModelLayers.OCELOT, $$16); 318 $$0.put(ModelLayers.OCELOT, $$18); 307 $$0.put(ModelLayers.OCELOT_BABY, $$17); 319 $$0.put(ModelLayers.OCELOT_BABY, $$19); 308 $$0.put(ModelLayers.PANDA, $$34); 320 $$0.put(ModelLayers.PANDA, $$37); 309 $$0.put(ModelLayers.PANDA_BABY, $$34.apply(PandaModel.BABY_TRANS 321 $$0.put(ModelLayers.PANDA_BABY, $$37.apply(PandaModel.BABY_TRANS ... FORMER)); ... FORMER)); 310 $$0.put(ModelLayers.PARROT, ParrotModel.createBodyLayer()); 322 $$0.put(ModelLayers.PARROT, ParrotModel.createBodyLayer()); 311 $$0.put(ModelLayers.PHANTOM, PhantomModel.createBodyLayer()); 323 $$0.put(ModelLayers.PHANTOM, PhantomModel.createBodyLayer()); 312 $$0.put(ModelLayers.PIG, $$35); 324 $$0.put(ModelLayers.PIG, $$38); 313 $$0.put(ModelLayers.PIG_BABY, $$35.apply(PigModel.BABY_TRANSFORM 325 $$0.put(ModelLayers.PIG_BABY, $$38.apply(PigModel.BABY_TRANSFORM ... ER)); ... ER)); 314 $$0.put(ModelLayers.PIG_SADDLE, $$37); 326 $$0.put(ModelLayers.PIG_SADDLE, $$40); 315 $$0.put(ModelLayers.PIG_BABY_SADDLE, $$37.apply(PigModel.BABY_TR 327 $$0.put(ModelLayers.PIG_BABY_SADDLE, $$40.apply(PigModel.BABY_TR ... ANSFORMER)); ... ANSFORMER)); 316 $$0.put(ModelLayers.PIGLIN, $$19); 328 $$0.put(ModelLayers.PIGLIN, $$21); 317 $$0.put(ModelLayers.PIGLIN_INNER_ARMOR, $$4); 329 $$0.put(ModelLayers.PIGLIN_INNER_ARMOR, $$4); 318 $$0.put(ModelLayers.PIGLIN_OUTER_ARMOR, $$3); 330 $$0.put(ModelLayers.PIGLIN_OUTER_ARMOR, $$3); 319 $$0.put(ModelLayers.PIGLIN_BRUTE, $$19); 331 $$0.put(ModelLayers.PIGLIN_BRUTE, $$21); 320 $$0.put(ModelLayers.PIGLIN_BRUTE_INNER_ARMOR, $$4); 332 $$0.put(ModelLayers.PIGLIN_BRUTE_INNER_ARMOR, $$4); 321 $$0.put(ModelLayers.PIGLIN_BRUTE_OUTER_ARMOR, $$3); 333 $$0.put(ModelLayers.PIGLIN_BRUTE_OUTER_ARMOR, $$3); 322 $$0.put(ModelLayers.PIGLIN_BABY, $$19.apply(HumanoidModel.BABY_T 334 $$0.put(ModelLayers.PIGLIN_BABY, $$21.apply(HumanoidModel.BABY_T ... RANSFORMER)); ... RANSFORMER)); 323 $$0.put(ModelLayers.PIGLIN_BABY_INNER_ARMOR, $$4.apply(HumanoidM 335 $$0.put(ModelLayers.PIGLIN_BABY_INNER_ARMOR, $$4.apply(HumanoidM ... odel.BABY_TRANSFORMER)); ... odel.BABY_TRANSFORMER)); 324 $$0.put(ModelLayers.PIGLIN_BABY_OUTER_ARMOR, $$3.apply(HumanoidM 336 $$0.put(ModelLayers.PIGLIN_BABY_OUTER_ARMOR, $$3.apply(HumanoidM ... odel.BABY_TRANSFORMER)); ... odel.BABY_TRANSFORMER)); 325 $$0.put(ModelLayers.PIGLIN_HEAD, $$20); 337 $$0.put(ModelLayers.PIGLIN_HEAD, $$22); 326 $$0.put(ModelLayers.PILLAGER, $$10); 338 $$0.put(ModelLayers.PILLAGER, $$12); 327 $$0.put(ModelLayers.PLAYER, LayerDefinition.create(PlayerModel.c 339 $$0.put(ModelLayers.PLAYER, LayerDefinition.create(PlayerModel.c ... reateMesh(CubeDeformation.NONE, false), 64, 64)); ... reateMesh(CubeDeformation.NONE, false), 64, 64)); 328 $$0.put(ModelLayers.PLAYER_EARS, PlayerEarsModel.createEarsLayer 340 $$0.put(ModelLayers.PLAYER_EARS, PlayerEarsModel.createEarsLayer ... ()); ... ()); 329 $$0.put(ModelLayers.PLAYER_CAPE, PlayerCapeModel.createCapeLayer 341 $$0.put(ModelLayers.PLAYER_CAPE, PlayerCapeModel.createCapeLayer ... ()); ... ()); 330 $$0.put(ModelLayers.PLAYER_HEAD, $$21); 342 $$0.put(ModelLayers.PLAYER_HEAD, $$23); 331 $$0.put(ModelLayers.PLAYER_INNER_ARMOR, $$4); 343 $$0.put(ModelLayers.PLAYER_INNER_ARMOR, $$4); 332 $$0.put(ModelLayers.PLAYER_OUTER_ARMOR, $$2); 344 $$0.put(ModelLayers.PLAYER_OUTER_ARMOR, $$2); 333 $$0.put(ModelLayers.PLAYER_SLIM, LayerDefinition.create(PlayerMo 345 $$0.put(ModelLayers.PLAYER_SLIM, LayerDefinition.create(PlayerMo ... del.createMesh(CubeDeformation.NONE, true), 64, 64)); ... del.createMesh(CubeDeformation.NONE, true), 64, 64)); 334 $$0.put(ModelLayers.PLAYER_SLIM_INNER_ARMOR, $$4); 346 $$0.put(ModelLayers.PLAYER_SLIM_INNER_ARMOR, $$4); 335 $$0.put(ModelLayers.PLAYER_SLIM_OUTER_ARMOR, $$2); 347 $$0.put(ModelLayers.PLAYER_SLIM_OUTER_ARMOR, $$2); 336 $$0.put(ModelLayers.PLAYER_SPIN_ATTACK, SpinAttackEffectModel.cr 348 $$0.put(ModelLayers.PLAYER_SPIN_ATTACK, SpinAttackEffectModel.cr ... eateLayer()); ... eateLayer()); 337 $$0.put(ModelLayers.POLAR_BEAR, $$38); 349 $$0.put(ModelLayers.POLAR_BEAR, PolarBearModel.createBodyLayer(f ... ... alse)); 338 $$0.put(ModelLayers.POLAR_BEAR_BABY, $$38.apply(PolarBearModel.B 350 $$0.put(ModelLayers.POLAR_BEAR_BABY, PolarBearModel.createBodyLa ... ABY_TRANSFORMER)); ... yer(true)); 339 $$0.put(ModelLayers.PUFFERFISH_BIG, PufferfishBigModel.createBod 351 $$0.put(ModelLayers.PUFFERFISH_BIG, PufferfishBigModel.createBod ... yLayer()); ... yLayer()); 340 $$0.put(ModelLayers.PUFFERFISH_MEDIUM, PufferfishMidModel.create 352 $$0.put(ModelLayers.PUFFERFISH_MEDIUM, PufferfishMidModel.create ... BodyLayer()); ... BodyLayer()); 341 $$0.put(ModelLayers.PUFFERFISH_SMALL, PufferfishSmallModel.creat 353 $$0.put(ModelLayers.PUFFERFISH_SMALL, PufferfishSmallModel.creat ... eBodyLayer()); ... eBodyLayer()); 342 $$0.put(ModelLayers.RABBIT, RabbitModel.createBodyLayer(false)); 354 $$0.put(ModelLayers.RABBIT, RabbitModel.createBodyLayer(false)); 343 $$0.put(ModelLayers.RABBIT_BABY, RabbitModel.createBodyLayer(tru 355 $$0.put(ModelLayers.RABBIT_BABY, RabbitModel.createBodyLayer(tru ... e)); ... e)); 344 $$0.put(ModelLayers.RAVAGER, RavagerModel.createBodyLayer()); 356 $$0.put(ModelLayers.RAVAGER, RavagerModel.createBodyLayer()); 345 $$0.put(ModelLayers.SALMON, $$53); 357 $$0.put(ModelLayers.SALMON, $$55); 346 $$0.put(ModelLayers.SALMON_SMALL, $$53.apply(SalmonModel.SMALL_T 358 $$0.put(ModelLayers.SALMON_SMALL, $$55.apply(SalmonModel.SMALL_T ... RANSFORMER)); ... RANSFORMER)); 347 $$0.put(ModelLayers.SALMON_LARGE, $$53.apply(SalmonModel.LARGE_T 359 $$0.put(ModelLayers.SALMON_LARGE, $$55.apply(SalmonModel.LARGE_T ... RANSFORMER)); ... RANSFORMER)); 348 $$0.put(ModelLayers.SHEEP, $$39); 360 $$0.put(ModelLayers.SHEEP, $$41); 349 $$0.put(ModelLayers.SHEEP_BABY, $$39.apply(SheepModel.BABY_TRANS 361 $$0.put(ModelLayers.SHEEP_BABY, $$41.apply(SheepModel.BABY_TRANS ... FORMER)); ... FORMER)); 350 $$0.put(ModelLayers.SHEEP_WOOL, $$40); 362 $$0.put(ModelLayers.SHEEP_WOOL, $$42); 351 $$0.put(ModelLayers.SHEEP_BABY_WOOL, $$40.apply(SheepModel.BABY_ 363 $$0.put(ModelLayers.SHEEP_BABY_WOOL, $$42.apply(SheepModel.BABY_ ... TRANSFORMER)); ... TRANSFORMER)); 352 $$0.put(ModelLayers.SHIELD, ShieldModel.createLayer()); 364 $$0.put(ModelLayers.SHIELD, ShieldModel.createLayer()); 353 $$0.put(ModelLayers.SHULKER, ShulkerModel.createBodyLayer()); 365 $$0.put(ModelLayers.SHULKER, ShulkerModel.createBodyLayer()); 354 $$0.put(ModelLayers.SHULKER_BOX, ShulkerModel.createBoxLayer()); 366 $$0.put(ModelLayers.SHULKER_BOX, ShulkerModel.createBoxLayer()); 355 $$0.put(ModelLayers.SHULKER_BULLET, ShulkerBulletModel.createBod 367 $$0.put(ModelLayers.SHULKER_BULLET, ShulkerBulletModel.createBod ... yLayer()); ... yLayer()); 356 $$0.put(ModelLayers.SILVERFISH, SilverfishModel.createBodyLayer( 368 $$0.put(ModelLayers.SILVERFISH, SilverfishModel.createBodyLayer( ... )); ... )); 357 $$0.put(ModelLayers.SKELETON, $$27); 369 $$0.put(ModelLayers.SKELETON, $$29); 358 $$0.put(ModelLayers.SKELETON_INNER_ARMOR, $$4); 370 $$0.put(ModelLayers.SKELETON_INNER_ARMOR, $$4); 359 $$0.put(ModelLayers.SKELETON_OUTER_ARMOR, $$2); 371 $$0.put(ModelLayers.SKELETON_OUTER_ARMOR, $$2); 360 $$0.put(ModelLayers.SKELETON_HORSE, $$7); 372 $$0.put(ModelLayers.SKELETON_HORSE, $$7); 361 $$0.put(ModelLayers.SKELETON_HORSE_BABY, $$8); 373 $$0.put(ModelLayers.SKELETON_HORSE_BABY, $$8); ... 374 $$0.put(ModelLayers.SKELETON_HORSE_SADDLE, $$9); ... 375 $$0.put(ModelLayers.SKELETON_HORSE_BABY_SADDLE, $$10); 362 $$0.put(ModelLayers.SKELETON_SKULL, $$6); 376 $$0.put(ModelLayers.SKELETON_SKULL, $$6); 363 $$0.put(ModelLayers.SLIME, SlimeModel.createInnerBodyLayer()); 377 $$0.put(ModelLayers.SLIME, SlimeModel.createInnerBodyLayer()); 364 $$0.put(ModelLayers.SLIME_OUTER, SlimeModel.createOuterBodyLayer 378 $$0.put(ModelLayers.SLIME_OUTER, SlimeModel.createOuterBodyLayer ... ()); ... ()); 365 $$0.put(ModelLayers.SNIFFER, $$41); 379 $$0.put(ModelLayers.SNIFFER, $$43); 366 $$0.put(ModelLayers.SNIFFER_BABY, $$41.apply(SnifferModel.BABY_T 380 $$0.put(ModelLayers.SNIFFER_BABY, $$43.apply(SnifferModel.BABY_T ... RANSFORMER)); ... RANSFORMER)); 367 $$0.put(ModelLayers.SNOW_GOLEM, SnowGolemModel.createBodyLayer() 381 $$0.put(ModelLayers.SNOW_GOLEM, SnowGolemModel.createBodyLayer() ... ); ... ); 368 $$0.put(ModelLayers.SPAWNER_MINECART, $$5); 382 $$0.put(ModelLayers.SPAWNER_MINECART, $$5); 369 $$0.put(ModelLayers.SPIDER, $$29); 383 $$0.put(ModelLayers.SPIDER, $$31); 370 $$0.put(ModelLayers.SQUID, $$51); 384 $$0.put(ModelLayers.SQUID, $$53); 371 $$0.put(ModelLayers.SQUID_BABY, $$51.apply(SquidModel.BABY_TRANS 385 $$0.put(ModelLayers.SQUID_BABY, $$53.apply(SquidModel.BABY_TRANS ... FORMER)); ... FORMER)); 372 $$0.put(ModelLayers.STRAY, $$27); 386 $$0.put(ModelLayers.STRAY, $$29); 373 $$0.put(ModelLayers.STRAY_INNER_ARMOR, $$4); 387 $$0.put(ModelLayers.STRAY_INNER_ARMOR, $$4); 374 $$0.put(ModelLayers.STRAY_OUTER_ARMOR, $$2); 388 $$0.put(ModelLayers.STRAY_OUTER_ARMOR, $$2); 375 $$0.put(ModelLayers.STRAY_OUTER_LAYER, LayerDefinition.create(Hu 389 $$0.put(ModelLayers.STRAY_OUTER_LAYER, LayerDefinition.create(Hu ... manoidModel.createMesh(new CubeDeformation(0.25F), 0.0F), 64, 32)); ... manoidModel.createMesh(new CubeDeformation(0.25F), 0.0F), 64, 32)); 376 $$0.put(ModelLayers.STRIDER, $$24); 390 $$0.put(ModelLayers.STRIDER, $$26); 377 $$0.put(ModelLayers.STRIDER_SADDLE, $$24); 391 $$0.put(ModelLayers.STRIDER_SADDLE, $$26); 378 $$0.put(ModelLayers.STRIDER_BABY, $$24.apply(StriderModel.BABY_T 392 $$0.put(ModelLayers.STRIDER_BABY, $$26.apply(StriderModel.BABY_T ... RANSFORMER)); ... RANSFORMER)); 379 $$0.put(ModelLayers.STRIDER_BABY_SADDLE, $$24.apply(StriderModel 393 $$0.put(ModelLayers.STRIDER_BABY_SADDLE, $$26.apply(StriderModel ... .BABY_TRANSFORMER)); ... .BABY_TRANSFORMER)); 380 $$0.put(ModelLayers.TADPOLE, TadpoleModel.createBodyLayer()); 394 $$0.put(ModelLayers.TADPOLE, TadpoleModel.createBodyLayer()); 381 $$0.put(ModelLayers.TNT_MINECART, $$5); 395 $$0.put(ModelLayers.TNT_MINECART, $$5); 382 $$0.put(ModelLayers.TRADER_LLAMA, $$22); 396 $$0.put(ModelLayers.TRADER_LLAMA, $$24); 383 $$0.put(ModelLayers.TRADER_LLAMA_BABY, $$22.apply(LlamaModel.BAB 397 $$0.put(ModelLayers.TRADER_LLAMA_BABY, $$24.apply(LlamaModel.BAB ... Y_TRANSFORMER)); ... Y_TRANSFORMER)); 384 $$0.put(ModelLayers.TRIDENT, TridentModel.createLayer()); 398 $$0.put(ModelLayers.TRIDENT, TridentModel.createLayer()); 385 $$0.put(ModelLayers.TROPICAL_FISH_LARGE, TropicalFishModelB.crea 399 $$0.put(ModelLayers.TROPICAL_FISH_LARGE, TropicalFishModelB.crea ... teBodyLayer(CubeDeformation.NONE)); ... teBodyLayer(CubeDeformation.NONE)); 386 $$0.put(ModelLayers.TROPICAL_FISH_LARGE_PATTERN, TropicalFishMod 400 $$0.put(ModelLayers.TROPICAL_FISH_LARGE_PATTERN, TropicalFishMod ... elB.createBodyLayer(FISH_PATTERN_DEFORMATION)); ... elB.createBodyLayer(FISH_PATTERN_DEFORMATION)); 387 $$0.put(ModelLayers.TROPICAL_FISH_SMALL, TropicalFishModelA.crea 401 $$0.put(ModelLayers.TROPICAL_FISH_SMALL, TropicalFishModelA.crea ... teBodyLayer(CubeDeformation.NONE)); ... teBodyLayer(CubeDeformation.NONE)); 388 $$0.put(ModelLayers.TROPICAL_FISH_SMALL_PATTERN, TropicalFishMod 402 $$0.put(ModelLayers.TROPICAL_FISH_SMALL_PATTERN, TropicalFishMod ... elA.createBodyLayer(FISH_PATTERN_DEFORMATION)); ... elA.createBodyLayer(FISH_PATTERN_DEFORMATION)); 389 $$0.put(ModelLayers.TURTLE, $$42); 403 $$0.put(ModelLayers.TURTLE, $$44); 390 $$0.put(ModelLayers.TURTLE_BABY, $$42.apply(TurtleModel.BABY_TRA 404 $$0.put(ModelLayers.TURTLE_BABY, $$44.apply(TurtleModel.BABY_TRA ... NSFORMER)); ... NSFORMER)); 391 $$0.put(ModelLayers.VEX, VexModel.createBodyLayer()); 405 $$0.put(ModelLayers.VEX, VexModel.createBodyLayer()); 392 $$0.put(ModelLayers.VILLAGER, $$28); 406 $$0.put(ModelLayers.VILLAGER, $$30); 393 $$0.put(ModelLayers.VILLAGER_BABY, $$28.apply(VillagerModel.BABY 407 $$0.put(ModelLayers.VILLAGER_BABY, $$30.apply(VillagerModel.BABY ... _TRANSFORMER)); ... _TRANSFORMER)); 394 $$0.put(ModelLayers.VINDICATOR, $$10); 408 $$0.put(ModelLayers.VINDICATOR, $$12); 395 $$0.put(ModelLayers.WARDEN, WardenModel.createBodyLayer()); 409 $$0.put(ModelLayers.WARDEN, WardenModel.createBodyLayer()); 396 $$0.put(ModelLayers.WANDERING_TRADER, $$28); 410 $$0.put(ModelLayers.WANDERING_TRADER, $$30); 397 $$0.put(ModelLayers.WIND_CHARGE, WindChargeModel.createBodyLayer 411 $$0.put(ModelLayers.WIND_CHARGE, WindChargeModel.createBodyLayer ... ()); ... ()); 398 $$0.put(ModelLayers.WITCH, WitchModel.createBodyLayer().apply($$ 412 $$0.put(ModelLayers.WITCH, WitchModel.createBodyLayer().apply($$ ... 9)); ... 11)); 399 $$0.put(ModelLayers.WITHER, WitherBossModel.createBodyLayer(Cube 413 $$0.put(ModelLayers.WITHER, WitherBossModel.createBodyLayer(Cube ... Deformation.NONE)); ... Deformation.NONE)); 400 $$0.put(ModelLayers.WITHER_ARMOR, WitherBossModel.createBodyLaye 414 $$0.put(ModelLayers.WITHER_ARMOR, WitherBossModel.createBodyLaye ... r(INNER_ARMOR_DEFORMATION)); ... r(INNER_ARMOR_DEFORMATION)); 401 $$0.put(ModelLayers.WITHER_SKULL, WitherSkullRenderer.createSkul 415 $$0.put(ModelLayers.WITHER_SKULL, WitherSkullRenderer.createSkul ... lLayer()); ... lLayer()); 402 MeshTransformer $$57 = MeshTransformer.scaling(1.2F); 416 MeshTransformer $$59 = MeshTransformer.scaling(1.2F); 403 $$0.put(ModelLayers.WITHER_SKELETON, $$27.apply($$57)); 417 $$0.put(ModelLayers.WITHER_SKELETON, $$29.apply($$59)); 404 $$0.put(ModelLayers.WITHER_SKELETON_INNER_ARMOR, $$4.apply($$57) 418 $$0.put(ModelLayers.WITHER_SKELETON_INNER_ARMOR, $$4.apply($$59) ... ); ... ); 405 $$0.put(ModelLayers.WITHER_SKELETON_OUTER_ARMOR, $$2.apply($$57) 419 $$0.put(ModelLayers.WITHER_SKELETON_OUTER_ARMOR, $$2.apply($$59) ... ); ... ); 406 $$0.put(ModelLayers.WITHER_SKELETON_SKULL, $$6); 420 $$0.put(ModelLayers.WITHER_SKELETON_SKULL, $$6); 407 $$0.put(ModelLayers.WOLF, $$43); 421 $$0.put(ModelLayers.WOLF, $$45); 408 $$0.put(ModelLayers.WOLF_ARMOR, $$44); 422 $$0.put(ModelLayers.WOLF_ARMOR, $$46); 409 $$0.put(ModelLayers.WOLF_BABY, $$43.apply(WolfModel.BABY_TRANSFO 423 $$0.put(ModelLayers.WOLF_BABY, $$45.apply(WolfModel.BABY_TRANSFO ... RMER)); ... RMER)); 410 $$0.put(ModelLayers.WOLF_BABY_ARMOR, $$44.apply(WolfModel.BABY_T 424 $$0.put(ModelLayers.WOLF_BABY_ARMOR, $$46.apply(WolfModel.BABY_T ... RANSFORMER)); ... RANSFORMER)); 411 $$0.put(ModelLayers.ZOGLIN, $$25); 425 $$0.put(ModelLayers.ZOGLIN, $$27); 412 $$0.put(ModelLayers.ZOGLIN_BABY, $$26); 426 $$0.put(ModelLayers.ZOGLIN_BABY, $$28); 413 $$0.put(ModelLayers.ZOMBIE, $$1); 427 $$0.put(ModelLayers.ZOMBIE, $$1); 414 $$0.put(ModelLayers.ZOMBIE_INNER_ARMOR, $$4); 428 $$0.put(ModelLayers.ZOMBIE_INNER_ARMOR, $$4); 415 $$0.put(ModelLayers.ZOMBIE_OUTER_ARMOR, $$2); 429 $$0.put(ModelLayers.ZOMBIE_OUTER_ARMOR, $$2); 416 $$0.put(ModelLayers.ZOMBIE_BABY, $$1.apply(HumanoidModel.BABY_TR 430 $$0.put(ModelLayers.ZOMBIE_BABY, $$1.apply(HumanoidModel.BABY_TR ... ANSFORMER)); ... ANSFORMER)); 417 $$0.put(ModelLayers.ZOMBIE_BABY_INNER_ARMOR, $$4.apply(HumanoidM 431 $$0.put(ModelLayers.ZOMBIE_BABY_INNER_ARMOR, $$4.apply(HumanoidM ... odel.BABY_TRANSFORMER)); ... odel.BABY_TRANSFORMER)); 418 $$0.put(ModelLayers.ZOMBIE_BABY_OUTER_ARMOR, $$2.apply(HumanoidM 432 $$0.put(ModelLayers.ZOMBIE_BABY_OUTER_ARMOR, $$2.apply(HumanoidM ... odel.BABY_TRANSFORMER)); ... odel.BABY_TRANSFORMER)); 419 $$0.put(ModelLayers.ZOMBIE_HEAD, $$21); 433 $$0.put(ModelLayers.ZOMBIE_HEAD, $$23); 420 $$0.put(ModelLayers.ZOMBIE_HORSE, $$7); 434 $$0.put(ModelLayers.ZOMBIE_HORSE, $$7); 421 $$0.put(ModelLayers.ZOMBIE_HORSE_BABY, $$8); 435 $$0.put(ModelLayers.ZOMBIE_HORSE_BABY, $$8); ... 436 $$0.put(ModelLayers.ZOMBIE_HORSE_SADDLE, $$9); ... 437 $$0.put(ModelLayers.ZOMBIE_HORSE_BABY_SADDLE, $$10); 422 $$0.put(ModelLayers.ZOMBIE_VILLAGER, $$45); 438 $$0.put(ModelLayers.ZOMBIE_VILLAGER, $$47); 423 $$0.put(ModelLayers.ZOMBIE_VILLAGER_INNER_ARMOR, ZombieVillagerM 439 $$0.put(ModelLayers.ZOMBIE_VILLAGER_INNER_ARMOR, ZombieVillagerM ... odel.createArmorLayer(INNER_ARMOR_DEFORMATION)); ... odel.createArmorLayer(INNER_ARMOR_DEFORMATION)); 424 $$0.put(ModelLayers.ZOMBIE_VILLAGER_OUTER_ARMOR, ZombieVillagerM 440 $$0.put(ModelLayers.ZOMBIE_VILLAGER_OUTER_ARMOR, ZombieVillagerM ... odel.createArmorLayer(OUTER_ARMOR_DEFORMATION)); ... odel.createArmorLayer(OUTER_ARMOR_DEFORMATION)); 425 $$0.put(ModelLayers.ZOMBIE_VILLAGER_BABY, $$45.apply(HumanoidMod 441 $$0.put(ModelLayers.ZOMBIE_VILLAGER_BABY, $$47.apply(HumanoidMod ... el.BABY_TRANSFORMER)); ... el.BABY_TRANSFORMER)); 426 $$0.put(ModelLayers.ZOMBIE_VILLAGER_BABY_INNER_ARMOR, ZombieVill 442 $$0.put(ModelLayers.ZOMBIE_VILLAGER_BABY_INNER_ARMOR, ZombieVill ... agerModel.createArmorLayer(INNER_ARMOR_DEFORMATION).apply(HumanoidMode ... agerModel.createArmorLayer(INNER_ARMOR_DEFORMATION).apply(HumanoidMode ... l.BABY_TRANSFORMER)); ... l.BABY_TRANSFORMER)); 427 $$0.put(ModelLayers.ZOMBIE_VILLAGER_BABY_OUTER_ARMOR, ZombieVill 443 $$0.put(ModelLayers.ZOMBIE_VILLAGER_BABY_OUTER_ARMOR, ZombieVill ... agerModel.createArmorLayer(OUTER_ARMOR_DEFORMATION).apply(HumanoidMode ... agerModel.createArmorLayer(OUTER_ARMOR_DEFORMATION).apply(HumanoidMode ... l.BABY_TRANSFORMER)); ... l.BABY_TRANSFORMER)); 428 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN, $$19); 444 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN, $$21); 429 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN_INNER_ARMOR, $$4); 445 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN_INNER_ARMOR, $$4); 430 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN_OUTER_ARMOR, $$3); 446 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN_OUTER_ARMOR, $$3); 431 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN_BABY, $$19.apply(HumanoidMo 447 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN_BABY, $$21.apply(HumanoidMo ... del.BABY_TRANSFORMER)); ... del.BABY_TRANSFORMER)); 432 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN_BABY_INNER_ARMOR, $$4.apply 448 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN_BABY_INNER_ARMOR, $$4.apply ... (HumanoidModel.BABY_TRANSFORMER)); ... (HumanoidModel.BABY_TRANSFORMER)); 433 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN_BABY_OUTER_ARMOR, $$3.apply 449 $$0.put(ModelLayers.ZOMBIFIED_PIGLIN_BABY_OUTER_ARMOR, $$3.apply ... (HumanoidModel.BABY_TRANSFORMER)); ... (HumanoidModel.BABY_TRANSFORMER)); 434 $$0.put(ModelLayers.BAMBOO_RAFT, RaftModel.createRaftModel()); 450 $$0.put(ModelLayers.BAMBOO_RAFT, RaftModel.createRaftModel()); 435 $$0.put(ModelLayers.BAMBOO_CHEST_RAFT, RaftModel.createChestRaft 451 $$0.put(ModelLayers.BAMBOO_CHEST_RAFT, RaftModel.createChestRaft ... Model()); ... Model()); 436 LayerDefinition $$58 = BoatModel.createBoatModel(); 452 LayerDefinition $$60 = BoatModel.createBoatModel(); 437 LayerDefinition $$59 = BoatModel.createChestBoatModel(); 453 LayerDefinition $$61 = BoatModel.createChestBoatModel(); 438 $$0.put(ModelLayers.OAK_BOAT, $$58); 454 $$0.put(ModelLayers.OAK_BOAT, $$60); 439 $$0.put(ModelLayers.OAK_CHEST_BOAT, $$59); 455 $$0.put(ModelLayers.OAK_CHEST_BOAT, $$61); 440 $$0.put(ModelLayers.SPRUCE_BOAT, $$58); 456 $$0.put(ModelLayers.SPRUCE_BOAT, $$60); 441 $$0.put(ModelLayers.SPRUCE_CHEST_BOAT, $$59); 457 $$0.put(ModelLayers.SPRUCE_CHEST_BOAT, $$61); 442 $$0.put(ModelLayers.BIRCH_BOAT, $$58); 458 $$0.put(ModelLayers.BIRCH_BOAT, $$60); 443 $$0.put(ModelLayers.BIRCH_CHEST_BOAT, $$59); 459 $$0.put(ModelLayers.BIRCH_CHEST_BOAT, $$61); 444 $$0.put(ModelLayers.JUNGLE_BOAT, $$58); 460 $$0.put(ModelLayers.JUNGLE_BOAT, $$60); 445 $$0.put(ModelLayers.JUNGLE_CHEST_BOAT, $$59); 461 $$0.put(ModelLayers.JUNGLE_CHEST_BOAT, $$61); 446 $$0.put(ModelLayers.ACACIA_BOAT, $$58); 462 $$0.put(ModelLayers.ACACIA_BOAT, $$60); 447 $$0.put(ModelLayers.ACACIA_CHEST_BOAT, $$59); 463 $$0.put(ModelLayers.ACACIA_CHEST_BOAT, $$61); 448 $$0.put(ModelLayers.CHERRY_BOAT, $$58); 464 $$0.put(ModelLayers.CHERRY_BOAT, $$60); 449 $$0.put(ModelLayers.CHERRY_CHEST_BOAT, $$59); 465 $$0.put(ModelLayers.CHERRY_CHEST_BOAT, $$61); 450 $$0.put(ModelLayers.DARK_OAK_BOAT, $$58); 466 $$0.put(ModelLayers.DARK_OAK_BOAT, $$60); 451 $$0.put(ModelLayers.DARK_OAK_CHEST_BOAT, $$59); 467 $$0.put(ModelLayers.DARK_OAK_CHEST_BOAT, $$61); 452 $$0.put(ModelLayers.PALE_OAK_BOAT, $$58); 468 $$0.put(ModelLayers.PALE_OAK_BOAT, $$60); 453 $$0.put(ModelLayers.PALE_OAK_CHEST_BOAT, $$59); 469 $$0.put(ModelLayers.PALE_OAK_CHEST_BOAT, $$61); 454 $$0.put(ModelLayers.MANGROVE_BOAT, $$58); 470 $$0.put(ModelLayers.MANGROVE_BOAT, $$60); 455 $$0.put(ModelLayers.MANGROVE_CHEST_BOAT, $$59); 471 $$0.put(ModelLayers.MANGROVE_CHEST_BOAT, $$61); 456 LayerDefinition $$60 = SignRenderer.createSignLayer(true); 472 LayerDefinition $$62 = SignRenderer.createSignLayer(true); 457 LayerDefinition $$61 = SignRenderer.createSignLayer(false); 473 LayerDefinition $$63 = SignRenderer.createSignLayer(false); 458 WoodType.values().forEach($$3x -> { 474 WoodType.values().forEach($$3x -> { 459 $$0.put(ModelLayers.createStandingSignModelName($$3x), $$60); 475 $$0.put(ModelLayers.createStandingSignModelName($$3x), $$62); 460 $$0.put(ModelLayers.createWallSignModelName($$3x), $$61); 476 $$0.put(ModelLayers.createWallSignModelName($$3x), $$63); 461 477 462 for (HangingSignRenderer.AttachmentType $$4x : HangingSignRen 478 for (HangingSignRenderer.AttachmentType $$4x : HangingSignRen ... derer.AttachmentType.values()) { ... derer.AttachmentType.values()) { 463 LayerDefinition $$5x = HangingSignRenderer.createHangingSi 479 LayerDefinition $$5x = HangingSignRenderer.createHangingSi ... gnLayer($$4x); ... gnLayer($$4x); 464 $$0.put(ModelLayers.createHangingSignModelName($$3x, $$4x) 480 $$0.put(ModelLayers.createHangingSignModelName($$3x, $$4x) ... , $$5x); ... , $$5x); 465 } 481 } 466 }); 482 }); 467 ImmutableMap<ModelLayerLocation, LayerDefinition> $$62 = $$0.bui 483 ImmutableMap<ModelLayerLocation, LayerDefinition> $$64 = $$0.bui ... ld(); ... ld(); 468 List<ModelLayerLocation> $$63 = ModelLayers.getKnownLocations(). 484 List<ModelLayerLocation> $$65 = ModelLayers.getKnownLocations(). ... filter($$1x -> !$$62.containsKey($$1x)).collect(Collectors.toList()); ... filter($$1x -> !$$64.containsKey($$1x)).collect(Collectors.toList()); 469 if (!$$63.isEmpty()) { 485 if (!$$65.isEmpty()) { 470 throw new IllegalStateException("Missing layer definitions: " 486 throw new IllegalStateException("Missing layer definitions: " ... + $$63); ... + $$65); 471 } else { 487 } else { 472 return $$62; 488 return $$64; 473 } 489 } 474 } 490 } 475 } 491 } net/minecraft/world/level/chunk/LevelChunk.java --- 1/2 --- Java 28 import net.minecraft.world.entity.Entity; 28 import net.minecraft.world.entity.Entity; 29 import net.minecraft.world.level.ChunkPos; 29 import net.minecraft.world.level.ChunkPos; 30 import net.minecraft.world.level.Level; 30 import net.minecraft.world.level.Level; .. 31 import net.minecraft.world.level.block.BaseRailBlock; 31 import net.minecraft.world.level.block.Block; 32 import net.minecraft.world.level.block.Block; 32 import net.minecraft.world.level.block.Blocks; 33 import net.minecraft.world.level.block.Blocks; 33 import net.minecraft.world.level.block.EntityBlock; 34 import net.minecraft.world.level.block.EntityBlock; net/minecraft/world/level/chunk/LevelChunk.java --- 2/2 --- Java 292 $$12.pop(); 293 $$12.pop(); 293 } 294 } 294 295 295 boolean $$13 = $$9.hasBlockEntity(); ... 296 boolean $$14 = !$$9.is($$10); 296 boolean $$13 = !$$9.is($$10); 297 boolean $$15 = ($$2 & 64) != 0; 297 boolean $$14 = ($$2 & 64) != 0; 298 boolean $$16 = ($$2 & 256) == 0; 298 boolean $$15 = ($$2 & 256) == 0; 299 if ($$14) { 299 if ($$13 && $$9.hasBlockEntity()) { 300 if (this.level instanceof ServerLevel $$17) { 300 if (!this.level.isClientSide && $$15) { 301 if ($$13 && $$16) { ... 302 BlockEntity $$18 = this.level.getBlockEntity($$0) 301 BlockEntity $$16 = this.level.getBlockEntity($$0); ... ; ... 303 if ($$18 != null) { 302 if ($$16 != null) { 304 $$18.preRemoveSideEffects($$0, $$9, $$15); 303 $$16.preRemoveSideEffects($$0, $$9); 305 } 304 } 306 } 305 } 307 306 308 if ($$13) { 307 this.removeBlockEntity($$0); 309 this.removeBlockEntity($$0); ... 310 } ... 311 ... 312 if (($$2 & 1) != 0) { ... 313 $$9.affectNeighborsAfterRemoval($$17, $$0, $$15); ... 314 } ... 315 } else if ($$13) { ... 316 this.removeBlockEntity($$0); ... 317 } ... 318 } 308 } ... 309 ... 310 if (($$13 || $$10 instanceof BaseRailBlock) && this.level ... ... instanceof ServerLevel $$17 && (($$2 & 1) != 0 || $$14)) { ... 311 $$9.affectNeighborsAfterRemoval($$17, $$0, $$14); ... 312 } 319 313 320 if (!$$4.getBlockState($$6, $$7, $$8).is($$10)) { 314 if (!$$4.getBlockState($$6, $$7, $$8).is($$10)) { 321 return null; 315 return null; 322 } else { 316 } else { 323 if (!this.level.isClientSide && $$16) { 317 if (!this.level.isClientSide && $$15) { 324 $$1.onPlace(this.level, $$0, $$9, $$15); 318 $$1.onPlace(this.level, $$0, $$9, $$14); 325 } 319 } 326 320 327 if ($$1.hasBlockEntity()) { 321 if ($$1.hasBlockEntity()) { 328 BlockEntity $$19 = this.getBlockEntity($$0, LevelChu 322 BlockEntity $$18 = this.getBlockEntity($$0, LevelChu ... nk.EntityCreationType.CHECK); ... nk.EntityCreationType.CHECK); 329 if ($$19 != null && !$$19.isValidBlockState($$1)) { 323 if ($$18 != null && !$$18.isValidBlockState($$1)) { 330 LOGGER.warn("Found mismatched block entity @ {}: 324 LOGGER.warn("Found mismatched block entity @ {}: ... type = {}, state = {}", $$0, $$19.getType().builtInRegistryHolder().ke ... type = {}, state = {}", $$0, $$18.getType().builtInRegistryHolder().ke ... y().location(), $$1); ... y().location(), $$1); 331 this.removeBlockEntity($$0); 325 this.removeBlockEntity($$0); 332 $$19 = null; 326 $$18 = null; 333 } 327 } 334 328 335 if ($$19 == null) { 329 if ($$18 == null) { 336 $$19 = ((EntityBlock)$$10).newBlockEntity($$0, $$ 330 $$18 = ((EntityBlock)$$10).newBlockEntity($$0, $$ ... 1); ... 1); 337 if ($$19 != null) { 331 if ($$18 != null) { 338 this.addAndRegisterBlockEntity($$19); 332 this.addAndRegisterBlockEntity($$18); 339 } 333 } 340 } else { 334 } else { 341 $$19.setBlockState($$1); 335 $$18.setBlockState($$1); 342 this.updateBlockEntityTicker($$19); 336 this.updateBlockEntityTicker($$18); 343 } 337 } 344 } 338 } 345 339 net/minecraft/util/datafix/FixWolfHealth.java --- Java 1 package net.minecraft.util.datafix; 2 3 import com.mojang.datafixers.DSL; 4 import com.mojang.datafixers.Typed; 5 import com.mojang.datafixers.schemas.Schema; 6 import net.minecraft.util.datafix.fixes.NamedEntityFix; 7 import net.minecraft.util.datafix.fixes.References; 8 import net.minecraft.util.datafix.schemas.NamespacedSchema; 9 import org.apache.commons.lang3.mutable.MutableBoolean; 10 11 public class FixWolfHealth extends NamedEntityFix { 12 private static final String WOLF_ID = "minecraft:wolf"; 13 private static final String WOLF_HEALTH = "minecraft:generic.max_health"; 14 15 public FixWolfHealth(Schema $$0) { 16 super($$0, false, "FixWolfHealth", References.ENTITY, "minecraft:wolf"); 17 } 18 19 @Override 20 protected Typed<?> fix(Typed<?> $$0) { 21 return $$0.update( 22 DSL.remainderFinder(), 23 $$0x -> { 24 MutableBoolean $$1 = new MutableBoolean(false); 25 $$0x = $$0x.update( 26 "Attributes", 27 $$1x -> $$1x.createList( 28 $$1x.asStream() 29 .map( 30 $$1xx -> "minecraft:generic.max_health".equals(NamespacedSchema.ensureNamespaced($$1xx.get("Name").asString(""))) 31 ? $$1xx.update("Base", $$1xxx -> { 32 if ($$1xxx.asDouble(0.0) == 20.0) { 33 $$1.setTrue(); 34 return $$1xxx.createDouble(40.0); 35 } else { 36 return $$1xxx; 37 } 38 }) 39 : $$1xx 40 ) 41 ) 42 ); 43 if ($$1.isTrue()) { 44 $$0x = $$0x.update("Health", $$0xx -> $$0xx.createFloat($$0xx.asFloat(0.0F) * 2.0F)); 45 } 46 47 return $$0x; 48 } 49 ); 50 } 51 } 52 net/minecraft/world/entity/projectile/FishingHook.java --- Java 88 double $$10 = $$0.getX() - (double)$$7 * 0.3; 88 double $$10 = $$0.getX() - (double)$$7 * 0.3; 89 double $$11 = $$0.getEyeY(); 89 double $$11 = $$0.getEyeY(); 90 double $$12 = $$0.getZ() - (double)$$6 * 0.3; 90 double $$12 = $$0.getZ() - (double)$$6 * 0.3; 91 this.moveTo($$10, $$11, $$12, $$5, $$4); 91 this.snapTo($$10, $$11, $$12, $$5, $$4); 92 Vec3 $$13 = new Vec3((double)(-$$7), (double)Mth.clamp(-($$9 / $$ 92 Vec3 $$13 = new Vec3((double)(-$$7), (double)Mth.clamp(-($$9 / $$ .. 8), -5.0F, 5.0F), (double)(-$$6)); .. 8), -5.0F, 5.0F), (double)(-$$6)); 93 double $$14 = $$13.length(); 93 double $$14 = $$13.length(); 94 $$13 = $$13.multiply( 94 $$13 = $$13.multiply( net/minecraft/client/renderer/item/properties/select/ComponentContents.java --- Java 1 package net.minecraft.client.renderer.item.properties.select; 2 3 import com.mojang.serialization.Codec; 4 import com.mojang.serialization.DataResult; 5 import com.mojang.serialization.MapCodec; 6 import java.util.List; 7 import javax.annotation.Nullable; 8 import net.fabricmc.api.EnvType; 9 import net.fabricmc.api.Environment; 10 import net.minecraft.client.multiplayer.ClientLevel; 11 import net.minecraft.client.renderer.item.SelectItemModel; 12 import net.minecraft.core.component.DataComponentType; 13 import net.minecraft.core.registries.BuiltInRegistries; 14 import net.minecraft.world.entity.LivingEntity; 15 import net.minecraft.world.item.ItemDisplayContext; 16 import net.minecraft.world.item.ItemStack; 17 18 @Environment(EnvType.CLIENT) 19 public record ComponentContents<T>(DataComponentType<T> componentType) implements SelectItemModelProperty<T> { 20 private static final SelectItemModelProperty.Type<? extends ComponentContents<?>, ?> TYPE = createType(); 21 22 private static <T> SelectItemModelProperty.Type<ComponentContents<T>, T> createType() { 23 Codec<? extends DataComponentType<?>> $$0 = BuiltInRegistries.DATA_COMPONENT_TYPE 24 .byNameCodec() 25 .validate($$0x -> $$0x.isTransient() ? DataResult.error(() -> "Component can't be serialized") : DataResult.success($$0x)); 26 MapCodec<SelectItemModel.UnbakedSwitch<ComponentContents<T>, T>> $$2 = $$0.dispatchMap( 27 "component", 28 $$0x -> ((ComponentContents)$$0x.property()).componentType, 29 $$0x -> SelectItemModelProperty.Type.createCasesFieldCodec($$0x.codecOrThrow()) 30 .xmap( 31 $$1 -> new SelectItemModel.UnbakedSwitch<>(new ComponentContents<>($$0x), (List<SelectItemModel.SwitchCase<T>>)$$1), 32 SelectItemModel.UnbakedSwitch::cases 33 ) 34 ); 35 return new SelectItemModelProperty.Type<>($$2); 36 } 37 38 public static <T> SelectItemModelProperty.Type<ComponentContents<T>, T> castType() { 39 return (SelectItemModelProperty.Type<ComponentContents<T>, T>)TYPE; 40 } 41 42 @Nullable 43 @Override 44 public T get(ItemStack $$0, @Nullable ClientLevel $$1, @Nullable LivingEntity $$2, int $$3, ItemDisplayContext $$4) { 45 return $$0.get(this.componentType); 46 } 47 48 @Override 49 public SelectItemModelProperty.Type<ComponentContents<T>, T> type() { 50 return castType(); 51 } 52 } 53 net/minecraft/util/datafix/fixes/ItemStackComponentizationFix.java --- 1/2 --- Java 20 import java.util.stream.Stream; 20 import java.util.stream.Stream; 21 import javax.annotation.Nullable; 21 import javax.annotation.Nullable; 22 import net.minecraft.util.Mth; 22 import net.minecraft.util.Mth; .. 23 import net.minecraft.util.datafix.ExtraDataFixUtils; 23 import net.minecraft.util.datafix.LegacyComponentDataFixUtils; 24 import net.minecraft.util.datafix.LegacyComponentDataFixUtils; 24 import net.minecraft.util.datafix.schemas.NamespacedSchema; 25 import net.minecraft.util.datafix.schemas.NamespacedSchema; 25 26 net/minecraft/util/datafix/fixes/ItemStackComponentizationFix.java --- 2/2 --- Java 290 $$0.setComponent("minecraft:banner_patterns", $$1.get("pat 291 $$0.setComponent("minecraft:banner_patterns", $$1.get("pat ... terns")); ... terns")); 291 Optional<Number> $$7 = $$1.get("Base").asNumber().result() 292 Optional<Number> $$7 = $$1.get("Base").asNumber().result() ... ; ... ; 292 if ($$7.isPresent()) { 293 if ($$7.isPresent()) { 293 $$0.setComponent("minecraft:base_color", $$1.createStri 294 $$0.setComponent("minecraft:base_color", $$1.createStri ... ng(BannerPatternFormatFix.fixColor($$7.get().intValue()))); ... ng(ExtraDataFixUtils.dyeColorIdToName($$7.get().intValue()))); 294 } 295 } 295 296 296 yield $$1.remove("patterns").remove("Base"); 297 yield $$1.remove("patterns").remove("Base"); net/minecraft/world/entity/PositionMoveRotation.java --- 1/2 --- Java 4 import net.minecraft.network.FriendlyByteBuf; 4 import net.minecraft.network.FriendlyByteBuf; 5 import net.minecraft.network.codec.ByteBufCodecs; 5 import net.minecraft.network.codec.ByteBufCodecs; 6 import net.minecraft.network.codec.StreamCodec; 6 import net.minecraft.network.codec.StreamCodec; . 7 import net.minecraft.util.Mth; 7 import net.minecraft.world.level.portal.TeleportTransition; 8 import net.minecraft.world.level.portal.TeleportTransition; 8 import net.minecraft.world.phys.Vec3; 9 import net.minecraft.world.phys.Vec3; 9 10 net/minecraft/world/entity/PositionMoveRotation.java --- 2/2 --- Java 38 float $$7 = $$2.contains(Relative.X_ROT) ? $$0.xRot : 0.0F; 39 float $$7 = $$2.contains(Relative.X_ROT) ? $$0.xRot : 0.0F; 39 Vec3 $$8 = new Vec3($$3 + $$1.position.x, $$4 + $$1.position.y, $ 40 Vec3 $$8 = new Vec3($$3 + $$1.position.x, $$4 + $$1.position.y, $ .. $5 + $$1.position.z); .. $5 + $$1.position.z); 40 float $$9 = $$6 + $$1.yRot; 41 float $$9 = $$6 + $$1.yRot; 41 float $$10 = $$7 + $$1.xRot; 42 float $$10 = Mth.clamp($$7 + $$1.xRot, -90.0F, 90.0F); 42 Vec3 $$11 = $$0.deltaMovement; 43 Vec3 $$11 = $$0.deltaMovement; 43 if ($$2.contains(Relative.ROTATE_DELTA)) { 44 if ($$2.contains(Relative.ROTATE_DELTA)) { 44 float $$12 = $$0.yRot - $$9; 45 float $$12 = $$0.yRot - $$9; net/minecraft/world/entity/ai/sensing/PlayerSensor.java --- 1/3 --- Java 3 import com.google.common.collect.ImmutableSet; 3 import com.google.common.collect.ImmutableSet; 4 import java.util.Comparator; 4 import java.util.Comparator; 5 import java.util.List; 5 import java.util.List; 6 import java.util.Optional; . 7 import java.util.Set; 6 import java.util.Set; 8 import java.util.stream.Collectors; 7 import java.util.stream.Collectors; 9 import net.minecraft.server.level.ServerLevel; 8 import net.minecraft.server.level.ServerLevel; net/minecraft/world/entity/ai/sensing/PlayerSensor.java --- 2/3 --- Java 20 return ImmutableSet.of(MemoryModuleType.NEAREST_PLAYERS, MemoryMo 19 return ImmutableSet.of( .. duleType.NEAREST_VISIBLE_PLAYER, MemoryModuleType.NEAREST_VISIBLE_ATTAC .. .. KABLE_PLAYER); .. .. 20 MemoryModuleType.NEAREST_PLAYERS, .. 21 MemoryModuleType.NEAREST_VISIBLE_PLAYER, .. 22 MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, .. 23 MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYERS .. 24 ); 21 } 25 } 22 26 net/minecraft/world/entity/ai/sensing/PlayerSensor.java --- 3/3 --- Java 32 $$3.setMemory(MemoryModuleType.NEAREST_PLAYERS, $$2); 36 $$3.setMemory(MemoryModuleType.NEAREST_PLAYERS, $$2); 33 List<Player> $$4 = $$2.stream().filter($$2x -> isEntityTargetable 37 List<Player> $$4 = $$2.stream().filter($$2x -> isEntityTargetable .. ($$0, $$1, $$2x)).collect(Collectors.toList()); .. ($$0, $$1, $$2x)).collect(Collectors.toList()); 34 $$3.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, $$4.isEmpt 38 $$3.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, $$4.isEmpt .. y() ? null : $$4.get(0)); .. y() ? null : $$4.get(0)); 35 Optional<Player> $$5 = $$4.stream().filter($$2x -> isEntityAttack 39 List<Player> $$5 = $$4.stream().filter($$2x -> isEntityAttackable .. able($$0, $$1, $$2x)).findFirst(); .. ($$0, $$1, $$2x)).toList(); .. 40 $$3.setMemory(MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYERS .. .. , $$5); 36 $$3.setMemory(MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, 41 $$3.setMemory(MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, .. $$5); .. $$5.isEmpty() ? null : $$5.get(0)); 37 } 42 } 38 43 39 protected double getFollowDistance(LivingEntity $$0) { 44 protected double getFollowDistance(LivingEntity $$0) { net/minecraft/world/level/levelgen/PhantomSpawner.java --- Java 59 for (int $$16 = 0; $$16 < $$15; $$16++ 59 for (int $$16 = 0; $$16 < $$15; $$16++ .. ) { .. ) { 60 Phantom $$17 = EntityType.PHANTOM.c 60 Phantom $$17 = EntityType.PHANTOM.c .. reate($$0, EntitySpawnReason.NATURAL); .. reate($$0, EntitySpawnReason.NATURAL); 61 if ($$17 != null) { 61 if ($$17 != null) { 62 $$17.moveTo($$11, 0.0F, 0.0F); 62 $$17.snapTo($$11, 0.0F, 0.0F); 63 $$14 = $$17.finalizeSpawn($$0, $ 63 $$14 = $$17.finalizeSpawn($$0, $ .. $7, EntitySpawnReason.NATURAL, $$14); .. $7, EntitySpawnReason.NATURAL, $$14); 64 $$0.addFreshEntityWithPassengers 64 $$0.addFreshEntityWithPassengers .. ($$17); .. ($$17); 65 $$4++; 65 $$4++; net/minecraft/world/entity/VariantHolder.java --- Java 1 package net.minecraft.world.entity; 2 3 public interface VariantHolder<T> { 4 void setVariant(T var1); 5 6 T getVariant(); 7 } 8 net/minecraft/util/datafix/fixes/BannerPatternFormatFix.java --- 1/2 --- Java 6 import com.mojang.datafixers.schemas.Schema; 6 import com.mojang.datafixers.schemas.Schema; 7 import com.mojang.serialization.Dynamic; 7 import com.mojang.serialization.Dynamic; 8 import java.util.Map; 8 import java.util.Map; . 9 import net.minecraft.util.datafix.ExtraDataFixUtils; 9 10 10 public class BannerPatternFormatFix extends NamedEntityFix { 11 public class BannerPatternFormatFix extends NamedEntityFix { 11 private static final Map<String, String> PATTERN_ID_MAP = Map.ofEntr 12 private static final Map<String, String> PATTERN_ID_MAP = Map.ofEntr ies( ies( net/minecraft/util/datafix/fixes/BannerPatternFormatFix.java --- 2/2 --- Java 71 "pattern", 72 "pattern", 72 $$0x -> DataFixUtils.orElse($$0x.asString().map($$0xx -> PATTE 73 $$0x -> DataFixUtils.orElse($$0x.asString().map($$0xx -> PATTE .. RN_ID_MAP.getOrDefault($$0xx, $$0xx)).map($$0x::createString).result(), .. RN_ID_MAP.getOrDefault($$0xx, $$0xx)).map($$0x::createString).result(), .. $$0x) .. $$0x) 73 ); 74 ); 74 $$0 = $$0.set("color", $$0.createString(fixColor($$0.get("Color") 75 $$0 = $$0.set("color", $$0.createString(ExtraDataFixUtils.dyeColo .. .asInt(0)))); .. rIdToName($$0.get("Color").asInt(0)))); 75 return $$0.remove("Color"); 76 return $$0.remove("Color"); 76 } 77 } 77 .. 78 public static String fixColor(int $$0) { .. 79 return switch ($$0) { .. 80 case 1 -> "orange"; .. 81 case 2 -> "magenta"; .. 82 case 3 -> "light_blue"; .. 83 case 4 -> "yellow"; .. 84 case 5 -> "lime"; .. 85 case 6 -> "pink"; .. 86 case 7 -> "gray"; .. 87 case 8 -> "light_gray"; .. 88 case 9 -> "cyan"; .. 89 case 10 -> "purple"; .. 90 case 11 -> "blue"; .. 91 case 12 -> "brown"; .. 92 case 13 -> "green"; .. 93 case 14 -> "red"; .. 94 case 15 -> "black"; .. 95 default -> "white"; .. 96 }; .. 97 } .. 98 } 78 } net/minecraft/world/entity/ai/sensing/SecondaryPoiSensor.java --- Java 30 for (int $$7 = -2; $$7 <= 2; $$7++) { 30 for (int $$7 = -2; $$7 <= 2; $$7++) { 31 for (int $$8 = -4; $$8 <= 4; $$8++) { 31 for (int $$8 = -4; $$8 <= 4; $$8++) { 32 BlockPos $$9 = $$3.offset($$6, $$7, $$8); 32 BlockPos $$9 = $$3.offset($$6, $$7, $$8); 33 if ($$1.getVillagerData().getProfession().secondaryPoi() 33 if ($$1.getVillagerData().profession().value().secondary .. .contains($$0.getBlockState($$9).getBlock())) { .. Poi().contains($$0.getBlockState($$9).getBlock())) { 34 $$4.add(GlobalPos.of($$2, $$9)); 34 $$4.add(GlobalPos.of($$2, $$9)); 35 } 35 } 36 } 36 } net/minecraft/world/entity/decoration/Painting.java --- 1/6 --- Java 1 package net.minecraft.world.entity.decoration; 1 package net.minecraft.world.entity.decoration; 2 2 3 import com.mojang.serialization.Codec; 3 import com.mojang.serialization.Codec; 4 import com.mojang.serialization.MapCodec; . 5 import java.util.ArrayList; 4 import java.util.ArrayList; 6 import java.util.List; 5 import java.util.List; 7 import java.util.Optional; 6 import java.util.Optional; net/minecraft/world/entity/decoration/Painting.java --- 2/6 --- Java 10 import net.minecraft.core.BlockPos; 9 import net.minecraft.core.BlockPos; 11 import net.minecraft.core.Direction; 10 import net.minecraft.core.Direction; 12 import net.minecraft.core.Holder; 11 import net.minecraft.core.Holder; .. 12 import net.minecraft.core.component.DataComponentGetter; .. 13 import net.minecraft.core.component.DataComponentType; .. 14 import net.minecraft.core.component.DataComponents; 13 import net.minecraft.core.registries.Registries; 15 import net.minecraft.core.registries.Registries; 14 import net.minecraft.nbt.CompoundTag; 16 import net.minecraft.nbt.CompoundTag; 15 import net.minecraft.nbt.NbtOps; 17 import net.minecraft.nbt.NbtOps; net/minecraft/world/entity/decoration/Painting.java --- 3/6 --- Java 25 import net.minecraft.tags.PaintingVariantTags; 27 import net.minecraft.tags.PaintingVariantTags; 26 import net.minecraft.world.entity.Entity; 28 import net.minecraft.world.entity.Entity; 27 import net.minecraft.world.entity.EntityType; 29 import net.minecraft.world.entity.EntityType; 28 import net.minecraft.world.entity.VariantHolder; .. 29 import net.minecraft.world.entity.player.Player; 30 import net.minecraft.world.entity.player.Player; 30 import net.minecraft.world.item.ItemStack; 31 import net.minecraft.world.item.ItemStack; 31 import net.minecraft.world.item.Items; 32 import net.minecraft.world.item.Items; net/minecraft/world/entity/decoration/Painting.java --- 4/6 --- Java 34 import net.minecraft.world.phys.AABB; 35 import net.minecraft.world.phys.AABB; 35 import net.minecraft.world.phys.Vec3; 36 import net.minecraft.world.phys.Vec3; 36 37 37 public class Painting extends HangingEntity implements VariantHolder<Ho 38 public class Painting extends HangingEntity { .. lder<PaintingVariant>> { .. 38 private static final EntityDataAccessor<Holder<PaintingVariant>> DAT 39 private static final EntityDataAccessor<Holder<PaintingVariant>> DAT .. A_PAINTING_VARIANT_ID = SynchedEntityData.defineId( .. A_PAINTING_VARIANT_ID = SynchedEntityData.defineId( 39 Painting.class, EntityDataSerializers.PAINTING_VARIANT 40 Painting.class, EntityDataSerializers.PAINTING_VARIANT 40 ); 41 ); 41 public static final MapCodec<Holder<PaintingVariant>> VARIANT_MAP_CO 42 private static final Codec<Holder<PaintingVariant>> VARIANT_CODEC = .. DEC = PaintingVariant.CODEC.fieldOf("variant"); .. PaintingVariant.CODEC.fieldOf("variant").codec(); 42 public static final Codec<Holder<PaintingVariant>> VARIANT_CODEC = V .. .. ARIANT_MAP_CODEC.codec(); .. 43 public static final float DEPTH = 0.0625F; 43 public static final float DEPTH = 0.0625F; 44 44 45 public Painting(EntityType<? extends Painting> $$0, Level $$1) { 45 public Painting(EntityType<? extends Painting> $$0, Level $$1) { net/minecraft/world/entity/decoration/Painting.java --- 5/6 --- Java 58 } 58 } 59 } 59 } 60 60 61 public void setVariant(Holder<PaintingVariant> $$0) { 61 private void setVariant(Holder<PaintingVariant> $$0) { 62 this.entityData.set(DATA_PAINTING_VARIANT_ID, $$0); 62 this.entityData.set(DATA_PAINTING_VARIANT_ID, $$0); 63 } 63 } 64 64 65 public Holder<PaintingVariant> getVariant() { 65 public Holder<PaintingVariant> getVariant() { 66 return this.entityData.get(DATA_PAINTING_VARIANT_ID); 66 return this.entityData.get(DATA_PAINTING_VARIANT_ID); 67 } 67 } .. 68 .. 69 @Nullable .. 70 @Override .. 71 public <T> T get(DataComponentType<? extends T> $$0) { .. 72 return $$0 == DataComponents.PAINTING_VARIANT ? castComponentValu .. .. e((DataComponentType<T>)$$0, this.getVariant()) : super.get($$0); .. 73 } .. 74 .. 75 @Override .. 76 protected void applyImplicitComponents(DataComponentGetter $$0) { .. 77 this.applyImplicitComponentIfPresent($$0, DataComponents.PAINTING .. .. _VARIANT); .. 78 super.applyImplicitComponents($$0); .. 79 } .. 80 .. 81 @Override .. 82 protected <T> boolean applyImplicitComponent(DataComponentType<T> $$ .. .. 0, T $$1) { .. 83 if ($$0 == DataComponents.PAINTING_VARIANT) { .. 84 this.setVariant(castComponentValue(DataComponents.PAINTING_VAR .. .. IANT, $$1)); .. 85 return true; .. 86 } else { .. 87 return super.applyImplicitComponent($$0, $$1); .. 88 } .. 89 } 68 90 69 public static Optional<Painting> create(Level $$0, BlockPos $$1, Dir 91 public static Optional<Painting> create(Level $$0, BlockPos $$1, Dir .. ection $$2) { .. ection $$2) { 70 Painting $$3 = new Painting($$0, $$1); 92 Painting $$3 = new Painting($$0, $$1); net/minecraft/world/entity/decoration/Painting.java --- 6/6 --- Java 163 } 185 } 164 186 165 @Override 187 @Override 166 public void moveTo(double $$0, double $$1, double $$2, float $$3, f 188 public void snapTo(double $$0, double $$1, double $$2, float $$3, f ... loat $$4) { ... loat $$4) { 167 this.setPos($$0, $$1, $$2); 189 this.setPos($$0, $$1, $$2); 168 } 190 } 169 191 net/minecraft/util/datafix/fixes/TextComponentHoverAndClickEventFix.java --- Java 87 String $$1 = $$0.get("action").asString(""); 87 String $$1 = $$0.get("action").asString(""); 88 88 89 return switch ($$1) { 89 return switch ($$1) { 90 case "show_text" -> $$0.renameField("contents", "text"); 90 case "show_text" -> $$0.renameField("contents", "value"); 91 case "show_item" -> { 91 case "show_item" -> { 92 Dynamic<?> $$2 = $$0.get("contents").orElseEmptyMap(); 92 Dynamic<?> $$2 = $$0.get("contents").orElseEmptyMap(); 93 Optional<String> $$3 = $$2.asString().result(); 93 Optional<String> $$3 = $$2.asString().result(); net/minecraft/world/entity/ai/Brain.java --- Java 332 this.addActivityAndRemoveMemoriesWhenStopped($$0, $$1, Immutable 332 this.addActivityAndRemoveMemoriesWhenStopped($$0, $$1, Immutable ... Set.of(), Sets.newHashSet()); ... Set.of(), Sets.newHashSet()); 333 } 333 } ... 334 ... 335 public void addActivityWithConditions( ... 336 Activity $$0, int $$1, ImmutableList<? extends BehaviorControl<? ... ... super E>> $$2, Set<Pair<MemoryModuleType<?>, MemoryStatus>> $$3 ... 337 ) { ... 338 this.addActivityWithConditions($$0, this.createPriorityPairs($$1 ... ... , $$2), $$3); ... 339 } 334 340 335 public void addActivityWithConditions( 341 public void addActivityWithConditions( 336 Activity $$0, ImmutableList<? extends Pair<Integer, ? extends Be 342 Activity $$0, ImmutableList<? extends Pair<Integer, ? extends Be haviorControl<? super E>>> $$1, Set<Pair<MemoryModuleType<?>, MemorySt haviorControl<? super E>>> $$1, Set<Pair<MemoryModuleType<?>, MemorySt atus>> $$2 atus>> $$2 net/minecraft/util/datafix/fixes/EntityFallDistanceFloatToDoubleFix.java --- Java 1 package net.minecraft.util.datafix.fixes; 2 3 import com.mojang.datafixers.DSL; 4 import com.mojang.datafixers.DataFix; 5 import com.mojang.datafixers.TypeRewriteRule; 6 import com.mojang.datafixers.Typed; 7 import com.mojang.datafixers.DSL.TypeReference; 8 import com.mojang.datafixers.schemas.Schema; 9 10 public class EntityFallDistanceFloatToDoubleFix extends DataFix { 11 private TypeReference type; 12 13 public EntityFallDistanceFloatToDoubleFix(Schema $$0, TypeReference $$1) { 14 super($$0, false); 15 this.type = $$1; 16 } 17 18 @Override 19 protected TypeRewriteRule makeRule() { 20 return this.fixTypeEverywhereTyped( 21 "EntityFallDistanceFloatToDoubleFixFor" + this.type.typeName(), 22 this.getOutputSchema().getType(this.type), 23 EntityFallDistanceFloatToDoubleFix::fixEntity 24 ); 25 } 26 27 private static Typed<?> fixEntity(Typed<?> $$0) { 28 return $$0.update( 29 DSL.remainderFinder(), $$0x -> $$0x.renameAndFixField("FallDistance", "fall_distance", $$0xx -> $$0xx.createDouble((double)$$0xx.asFloat(0.0F))) 30 ); 31 } 32 } 33 net/minecraft/world/entity/monster/Slime.java --- Java 210 float $$9 = ((float)($$7 / 2) - 0.5F) * $$3; 210 float $$9 = ((float)($$7 / 2) - 0.5F) * $$3; 211 this.convertTo(this.getType(), new ConversionParams(Conver 211 this.convertTo(this.getType(), new ConversionParams(Conver ... sionType.SPLIT_ON_DEATH, false, false, $$6), EntitySpawnReason.TRIGGER ... sionType.SPLIT_ON_DEATH, false, false, $$6), EntitySpawnReason.TRIGGER ... ED, $$3x -> { ... ED, $$3x -> { 212 $$3x.setSize($$4, true); 212 $$3x.setSize($$4, true); 213 $$3x.moveTo(this.getX() + (double)$$8, this.getY() + 0. 213 $$3x.snapTo(this.getX() + (double)$$8, this.getY() + 0. ... 5, this.getZ() + (double)$$9, this.random.nextFloat() * 360.0F, 0.0F); ... 5, this.getZ() + (double)$$9, this.random.nextFloat() * 360.0F, 0.0F); 214 }); 214 }); 215 } 215 } 216 } 216 } net/minecraft/util/datafix/DataFixers.java --- 1/7 --- Java 101 import net.minecraft.util.datafix.fixes.EntityCustomNameToComponentFix 101 import net.minecraft.util.datafix.fixes.EntityCustomNameToComponentFix ... ; ... ; 102 import net.minecraft.util.datafix.fixes.EntityElderGuardianSplitFix; 102 import net.minecraft.util.datafix.fixes.EntityElderGuardianSplitFix; 103 import net.minecraft.util.datafix.fixes.EntityEquipmentToArmorAndHandF 103 import net.minecraft.util.datafix.fixes.EntityEquipmentToArmorAndHandF ... ix; ... ix; ... 104 import net.minecraft.util.datafix.fixes.EntityFallDistanceFloatToDoubl ... ... eFix; 104 import net.minecraft.util.datafix.fixes.EntityFieldsRenameFix; 105 import net.minecraft.util.datafix.fixes.EntityFieldsRenameFix; 105 import net.minecraft.util.datafix.fixes.EntityGoatMissingStateFix; 106 import net.minecraft.util.datafix.fixes.EntityGoatMissingStateFix; 106 import net.minecraft.util.datafix.fixes.EntityHealthFix; 107 import net.minecraft.util.datafix.fixes.EntityHealthFix; net/minecraft/util/datafix/DataFixers.java --- 2/7 --- Java 120 import net.minecraft.util.datafix.fixes.EntityShulkerColorFix; 121 import net.minecraft.util.datafix.fixes.EntityShulkerColorFix; 121 import net.minecraft.util.datafix.fixes.EntityShulkerRotationFix; 122 import net.minecraft.util.datafix.fixes.EntityShulkerRotationFix; 122 import net.minecraft.util.datafix.fixes.EntitySkeletonSplitFix; 123 import net.minecraft.util.datafix.fixes.EntitySkeletonSplitFix; ... 124 import net.minecraft.util.datafix.fixes.EntitySpawnerItemVariantCompon ... ... entFix; 123 import net.minecraft.util.datafix.fixes.EntityStringUuidFix; 125 import net.minecraft.util.datafix.fixes.EntityStringUuidFix; 124 import net.minecraft.util.datafix.fixes.EntityTheRenameningFix; 126 import net.minecraft.util.datafix.fixes.EntityTheRenameningFix; 125 import net.minecraft.util.datafix.fixes.EntityTippedArrowFix; 127 import net.minecraft.util.datafix.fixes.EntityTippedArrowFix; net/minecraft/util/datafix/DataFixers.java --- 3/7 --- Java 129 import net.minecraft.util.datafix.fixes.EntityZombieSplitFix; 131 import net.minecraft.util.datafix.fixes.EntityZombieSplitFix; 130 import net.minecraft.util.datafix.fixes.EntityZombieVillagerTypeFix; 132 import net.minecraft.util.datafix.fixes.EntityZombieVillagerTypeFix; 131 import net.minecraft.util.datafix.fixes.EntityZombifiedPiglinRenameFix 133 import net.minecraft.util.datafix.fixes.EntityZombifiedPiglinRenameFix ... ; ... ; ... 134 import net.minecraft.util.datafix.fixes.EquipmentFormatFix; 132 import net.minecraft.util.datafix.fixes.EquippableAssetRenameFix; 135 import net.minecraft.util.datafix.fixes.EquippableAssetRenameFix; 133 import net.minecraft.util.datafix.fixes.FeatureFlagRemoveFix; 136 import net.minecraft.util.datafix.fixes.FeatureFlagRemoveFix; 134 import net.minecraft.util.datafix.fixes.FilteredBooksFix; 137 import net.minecraft.util.datafix.fixes.FilteredBooksFix; 135 import net.minecraft.util.datafix.fixes.FilteredSignsFix; 138 import net.minecraft.util.datafix.fixes.FilteredSignsFix; 136 import net.minecraft.util.datafix.fixes.FireResistantToDamageResistant 139 import net.minecraft.util.datafix.fixes.FireResistantToDamageResistant ... ComponentFix; ... ComponentFix; 137 import net.minecraft.util.datafix.fixes.FixProjectileStoredItem; 140 import net.minecraft.util.datafix.fixes.FixProjectileStoredItem; ... 141 import net.minecraft.util.datafix.fixes.FixWolfHealth; 138 import net.minecraft.util.datafix.fixes.FoodToConsumableFix; 142 import net.minecraft.util.datafix.fixes.FoodToConsumableFix; 139 import net.minecraft.util.datafix.fixes.ForcePoiRebuild; 143 import net.minecraft.util.datafix.fixes.ForcePoiRebuild; 140 import net.minecraft.util.datafix.fixes.ForcedChunkToTicketFix; 144 import net.minecraft.util.datafix.fixes.ForcedChunkToTicketFix; net/minecraft/util/datafix/DataFixers.java --- 4/7 --- Java 218 import net.minecraft.util.datafix.fixes.RenamedCoralFansFix; 222 import net.minecraft.util.datafix.fixes.RenamedCoralFansFix; 219 import net.minecraft.util.datafix.fixes.RenamedCoralFix; 223 import net.minecraft.util.datafix.fixes.RenamedCoralFix; 220 import net.minecraft.util.datafix.fixes.ReorganizePoi; 224 import net.minecraft.util.datafix.fixes.ReorganizePoi; ... 225 import net.minecraft.util.datafix.fixes.SaddleEquipmentSlotFix; 221 import net.minecraft.util.datafix.fixes.SavedDataFeaturePoolElementFix 226 import net.minecraft.util.datafix.fixes.SavedDataFeaturePoolElementFix ... ; ... ; 222 import net.minecraft.util.datafix.fixes.SavedDataUUIDFix; 227 import net.minecraft.util.datafix.fixes.SavedDataUUIDFix; 223 import net.minecraft.util.datafix.fixes.ScoreboardDisplayNameFix; 228 import net.minecraft.util.datafix.fixes.ScoreboardDisplayNameFix; net/minecraft/util/datafix/DataFixers.java --- 5/7 --- Java 341 import net.minecraft.util.datafix.schemas.V4071; 346 import net.minecraft.util.datafix.schemas.V4071; 342 import net.minecraft.util.datafix.schemas.V4290; 347 import net.minecraft.util.datafix.schemas.V4290; 343 import net.minecraft.util.datafix.schemas.V4292; 348 import net.minecraft.util.datafix.schemas.V4292; ... 349 import net.minecraft.util.datafix.schemas.V4300; ... 350 import net.minecraft.util.datafix.schemas.V4301; ... 351 import net.minecraft.util.datafix.schemas.V4302; 344 import net.minecraft.util.datafix.schemas.V501; 352 import net.minecraft.util.datafix.schemas.V501; 345 import net.minecraft.util.datafix.schemas.V700; 353 import net.minecraft.util.datafix.schemas.V700; 346 import net.minecraft.util.datafix.schemas.V701; 354 import net.minecraft.util.datafix.schemas.V701; net/minecraft/util/datafix/DataFixers.java --- 6/7 --- Java 384 private static void addFixers(DataFixerBuilder $$0) { 392 private static void addFixers(DataFixerBuilder $$0) { 385 $$0.addSchema(99, V99::new); 393 $$0.addSchema(99, V99::new); 386 Schema $$1 = $$0.addSchema(100, V100::new); 394 Schema $$1 = $$0.addSchema(100, V100::new); 387 $$0.addFixer(new EntityEquipmentToArmorAndHandFix($$1, true)); 395 $$0.addFixer(new EntityEquipmentToArmorAndHandFix($$1)); 388 Schema $$2 = $$0.addSchema(101, SAME); 396 Schema $$2 = $$0.addSchema(101, SAME); 389 $$0.addFixer(new VillagerSetCanPickUpLootFix($$2)); 397 $$0.addFixer(new VillagerSetCanPickUpLootFix($$2)); 390 Schema $$3 = $$0.addSchema(102, V102::new); 398 Schema $$3 = $$0.addSchema(102, V102::new); net/minecraft/util/datafix/DataFixers.java --- 7/7 --- Java 1457 $$0.addFixer(new AreaEffectCloudDurationScaleFix($$257)); 1465 $$0.addFixer(new AreaEffectCloudDurationScaleFix($$257)); 1458 Schema $$258 = $$0.addSchema(4297, SAME_NAMESPACED); 1466 Schema $$258 = $$0.addSchema(4297, SAME_NAMESPACED); 1459 $$0.addFixer(new ForcedChunkToTicketFix($$258)); 1467 $$0.addFixer(new ForcedChunkToTicketFix($$258)); .... 1468 Schema $$259 = $$0.addSchema(4299, SAME_NAMESPACED); .... 1469 $$0.addFixer(new EntitySpawnerItemVariantComponentFix($$259)); .... 1470 Schema $$260 = $$0.addSchema(4300, V4300::new); .... 1471 $$0.addFixer(new SaddleEquipmentSlotFix($$260)); .... 1472 Schema $$261 = $$0.addSchema(4301, V4301::new); .... 1473 $$0.addFixer(new EquipmentFormatFix($$261)); .... 1474 Schema $$262 = $$0.addSchema(4302, V4302::new); .... 1475 $$0.addFixer(new AddNewChoices($$262, "Added Test and Test Inst .... .... ance Block Entities", References.BLOCK_ENTITY)); .... 1476 Schema $$263 = $$0.addSchema(4303, SAME_NAMESPACED); .... 1477 $$0.addFixer(new EntityFallDistanceFloatToDoubleFix($$263, Refe .... .... rences.ENTITY)); .... 1478 $$0.addFixer(new EntityFallDistanceFloatToDoubleFix($$263, Refe .... .... rences.PLAYER)); 1460 } 1479 } 1461 1480 1462 private static UnaryOperator<String> createRenamerNoNamespace(Map< 1481 private static UnaryOperator<String> createRenamerNoNamespace(Map< String, String> $$0) { String, String> $$0) { net/minecraft/world/entity/monster/Evoker.java --- Java 263 BlockPos $$3 = Evoker.this.blockPosition().offset(-2 + Evo 263 BlockPos $$3 = Evoker.this.blockPosition().offset(-2 + Evo ... ker.this.random.nextInt(5), 1, -2 + Evoker.this.random.nextInt(5)); ... ker.this.random.nextInt(5), 1, -2 + Evoker.this.random.nextInt(5)); 264 Vex $$4 = EntityType.VEX.create(Evoker.this.level(), Entit 264 Vex $$4 = EntityType.VEX.create(Evoker.this.level(), Entit ... ySpawnReason.MOB_SUMMONED); ... ySpawnReason.MOB_SUMMONED); 265 if ($$4 != null) { 265 if ($$4 != null) { 266 $$4.moveTo($$3, 0.0F, 0.0F); 266 $$4.snapTo($$3, 0.0F, 0.0F); 267 $$4.finalizeSpawn($$0, Evoker.this.level().getCurrentDi 267 $$4.finalizeSpawn($$0, Evoker.this.level().getCurrentDi ... fficultyAt($$3), EntitySpawnReason.MOB_SUMMONED, null); ... fficultyAt($$3), EntitySpawnReason.MOB_SUMMONED, null); 268 $$4.setOwner(Evoker.this); 268 $$4.setOwner(Evoker.this); 269 $$4.setBoundOrigin($$3); 269 $$4.setBoundOrigin($$3); net/minecraft/world/entity/animal/CatVariant.java --- Java 1 package net.minecraft.world.entity.animal; 1 package net.minecraft.world.entity.animal; 2 2 . 3 import com.mojang.serialization.Codec; 3 import net.minecraft.core.Holder; 4 import net.minecraft.core.Holder; 4 import net.minecraft.core.Registry; 5 import net.minecraft.core.Registry; 5 import net.minecraft.core.registries.Registries; 6 import net.minecraft.core.registries.Registries; 6 import net.minecraft.network.RegistryFriendlyByteBuf; 7 import net.minecraft.network.RegistryFriendlyByteBuf; 7 import net.minecraft.network.codec.ByteBufCodecs; 8 import net.minecraft.network.codec.ByteBufCodecs; 8 import net.minecraft.network.codec.StreamCodec; 9 import net.minecraft.network.codec.StreamCodec; . 10 import net.minecraft.resources.RegistryFixedCodec; 9 import net.minecraft.resources.ResourceKey; 11 import net.minecraft.resources.ResourceKey; 10 import net.minecraft.resources.ResourceLocation; 12 import net.minecraft.resources.ResourceLocation; 11 13 12 public record CatVariant(ResourceLocation texture) { 14 public record CatVariant(ResourceLocation texture) { .. 15 public static final Codec<Holder<CatVariant>> CODEC = RegistryFixedC .. .. odec.create(Registries.CAT_VARIANT); 13 public static final StreamCodec<RegistryFriendlyByteBuf, Holder<CatV 16 public static final StreamCodec<RegistryFriendlyByteBuf, Holder<CatV .. ariant>> STREAM_CODEC = ByteBufCodecs.holderRegistry(Registries.CAT_VAR .. ariant>> STREAM_CODEC = ByteBufCodecs.holderRegistry(Registries.CAT_VAR .. IANT); .. IANT); 14 public static final ResourceKey<CatVariant> TABBY = createKey("tabby 17 public static final ResourceKey<CatVariant> TABBY = createKey("tabby .. "); .. "); 15 public static final ResourceKey<CatVariant> BLACK = createKey("black 18 public static final ResourceKey<CatVariant> BLACK = createKey("black "); "); net/minecraft/client/resources/model/EquipmentClientInfo.java --- Java 112 WINGS("wings"), 112 WINGS("wings"), 113 WOLF_BODY("wolf_body"), 113 WOLF_BODY("wolf_body"), 114 HORSE_BODY("horse_body"), 114 HORSE_BODY("horse_body"), 115 LLAMA_BODY("llama_body"); 115 LLAMA_BODY("llama_body"), ... 116 PIG_SADDLE("pig_saddle"), ... 117 STRIDER_SADDLE("strider_saddle"), ... 118 CAMEL_SADDLE("camel_saddle"), ... 119 HORSE_SADDLE("horse_saddle"), ... 120 DONKEY_SADDLE("donkey_saddle"), ... 121 MULE_SADDLE("mule_saddle"), ... 122 ZOMBIE_HORSE_SADDLE("zombie_horse_saddle"), ... 123 SKELETON_HORSE_SADDLE("skeleton_horse_saddle"); 116 124 117 public static final Codec<EquipmentClientInfo.LayerType> CODEC = 125 public static final Codec<EquipmentClientInfo.LayerType> CODEC = ... StringRepresentable.fromEnum(EquipmentClientInfo.LayerType::values); ... StringRepresentable.fromEnum(EquipmentClientInfo.LayerType::values); 118 private final String id; 126 private final String id; net/minecraft/world/entity/monster/creaking/CreakingAi.java --- 1/4 --- Java 3 import com.google.common.collect.ImmutableList; 3 import com.google.common.collect.ImmutableList; 4 import com.google.common.collect.ImmutableSet; 4 import com.google.common.collect.ImmutableSet; 5 import com.mojang.datafixers.util.Pair; 5 import com.mojang.datafixers.util.Pair; . 6 import java.util.List; . 7 import java.util.Optional; 6 import net.minecraft.server.level.ServerLevel; 8 import net.minecraft.server.level.ServerLevel; 7 import net.minecraft.util.valueproviders.UniformInt; 9 import net.minecraft.util.valueproviders.UniformInt; 8 import net.minecraft.world.entity.LivingEntity; 10 import net.minecraft.world.entity.LivingEntity; net/minecraft/world/entity/monster/creaking/CreakingAi.java --- 2/4 --- Java 20 import net.minecraft.world.entity.ai.behavior.StopAttackingIfTargetInva 22 import net.minecraft.world.entity.ai.behavior.StopAttackingIfTargetInva .. lid; .. lid; 21 import net.minecraft.world.entity.ai.behavior.Swim; 23 import net.minecraft.world.entity.ai.behavior.Swim; 22 import net.minecraft.world.entity.ai.memory.MemoryModuleType; 24 import net.minecraft.world.entity.ai.memory.MemoryModuleType; .. 25 import net.minecraft.world.entity.ai.memory.MemoryStatus; 23 import net.minecraft.world.entity.ai.sensing.Sensor; 26 import net.minecraft.world.entity.ai.sensing.Sensor; 24 import net.minecraft.world.entity.ai.sensing.SensorType; 27 import net.minecraft.world.entity.ai.sensing.SensorType; .. 28 import net.minecraft.world.entity.player.Player; 25 import net.minecraft.world.entity.schedule.Activity; 29 import net.minecraft.world.entity.schedule.Activity; 26 30 27 public class CreakingAi { 31 public class CreakingAi { net/minecraft/world/entity/monster/creaking/CreakingAi.java --- 3/4 --- Java 33 MemoryModuleType.NEAREST_VISIBLE_LIVING_ENTITIES, 37 MemoryModuleType.NEAREST_VISIBLE_LIVING_ENTITIES, 34 MemoryModuleType.NEAREST_VISIBLE_PLAYER, 38 MemoryModuleType.NEAREST_VISIBLE_PLAYER, 35 MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, 39 MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYER, .. 40 MemoryModuleType.NEAREST_VISIBLE_ATTACKABLE_PLAYERS, 36 MemoryModuleType.LOOK_TARGET, 41 MemoryModuleType.LOOK_TARGET, 37 MemoryModuleType.WALK_TARGET, 42 MemoryModuleType.WALK_TARGET, 38 MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE, 43 MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE, net/minecraft/world/entity/monster/creaking/CreakingAi.java --- 4/4 --- Java 65 ); 70 ); 66 } 71 } 67 72 68 static void initFightActivity(Brain<Creaking> $$0) { 73 static void initFightActivity(Creaking $$0, Brain<Creaking> $$1) { 69 $$0.addActivityAndRemoveMemoryWhenStopped( 74 $$1.addActivityWithConditions( 70 Activity.FIGHT, 75 Activity.FIGHT, 71 10, 76 10, 72 ImmutableList.of( 77 ImmutableList.of( 73 SetWalkTargetFromAttackTargetIfTargetOutOfReach.create(1.0F 78 SetWalkTargetFromAttackTargetIfTargetOutOfReach.create(1.0F .. ), MeleeAttack.create(Creaking::canMove, 40), StopAttackingIfTargetInva .. ), .. lid.create() .. .. 79 MeleeAttack.create(Creaking::canMove, 40), .. 80 StopAttackingIfTargetInvalid.create(($$1x, $$2) -> !isAttac .. .. kTargetStillReachable($$0, $$2)) 74 ), 81 ), 75 MemoryModuleType.ATTACK_TARGET 82 ImmutableSet.of(Pair.of(MemoryModuleType.ATTACK_TARGET, Memory .. .. Status.VALUE_PRESENT)) 76 ); 83 ); 77 } 84 } .. 85 .. 86 private static boolean isAttackTargetStillReachable(Creaking $$0, Li .. .. vingEntity $$1) { .. 87 Optional<List<Player>> $$2 = $$0.getBrain().getMemory(MemoryModul .. .. eType.NEAREST_VISIBLE_ATTACKABLE_PLAYERS); .. 88 return $$2.<Boolean>map($$1x -> { .. 89 if ($$1 instanceof Player $$2x && $$1x.contains($$2x)) { .. 90 return true; .. 91 } .. 92 .. 93 return false; .. 94 }).orElse(false); .. 95 } 78 96 79 public static Brain.Provider<Creaking> brainProvider() { 97 public static Brain.Provider<Creaking> brainProvider() { 80 return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); 98 return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); 81 } 99 } 82 100 83 public static Brain<Creaking> makeBrain(Brain<Creaking> $$0) { 101 public static Brain<Creaking> makeBrain(Creaking $$0, Brain<Creaking .. ... > $$1) { 84 initCoreActivity($$0); 102 initCoreActivity($$1); 85 initIdleActivity($$0); 103 initIdleActivity($$1); 86 initFightActivity($$0); 104 initFightActivity($$0, $$1); 87 $$0.setCoreActivities(ImmutableSet.of(Activity.CORE)); 105 $$1.setCoreActivities(ImmutableSet.of(Activity.CORE)); 88 $$0.setDefaultActivity(Activity.IDLE); 106 $$1.setDefaultActivity(Activity.IDLE); 89 $$0.useDefaultActivity(); 107 $$1.useDefaultActivity(); 90 return $$0; 108 return $$1; 91 } 109 } 92 110 93 public static void updateActivity(Creaking $$0) { 111 public static void updateActivity(Creaking $$0) { net/minecraft/world/level/levelgen/structure/structures/SwampHutPiece.java --- 1/2 --- Java 93 Witch $$14 = EntityType.WITCH.create($$0.getLevel(), Ent 93 Witch $$14 = EntityType.WITCH.create($$0.getLevel(), Ent .. itySpawnReason.STRUCTURE); .. itySpawnReason.STRUCTURE); 94 if ($$14 != null) { 94 if ($$14 != null) { 95 $$14.setPersistenceRequired(); 95 $$14.setPersistenceRequired(); 96 $$14.moveTo((double)$$13.getX() + 0.5, (double)$$13.g 96 $$14.snapTo((double)$$13.getX() + 0.5, (double)$$13.g .. etY(), (double)$$13.getZ() + 0.5, 0.0F, 0.0F); .. etY(), (double)$$13.getZ() + 0.5, 0.0F, 0.0F); 97 $$14.finalizeSpawn($$0, $$0.getCurrentDifficultyAt($$ 97 $$14.finalizeSpawn($$0, $$0.getCurrentDifficultyAt($$ .. 13), EntitySpawnReason.STRUCTURE, null); .. 13), EntitySpawnReason.STRUCTURE, null); 98 $$0.addFreshEntityWithPassengers($$14); 98 $$0.addFreshEntityWithPassengers($$14); 99 } 99 } net/minecraft/world/level/levelgen/structure/structures/SwampHutPiece.java --- 2/2 --- Java 112 Cat $$3 = EntityType.CAT.create($$0.getLevel(), EntitySpaw 112 Cat $$3 = EntityType.CAT.create($$0.getLevel(), EntitySpaw ... nReason.STRUCTURE); ... nReason.STRUCTURE); 113 if ($$3 != null) { 113 if ($$3 != null) { 114 $$3.setPersistenceRequired(); 114 $$3.setPersistenceRequired(); 115 $$3.moveTo((double)$$2.getX() + 0.5, (double)$$2.getY() 115 $$3.snapTo((double)$$2.getX() + 0.5, (double)$$2.getY() ... , (double)$$2.getZ() + 0.5, 0.0F, 0.0F); ... , (double)$$2.getZ() + 0.5, 0.0F, 0.0F); 116 $$3.finalizeSpawn($$0, $$0.getCurrentDifficultyAt($$2), 116 $$3.finalizeSpawn($$0, $$0.getCurrentDifficultyAt($$2), ... EntitySpawnReason.STRUCTURE, null); ... EntitySpawnReason.STRUCTURE, null); 117 $$0.addFreshEntityWithPassengers($$3); 117 $$0.addFreshEntityWithPassengers($$3); 118 } 118 } net/minecraft/world/entity/monster/creaking/Creaking.java --- Java 115 115 116 @Override 116 @Override 117 protected Brain<?> makeBrain(Dynamic<?> $$0) { 117 protected Brain<?> makeBrain(Dynamic<?> $$0) { 118 return CreakingAi.makeBrain(this.brainProvider().makeBrain($$0)) 118 return CreakingAi.makeBrain(this, this.brainProvider().makeBrain ... ; ... ($$0)); 119 } 119 } 120 120 121 @Override 121 @Override net/minecraft/util/datafix/fixes/NamedEntityWriteReadFix.java --- Java 29 Type<?> $$0 = this.getInputSchema().getType(this.type); 29 Type<?> $$0 = this.getInputSchema().getType(this.type); 30 Type<?> $$1 = this.getInputSchema().getChoiceType(this.type, this 30 Type<?> $$1 = this.getInputSchema().getChoiceType(this.type, this .. .entityName); .. .entityName); 31 Type<?> $$2 = this.getOutputSchema().getType(this.type); 31 Type<?> $$2 = this.getOutputSchema().getType(this.type); 32 Type<?> $$3 = this.getOutputSchema().getChoiceType(this.type, thi .. .. s.entityName); .. 33 OpticFinder<?> $$4 = DSL.namedChoice(this.entityName, $$1); 32 OpticFinder<?> $$3 = DSL.namedChoice(this.entityName, $$1); 34 Type<?> $$5 = ExtraDataFixUtils.patchSubType($$1, $$0, $$2); 33 Type<?> $$4 = ExtraDataFixUtils.patchSubType($$0, $$0, $$2); 35 return this.fix($$0, $$2, $$4, $$3, $$5); 34 return this.fix($$0, $$2, $$4, $$3); 36 } 35 } 37 36 38 private <S, T, A, B> TypeRewriteRule fix(Type<S> $$0, Type<T> $$1, O 37 private <S, T, A> TypeRewriteRule fix(Type<S> $$0, Type<T> $$1, Type .. pticFinder<A> $$2, Type<B> $$3, Type<?> $$4) { .. <?> $$2, OpticFinder<A> $$3) { 39 return this.fixTypeEverywhere(this.name, $$0, $$1, $$4x -> $$5 -> 38 return this.fixTypeEverywhereTyped(this.name, $$0, $$1, $$3x -> { .. { .. 40 Typed<S> $$6 = new Typed<>($$0, $$4x, $$5); 39 if ($$3x.getOptional($$3).isEmpty()) { 41 return (T)$$6.update($$2, $$3, $$3xxx -> { 40 return ExtraDataFixUtils.cast($$1, $$3x); .. 41 } else { 42 Typed<A> $$4xxx = new Typed<>((Type<A>)$$4, $$4x, (A)$$3 42 Typed<?> $$4 = ExtraDataFixUtils.cast($$2, $$3x); .. xxx); .. 43 return Util.<A, B>writeAndReadTypedOrThrow($$4xxx, $$3, 43 return Util.writeAndReadTypedOrThrow($$4, $$1, this::fix); .. this::fix).getValue(); .. 44 }).getValue(); 44 } 45 }); 45 }); 46 } 46 } 47 47 net/minecraft/world/level/levelgen/structure/structures/WoodlandMansionPieces.java --- Java 1214 for (Mob $$10 : $$7) { 1214 for (Mob $$10 : $$7) { 1215 if ($$10 != null) { 1215 if ($$10 != null) { 1216 $$10.setPersistenceRequired(); 1216 $$10.setPersistenceRequired(); 1217 $$10.moveTo($$1, 0.0F, 0.0F); 1217 $$10.snapTo($$1, 0.0F, 0.0F); 1218 $$10.finalizeSpawn($$2, $$2.getCurrentDifficultyAt( 1218 $$10.finalizeSpawn($$2, $$2.getCurrentDifficultyAt( .... $$10.blockPosition()), EntitySpawnReason.STRUCTURE, null); .... $$10.blockPosition()), EntitySpawnReason.STRUCTURE, null); 1219 $$2.addFreshEntityWithPassengers($$10); 1219 $$2.addFreshEntityWithPassengers($$10); 1220 $$2.setBlock($$1, Blocks.AIR.defaultBlockState(), 2 1220 $$2.setBlock($$1, Blocks.AIR.defaultBlockState(), 2 ); ); net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java --- Java 379 } 379 } 380 380 381 @Override 381 @Override 382 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1, bool 382 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1) { ... ean $$2) { ... 383 super.preRemoveSideEffects($$0, $$1, $$2); 383 super.preRemoveSideEffects($$0, $$1); 384 if (this.level instanceof ServerLevel $$3) { 384 if (this.level instanceof ServerLevel $$2) { 385 this.getRecipesToAwardAndPopExperience($$3, Vec3.atCenterOf($ 385 this.getRecipesToAwardAndPopExperience($$2, Vec3.atCenterOf($ ... $0)); ... $0)); 386 } 386 } 387 } 387 } 388 } 388 } net/minecraft/world/level/block/entity/TestInstanceBlockEntity.java --- Java 1 package net.minecraft.world.level.block.entity; 2 3 import com.mojang.serialization.Codec; 4 import com.mojang.serialization.DataResult; 5 import com.mojang.serialization.codecs.RecordCodecBuilder; 6 import io.netty.buffer.ByteBuf; 7 import java.io.IOException; 8 import java.nio.file.Path; 9 import java.util.List; 10 import java.util.Optional; 11 import java.util.function.Consumer; 12 import java.util.function.IntFunction; 13 import net.minecraft.ChatFormatting; 14 import net.minecraft.FileUtil; 15 import net.minecraft.core.BlockPos; 16 import net.minecraft.core.Holder; 17 import net.minecraft.core.HolderLookup; 18 import net.minecraft.core.Vec3i; 19 import net.minecraft.core.registries.Registries; 20 import net.minecraft.data.CachedOutput; 21 import net.minecraft.data.structures.NbtToSnbt; 22 import net.minecraft.gametest.framework.FailedTestTracker; 23 import net.minecraft.gametest.framework.GameTestInfo; 24 import net.minecraft.gametest.framework.GameTestInstance; 25 import net.minecraft.gametest.framework.GameTestRunner; 26 import net.minecraft.gametest.framework.GameTestTicker; 27 import net.minecraft.gametest.framework.RetryOptions; 28 import net.minecraft.gametest.framework.StructureUtils; 29 import net.minecraft.gametest.framework.TestCommand; 30 import net.minecraft.nbt.CompoundTag; 31 import net.minecraft.nbt.NbtOps; 32 import net.minecraft.nbt.Tag; 33 import net.minecraft.network.RegistryFriendlyByteBuf; 34 import net.minecraft.network.chat.Component; 35 import net.minecraft.network.chat.ComponentSerialization; 36 import net.minecraft.network.codec.ByteBufCodecs; 37 import net.minecraft.network.codec.StreamCodec; 38 import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; 39 import net.minecraft.resources.ResourceKey; 40 import net.minecraft.resources.ResourceLocation; 41 import net.minecraft.server.level.ServerLevel; 42 import net.minecraft.util.ARGB; 43 import net.minecraft.util.ByIdMap; 44 import net.minecraft.util.StringRepresentable; 45 import net.minecraft.world.entity.Entity; 46 import net.minecraft.world.level.block.Blocks; 47 import net.minecraft.world.level.block.Rotation; 48 import net.minecraft.world.level.block.state.BlockState; 49 import net.minecraft.world.level.levelgen.structure.BoundingBox; 50 import net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings; 51 import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; 52 import net.minecraft.world.phys.AABB; 53 54 public class TestInstanceBlockEntity extends BlockEntity implements BeaconBeamOwner, BoundingBoxRenderable { 55 private static final Component INVALID_TEST_NAME = Component.translatable("test_instance_block.invalid_test"); 56 private static final List<BeaconBeamOwner.Section> BEAM_CLEARED = List.of(); 57 private static final List<BeaconBeamOwner.Section> BEAM_RUNNING = List.of(new BeaconBeamOwner.Section(ARGB.color(128, 128, 128))); 58 private static final List<BeaconBeamOwner.Section> BEAM_SUCCESS = List.of(new BeaconBeamOwner.Section(ARGB.color(0, 255, 0))); 59 private static final List<BeaconBeamOwner.Section> BEAM_REQUIRED_FAILED = List.of(new BeaconBeamOwner.Section(ARGB.color(255, 0, 0))); 60 private static final List<BeaconBeamOwner.Section> BEAM_OPTIONAL_FAILED = List.of(new BeaconBeamOwner.Section(ARGB.color(255, 128, 0))); 61 private static final Vec3i STRUCTURE_OFFSET = new Vec3i(0, 1, 1); 62 private TestInstanceBlockEntity.Data data = new TestInstanceBlockEntity.Data( 63 Optional.empty(), Vec3i.ZERO, Rotation.NONE, false, TestInstanceBlockEntity.Status.CLEARED, Optional.empty() 64 ); 65 66 public TestInstanceBlockEntity(BlockPos $$0, BlockState $$1) { 67 super(BlockEntityType.TEST_INSTANCE_BLOCK, $$0, $$1); 68 } 69 70 public void set(TestInstanceBlockEntity.Data $$0) { 71 this.data = $$0; 72 this.setChanged(); 73 } 74 75 public static Optional<Vec3i> getStructureSize(ServerLevel $$0, ResourceKey<GameTestInstance> $$1) { 76 return getStructureTemplate($$0, $$1).map(StructureTemplate::getSize); 77 } 78 79 public BoundingBox getStructureBoundingBox() { 80 BlockPos $$0 = this.getStructurePos(); 81 BlockPos $$1 = $$0.offset(this.getTransformedSize()).offset(-1, -1, -1); 82 return BoundingBox.fromCorners($$0, $$1); 83 } 84 85 public AABB getStructureBounds() { 86 return AABB.of(this.getStructureBoundingBox()); 87 } 88 89 private static Optional<StructureTemplate> getStructureTemplate(ServerLevel $$0, ResourceKey<GameTestInstance> $$1) { 90 return $$0.registryAccess().get($$1).map($$0x -> ((GameTestInstance)$$0x.value()).structure()).flatMap($$1x -> $$0.getStructureManager().get($$1x)); 91 } 92 93 public Optional<ResourceKey<GameTestInstance>> test() { 94 return this.data.test(); 95 } 96 97 public Component getTestName() { 98 return this.test().map($$0 -> Component.literal($$0.location().toString())).orElse(INVALID_TEST_NAME); 99 } 100 101 private Optional<Holder.Reference<GameTestInstance>> getTestHolder() { 102 return this.test().flatMap(this.level.registryAccess()::get); 103 } 104 105 public boolean ignoreEntities() { 106 return this.data.ignoreEntities(); 107 } 108 109 public Vec3i getSize() { 110 return this.data.size(); 111 } 112 113 public Rotation getRotation() { 114 return this.getTestHolder().map(Holder::value).map(GameTestInstance::rotation).orElse(Rotation.NONE).getRotated(this.data.rotation()); 115 } 116 117 public Optional<Component> errorMessage() { 118 return this.data.errorMessage(); 119 } 120 121 public void setErrorMessage(Component $$0) { 122 this.set(this.data.withError($$0)); 123 } 124 125 public void setSuccess() { 126 this.set(this.data.withStatus(TestInstanceBlockEntity.Status.FINISHED)); 127 this.removeBarriers(); 128 } 129 130 public void setRunning() { 131 this.set(this.data.withStatus(TestInstanceBlockEntity.Status.RUNNING)); 132 } 133 134 @Override 135 public void setChanged() { 136 super.setChanged(); 137 if (this.level instanceof ServerLevel) { 138 this.level.sendBlockUpdated(this.getBlockPos(), Blocks.AIR.defaultBlockState(), this.getBlockState(), 3); 139 } 140 } 141 142 public ClientboundBlockEntityDataPacket getUpdatePacket() { 143 return ClientboundBlockEntityDataPacket.create(this); 144 } 145 146 @Override 147 public CompoundTag getUpdateTag(HolderLookup.Provider $$0) { 148 CompoundTag $$1 = new CompoundTag(); 149 this.saveAdditional($$1, $$0); 150 return $$1; 151 } 152 153 @Override 154 protected void loadAdditional(CompoundTag $$0, HolderLookup.Provider $$1) { 155 Tag $$2 = $$0.get("data"); 156 if ($$2 != null) { 157 TestInstanceBlockEntity.Data.CODEC.parse(NbtOps.INSTANCE, $$2).ifSuccess(this::set); 158 } 159 } 160 161 @Override 162 protected void saveAdditional(CompoundTag $$0, HolderLookup.Provider $$1) { 163 DataResult<Tag> $$2 = TestInstanceBlockEntity.Data.CODEC.encode(this.data, NbtOps.INSTANCE, new CompoundTag()); 164 $$2.ifSuccess($$1x -> $$0.put("data", $$1x)); 165 } 166 167 @Override 168 public BoundingBoxRenderable.Mode renderMode() { 169 return BoundingBoxRenderable.Mode.BOX; 170 } 171 172 public BlockPos getStructurePos() { 173 return getStructurePos(this.getBlockPos()); 174 } 175 176 public static BlockPos getStructurePos(BlockPos $$0) { 177 return $$0.offset(STRUCTURE_OFFSET); 178 } 179 180 @Override 181 public BoundingBoxRenderable.RenderableBox getRenderableBox() { 182 return new BoundingBoxRenderable.RenderableBox(new BlockPos(STRUCTURE_OFFSET), this.getTransformedSize()); 183 } 184 185 @Override 186 public List<BeaconBeamOwner.Section> getBeamSections() { 187 return switch (this.data.status()) { 188 case CLEARED -> BEAM_CLEARED; 189 case RUNNING -> BEAM_RUNNING; 190 case FINISHED -> this.errorMessage().isEmpty() 191 ? BEAM_SUCCESS 192 : (this.getTestHolder().map(Holder::value).map(GameTestInstance::required).orElse(true) ? BEAM_REQUIRED_FAILED : BEAM_OPTIONAL_FAILED); 193 }; 194 } 195 196 private Vec3i getTransformedSize() { 197 Vec3i $$0 = this.getSize(); 198 Rotation $$1 = this.getRotation(); 199 boolean $$2 = $$1 == Rotation.CLOCKWISE_90 || $$1 == Rotation.COUNTERCLOCKWISE_90; 200 int $$3 = $$2 ? $$0.getZ() : $$0.getX(); 201 int $$4 = $$2 ? $$0.getX() : $$0.getZ(); 202 return new Vec3i($$3, $$0.getY(), $$4); 203 } 204 205 public void resetTest(Consumer<Component> $$0) { 206 this.removeBarriers(); 207 boolean $$1 = this.placeStructure(); 208 if ($$1) { 209 $$0.accept(Component.translatable("test_instance_block.reset_success", this.getTestName()).withStyle(ChatFormatting.GREEN)); 210 } 211 212 this.set(this.data.withStatus(TestInstanceBlockEntity.Status.CLEARED)); 213 } 214 215 public Optional<ResourceLocation> saveTest(Consumer<Component> $$0) { 216 Optional<Holder.Reference<GameTestInstance>> $$1 = this.getTestHolder(); 217 Optional<ResourceLocation> $$2; 218 if ($$1.isPresent()) { 219 $$2 = Optional.of($$1.get().value().structure()); 220 } else { 221 $$2 = this.test().map(ResourceKey::location); 222 } 223 224 if ($$2.isEmpty()) { 225 BlockPos $$4 = this.getBlockPos(); 226 $$0.accept(Component.translatable("test_instance_block.error.unable_to_save", $$4.getX(), $$4.getY(), $$4.getZ()).withStyle(ChatFormatting.RED)); 227 return $$2; 228 } else { 229 if (this.level instanceof ServerLevel $$5) { 230 StructureBlockEntity.saveStructure($$5, $$2.get(), this.getStructurePos(), this.getSize(), this.ignoreEntities(), "", true); 231 } 232 233 return $$2; 234 } 235 } 236 237 public boolean exportTest(Consumer<Component> $$0) { 238 Optional<ResourceLocation> $$1 = this.saveTest($$0); 239 return !$$1.isEmpty() && this.level instanceof ServerLevel $$2 ? export($$2, $$1.get(), $$0) : false; 240 } 241 242 public static boolean export(ServerLevel $$0, ResourceLocation $$1, Consumer<Component> $$2) { 243 Path $$3 = StructureUtils.testStructuresDir; 244 Path $$4 = $$0.getStructureManager().createAndValidatePathToGeneratedStructure($$1, ".nbt"); 245 Path $$5 = NbtToSnbt.convertStructure(CachedOutput.NO_CACHE, $$4, $$1.getPath(), $$3.resolve($$1.getNamespace()).resolve("structure")); 246 if ($$5 == null) { 247 $$2.accept(Component.literal("Failed to export " + $$4).withStyle(ChatFormatting.RED)); 248 return true; 249 } else { 250 try { 251 FileUtil.createDirectoriesSafe($$5.getParent()); 252 } catch (IOException var7) { 253 $$2.accept(Component.literal("Could not create folder " + $$5.getParent()).withStyle(ChatFormatting.RED)); 254 return true; 255 } 256 257 $$2.accept(Component.literal("Exported " + $$1 + " to " + $$5.toAbsolutePath())); 258 return false; 259 } 260 } 261 262 public void runTest(Consumer<Component> $$0) { 263 if (this.level instanceof ServerLevel $$1) { 264 Optional var7 = this.getTestHolder(); 265 BlockPos $$4 = this.getBlockPos(); 266 if (var7.isEmpty()) { 267 $$0.accept(Component.translatable("test_instance_block.error.no_test", $$4.getX(), $$4.getY(), $$4.getZ()).withStyle(ChatFormatting.RED)); 268 } else { 269 this.placeStructure(); 270 GameTestRunner.clearMarkers($$1); 271 GameTestTicker.SINGLETON.clear(); 272 FailedTestTracker.forgetFailedTests(); 273 $$0.accept(Component.translatable("test_instance_block.starting", ((Holder.Reference)var7.get()).getRegisteredName())); 274 GameTestInfo $$5 = new GameTestInfo((Holder.Reference<GameTestInstance>)var7.get(), this.data.rotation(), $$1, RetryOptions.noRetries()); 275 $$5.setTestBlockPos($$4); 276 GameTestRunner $$6 = GameTestRunner.Builder.fromInfo(List.of($$5), $$1).build(); 277 TestCommand.trackAndStartRunner($$1.getServer().createCommandSourceStack(), $$6); 278 } 279 } 280 } 281 282 public boolean placeStructure() { 283 if (this.level instanceof ServerLevel $$0) { 284 Optional<StructureTemplate> $$1 = this.data.test().flatMap($$1x -> getStructureTemplate($$0, (ResourceKey<GameTestInstance>)$$1x)); 285 if ($$1.isPresent()) { 286 this.placeStructure($$0, $$1.get()); 287 return true; 288 } 289 } 290 291 return false; 292 } 293 294 private void placeStructure(ServerLevel $$0, StructureTemplate $$1) { 295 StructurePlaceSettings $$2 = new StructurePlaceSettings() 296 .setRotation(this.getRotation()) 297 .setIgnoreEntities(this.data.ignoreEntities()) 298 .setKnownShape(true); 299 BlockPos $$3 = this.getStartCorner(); 300 this.forceLoadChunks(); 301 this.removeEntities(); 302 $$1.placeInWorld($$0, $$3, $$3, $$2, $$0.getRandom(), 306); 303 } 304 305 private void removeEntities() { 306 this.level.getEntities(null, this.getStructureBounds()).forEach(Entity::discard); 307 } 308 309 private void forceLoadChunks() { 310 if (this.level instanceof ServerLevel $$0) { 311 this.getStructureBoundingBox().intersectingChunks().forEach($$1 -> $$0.setChunkForced($$1.x, $$1.z, true)); 312 } 313 } 314 315 public BlockPos getStartCorner() { 316 Vec3i $$0 = this.getSize(); 317 Rotation $$1 = this.getRotation(); 318 BlockPos $$2 = this.getStructurePos(); 319 320 return switch ($$1) { 321 case NONE -> $$2; 322 case CLOCKWISE_90 -> $$2.offset($$0.getZ() - 1, 0, 0); 323 case CLOCKWISE_180 -> $$2.offset($$0.getX() - 1, 0, $$0.getZ() - 1); 324 case COUNTERCLOCKWISE_90 -> $$2.offset(0, 0, $$0.getX() - 1); 325 }; 326 } 327 328 public void encaseStructure() { 329 this.processStructureBoundary($$0 -> { 330 if (!this.level.getBlockState($$0).is(Blocks.TEST_INSTANCE_BLOCK)) { 331 this.level.setBlockAndUpdate($$0, Blocks.BARRIER.defaultBlockState()); 332 } 333 }); 334 } 335 336 public void removeBarriers() { 337 this.processStructureBoundary($$0 -> { 338 if (this.level.getBlockState($$0).is(Blocks.BARRIER)) { 339 this.level.setBlockAndUpdate($$0, Blocks.AIR.defaultBlockState()); 340 } 341 }); 342 } 343 344 public void processStructureBoundary(Consumer<BlockPos> $$0) { 345 AABB $$1 = this.getStructureBounds(); 346 boolean $$2 = !this.getTestHolder().map($$0x -> ((GameTestInstance)$$0x.value()).skyAccess()).orElse(false); 347 BlockPos $$3 = BlockPos.containing($$1.minX, $$1.minY, $$1.minZ).offset(-1, -1, -1); 348 BlockPos $$4 = BlockPos.containing($$1.maxX, $$1.maxY, $$1.maxZ); 349 BlockPos.betweenClosedStream($$3, $$4) 350 .forEach( 351 $$4x -> { 352 boolean $$5 = $$4x.getX() == $$3.getX() 353 || $$4x.getX() == $$4.getX() 354 || $$4x.getZ() == $$3.getZ() 355 || $$4x.getZ() == $$4.getZ() 356 || $$4x.getY() == $$3.getY(); 357 boolean $$6 = $$4x.getY() == $$4.getY(); 358 if ($$5 || $$6 && $$2) { 359 $$0.accept($$4x); 360 } 361 } 362 ); 363 } 364 365 public static record Data( 366 Optional<ResourceKey<GameTestInstance>> test, 367 Vec3i size, 368 Rotation rotation, 369 boolean ignoreEntities, 370 TestInstanceBlockEntity.Status status, 371 Optional<Component> errorMessage 372 ) { 373 public static final Codec<TestInstanceBlockEntity.Data> CODEC = RecordCodecBuilder.create( 374 $$0 -> $$0.group( 375 ResourceKey.codec(Registries.TEST_INSTANCE).optionalFieldOf("test").forGetter(TestInstanceBlockEntity.Data::test), 376 Vec3i.CODEC.fieldOf("size").forGetter(TestInstanceBlockEntity.Data::size), 377 Rotation.CODEC.fieldOf("rotation").forGetter(TestInstanceBlockEntity.Data::rotation), 378 Codec.BOOL.fieldOf("ignore_entities").forGetter(TestInstanceBlockEntity.Data::ignoreEntities), 379 TestInstanceBlockEntity.Status.CODEC.fieldOf("status").forGetter(TestInstanceBlockEntity.Data::status), 380 ComponentSerialization.CODEC.optionalFieldOf("error_message").forGetter(TestInstanceBlockEntity.Data::errorMessage) 381 ) 382 .apply($$0, TestInstanceBlockEntity.Data::new) 383 ); 384 public static final StreamCodec<RegistryFriendlyByteBuf, TestInstanceBlockEntity.Data> STREAM_CODEC = StreamCodec.composite( 385 ByteBufCodecs.optional(ResourceKey.streamCodec(Registries.TEST_INSTANCE)), 386 TestInstanceBlockEntity.Data::test, 387 Vec3i.STREAM_CODEC, 388 TestInstanceBlockEntity.Data::size, 389 Rotation.STREAM_CODEC, 390 TestInstanceBlockEntity.Data::rotation, 391 ByteBufCodecs.BOOL, 392 TestInstanceBlockEntity.Data::ignoreEntities, 393 TestInstanceBlockEntity.Status.STREAM_CODEC, 394 TestInstanceBlockEntity.Data::status, 395 ByteBufCodecs.optional(ComponentSerialization.STREAM_CODEC), 396 TestInstanceBlockEntity.Data::errorMessage, 397 TestInstanceBlockEntity.Data::new 398 ); 399 400 public TestInstanceBlockEntity.Data withSize(Vec3i $$0) { 401 return new TestInstanceBlockEntity.Data(this.test, $$0, this.rotation, this.ignoreEntities, this.status, this.errorMessage); 402 } 403 404 public TestInstanceBlockEntity.Data withStatus(TestInstanceBlockEntity.Status $$0) { 405 return new TestInstanceBlockEntity.Data(this.test, this.size, this.rotation, this.ignoreEntities, $$0, Optional.empty()); 406 } 407 408 public TestInstanceBlockEntity.Data withError(Component $$0) { 409 return new TestInstanceBlockEntity.Data( 410 this.test, this.size, this.rotation, this.ignoreEntities, TestInstanceBlockEntity.Status.FINISHED, Optional.of($$0) 411 ); 412 } 413 } 414 415 public static enum Status implements StringRepresentable { 416 CLEARED("cleared", 0), 417 RUNNING("running", 1), 418 FINISHED("finished", 2); 419 420 private static final IntFunction<TestInstanceBlockEntity.Status> ID_MAP = ByIdMap.continuous($$0 -> $$0.index, values(), ByIdMap.OutOfBoundsStrategy.ZERO); 421 public static final Codec<TestInstanceBlockEntity.Status> CODEC = StringRepresentable.fromEnum(TestInstanceBlockEntity.Status::values); 422 public static final StreamCodec<ByteBuf, TestInstanceBlockEntity.Status> STREAM_CODEC = ByteBufCodecs.idMapper( 423 TestInstanceBlockEntity.Status::byIndex, $$0 -> $$0.index 424 ); 425 private final String id; 426 private final int index; 427 428 private Status(final String $$0, final int $$1) { 429 this.id = $$0; 430 this.index = $$1; 431 } 432 433 @Override 434 public String getSerializedName() { 435 return this.id; 436 } 437 438 public static TestInstanceBlockEntity.Status byIndex(int $$0) { 439 return ID_MAP.apply($$0); 440 } 441 } 442 } 443 net/minecraft/world/level/block/entity/ShulkerBoxBlockEntity.java --- Java 159 $$0.updateNeighborsAt($$1, $$2.getBlock()); 159 $$0.updateNeighborsAt($$1, $$2.getBlock()); 160 } 160 } ... 161 ... 162 @Override ... 163 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1) { ... 164 } 161 165 162 @Override 166 @Override 163 public void startOpen(Player $$0) { 167 public void startOpen(Player $$0) { net/minecraft/world/level/block/entity/BlockEntityType.java --- Java 228 public static final BlockEntityType<CrafterBlockEntity> CRAFTER = r 228 public static final BlockEntityType<CrafterBlockEntity> CRAFTER = r ... egister("crafter", CrafterBlockEntity::new, Blocks.CRAFTER); ... egister("crafter", CrafterBlockEntity::new, Blocks.CRAFTER); 229 public static final BlockEntityType<TrialSpawnerBlockEntity> TRIAL_ 229 public static final BlockEntityType<TrialSpawnerBlockEntity> TRIAL_ ... SPAWNER = register("trial_spawner", TrialSpawnerBlockEntity::new, Bloc ... SPAWNER = register("trial_spawner", TrialSpawnerBlockEntity::new, Bloc ... ks.TRIAL_SPAWNER); ... ks.TRIAL_SPAWNER); 230 public static final BlockEntityType<VaultBlockEntity> VAULT = regis 230 public static final BlockEntityType<VaultBlockEntity> VAULT = regis ... ter("vault", VaultBlockEntity::new, Blocks.VAULT); ... ter("vault", VaultBlockEntity::new, Blocks.VAULT); ... 231 public static final BlockEntityType<TestBlockEntity> TEST_BLOCK = r ... ... egister("test_block", TestBlockEntity::new, Blocks.TEST_BLOCK); ... 232 public static final BlockEntityType<TestInstanceBlockEntity> TEST_I ... ... NSTANCE_BLOCK = register( ... 233 "test_instance_block", TestInstanceBlockEntity::new, Blocks.TEST ... ... _INSTANCE_BLOCK ... 234 ); 231 private static final Set<BlockEntityType<?>> OP_ONLY_CUSTOM_DATA = 235 private static final Set<BlockEntityType<?>> OP_ONLY_CUSTOM_DATA = ... Set.of(COMMAND_BLOCK, LECTERN, SIGN, HANGING_SIGN, MOB_SPAWNER, TRIAL_ ... Set.of(COMMAND_BLOCK, LECTERN, SIGN, HANGING_SIGN, MOB_SPAWNER, TRIAL_ ... SPAWNER); ... SPAWNER); 232 private final BlockEntityType.BlockEntitySupplier<? extends T> fact 236 private final BlockEntityType.BlockEntitySupplier<? extends T> fact ... ory; ... ory; 233 private final Set<Block> validBlocks; 237 private final Set<Block> validBlocks; net/minecraft/util/random/WeightedList.java --- Java 93 return ExtraCodecs.nonEmptyList(Weighted.codec($$0).listOf()).xma 93 return ExtraCodecs.nonEmptyList(Weighted.codec($$0).listOf()).xma .. p(WeightedList::of, WeightedList::unwrap); .. p(WeightedList::of, WeightedList::unwrap); 94 } 94 } .. 95 .. 96 public boolean contains(E $$0) { .. 97 for (Weighted<E> $$1 : this.items) { .. 98 if ($$1.value().equals($$0)) { .. 99 return true; .. 100 } .. 101 } .. 102 .. 103 return false; .. 104 } 95 105 96 @Override 106 @Override 97 public boolean equals(@Nullable Object $$0) { 107 public boolean equals(@Nullable Object $$0) { net/minecraft/client/player/LocalPlayer.java --- 1/4 --- Java 23 import net.minecraft.client.gui.screens.inventory.MinecartCommandBlockE 23 import net.minecraft.client.gui.screens.inventory.MinecartCommandBlockE .. ditScreen; .. ditScreen; 24 import net.minecraft.client.gui.screens.inventory.SignEditScreen; 24 import net.minecraft.client.gui.screens.inventory.SignEditScreen; 25 import net.minecraft.client.gui.screens.inventory.StructureBlockEditScr 25 import net.minecraft.client.gui.screens.inventory.StructureBlockEditScr .. een; .. een; .. 26 import net.minecraft.client.gui.screens.inventory.TestBlockEditScreen; .. 27 import net.minecraft.client.gui.screens.inventory.TestInstanceBlockEdit .. .. Screen; 26 import net.minecraft.client.multiplayer.ClientLevel; 28 import net.minecraft.client.multiplayer.ClientLevel; 27 import net.minecraft.client.multiplayer.ClientPacketListener; 29 import net.minecraft.client.multiplayer.ClientPacketListener; 28 import net.minecraft.client.resources.sounds.AmbientSoundHandler; 30 import net.minecraft.client.resources.sounds.AmbientSoundHandler; net/minecraft/client/player/LocalPlayer.java --- 2/4 --- Java 80 import net.minecraft.world.level.block.entity.JigsawBlockEntity; 82 import net.minecraft.world.level.block.entity.JigsawBlockEntity; 81 import net.minecraft.world.level.block.entity.SignBlockEntity; 83 import net.minecraft.world.level.block.entity.SignBlockEntity; 82 import net.minecraft.world.level.block.entity.StructureBlockEntity; 84 import net.minecraft.world.level.block.entity.StructureBlockEntity; .. 85 import net.minecraft.world.level.block.entity.TestBlockEntity; .. 86 import net.minecraft.world.level.block.entity.TestInstanceBlockEntity; 83 import net.minecraft.world.level.block.state.BlockState; 87 import net.minecraft.world.level.block.state.BlockState; 84 import net.minecraft.world.phys.AABB; 88 import net.minecraft.world.phys.AABB; 85 import net.minecraft.world.phys.Vec2; 89 import net.minecraft.world.phys.Vec2; net/minecraft/client/player/LocalPlayer.java --- 3/4 --- Java 562 this.minecraft.setScreen(new StructureBlockEditScreen($$0)); 566 this.minecraft.setScreen(new StructureBlockEditScreen($$0)); 563 } 567 } ... 568 ... 569 @Override ... 570 public void openTestBlock(TestBlockEntity $$0) { ... 571 this.minecraft.setScreen(new TestBlockEditScreen($$0)); ... 572 } ... 573 ... 574 @Override ... 575 public void openTestInstanceBlock(TestInstanceBlockEntity $$0) { ... 576 this.minecraft.setScreen(new TestInstanceBlockEditScreen($$0)); ... 577 } 564 578 565 @Override 579 @Override 566 public void openJigsawBlock(JigsawBlockEntity $$0) { 580 public void openJigsawBlock(JigsawBlockEntity $$0) { net/minecraft/client/player/LocalPlayer.java --- 4/4 --- Java 1041 1055 1042 private boolean hasEnoughImpulseToStartSprinting() { 1056 private boolean hasEnoughImpulseToStartSprinting() { 1043 double $$0 = 0.8; 1057 double $$0 = 0.8; 1044 return this.isUnderWater() ? this.input.hasForwardImpulse() : ( 1058 return this.input.hasForwardImpulse() && (this.isUnderWater() | .... double)this.input.getMoveVector().y >= 0.8; .... | (double)this.input.getMoveVector().length() >= 0.8); 1045 } 1059 } 1046 1060 1047 private boolean hasEnoughFoodToStartSprinting() { 1061 private boolean hasEnoughFoodToStartSprinting() { net/minecraft/gametest/framework/StructureGridSpawner.java --- 1/2 --- Java 32 public void onBatchStart(ServerLevel $$0) { 32 public void onBatchStart(ServerLevel $$0) { 33 if (this.clearOnBatch) { 33 if (this.clearOnBatch) { 34 this.testInLastBatch.forEach($$1 -> { 34 this.testInLastBatch.forEach($$1 -> { 35 BoundingBox $$2 = StructureUtils.getStructureBoundingBox($$ 35 BoundingBox $$2 = $$1.getTestInstanceBlockEntity().getStruc .. 1.getStructureBlockEntity()); .. tureBoundingBox(); 36 StructureUtils.clearSpaceForStructure($$2, $$0); 36 StructureUtils.clearSpaceForStructure($$2, $$0); 37 }); 37 }); 38 this.testInLastBatch.clear(); 38 this.testInLastBatch.clear(); net/minecraft/gametest/framework/StructureGridSpawner.java --- 2/2 --- Java 44 @Override 44 @Override 45 public Optional<GameTestInfo> spawnStructure(GameTestInfo $$0) { 45 public Optional<GameTestInfo> spawnStructure(GameTestInfo $$0) { 46 BlockPos $$1 = new BlockPos(this.nextTestNorthWestCorner); 46 BlockPos $$1 = new BlockPos(this.nextTestNorthWestCorner); 47 $$0.setNorthWestCorner($$1); 47 $$0.setTestBlockPos($$1); 48 $$0.prepareTestStructure(); 48 $$0.prepareTestStructure().startExecution(1); 49 AABB $$2 = StructureUtils.getStructureBounds($$0.getStructureBloc 49 AABB $$2 = $$0.getTestInstanceBlockEntity().getStructureBounds(); .. kEntity()); .. 50 this.rowBounds = this.rowBounds.minmax($$2); 50 this.rowBounds = this.rowBounds.minmax($$2); 51 this.nextTestNorthWestCorner.move((int)$$2.getXsize() + 5, 0, 0); 51 this.nextTestNorthWestCorner.move((int)$$2.getXsize() + 5, 0, 0); 52 if ((float)this.nextTestNorthWestCorner.getX() > this.maxX) { 52 if ((float)this.nextTestNorthWestCorner.getX() > this.maxX) { net/minecraft/util/datafix/schemas/V2502.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:hoglin", () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, "minecraft:hoglin"); 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/world/level/block/entity/LecternBlockEntity.java --- Java 223 } 223 } 224 224 225 @Override 225 @Override 226 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1, bool 226 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1) { ... ean $$2) { ... 227 if ($$1.getValue(LecternBlock.HAS_BOOK) && this.level != null) { 227 if ($$1.getValue(LecternBlock.HAS_BOOK) && this.level != null) { 228 Direction $$3 = $$1.getValue(LecternBlock.FACING); 228 Direction $$2 = $$1.getValue(LecternBlock.FACING); 229 ItemStack $$4 = this.getBook().copy(); 229 ItemStack $$3 = this.getBook().copy(); 230 float $$5 = 0.25F * (float)$$3.getStepX(); 230 float $$4 = 0.25F * (float)$$2.getStepX(); 231 float $$6 = 0.25F * (float)$$3.getStepZ(); 231 float $$5 = 0.25F * (float)$$2.getStepZ(); 232 ItemEntity $$7 = new ItemEntity( 232 ItemEntity $$6 = new ItemEntity( 233 this.level, (double)$$0.getX() + 0.5 + (double)$$5, (doubl 233 this.level, (double)$$0.getX() + 0.5 + (double)$$4, (doubl ... e)($$0.getY() + 1), (double)$$0.getZ() + 0.5 + (double)$$6, $$4 ... e)($$0.getY() + 1), (double)$$0.getZ() + 0.5 + (double)$$5, $$3 234 ); 234 ); 235 $$7.setDefaultPickUpDelay(); 235 $$6.setDefaultPickUpDelay(); 236 this.level.addFreshEntity($$7); 236 this.level.addFreshEntity($$6); 237 } 237 } 238 } 238 } 239 239 net/minecraft/advancements/critereon/SheepPredicate.java --- 1/2 --- Java 8 import net.minecraft.server.level.ServerLevel; 8 import net.minecraft.server.level.ServerLevel; 9 import net.minecraft.world.entity.Entity; 9 import net.minecraft.world.entity.Entity; 10 import net.minecraft.world.entity.animal.Sheep; 10 import net.minecraft.world.entity.animal.Sheep; 11 import net.minecraft.world.item.DyeColor; .. 12 import net.minecraft.world.phys.Vec3; 11 import net.minecraft.world.phys.Vec3; 13 12 14 public record SheepPredicate(Optional<Boolean> sheared, Optional<DyeCol 13 public record SheepPredicate(Optional<Boolean> sheared) implements Enti .. or> color) implements EntitySubPredicate { .. tySubPredicate { 15 public static final MapCodec<SheepPredicate> CODEC = RecordCodecBuil 14 public static final MapCodec<SheepPredicate> CODEC = RecordCodecBuil .. der.mapCodec( .. der.mapCodec( 16 $$0 -> $$0.group( 15 $$0 -> $$0.group(Codec.BOOL.optionalFieldOf("sheared").forGetter( .. .. SheepPredicate::sheared)).apply($$0, SheepPredicate::new) 17 Codec.BOOL.optionalFieldOf("sheared").forGetter(SheepPre .. .. dicate::sheared), .. 18 DyeColor.CODEC.optionalFieldOf("color").forGetter(SheepP .. .. redicate::color) .. 19 ) .. 20 .apply($$0, SheepPredicate::new) .. 21 ); 16 ); net/minecraft/advancements/critereon/SheepPredicate.java --- 2/2 --- Java 27 22 28 @Override 23 @Override 29 public boolean matches(Entity $$0, ServerLevel $$1, @Nullable Vec3 $ 24 public boolean matches(Entity $$0, ServerLevel $$1, @Nullable Vec3 $ .. $2) { .. $2) { 30 if ($$0 instanceof Sheep $$3) { 25 return $$0 instanceof Sheep $$3 ? !this.sheared.isPresent() || $$ .. .. 3.isSheared() == this.sheared.get() : false; 31 return this.sheared.isPresent() && $$3.isSheared() != this.she .. .. ared.get() ? false : !this.color.isPresent() || $$3.getColor() == this. .. .. color.get(); .. 32 } else { .. 33 return false; .. 34 } .. 35 } 26 } 36 27 37 public static SheepPredicate hasWool(DyeColor $$0) { 28 public static SheepPredicate hasWool() { 38 return new SheepPredicate(Optional.of(false), Optional.of($$0)); 29 return new SheepPredicate(Optional.of(false)); 39 } 30 } 40 } 31 } net/minecraft/world/entity/monster/ZombieVillager.java --- 1/2 --- Java 71 71 72 public ZombieVillager(EntityType<? extends ZombieVillager> $$0, Leve 72 public ZombieVillager(EntityType<? extends ZombieVillager> $$0, Leve .. l $$1) { .. l $$1) { 73 super($$0, $$1); 73 super($$0, $$1); 74 BuiltInRegistries.VILLAGER_PROFESSION 74 BuiltInRegistries.VILLAGER_PROFESSION.getRandom(this.random).ifPr .. .. esent($$0x -> this.setVillagerData(this.getVillagerData().withProfessio .. .. n($$0x))); 75 .getRandom(this.random) .. 76 .ifPresent($$0x -> this.setVillagerData(this.getVillagerData() .. .. .setProfession((VillagerProfession)$$0x.value()))); .. 77 } 75 } 78 76 79 @Override 77 @Override 80 protected void defineSynchedData(SynchedEntityData.Builder $$0) { 78 protected void defineSynchedData(SynchedEntityData.Builder $$0) { 81 super.defineSynchedData($$0); 79 super.defineSynchedData($$0); 82 $$0.define(DATA_CONVERTING_ID, false); 80 $$0.define(DATA_CONVERTING_ID, false); 83 $$0.define(DATA_VILLAGER_DATA, new VillagerData(VillagerType.PLAI 81 $$0.define( .. NS, VillagerProfession.NONE, 1)); .. .. 82 DATA_VILLAGER_DATA, .. 83 new VillagerData( .. 84 BuiltInRegistries.VILLAGER_TYPE.getOrThrow(VillagerType.PLA .. .. INS), BuiltInRegistries.VILLAGER_PROFESSION.getOrThrow(VillagerProfessi .. .. on.NONE), 1 .. 85 ) .. 86 ); 84 } 87 } net/minecraft/world/entity/monster/ZombieVillager.java --- 2/2 --- Java 314 @Nullable 317 @Nullable 315 @Override 318 @Override 316 public SpawnGroupData finalizeSpawn(ServerLevelAccessor $$0, Diffic 319 public SpawnGroupData finalizeSpawn(ServerLevelAccessor $$0, Diffic ... ultyInstance $$1, EntitySpawnReason $$2, @Nullable SpawnGroupData $$3) ... ultyInstance $$1, EntitySpawnReason $$2, @Nullable SpawnGroupData $$3) ... { ... { 317 this.setVillagerData(this.getVillagerData().setType(VillagerType 320 this.setVillagerData(this.getVillagerData().withType($$0.registr ... .byBiome($$0.getBiome(this.blockPosition())))); ... yAccess(), VillagerType.byBiome($$0.getBiome(this.blockPosition())))); 318 return super.finalizeSpawn($$0, $$1, $$2, $$3); 321 return super.finalizeSpawn($$0, $$1, $$2, $$3); 319 } 322 } 320 323 321 @Override 324 @Override 322 public void setVillagerData(VillagerData $$0) { 325 public void setVillagerData(VillagerData $$0) { 323 VillagerData $$1 = this.getVillagerData(); 326 VillagerData $$1 = this.getVillagerData(); 324 if ($$1.getProfession() != $$0.getProfession()) { 327 if (!$$1.profession().equals($$0.profession())) { 325 this.tradeOffers = null; 328 this.tradeOffers = null; 326 } 329 } 327 330 net/minecraft/world/level/block/entity/StructureBlockEntity.java --- 1/3 --- Java 31 import net.minecraft.world.level.levelgen.structure.templatesystem.Stru 31 import net.minecraft.world.level.levelgen.structure.templatesystem.Stru .. ctureTemplate; .. ctureTemplate; 32 import net.minecraft.world.level.levelgen.structure.templatesystem.Stru 32 import net.minecraft.world.level.levelgen.structure.templatesystem.Stru .. ctureTemplateManager; .. ctureTemplateManager; 33 33 34 public class StructureBlockEntity extends BlockEntity { 34 public class StructureBlockEntity extends BlockEntity implements Boundi .. .. ngBoxRenderable { 35 private static final int SCAN_CORNER_BLOCKS_RANGE = 5; 35 private static final int SCAN_CORNER_BLOCKS_RANGE = 5; 36 public static final int MAX_OFFSET_PER_AXIS = 48; 36 public static final int MAX_OFFSET_PER_AXIS = 48; 37 public static final int MAX_SIZE_PER_AXIS = 48; 37 public static final int MAX_SIZE_PER_AXIS = 48; net/minecraft/world/level/block/entity/StructureBlockEntity.java --- 2/3 --- Java 323 return this.mode != StructureMode.SAVE ? false : this.saveStruct 323 return this.mode != StructureMode.SAVE ? false : this.saveStruct ... ure(true); ... ure(true); 324 } 324 } 325 325 326 public boolean saveStructure(boolean $$0) { 326 public boolean saveStructure(boolean $$0) { 327 if (this.structureName == null) { 327 if (this.structureName != null && this.level instanceof ServerLe ... ... vel $$1) { 328 return false; 328 BlockPos var4 = this.getBlockPos().offset(this.structurePos); 329 } else { 329 return saveStructure($$1, this.structureName, var4, this.stru ... ... ctureSize, this.ignoreEntities, this.author, $$0); ... 330 } else { ... 331 return false; ... 332 } ... 333 } ... 334 330 BlockPos $$1 = this.getBlockPos().offset(this.structurePos); 335 public static boolean saveStructure(ServerLevel $$0, ResourceLocati ... ... on $$1, BlockPos $$2, Vec3i $$3, boolean $$4, String $$5, boolean $$6) ... ... { 331 ServerLevel $$2 = (ServerLevel)this.level; ... 332 StructureTemplateManager $$3 = $$2.getStructureManager(); 336 StructureTemplateManager $$7 = $$0.getStructureManager(); 333 337 334 StructureTemplate $$4; 338 StructureTemplate $$8; 335 try { 339 try { 336 $$4 = $$3.getOrCreate(this.structureName); 340 $$8 = $$7.getOrCreate($$1); 337 } catch (ResourceLocationException var8) { 341 } catch (ResourceLocationException var11) { 338 return false; 342 return false; 339 } 343 } 340 344 341 $$4.fillFromWorld(this.level, $$1, this.structureSize, !this. 345 $$8.fillFromWorld($$0, $$2, $$3, !$$4, Blocks.STRUCTURE_VOID); ... ignoreEntities, Blocks.STRUCTURE_VOID); ... 342 $$4.setAuthor(this.author); 346 $$8.setAuthor($$5); 343 if ($$0) { 347 if ($$6) { 344 try { 348 try { 345 return $$3.save(this.structureName); 349 return $$7.save($$1); 346 } catch (ResourceLocationException var7) { 350 } catch (ResourceLocationException var10) { 347 return false; 351 return false; 348 } 352 } 349 } else { 353 } else { 350 return true; 354 return true; 351 } 355 } 352 } 356 } 353 } ... 354 357 355 public static RandomSource createRandom(long $$0) { 358 public static RandomSource createRandom(long $$0) { 356 return $$0 == 0L ? RandomSource.create(Util.getMillis()) : Rando 359 return $$0 == 0L ? RandomSource.create(Util.getMillis()) : Rando mSource.create($$0); mSource.create($$0); net/minecraft/world/level/block/entity/StructureBlockEntity.java --- 3/3 --- Java 463 this.showBoundingBox = $$0; 466 this.showBoundingBox = $$0; 464 } 467 } ... 468 ... 469 @Override ... 470 public BoundingBoxRenderable.Mode renderMode() { ... 471 if (this.mode != StructureMode.SAVE && this.mode != StructureMod ... ... e.LOAD) { ... 472 return BoundingBoxRenderable.Mode.NONE; ... 473 } else if (this.mode == StructureMode.SAVE && this.showAir) { ... 474 return BoundingBoxRenderable.Mode.BOX_AND_INVISIBLE_BLOCKS; ... 475 } else { ... 476 return this.mode != StructureMode.SAVE && !this.showBoundingB ... ... ox ? BoundingBoxRenderable.Mode.NONE : BoundingBoxRenderable.Mode.BOX; ... 477 } ... 478 } ... 479 ... 480 @Override ... 481 public BoundingBoxRenderable.RenderableBox getRenderableBox() { ... 482 BlockPos $$0 = this.getStructurePos(); ... 483 Vec3i $$1 = this.getStructureSize(); ... 484 int $$2 = $$0.getX(); ... 485 int $$3 = $$0.getZ(); ... 486 int $$4 = $$0.getY(); ... 487 int $$5 = $$4 + $$1.getY(); ... 488 int $$6; ... 489 int $$7; ... 490 switch (this.mirror) { ... 491 case LEFT_RIGHT: ... 492 $$6 = $$1.getX(); ... 493 $$7 = -$$1.getZ(); ... 494 break; ... 495 case FRONT_BACK: ... 496 $$6 = -$$1.getX(); ... 497 $$7 = $$1.getZ(); ... 498 break; ... 499 default: ... 500 $$6 = $$1.getX(); ... 501 $$7 = $$1.getZ(); ... 502 } ... 503 ... 504 int $$24; ... 505 int $$25; ... 506 int $$26; ... 507 int $$27; ... 508 switch (this.rotation) { ... 509 case CLOCKWISE_90: ... 510 $$24 = $$7 < 0 ? $$2 : $$2 + 1; ... 511 $$25 = $$6 < 0 ? $$3 + 1 : $$3; ... 512 $$26 = $$24 - $$7; ... 513 $$27 = $$25 + $$6; ... 514 break; ... 515 case CLOCKWISE_180: ... 516 $$24 = $$6 < 0 ? $$2 : $$2 + 1; ... 517 $$25 = $$7 < 0 ? $$3 : $$3 + 1; ... 518 $$26 = $$24 - $$6; ... 519 $$27 = $$25 - $$7; ... 520 break; ... 521 case COUNTERCLOCKWISE_90: ... 522 $$24 = $$7 < 0 ? $$2 + 1 : $$2; ... 523 $$25 = $$6 < 0 ? $$3 : $$3 + 1; ... 524 $$26 = $$24 + $$7; ... 525 $$27 = $$25 - $$6; ... 526 break; ... 527 default: ... 528 $$24 = $$6 < 0 ? $$2 + 1 : $$2; ... 529 $$25 = $$7 < 0 ? $$3 + 1 : $$3; ... 530 $$26 = $$24 + $$6; ... 531 $$27 = $$25 + $$7; ... 532 } ... 533 ... 534 return BoundingBoxRenderable.RenderableBox.fromCorners($$24, $$4 ... ... , $$25, $$26, $$5, $$27); ... 535 } 465 536 466 public static enum UpdateType { 537 public static enum UpdateType { 467 UPDATE_DATA, 538 UPDATE_DATA, net/minecraft/world/level/block/entity/BoundingBoxRenderable.java --- Java 1 package net.minecraft.world.level.block.entity; 2 3 import net.minecraft.core.BlockPos; 4 import net.minecraft.core.Vec3i; 5 6 public interface BoundingBoxRenderable { 7 BoundingBoxRenderable.Mode renderMode(); 8 9 BoundingBoxRenderable.RenderableBox getRenderableBox(); 10 11 public static enum Mode { 12 NONE, 13 BOX, 14 BOX_AND_INVISIBLE_BLOCKS; 15 } 16 17 public static record RenderableBox(BlockPos localPos, Vec3i size) { 18 public static BoundingBoxRenderable.RenderableBox fromCorners(int $$0, int $$1, int $$2, int $$3, int $$4, int $$5) { 19 int $$6 = Math.min($$0, $$3); 20 int $$7 = Math.min($$1, $$4); 21 int $$8 = Math.min($$2, $$5); 22 return new BoundingBoxRenderable.RenderableBox( 23 new BlockPos($$6, $$7, $$8), new Vec3i(Math.max($$0, $$3) - $$6, Math.max($$1, $$4) - $$7, Math.max($$2, $$5) - $$8) 24 ); 25 } 26 } 27 } 28 net/minecraft/util/datafix/schemas/V501.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "PolarBear", () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, "PolarBear"); 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/util/datafix/schemas/V1458.java --- Java 18 $$0.registerType( 18 $$0.registerType( 19 true, 19 true, 20 References.ENTITY, 20 References.ENTITY, 21 () -> DSL.optionalFields("CustomName", References.TEXT_COMPONE 21 () -> DSL.and( .. NT.in($$0), DSL.taggedChoiceLazy("id", namespacedString(), $$1)) .. .. 22 References.ENTITY_EQUIPMENT.in($$0), .. 23 DSL.optionalFields("CustomName", References.TEXT_COMPONE .. .. NT.in($$0), DSL.taggedChoiceLazy("id", namespacedString(), $$1)) .. 24 ) 22 ); 25 ); 23 } 26 } 24 27 net/minecraft/util/datafix/schemas/V1801.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:illager_beast", () -> V100.equipment 16 $$0.registerSimple($$1, "minecraft:illager_beast"); .. ($$0)); .. 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java --- 1/2 --- Java 2 2 3 import javax.annotation.Nullable; 3 import javax.annotation.Nullable; 4 import net.minecraft.core.BlockPos; 4 import net.minecraft.core.BlockPos; . 5 import net.minecraft.core.component.DataComponentGetter; 5 import net.minecraft.core.component.DataComponentMap; 6 import net.minecraft.core.component.DataComponentMap; 6 import net.minecraft.core.component.DataComponents; 7 import net.minecraft.core.component.DataComponents; 7 import net.minecraft.nbt.CompoundTag; 8 import net.minecraft.nbt.CompoundTag; net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java --- 2/2 --- Java 92 } 93 } 93 94 94 @Override 95 @Override 95 protected void applyImplicitComponents(BlockEntity.DataComponentInpu 96 protected void applyImplicitComponents(DataComponentGetter $$0) { .. t $$0) { .. 96 super.applyImplicitComponents($$0); 97 super.applyImplicitComponents($$0); 97 SeededContainerLoot $$1 = $$0.get(DataComponents.CONTAINER_LOOT); 98 SeededContainerLoot $$1 = $$0.get(DataComponents.CONTAINER_LOOT); 98 if ($$1 != null) { 99 if ($$1 != null) { net/minecraft/util/datafix/schemas/V3326.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:sniffer", () -> V100.equipment($$0)) 16 $$0.registerSimple($$1, "minecraft:sniffer"); .. ; .. 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/util/datafix/schemas/V3808_1.java --- Java 18 $$0.register( 18 $$0.register( 19 $$1, 19 $$1, "minecraft:llama", $$1x -> DSL.optionalFields("Items", DS .. .. L.list(References.ITEM_STACK.in($$0)), "SaddleItem", References.ITEM_ST .. .. ACK.in($$0)) 20 "minecraft:llama", .. 21 $$1x -> DSL.optionalFields("Items", DSL.list(References.ITEM_S .. .. TACK.in($$0)), "SaddleItem", References.ITEM_STACK.in($$0), V100.equipm .. .. ent($$0)) .. 22 ); 20 ); 23 return $$1; 21 return $$1; 24 } 22 } net/minecraft/world/entity/monster/Creeper.java --- Java 78 } 78 } 79 79 80 @Override 80 @Override 81 public boolean causeFallDamage(float $$0, float $$1, DamageSource $$ 81 public boolean causeFallDamage(double $$0, float $$1, DamageSource $ .. 2) { .. $2) { 82 boolean $$3 = super.causeFallDamage($$0, $$1, $$2); 82 boolean $$3 = super.causeFallDamage($$0, $$1, $$2); 83 this.swell += (int)($$0 * 1.5F); 83 this.swell += (int)($$0 * 1.5); 84 if (this.swell > this.maxSwell - 5) { 84 if (this.swell > this.maxSwell - 5) { 85 this.swell = this.maxSwell - 5; 85 this.swell = this.maxSwell - 5; 86 } 86 } net/minecraft/gametest/framework/TestFunctionFinder.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.util.stream.Stream; 4 5 @FunctionalInterface 6 public interface TestFunctionFinder { 7 Stream<TestFunction> findTestFunctions(); 8 } 9 net/minecraft/util/datafix/schemas/V702.java --- Java 18 $$0.register( 18 $$0.register($$1, "ZombieVillager", $$1x -> DSL.optionalFields("O .. .. ffers", DSL.optionalFields("Recipes", DSL.list(References.VILLAGER_TRAD .. .. E.in($$0))))); 19 $$1, .. 20 "ZombieVillager", .. 21 $$1x -> DSL.optionalFields("Offers", DSL.optionalFields("Recip .. .. es", DSL.list(References.VILLAGER_TRADE.in($$0))), V100.equipment($$0)) .. 22 ); .. 23 $$0.register($$1, "Husk", () -> V100.equipment($$0)); 19 $$0.registerSimple($$1, "Husk"); 24 return $$1; 20 return $$1; 25 } 21 } 26 } 22 } net/minecraft/world/level/block/entity/BlockEntity.java --- 1/5 --- Java 8 import net.minecraft.CrashReportCategory; 8 import net.minecraft.CrashReportCategory; 9 import net.minecraft.core.BlockPos; 9 import net.minecraft.core.BlockPos; 10 import net.minecraft.core.HolderLookup; 10 import net.minecraft.core.HolderLookup; .. 11 import net.minecraft.core.component.DataComponentGetter; 11 import net.minecraft.core.component.DataComponentMap; 12 import net.minecraft.core.component.DataComponentMap; 12 import net.minecraft.core.component.DataComponentPatch; 13 import net.minecraft.core.component.DataComponentPatch; 13 import net.minecraft.core.component.DataComponentType; 14 import net.minecraft.core.component.DataComponentType; net/minecraft/world/level/block/entity/BlockEntity.java --- 2/5 --- Java 217 this.remove = false; 218 this.remove = false; 218 } 219 } 219 220 220 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1, bool 221 public void preRemoveSideEffects(BlockPos $$0, BlockState $$1) { ... ean $$2) { ... 221 if (this instanceof Container $$3 && this.level != null) { 222 if (this instanceof Container $$2 && this.level != null) { 222 Containers.dropContents(this.level, $$0, $$3); 223 Containers.dropContents(this.level, $$0, $$2); 223 } 224 } 224 } 225 } 225 226 net/minecraft/world/level/block/entity/BlockEntity.java --- 3/5 --- Java 249 this.blockState = $$0; 250 this.blockState = $$0; 250 } 251 } 251 252 252 protected void applyImplicitComponents(BlockEntity.DataComponentInp 253 protected void applyImplicitComponents(DataComponentGetter $$0) { ... ut $$0) { ... 253 } 254 } 254 255 255 public final void applyComponentsFromItemStack(ItemStack $$0) { 256 public final void applyComponentsFromItemStack(ItemStack $$0) { net/minecraft/world/level/block/entity/BlockEntity.java --- 4/5 --- Java 261 $$2.add(DataComponents.BLOCK_ENTITY_DATA); 262 $$2.add(DataComponents.BLOCK_ENTITY_DATA); 262 $$2.add(DataComponents.BLOCK_STATE); 263 $$2.add(DataComponents.BLOCK_STATE); 263 final DataComponentMap $$3 = PatchedDataComponentMap.fromPatch($ 264 final DataComponentMap $$3 = PatchedDataComponentMap.fromPatch($ ... $0, $$1); ... $0, $$1); 264 this.applyImplicitComponents(new BlockEntity.DataComponentInput( 265 this.applyImplicitComponents(new DataComponentGetter() { ... ) { ... 265 @Nullable 266 @Nullable 266 @Override 267 @Override 267 public <T> T get(DataComponentType<T> $$0) { 268 public <T> T get(DataComponentType<? extends T> $$0) { 268 $$2.add($$0); 269 $$2.add($$0); 269 return $$3.get($$0); 270 return $$3.get($$0); 270 } 271 } net/minecraft/world/level/block/entity/BlockEntity.java --- 5/5 --- Java 318 } 319 } 319 } 320 } 320 ... 321 protected interface DataComponentInput { ... 322 @Nullable ... 323 <T> T get(DataComponentType<T> var1); ... 324 ... 325 <T> T getOrDefault(DataComponentType<? extends T> var1, T var2); ... 326 } ... 327 } 321 } net/minecraft/util/datafix/schemas/V4071.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:creaking", () -> V100.equipment($$0) 16 $$0.registerSimple($$1, "minecraft:creaking"); .. ); .. 17 $$0.register($$1, "minecraft:creaking_transient", () -> V100.equi 17 $$0.registerSimple($$1, "minecraft:creaking_transient"); .. pment($$0)); .. 18 return $$1; 18 return $$1; 19 } 19 } 20 20 net/minecraft/world/level/levelgen/structure/structures/OceanMonumentPieces.java --- Java 1463 ElderGuardian $$6 = EntityType.ELDER_GUARDIAN.create($$0. 1463 ElderGuardian $$6 = EntityType.ELDER_GUARDIAN.create($$0. .... getLevel(), EntitySpawnReason.STRUCTURE); .... getLevel(), EntitySpawnReason.STRUCTURE); 1464 if ($$6 != null) { 1464 if ($$6 != null) { 1465 $$6.heal($$6.getMaxHealth()); 1465 $$6.heal($$6.getMaxHealth()); 1466 $$6.moveTo((double)$$5.getX() + 0.5, (double)$$5.getY( 1466 $$6.snapTo((double)$$5.getX() + 0.5, (double)$$5.getY( .... ), (double)$$5.getZ() + 0.5, 0.0F, 0.0F); .... ), (double)$$5.getZ() + 0.5, 0.0F, 0.0F); 1467 $$6.finalizeSpawn($$0, $$0.getCurrentDifficultyAt($$6. 1467 $$6.finalizeSpawn($$0, $$0.getCurrentDifficultyAt($$6. .... blockPosition()), EntitySpawnReason.STRUCTURE, null); .... blockPosition()), EntitySpawnReason.STRUCTURE, null); 1468 $$0.addFreshEntityWithPassengers($$6); 1468 $$0.addFreshEntityWithPassengers($$6); 1469 } 1469 } net/minecraft/gametest/framework/LogTestReporter.java --- Java 9 9 10 @Override 10 @Override 11 public void onTestFailed(GameTestInfo $$0) { 11 public void onTestFailed(GameTestInfo $$0) { 12 String $$1 = $$0.getTestOrigin().toShortString(); 12 String $$1 = $$0.getTestBlockPos().toShortString(); 13 if ($$0.isRequired()) { 13 if ($$0.isRequired()) { 14 LOGGER.error("{} failed at {}! {}", $$0.getTestName(), $$1, Ut 14 LOGGER.error("{} failed at {}! {}", $$0.id(), $$1, Util.descri .. il.describeError($$0.getError())); .. beError($$0.getError())); 15 } else { 15 } else { 16 LOGGER.warn("(optional) {} failed at {}. {}", $$0.getTestName( 16 LOGGER.warn("(optional) {} failed at {}. {}", $$0.id(), $$1, U .. ), $$1, Util.describeError($$0.getError())); .. til.describeError($$0.getError())); 17 } 17 } 18 } 18 } 19 19 net/minecraft/gametest/framework/GameTestInfo.java --- 1/9 --- Java 8 import it.unimi.dsi.fastutil.objects.Object2LongMap.Entry; 8 import it.unimi.dsi.fastutil.objects.Object2LongMap.Entry; 9 import java.util.Collection; 9 import java.util.Collection; 10 import java.util.List; 10 import java.util.List; .. 11 import java.util.Objects; .. 12 import java.util.Optional; 11 import java.util.concurrent.TimeUnit; 13 import java.util.concurrent.TimeUnit; 12 import java.util.stream.Stream; 14 import java.util.stream.Stream; 13 import javax.annotation.Nullable; 15 import javax.annotation.Nullable; 14 import net.minecraft.core.BlockPos; 16 import net.minecraft.core.BlockPos; .. 17 import net.minecraft.core.Holder; .. 18 import net.minecraft.core.Vec3i; .. 19 import net.minecraft.resources.ResourceKey; .. 20 import net.minecraft.resources.ResourceLocation; 15 import net.minecraft.server.level.ServerLevel; 21 import net.minecraft.server.level.ServerLevel; 16 import net.minecraft.world.entity.Entity; 22 import net.minecraft.world.entity.Entity; 17 import net.minecraft.world.entity.player.Player; 23 import net.minecraft.world.entity.player.Player; .. 24 import net.minecraft.world.level.block.Blocks; 18 import net.minecraft.world.level.block.Rotation; 25 import net.minecraft.world.level.block.Rotation; 19 import net.minecraft.world.level.block.entity.StructureBlockEntity; 26 import net.minecraft.world.level.block.entity.TestInstanceBlockEntity; 20 import net.minecraft.world.level.levelgen.structure.BoundingBox; 27 import net.minecraft.world.level.levelgen.structure.BoundingBox; 21 import net.minecraft.world.phys.AABB; 28 import net.minecraft.world.phys.AABB; 22 29 23 public class GameTestInfo { 30 public class GameTestInfo { 24 private final TestFunction testFunction; 31 private final Holder.Reference<GameTestInstance> test; 25 @Nullable .. 26 private BlockPos structureBlockPos; .. 27 @Nullable 32 @Nullable 28 private BlockPos northWestCorner; 33 private BlockPos testBlockPos; 29 private final ServerLevel level; 34 private final ServerLevel level; 30 private final Collection<GameTestListener> listeners = Lists.newArr 35 private final Collection<GameTestListener> listeners = Lists.newArr .. ayList(); .. ayList(); 31 private final int timeoutTicks; 36 private final int timeoutTicks; 32 private final Collection<GameTestSequence> sequences = Lists.newCop 37 private final Collection<GameTestSequence> sequences = Lists.newCop .. yOnWriteArrayList(); .. yOnWriteArrayList(); 33 private final Object2LongMap<Runnable> runAtTickTimeMap = new Objec 38 private final Object2LongMap<Runnable> runAtTickTimeMap = new Objec .. t2LongOpenHashMap<>(); .. t2LongOpenHashMap<>(); 34 private long startTick; .. 35 private int ticksToWaitForChunkLoading = 20; .. 36 private boolean placedStructure; 39 private boolean placedStructure; 37 private boolean chunksLoaded; 40 private boolean chunksLoaded; 38 private long tickCount; 41 private int tickCount; 39 private boolean started; 42 private boolean started; 40 private final RetryOptions retryOptions; 43 private final RetryOptions retryOptions; 41 private final Stopwatch timer = Stopwatch.createUnstarted(); 44 private final Stopwatch timer = Stopwatch.createUnstarted(); 42 private boolean done; 45 private boolean done; 43 private final Rotation rotation; 46 private final Rotation extraRotation; 44 @Nullable 47 @Nullable 45 private Throwable error; 48 private Throwable error; 46 @Nullable 49 @Nullable 47 private StructureBlockEntity structureBlockEntity; 50 private TestInstanceBlockEntity testInstanceBlockEntity; 48 51 49 public GameTestInfo(TestFunction $$0, Rotation $$1, ServerLevel $$2 52 public GameTestInfo(Holder.Reference<GameTestInstance> $$0, Rotatio .. , RetryOptions $$3) { .. n $$1, ServerLevel $$2, RetryOptions $$3) { 50 this.testFunction = $$0; 53 this.test = $$0; 51 this.level = $$2; 54 this.level = $$2; 52 this.retryOptions = $$3; 55 this.retryOptions = $$3; 53 this.timeoutTicks = $$0.maxTicks(); 56 this.timeoutTicks = $$0.value().maxTicks(); 54 this.rotation = $$0.rotation().getRotated($$1); 57 this.extraRotation = $$1; 55 } 58 } 56 59 57 void setStructureBlockPos(BlockPos $$0) { 60 public void setTestBlockPos(@Nullable BlockPos $$0) { 58 this.structureBlockPos = $$0; 61 this.testBlockPos = $$0; 59 } 62 } 60 63 61 public GameTestInfo startExecution(int $$0) { 64 public GameTestInfo startExecution(int $$0) { 62 this.startTick = this.level.getGameTime() + this.testFunction.se 65 this.tickCount = -(this.test.value().setupTicks() + $$0 + 1); .. tupTicks() + (long)$$0; .. 63 this.timer.start(); .. 64 return this; 66 return this; 65 } 67 } 66 68 67 public GameTestInfo placeStructure() { 69 public void placeStructure() { 68 if (this.placedStructure) { 70 if (!this.placedStructure) { 69 return this; 71 TestInstanceBlockEntity $$0 = this.getTestInstanceBlockEntity .. .. (); 70 } else { 72 if (!$$0.placeStructure()) { 71 this.ticksToWaitForChunkLoading = 0; 73 this.fail(new IllegalStateException("Failed to place test .. .. structure for " + $$0.getTestName())); .. 74 } .. 75 72 this.placedStructure = true; 76 this.placedStructure = true; 73 StructureBlockEntity $$0 = this.getStructureBlockEntity(); 77 $$0.encaseStructure(); 74 $$0.placeStructure(this.level); .. 75 BoundingBox $$1 = StructureUtils.getStructureBoundingBox($$0) 78 BoundingBox $$1 = $$0.getStructureBoundingBox(); .. ; .. 76 this.level.getBlockTicks().clearArea($$1); 79 this.level.getBlockTicks().clearArea($$1); 77 this.level.clearBlockEvents($$1); 80 this.level.clearBlockEvents($$1); 78 return this; 81 this.listeners.forEach($$0x -> $$0x.testStructureLoaded(this) .. .. ); 79 } 82 } 80 } 83 } 81 .. 82 private boolean ensureStructureIsPlaced() { .. 83 if (this.placedStructure) { .. 84 return true; .. 85 } else if (this.ticksToWaitForChunkLoading > 0) { .. 86 this.ticksToWaitForChunkLoading--; .. 87 return false; .. 88 } else { .. 89 this.placeStructure().startExecution(0); .. 90 return true; .. 91 } .. 92 } .. 93 84 94 public void tick(GameTestRunner $$0) { 85 public void tick(GameTestRunner $$0) { 95 if (!this.isDone()) { 86 if (!this.isDone()) { .. 87 if (!this.placedStructure) { .. 88 this.fail(new IllegalStateException("Ticking test before p .. .. lacing structure")); .. 89 } .. 90 96 if (this.structureBlockEntity == null) { 91 if (this.testInstanceBlockEntity == null) { 97 this.fail(new IllegalStateException("Running test without 92 this.fail(new IllegalStateException("Running test without .. structure block entity")); .. structure block entity")); 98 } 93 } 99 94 100 if (this.chunksLoaded 95 if (this.chunksLoaded || this.testInstanceBlockEntity.getStru ... .. ctureBoundingBox().intersectingChunks().allMatch(this.level::areEntiti ... .. esActuallyTicking)) { 101 || StructureUtils.getStructureBoundingBox(this.structureBl .. ... ockEntity) .. 102 .intersectingChunks() .. 103 .allMatch($$0x -> this.level.isPositionEntityTicking($$ .. ... 0x.getWorldPosition()))) { .. 104 this.chunksLoaded = true; 96 this.chunksLoaded = true; 105 if (this.ensureStructureIsPlaced()) { .. 106 this.tickInternal(); 97 this.tickInternal(); 107 if (this.isDone()) { 98 if (this.isDone()) { 108 if (this.error != null) { 99 if (this.error != null) { net/minecraft/gametest/framework/GameTestInfo.java --- 2/9 --- Java 111 this.listeners.forEach($$1 -> $$1.testPassed(this 102 this.listeners.forEach($$1 -> $$1.testPassed(this, $ ... , $$0)); ... $0)); 112 } 103 } 113 } 104 } 114 } ... 115 } 105 } 116 } 106 } 117 } 107 } 118 108 119 private void tickInternal() { 109 private void tickInternal() { 120 this.tickCount = this.level.getGameTime() - this.startTick; 110 this.tickCount++; 121 if (this.tickCount >= 0L) { 111 if (this.tickCount >= 0) { 122 if (!this.started) { 112 if (!this.started) { 123 this.startTest(); 113 this.startTest(); 124 } 114 } net/minecraft/gametest/framework/GameTestInfo.java --- 3/9 --- Java 127 117 128 while ($$0.hasNext()) { 118 while ($$0.hasNext()) { 129 Entry<Runnable> $$1 = $$0.next(); 119 Entry<Runnable> $$1 = $$0.next(); 130 if ($$1.getLongValue() <= this.tickCount) { 120 if ($$1.getLongValue() <= (long)this.tickCount) { 131 try { 121 try { 132 $$1.getKey().run(); 122 $$1.getKey().run(); 133 } catch (Exception var4) { 123 } catch (Exception var4) { net/minecraft/gametest/framework/GameTestInfo.java --- 4/9 --- Java 138 } 128 } 139 } 129 } 140 130 141 if (this.tickCount > (long)this.timeoutTicks) { 131 if (this.tickCount > this.timeoutTicks) { 142 if (this.sequences.isEmpty()) { 132 if (this.sequences.isEmpty()) { 143 this.fail(new GameTestTimeoutException("Didn't succeed 133 this.fail(new GameTestTimeoutException("Didn't succeed ... or fail within " + this.testFunction.maxTicks() + " ticks")); ... or fail within " + this.test.value().maxTicks() + " ticks")); 144 } else { 134 } else { 145 this.sequences.forEach($$0x -> $$0x.tickAndFailIfNotCom 135 this.sequences.forEach($$0x -> $$0x.tickAndFailIfNotCom ... plete(this.tickCount)); ... plete(this.tickCount)); 146 if (this.error == null) { 136 if (this.error == null) { net/minecraft/gametest/framework/GameTestInfo.java --- 5/9 --- Java 156 private void startTest() { 146 private void startTest() { 157 if (!this.started) { 147 if (!this.started) { 158 this.started = true; 148 this.started = true; ... 149 this.getTestInstanceBlockEntity().setRunning(); 159 150 160 try { 151 try { 161 this.testFunction.run(new GameTestHelper(this)); 152 this.test.value().run(new GameTestHelper(this)); 162 } catch (Exception var2) { 153 } catch (Exception var2) { 163 this.fail(var2); 154 this.fail(var2); 164 } 155 } net/minecraft/gametest/framework/GameTestInfo.java --- 6/9 --- Java 169 this.runAtTickTimeMap.put($$1, $$0); 160 this.runAtTickTimeMap.put($$1, $$0); 170 } 161 } 171 162 172 public String getTestName() { 163 public ResourceLocation id() { 173 return this.testFunction.testName(); 164 return this.test.key().location(); 174 } 165 } 175 166 176 @Nullable 167 @Nullable 177 public BlockPos getStructureBlockPos() { 168 public BlockPos getTestBlockPos() { 178 return this.structureBlockPos; 169 return this.testBlockPos; 179 } 170 } 180 171 181 public BlockPos getTestOrigin() { 172 public BlockPos getTestOrigin() { 182 return StructureUtils.getStructureOrigin(this.structureBlockEnti 173 return this.testInstanceBlockEntity.getStartCorner(); ... ty); ... 183 } 174 } 184 175 185 public AABB getStructureBounds() { 176 public AABB getStructureBounds() { 186 StructureBlockEntity $$0 = this.getStructureBlockEntity(); 177 TestInstanceBlockEntity $$0 = this.getTestInstanceBlockEntity(); 187 return StructureUtils.getStructureBounds($$0); 178 return $$0.getStructureBounds(); 188 } 179 } 189 180 190 public StructureBlockEntity getStructureBlockEntity() { 181 public TestInstanceBlockEntity getTestInstanceBlockEntity() { 191 if (this.structureBlockEntity == null) { 182 if (this.testInstanceBlockEntity == null) { 192 if (this.structureBlockPos == null) { 183 if (this.testBlockPos == null) { 193 throw new IllegalStateException("Could not find a structur 184 throw new IllegalStateException("This GameTestInfo has no ... eBlockEntity for this GameTestInfo"); ... position"); 194 } 185 } 195 186 196 this.structureBlockEntity = (StructureBlockEntity)this.level. 187 if (this.level.getBlockEntity(this.testBlockPos) instanceof T ... getBlockEntity(this.structureBlockPos); ... estInstanceBlockEntity $$0) { ... 188 this.testInstanceBlockEntity = $$0; ... 189 } ... 190 197 if (this.structureBlockEntity == null) { 191 if (this.testInstanceBlockEntity == null) { 198 throw new IllegalStateException("Could not find a structur 192 throw new IllegalStateException("Could not find a test ins ... eBlockEntity at the given coordinate " + this.structureBlockPos); ... tance block entity at the given coordinate " + this.testBlockPos); 199 } 193 } 200 } 194 } 201 195 202 return this.structureBlockEntity; 196 return this.testInstanceBlockEntity; 203 } 197 } 204 198 205 public ServerLevel getLevel() { 199 public ServerLevel getLevel() { net/minecraft/gametest/framework/GameTestInfo.java --- 7/9 --- Java 256 250 257 @Override 251 @Override 258 public String toString() { 252 public String toString() { 259 return this.getTestName(); 253 return this.id().toString(); 260 } 254 } 261 255 262 public void addListener(GameTestListener $$0) { 256 public void addListener(GameTestListener $$0) { 263 this.listeners.add($$0); 257 this.listeners.add($$0); 264 } 258 } 265 259 266 public GameTestInfo prepareTestStructure() { 260 public GameTestInfo prepareTestStructure() { ... 261 this.testInstanceBlockEntity = this.createTestInstanceBlock(Obje ... ... cts.requireNonNull(this.testBlockPos), this.extraRotation, this.level) ... ... ; ... 262 this.placeStructure(); ... 263 return this; ... 264 } ... 265 ... 266 private TestInstanceBlockEntity createTestInstanceBlock(BlockPos $$ ... ... 0, Rotation $$1, ServerLevel $$2) { 267 BlockPos $$0 = this.getOrCalculateNorthwestCorner(); 267 $$2.setBlockAndUpdate($$0, Blocks.TEST_INSTANCE_BLOCK.defaultBlo ... ... ckState()); 268 this.structureBlockEntity = StructureUtils.prepareTestStructure( 268 TestInstanceBlockEntity $$3 = Objects.requireNonNull((TestInstan ... this, $$0, this.getRotation(), this.level); ... ceBlockEntity)$$2.getBlockEntity($$0)); 269 this.structureBlockPos = this.structureBlockEntity.getBlockPos() 269 ResourceKey<GameTestInstance> $$4 = this.getTestHolder().key(); ... ; ... 270 StructureUtils.addCommandBlockAndButtonToStartTest(this.structur 270 Vec3i $$5 = TestInstanceBlockEntity.getStructureSize($$2, $$4).o ... eBlockPos, new BlockPos(1, 0, -1), this.getRotation(), this.level); ... rElse(new Vec3i(1, 1, 1)); 271 StructureUtils.encaseStructure(this.getStructureBounds(), this.l 271 $$3.set(new TestInstanceBlockEntity.Data(Optional.of($$4), $$5, ... evel, !this.testFunction.skyAccess()); ... $$1, false, TestInstanceBlockEntity.Status.CLEARED, Optional.empty())) ... ... ; 272 this.listeners.forEach($$0x -> $$0x.testStructureLoaded(this)); ... 273 return this; 272 return $$3; 274 } 273 } 275 274 276 long getTick() { 275 int getTick() { 277 return this.tickCount; 276 return this.tickCount; 278 } 277 } 279 278 net/minecraft/gametest/framework/GameTestInfo.java --- 8/9 --- Java 284 } 283 } 285 284 286 public boolean isRequired() { 285 public boolean isRequired() { 287 return this.testFunction.required(); 286 return this.test.value().required(); 288 } 287 } 289 288 290 public boolean isOptional() { 289 public boolean isOptional() { 291 return !this.testFunction.required(); 290 return !this.test.value().required(); 292 } 291 } 293 292 294 public String getStructureName() { 293 public ResourceLocation getStructure() { 295 return this.testFunction.structureName(); 294 return this.test.value().structure(); 296 } 295 } 297 296 298 public Rotation getRotation() { 297 public Rotation getRotation() { 299 return this.rotation; 298 return this.test.value().info().rotation().getRotated(this.extra ... ... Rotation); 300 } 299 } ... 300 ... 301 public GameTestInstance getTest() { ... 302 return this.test.value(); ... 303 } 301 304 302 public TestFunction getTestFunction() { 305 public Holder.Reference<GameTestInstance> getTestHolder() { 303 return this.testFunction; 306 return this.test; 304 } 307 } 305 308 306 public int getTimeoutTicks() { 309 public int getTimeoutTicks() { 307 return this.timeoutTicks; 310 return this.timeoutTicks; 308 } 311 } 309 312 310 public boolean isFlaky() { 313 public boolean isFlaky() { 311 return this.testFunction.isFlaky(); 314 return this.test.value().maxAttempts() > 1; 312 } 315 } 313 316 314 public int maxAttempts() { 317 public int maxAttempts() { 315 return this.testFunction.maxAttempts(); 318 return this.test.value().maxAttempts(); 316 } 319 } 317 320 318 public int requiredSuccesses() { 321 public int requiredSuccesses() { 319 return this.testFunction.requiredSuccesses(); 322 return this.test.value().requiredSuccesses(); 320 } 323 } 321 324 322 public RetryOptions retryOptions() { 325 public RetryOptions retryOptions() { net/minecraft/gametest/framework/GameTestInfo.java --- 9/9 --- Java 328 } 331 } 329 332 330 public GameTestInfo copyReset() { 333 public GameTestInfo copyReset() { 331 GameTestInfo $$0 = new GameTestInfo(this.testFunction, this.rota 334 GameTestInfo $$0 = new GameTestInfo(this.test, this.extraRotatio ... tion, this.level, this.retryOptions()); ... n, this.level, this.retryOptions()); 332 if (this.northWestCorner != null) { 335 if (this.testBlockPos != null) { 333 $$0.setNorthWestCorner(this.northWestCorner); 336 $$0.setTestBlockPos(this.testBlockPos); 334 } 337 } 335 ... 336 if (this.structureBlockPos != null) { ... 337 $$0.setStructureBlockPos(this.structureBlockPos); ... 338 } ... 339 338 340 return $$0; 339 return $$0; 341 } 340 } 342 ... 343 public BlockPos getOrCalculateNorthwestCorner() { ... 344 if (this.northWestCorner == null) { ... 345 BoundingBox $$0 = StructureUtils.getStructureBoundingBox(this ... ... .getStructureBlockEntity()); ... 346 this.northWestCorner = new BlockPos($$0.minX(), $$0.minY(), $ ... ... $0.minZ()); ... 347 } ... 348 ... 349 return this.northWestCorner; ... 350 } ... 351 ... 352 public void setNorthWestCorner(BlockPos $$0) { ... 353 this.northWestCorner = $$0; ... 354 } ... 355 } 341 } net/minecraft/gametest/framework/GameTestGenerator.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.lang.annotation.ElementType; 4 import java.lang.annotation.Retention; 5 import java.lang.annotation.RetentionPolicy; 6 import java.lang.annotation.Target; 7 8 @Target({ElementType.METHOD}) 9 @Retention(RetentionPolicy.RUNTIME) 10 public @interface GameTestGenerator { 11 } 12 net/minecraft/util/datafix/schemas/V1931.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:fox", () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, "minecraft:fox"); 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/gametest/framework/TestPosFinder.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.util.stream.Stream; 4 import net.minecraft.core.BlockPos; 5 6 @FunctionalInterface 7 public interface TestPosFinder { 8 Stream<BlockPos> findTestPos(); 9 } 10 net/minecraft/gametest/framework/TestFunctionLoader.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import java.util.function.BiConsumer; 6 import java.util.function.Consumer; 7 import net.minecraft.core.Registry; 8 import net.minecraft.resources.ResourceKey; 9 10 public abstract class TestFunctionLoader { 11 private static final List<TestFunctionLoader> loaders = new ArrayList<>(); 12 13 public static void registerLoader(TestFunctionLoader $$0) { 14 loaders.add($$0); 15 } 16 17 public static void runLoaders(Registry<Consumer<GameTestHelper>> $$0) { 18 for (TestFunctionLoader $$1 : loaders) { 19 $$1.load(($$1x, $$2) -> Registry.register($$0, $$1x, $$2)); 20 } 21 } 22 23 public abstract void load(BiConsumer<ResourceKey<Consumer<GameTestHelper>>, Consumer<GameTestHelper>> var1); 24 } 25 net/minecraft/util/datafix/schemas/V3083.java --- Java 22 "Inventory", 22 "Inventory", 23 DSL.list(References.ITEM_STACK.in($$0)), 23 DSL.list(References.ITEM_STACK.in($$0)), 24 "listener", 24 "listener", 25 DSL.optionalFields("event", DSL.optionalFields("game_eve 25 DSL.optionalFields("event", DSL.optionalFields("game_eve .. nt", References.GAME_EVENT_NAME.in($$0))), .. nt", References.GAME_EVENT_NAME.in($$0))) 26 V100.equipment($$0) .. 27 ) 26 ) 28 ); 27 ); 29 return $$1; 28 return $$1; net/minecraft/world/entity/animal/goat/Goat.java --- Java 136 } 136 } 137 137 138 @Override 138 @Override 139 protected int calculateFallDamage(float $$0, float $$1) { 139 protected int calculateFallDamage(double $$0, float $$1) { 140 return super.calculateFallDamage($$0, $$1) - 10; 140 return super.calculateFallDamage($$0, $$1) - 10; 141 } 141 } 142 142 net/minecraft/world/item/equipment/Equippable.java --- 1/9 --- Java 4 import com.mojang.serialization.codecs.RecordCodecBuilder; 4 import com.mojang.serialization.codecs.RecordCodecBuilder; 5 import java.util.Optional; 5 import java.util.Optional; 6 import net.minecraft.core.Holder; 6 import net.minecraft.core.Holder; . 7 import net.minecraft.core.HolderGetter; 7 import net.minecraft.core.HolderSet; 8 import net.minecraft.core.HolderSet; 8 import net.minecraft.core.RegistryCodecs; 9 import net.minecraft.core.RegistryCodecs; . 10 import net.minecraft.core.registries.BuiltInRegistries; 9 import net.minecraft.core.registries.Registries; 11 import net.minecraft.core.registries.Registries; 10 import net.minecraft.network.RegistryFriendlyByteBuf; 12 import net.minecraft.network.RegistryFriendlyByteBuf; 11 import net.minecraft.network.codec.ByteBufCodecs; 13 import net.minecraft.network.codec.ByteBufCodecs; net/minecraft/world/item/equipment/Equippable.java --- 2/9 --- Java 15 import net.minecraft.sounds.SoundEvent; 17 import net.minecraft.sounds.SoundEvent; 16 import net.minecraft.sounds.SoundEvents; 18 import net.minecraft.sounds.SoundEvents; 17 import net.minecraft.stats.Stats; 19 import net.minecraft.stats.Stats; .. 20 import net.minecraft.tags.EntityTypeTags; 18 import net.minecraft.world.InteractionResult; 21 import net.minecraft.world.InteractionResult; 19 import net.minecraft.world.entity.EntityType; 22 import net.minecraft.world.entity.EntityType; 20 import net.minecraft.world.entity.EquipmentSlot; 23 import net.minecraft.world.entity.EquipmentSlot; .. 24 import net.minecraft.world.entity.LivingEntity; .. 25 import net.minecraft.world.entity.Mob; 21 import net.minecraft.world.entity.player.Player; 26 import net.minecraft.world.entity.player.Player; 22 import net.minecraft.world.item.DyeColor; 27 import net.minecraft.world.item.DyeColor; 23 import net.minecraft.world.item.ItemStack; 28 import net.minecraft.world.item.ItemStack; net/minecraft/world/item/equipment/Equippable.java --- 3/9 --- Java 32 Optional<HolderSet<EntityType<?>>> allowedEntities, 37 Optional<HolderSet<EntityType<?>>> allowedEntities, 33 boolean dispensable, 38 boolean dispensable, 34 boolean swappable, 39 boolean swappable, 35 boolean damageOnHurt 40 boolean damageOnHurt, .. 41 boolean equipOnInteract 36 ) { 42 ) { 37 public static final Codec<Equippable> CODEC = RecordCodecBuilder.cre 43 public static final Codec<Equippable> CODEC = RecordCodecBuilder.cre .. ate( .. ate( 38 $$0 -> $$0.group( 44 $$0 -> $$0.group( net/minecraft/world/item/equipment/Equippable.java --- 4/9 --- Java 43 RegistryCodecs.homogeneousList(Registries.ENTITY_TYPE).o 49 RegistryCodecs.homogeneousList(Registries.ENTITY_TYPE).o .. ptionalFieldOf("allowed_entities").forGetter(Equippable::allowedEntitie .. ptionalFieldOf("allowed_entities").forGetter(Equippable::allowedEntitie .. s), .. s), 44 Codec.BOOL.optionalFieldOf("dispensable", Boolean.valueO 50 Codec.BOOL.optionalFieldOf("dispensable", Boolean.valueO .. f(true)).forGetter(Equippable::dispensable), .. f(true)).forGetter(Equippable::dispensable), 45 Codec.BOOL.optionalFieldOf("swappable", Boolean.valueOf( 51 Codec.BOOL.optionalFieldOf("swappable", Boolean.valueOf( .. true)).forGetter(Equippable::swappable), .. true)).forGetter(Equippable::swappable), 46 Codec.BOOL.optionalFieldOf("damage_on_hurt", Boolean.val 52 Codec.BOOL.optionalFieldOf("damage_on_hurt", Boolean.val .. ueOf(true)).forGetter(Equippable::damageOnHurt) .. ueOf(true)).forGetter(Equippable::damageOnHurt), .. 53 Codec.BOOL.optionalFieldOf("equip_on_interact", Boolean. .. .. valueOf(false)).forGetter(Equippable::equipOnInteract) 47 ) 54 ) 48 .apply($$0, Equippable::new) 55 .apply($$0, Equippable::new) 49 ); 56 ); net/minecraft/world/item/equipment/Equippable.java --- 5/9 --- Java 64 Equippable::swappable, 71 Equippable::swappable, 65 ByteBufCodecs.BOOL, 72 ByteBufCodecs.BOOL, 66 Equippable::damageOnHurt, 73 Equippable::damageOnHurt, .. 74 ByteBufCodecs.BOOL, .. 75 Equippable::equipOnInteract, 67 Equippable::new 76 Equippable::new 68 ); 77 ); 69 78 net/minecraft/world/item/equipment/Equippable.java --- 6/9 --- Java 75 .build(); 84 .build(); 76 } 85 } .. 86 .. 87 public static Equippable saddle() { .. 88 HolderGetter<EntityType<?>> $$0 = BuiltInRegistries.acquireBootst .. .. rapRegistrationLookup(BuiltInRegistries.ENTITY_TYPE); .. 89 return builder(EquipmentSlot.SADDLE) .. 90 .setEquipSound(SoundEvents.HORSE_SADDLE) .. 91 .setAsset(EquipmentAssets.SADDLE) .. 92 .setAllowedEntities($$0.getOrThrow(EntityTypeTags.CAN_EQUIP_SA .. .. DDLE)) .. 93 .setEquipOnInteract(true) .. 94 .build(); .. 95 } 77 96 78 public static Equippable.Builder builder(EquipmentSlot $$0) { 97 public static Equippable.Builder builder(EquipmentSlot $$0) { 79 return new Equippable.Builder($$0); 98 return new Equippable.Builder($$0); 80 } 99 } 81 100 82 public InteractionResult swapWithEquipmentSlot(ItemStack $$0, Player 101 public InteractionResult swapWithEquipmentSlot(ItemStack $$0, Player .. $$1) { ... $$1) { 83 if (!$$1.canUseSlot(this.slot)) { 102 if ($$1.canUseSlot(this.slot) && this.canBeEquippedBy($$1.getType .. ... ())) { 84 return InteractionResult.PASS; ... 85 } else { ... 86 ItemStack $$2 = $$1.getItemBySlot(this.slot); 103 ItemStack $$2 = $$1.getItemBySlot(this.slot); 87 if ((!EnchantmentHelper.has($$2, EnchantmentEffectComponents.P 104 if ((!EnchantmentHelper.has($$2, EnchantmentEffectComponents.P .. REVENT_ARMOR_CHANGE) || $$1.isCreative()) ... REVENT_ARMOR_CHANGE) || $$1.isCreative()) 88 && !ItemStack.isSameItemSameComponents($$0, $$2)) { 105 && !ItemStack.isSameItemSameComponents($$0, $$2)) { net/minecraft/world/item/equipment/Equippable.java --- 7/9 --- Java 108 } else { 125 } else { 109 return InteractionResult.FAIL; 126 return InteractionResult.FAIL; 110 } 127 } 111 } 128 } else { ... 129 return InteractionResult.PASS; ... 130 } 112 } 131 } ... 132 ... 133 public InteractionResult equipOnTarget(Player $$0, LivingEntity $$1 ... ... , ItemStack $$2) { ... 134 if ($$1.isEquippableInSlot($$2, this.slot) && !$$1.hasItemInSlot ... ... (this.slot) && $$1.isAlive()) { ... 135 if (!$$0.level().isClientSide()) { ... 136 $$1.setItemSlot(this.slot, $$2.split(1)); ... 137 if ($$1 instanceof Mob $$3) { ... 138 $$3.setGuaranteedDrop(this.slot); ... 139 } ... 140 } ... 141 ... 142 return InteractionResult.SUCCESS; ... 143 } else { ... 144 return InteractionResult.PASS; ... 145 } ... 146 } 113 147 114 public boolean canBeEquippedBy(EntityType<?> $$0) { 148 public boolean canBeEquippedBy(EntityType<?> $$0) { 115 return this.allowedEntities.isEmpty() || this.allowedEntities.ge 149 return this.allowedEntities.isEmpty() || this.allowedEntities.ge t().contains($$0.builtInRegistryHolder()); t().contains($$0.builtInRegistryHolder()); net/minecraft/world/item/equipment/Equippable.java --- 8/9 --- Java 124 private boolean dispensable = true; 158 private boolean dispensable = true; 125 private boolean swappable = true; 159 private boolean swappable = true; 126 private boolean damageOnHurt = true; 160 private boolean damageOnHurt = true; ... 161 private boolean equipOnInteract; 127 162 128 Builder(EquipmentSlot $$0) { 163 Builder(EquipmentSlot $$0) { 129 this.slot = $$0; 164 this.slot = $$0; net/minecraft/world/item/equipment/Equippable.java --- 9/9 --- Java 168 return this; 203 return this; 169 } 204 } ... 205 ... 206 public Equippable.Builder setEquipOnInteract(boolean $$0) { ... 207 this.equipOnInteract = $$0; ... 208 return this; ... 209 } 170 210 171 public Equippable build() { 211 public Equippable build() { 172 return new Equippable( 212 return new Equippable( 173 this.slot, this.equipSound, this.assetId, this.cameraOverl 213 this.slot, ... ay, this.allowedEntities, this.dispensable, this.swappable, this.damag ... ... eOnHurt ... ... 214 this.equipSound, ... 215 this.assetId, ... 216 this.cameraOverlay, ... 217 this.allowedEntities, ... 218 this.dispensable, ... 219 this.swappable, ... 220 this.damageOnHurt, ... 221 this.equipOnInteract 174 ); 222 ); 175 } 223 } 176 } 224 } net/minecraft/util/datafix/schemas/V3799.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:armadillo", () -> V100.equipment($$0 16 $$0.registerSimple($$1, "minecraft:armadillo"); .. )); .. 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/gametest/framework/GameTestBatchFactory.java --- Java 6 import java.util.List; 6 import java.util.List; 7 import java.util.Map; 7 import java.util.Map; 8 import java.util.Objects; 8 import java.util.Objects; 9 import java.util.function.Consumer; . 10 import java.util.stream.Collectors; 9 import java.util.stream.Collectors; .. 10 import java.util.stream.Stream; .. 11 import net.minecraft.core.Holder; 11 import net.minecraft.server.level.ServerLevel; 12 import net.minecraft.server.level.ServerLevel; .. 13 import net.minecraft.world.level.block.Rotation; 12 14 13 public class GameTestBatchFactory { 15 public class GameTestBatchFactory { 14 private static final int MAX_TESTS_PER_BATCH = 50; 16 private static final int MAX_TESTS_PER_BATCH = 50; .. 17 public static final GameTestBatchFactory.TestDecorator DIRECT = ($$0 .. .. , $$1) -> Stream.of(new GameTestInfo($$0, Rotation.NONE, $$1, RetryOpti .. .. ons.noRetries())); 15 18 16 public static Collection<GameTestBatch> fromTestFunction(Collection< 19 public static List<GameTestBatch> divideIntoBatches( .. TestFunction> $$0, ServerLevel $$1) { .. .. 20 Collection<Holder.Reference<GameTestInstance>> $$0, GameTestBatch .. .. Factory.TestDecorator $$1, ServerLevel $$2 .. 21 ) { 17 Map<String, List<TestFunction>> $$2 = $$0.stream().collect(Collec 22 Map<Holder<TestEnvironmentDefinition>, List<GameTestInfo>> $$3 = .. tors.groupingBy(TestFunction::batchName)); .. $$0.stream() .. 23 .flatMap($$2x -> $$1.decorate($$2x, $$2)) .. 24 .collect(Collectors.groupingBy($$0x -> $$0x.getTest().batch()) .. .. ); 18 return $$2.entrySet() 25 return $$3.entrySet().stream().flatMap($$0x -> { 19 .stream() .. 20 .flatMap( .. 21 $$1x -> { .. 22 String $$2x = (String)$$1x.getKey(); 26 Holder<TestEnvironmentDefinition> $$1x = (Holder<TestEnvironme .. .. ntDefinition>)$$0x.getKey(); 23 List<TestFunction> $$3 = (List<TestFunction>)$$1x.getVal 27 List<GameTestInfo> $$2x = (List<GameTestInfo>)$$0x.getValue(); .. ue(); .. 24 return Streams.mapWithIndex( 28 return Streams.mapWithIndex(Lists.partition($$2x, 50).stream() .. .. , ($$1xx, $$2xx) -> toGameTestBatch($$1xx, $$1x, (int)$$2xx)); 25 Lists.partition($$3, 50).stream(), .. 26 ($$2xx, $$3x) -> toGameTestBatch($$2xx.stream().map($ .. .. $1xxx -> toGameTestInfo($$1xxx, 0, $$1)).toList(), $$2x, $$3x) .. 27 ); .. 28 } 29 }).toList(); 29 ) .. 30 .toList(); .. 31 } 30 } 32 .. 33 public static GameTestInfo toGameTestInfo(TestFunction $$0, int $$1, .. .. ServerLevel $$2) { .. 34 return new GameTestInfo($$0, StructureUtils.getRotationForRotatio .. .. nSteps($$1), $$2, RetryOptions.noRetries()); .. 35 } .. 36 31 37 public static GameTestRunner.GameTestBatcher fromGameTestInfo() { 32 public static GameTestRunner.GameTestBatcher fromGameTestInfo() { 38 return fromGameTestInfo(50); 33 return fromGameTestInfo(50); 39 } 34 } 40 35 41 public static GameTestRunner.GameTestBatcher fromGameTestInfo(int $$ 36 public static GameTestRunner.GameTestBatcher fromGameTestInfo(int $$ .. 0) { .. 0) { 42 return $$1 -> { 37 return $$1 -> { 43 Map<String, List<GameTestInfo>> $$2 = $$1.stream() 38 Map<Holder<TestEnvironmentDefinition>, List<GameTestInfo>> $$2 .. .. = $$1.stream() 44 .filter(Objects::nonNull) 39 .filter(Objects::nonNull) 45 .collect(Collectors.groupingBy($$0xx -> $$0xx.getTestFuncti 40 .collect(Collectors.groupingBy($$0xx -> $$0xx.getTest().bat .. on().batchName())); .. ch())); 46 return $$2.entrySet().stream().flatMap($$1x -> { 41 return $$2.entrySet().stream().flatMap($$1x -> { 47 String $$2x = (String)$$1x.getKey(); 42 Holder<TestEnvironmentDefinition> $$2x = (Holder<TestEnviro .. .. nmentDefinition>)$$1x.getKey(); 48 List<GameTestInfo> $$3 = (List<GameTestInfo>)$$1x.getValue( 43 List<GameTestInfo> $$3 = (List<GameTestInfo>)$$1x.getValue( .. ); .. ); 49 return Streams.mapWithIndex(Lists.partition($$3, $$0).strea 44 return Streams.mapWithIndex(Lists.partition($$3, $$0).strea .. m(), ($$1xx, $$2xx) -> toGameTestBatch(List.copyOf($$1xx), $$2x, $$2xx) .. m(), ($$1xx, $$2xx) -> toGameTestBatch(List.copyOf($$1xx), $$2x, (int)$ .. ); .. $2xx)); 50 }).toList(); 45 }).toList(); 51 }; 46 }; 52 } 47 } 53 48 54 public static GameTestBatch toGameTestBatch(Collection<GameTestInfo> 49 public static GameTestBatch toGameTestBatch(Collection<GameTestInfo> .. $$0, String $$1, long $$2) { .. $$0, Holder<TestEnvironmentDefinition> $$1, int $$2) { 55 Consumer<ServerLevel> $$3 = GameTestRegistry.getBeforeBatchFuncti .. .. on($$1); .. 56 Consumer<ServerLevel> $$4 = GameTestRegistry.getAfterBatchFunctio .. .. n($$1); .. 57 return new GameTestBatch($$1 + ":" + $$2, $$0, $$3, $$4); 50 return new GameTestBatch($$2, $$0, $$1); 58 } 51 } .. 52 .. 53 @FunctionalInterface .. 54 public interface TestDecorator { .. 55 Stream<GameTestInfo> decorate(Holder.Reference<GameTestInstance> .. .. var1, ServerLevel var2); .. 56 } 59 } 57 } net/minecraft/util/datafix/schemas/V1470.java --- Java 13 } 13 } 14 14 15 protected static void registerMob(Schema $$0, Map<String, Supplier<T 15 protected static void registerMob(Schema $$0, Map<String, Supplier<T .. ypeTemplate>> $$1, String $$2) { .. ypeTemplate>> $$1, String $$2) { 16 $$0.register($$1, $$2, () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, $$2); 17 } 17 } 18 18 19 @Override 19 @Override net/minecraft/world/entity/animal/camel/Camel.java --- 1/4 --- Java 4 import com.mojang.serialization.Dynamic; 4 import com.mojang.serialization.Dynamic; 5 import javax.annotation.Nullable; 5 import javax.annotation.Nullable; 6 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.BlockPos; . 7 import net.minecraft.core.Holder; 7 import net.minecraft.core.particles.ParticleTypes; 8 import net.minecraft.core.particles.ParticleTypes; 8 import net.minecraft.nbt.CompoundTag; 9 import net.minecraft.nbt.CompoundTag; 9 import net.minecraft.network.protocol.game.DebugPackets; 10 import net.minecraft.network.protocol.game.DebugPackets; net/minecraft/world/entity/animal/camel/Camel.java --- 2/4 --- Java 29 import net.minecraft.world.entity.EntityDimensions; 30 import net.minecraft.world.entity.EntityDimensions; 30 import net.minecraft.world.entity.EntitySpawnReason; 31 import net.minecraft.world.entity.EntitySpawnReason; 31 import net.minecraft.world.entity.EntityType; 32 import net.minecraft.world.entity.EntityType; .. 33 import net.minecraft.world.entity.EquipmentSlot; 32 import net.minecraft.world.entity.LivingEntity; 34 import net.minecraft.world.entity.LivingEntity; 33 import net.minecraft.world.entity.Pose; 35 import net.minecraft.world.entity.Pose; 34 import net.minecraft.world.entity.SpawnGroupData; 36 import net.minecraft.world.entity.SpawnGroupData; net/minecraft/world/entity/animal/camel/Camel.java --- 3/4 --- Java 43 import net.minecraft.world.entity.animal.horse.AbstractHorse; 45 import net.minecraft.world.entity.animal.horse.AbstractHorse; 44 import net.minecraft.world.entity.player.Player; 46 import net.minecraft.world.entity.player.Player; 45 import net.minecraft.world.item.ItemStack; 47 import net.minecraft.world.item.ItemStack; .. 48 import net.minecraft.world.item.equipment.Equippable; 46 import net.minecraft.world.level.Level; 49 import net.minecraft.world.level.Level; 47 import net.minecraft.world.level.ServerLevelAccessor; 50 import net.minecraft.world.level.ServerLevelAccessor; 48 import net.minecraft.world.level.block.state.BlockState; 51 import net.minecraft.world.level.block.state.BlockState; net/minecraft/world/entity/animal/camel/Camel.java --- 4/4 --- Java 594 } 597 } 595 598 596 @Override 599 @Override 597 public SoundEvent getSaddleSoundEvent() { 600 protected Holder<SoundEvent> getEquipSound(EquipmentSlot $$0, ItemS ... ... tack $$1, Equippable $$2) { 598 return SoundEvents.CAMEL_SADDLE; 601 return (Holder<SoundEvent>)($$0 == EquipmentSlot.SADDLE ? SoundE ... ... vents.CAMEL_SADDLE : super.getEquipSound($$0, $$1, $$2)); 599 } 602 } 600 603 601 @Override 604 @Override net/minecraft/util/datafix/schemas/V1451_3.java --- Java 24 $$0.registerSimple($$1, "minecraft:wither_skull"); 24 $$0.registerSimple($$1, "minecraft:wither_skull"); 25 $$0.registerSimple($$1, "minecraft:xp_bottle"); 25 $$0.registerSimple($$1, "minecraft:xp_bottle"); 26 $$0.register($$1, "minecraft:arrow", () -> DSL.optionalFields("in 26 $$0.register($$1, "minecraft:arrow", () -> DSL.optionalFields("in .. BlockState", References.BLOCK_STATE.in($$0))); .. BlockState", References.BLOCK_STATE.in($$0))); 27 $$0.register($$1, "minecraft:enderman", () -> DSL.optionalFields( 27 $$0.register($$1, "minecraft:enderman", () -> DSL.optionalFields( .. "carriedBlockState", References.BLOCK_STATE.in($$0), V100.equipment($$0 .. "carriedBlockState", References.BLOCK_STATE.in($$0))); .. ))); .. 28 $$0.register( 28 $$0.register( 29 $$1, 29 $$1, 30 "minecraft:falling_block", 30 "minecraft:falling_block", net/minecraft/gametest/framework/GameTestSequence.java --- 1/5 --- Java 4 import java.util.Iterator; 4 import java.util.Iterator; 5 import java.util.List; 5 import java.util.List; 6 import java.util.function.Supplier; 6 import java.util.function.Supplier; . 7 import net.minecraft.network.chat.Component; 7 8 8 public class GameTestSequence { 9 public class GameTestSequence { 9 final GameTestInfo parent; 10 final GameTestInfo parent; 10 private final List<GameTestEvent> events = Lists.newArrayList(); 11 private final List<GameTestEvent> events = Lists.newArrayList(); 11 private long lastTick; 12 private int lastTick; 12 13 13 GameTestSequence(GameTestInfo $$0) { 14 GameTestSequence(GameTestInfo $$0) { 14 this.parent = $$0; 15 this.parent = $$0; net/minecraft/gametest/framework/GameTestSequence.java --- 2/5 --- Java 37 38 38 public GameTestSequence thenExecuteAfter(int $$0, Runnable $$1) { 39 public GameTestSequence thenExecuteAfter(int $$0, Runnable $$1) { 39 this.events.add(GameTestEvent.create(() -> { 40 this.events.add(GameTestEvent.create(() -> { 40 if (this.parent.getTick() < this.lastTick + (long)$$0) { 41 if (this.parent.getTick() < this.lastTick + $$0) { 41 throw new GameTestAssertException("Test timed out before se 42 throw new GameTestAssertException(Component.translatable("t .. quence completed"); .. est.error.sequence.not_completed"), this.parent.getTick()); 42 } else { 43 } else { 43 this.executeWithoutFail($$1); 44 this.executeWithoutFail($$1); 44 } 45 } net/minecraft/gametest/framework/GameTestSequence.java --- 3/5 --- Java 48 49 49 public GameTestSequence thenExecuteFor(int $$0, Runnable $$1) { 50 public GameTestSequence thenExecuteFor(int $$0, Runnable $$1) { 50 this.events.add(GameTestEvent.create(() -> { 51 this.events.add(GameTestEvent.create(() -> { 51 if (this.parent.getTick() < this.lastTick + (long)$$0) { 52 if (this.parent.getTick() < this.lastTick + $$0) { 52 this.executeWithoutFail($$1); 53 this.executeWithoutFail($$1); 53 throw new GameTestAssertException("Test timed out before se 54 throw new GameTestAssertException(Component.translatable("t .. quence completed"); .. est.error.sequence.not_completed"), this.parent.getTick()); 54 } 55 } 55 })); 56 })); 56 return this; 57 return this; net/minecraft/gametest/framework/GameTestSequence.java --- 4/5 --- Java 70 return $$0; 71 return $$0; 71 } 72 } 72 73 73 public void tickAndContinue(long $$0) { 74 public void tickAndContinue(int $$0) { 74 try { 75 try { 75 this.tick($$0); 76 this.tick($$0); 76 } catch (GameTestAssertException var4) { 77 } catch (GameTestAssertException var3) { 77 } 78 } 78 } 79 } 79 80 80 public void tickAndFailIfNotComplete(long $$0) { 81 public void tickAndFailIfNotComplete(int $$0) { 81 try { 82 try { 82 this.tick($$0); 83 this.tick($$0); 83 } catch (GameTestAssertException var4) { 84 } catch (GameTestAssertException var3) { 84 this.parent.fail(var4); 85 this.parent.fail(var3); 85 } 86 } 86 } 87 } 87 88 net/minecraft/gametest/framework/GameTestSequence.java --- 5/5 --- Java 93 } 94 } 94 } 95 } 95 96 96 private void tick(long $$0) { 97 private void tick(int $$0) { 97 Iterator<GameTestEvent> $$1 = this.events.iterator(); 98 Iterator<GameTestEvent> $$1 = this.events.iterator(); 98 99 99 while ($$1.hasNext()) { 100 while ($$1.hasNext()) { 100 GameTestEvent $$2 = $$1.next(); 101 GameTestEvent $$2 = $$1.next(); 101 $$2.assertion.run(); 102 $$2.assertion.run(); 102 $$1.remove(); 103 $$1.remove(); 103 long $$3 = $$0 - this.lastTick; 104 int $$3 = $$0 - this.lastTick; 104 long $$4 = this.lastTick; 105 int $$4 = this.lastTick; 105 this.lastTick = $$0; 106 this.lastTick = $$0; 106 if ($$2.expectedDelay != null && $$2.expectedDelay != $$3) { 107 if ($$2.expectedDelay != null && $$2.expectedDelay != (long)$ ... ... $3) { 107 this.parent.fail(new GameTestAssertException("Succeeded in 108 this.parent.fail(new GameTestAssertException(Component.tra ... invalid tick: expected " + ($$4 + $$2.expectedDelay) + ", but current ... nslatable("test.error.sequence.invalid_tick", (long)$$4 + $$2.expected ... tick is " + $$0)); ... Delay), $$0)); 108 break; 109 break; 109 } 110 } 110 } 111 } 111 } 112 } 112 113 113 public class Condition { 114 public class Condition { 114 private static final long NOT_TRIGGERED = -1L; 115 private static final int NOT_TRIGGERED = -1; 115 private long triggerTime = -1L; 116 private int triggerTime = -1; 116 117 117 void trigger(long $$0) { 118 void trigger(int $$0) { 118 if (this.triggerTime != -1L) { 119 if (this.triggerTime != -1) { 119 throw new IllegalStateException("Condition already trigger 120 throw new IllegalStateException("Condition already trigger ... ed at " + this.triggerTime); ... ed at " + this.triggerTime); 120 } else { 121 } else { 121 this.triggerTime = $$0; 122 this.triggerTime = $$0; 122 } 123 } 123 } 124 } 124 125 125 public void assertTriggeredThisTick() { 126 public void assertTriggeredThisTick() { 126 long $$0 = GameTestSequence.this.parent.getTick(); 127 int $$0 = GameTestSequence.this.parent.getTick(); 127 if (this.triggerTime != $$0) { 128 if (this.triggerTime != $$0) { 128 if (this.triggerTime == -1L) { 129 if (this.triggerTime == -1) { 129 throw new GameTestAssertException("Condition not trigge 130 throw new GameTestAssertException(Component.translatabl ... red (t=" + $$0 + ")"); ... e("test.error.sequence.condition_not_triggered"), $$0); 130 } else { 131 } else { 131 throw new GameTestAssertException("Condition triggered 132 throw new GameTestAssertException(Component.translatabl ... at " + this.triggerTime + ", (t=" + $$0 + ")"); ... e("test.error.sequence.condition_already_triggered", this.triggerTime) ... ... , $$0); 132 } 133 } 133 } 134 } 134 } 135 } net/minecraft/util/datafix/schemas/V1929.java --- Java 22 "Inventory", 22 "Inventory", DSL.list(References.ITEM_STACK.in($$0)), "O .. .. ffers", DSL.optionalFields("Recipes", DSL.list(References.VILLAGER_TRAD .. .. E.in($$0))) 23 DSL.list(References.ITEM_STACK.in($$0)), .. 24 "Offers", .. 25 DSL.optionalFields("Recipes", DSL.list(References.VILLAG .. .. ER_TRADE.in($$0))), .. 26 V100.equipment($$0) .. 27 ) 23 ) 28 ); 24 ); 29 $$0.register( 25 $$0.register( 30 $$1, 26 $$1, 31 "minecraft:trader_llama", 27 "minecraft:trader_llama", 32 $$1x -> DSL.optionalFields( 28 $$1x -> DSL.optionalFields( 33 "Items", 29 "Items", DSL.list(References.ITEM_STACK.in($$0)), "Saddl .. .. eItem", References.ITEM_STACK.in($$0), "DecorItem", References.ITEM_STA .. .. CK.in($$0) 34 DSL.list(References.ITEM_STACK.in($$0)), .. 35 "SaddleItem", .. 36 References.ITEM_STACK.in($$0), .. 37 "DecorItem", .. 38 References.ITEM_STACK.in($$0), .. 39 V100.equipment($$0) .. 40 ) 30 ) 41 ); 31 ); 42 return $$1; 32 return $$1; net/minecraft/util/datafix/schemas/V3203.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:camel", () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, "minecraft:camel"); 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/util/datafix/schemas/V2522.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:zoglin", () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, "minecraft:zoglin"); 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/world/entity/player/Player.java --- 1/11 --- Java 105 import net.minecraft.world.level.block.entity.JigsawBlockEntity; 105 import net.minecraft.world.level.block.entity.JigsawBlockEntity; 106 import net.minecraft.world.level.block.entity.SignBlockEntity; 106 import net.minecraft.world.level.block.entity.SignBlockEntity; 107 import net.minecraft.world.level.block.entity.StructureBlockEntity; 107 import net.minecraft.world.level.block.entity.StructureBlockEntity; ... 108 import net.minecraft.world.level.block.entity.TestBlockEntity; ... 109 import net.minecraft.world.level.block.entity.TestInstanceBlockEntity; 108 import net.minecraft.world.level.block.state.BlockState; 110 import net.minecraft.world.level.block.state.BlockState; 109 import net.minecraft.world.level.block.state.pattern.BlockInWorld; 111 import net.minecraft.world.level.block.state.pattern.BlockInWorld; 110 import net.minecraft.world.level.gameevent.GameEvent; 112 import net.minecraft.world.level.gameevent.GameEvent; net/minecraft/world/entity/player/Player.java --- 2/11 --- Java 205 this.gameProfile = $$3; 207 this.gameProfile = $$3; 206 this.inventoryMenu = new InventoryMenu(this.inventory, !$$0.isCl 208 this.inventoryMenu = new InventoryMenu(this.inventory, !$$0.isCl ... ientSide, this); ... ientSide, this); 207 this.containerMenu = this.inventoryMenu; 209 this.containerMenu = this.inventoryMenu; 208 this.moveTo((double)$$1.getX() + 0.5, (double)($$1.getY() + 1), 210 this.snapTo((double)$$1.getX() + 0.5, (double)($$1.getY() + 1), ... (double)$$1.getZ() + 0.5, $$2, 0.0F); ... (double)$$1.getZ() + 0.5, $$2, 0.0F); 209 } 211 } 210 212 211 public boolean blockActionRestricted(Level $$0, BlockPos $$1, GameT 213 public boolean blockActionRestricted(Level $$0, BlockPos $$1, GameT ype $$2) { ype $$2) { net/minecraft/world/entity/player/Player.java --- 3/11 --- Java 581 583 582 this.playShoulderEntityAmbientSound(this.getShoulderEntityLeft() 584 this.playShoulderEntityAmbientSound(this.getShoulderEntityLeft() ... ); ... ); 583 this.playShoulderEntityAmbientSound(this.getShoulderEntityRight( 585 this.playShoulderEntityAmbientSound(this.getShoulderEntityRight( ... )); ... )); 584 if (!this.level().isClientSide && (this.fallDistance > 0.5F || t 586 if (!this.level().isClientSide && (this.fallDistance > 0.5 || th ... his.isInWater()) || this.abilities.flying || this.isSleeping() || this ... is.isInWater()) || this.abilities.flying || this.isSleeping() || this. ... .isInPowderSnow) { ... isInPowderSnow) { 585 this.removeEntitiesOnShoulder(); 587 this.removeEntitiesOnShoulder(); 586 } 588 } 587 } 589 } net/minecraft/world/entity/player/Player.java --- 4/11 --- Java 981 public void openStructureBlock(StructureBlockEntity $$0) { 983 public void openStructureBlock(StructureBlockEntity $$0) { 982 } 984 } ... 985 ... 986 public void openTestBlock(TestBlockEntity $$0) { ... 987 } ... 988 ... 989 public void openTestInstanceBlock(TestInstanceBlockEntity $$0) { ... 990 } 983 991 984 public void openJigsawBlock(JigsawBlockEntity $$0) { 992 public void openJigsawBlock(JigsawBlockEntity $$0) { 985 } 993 } net/minecraft/world/entity/player/Player.java --- 5/11 --- Java 1066 double $$6 = Math.signum($$3) * 0.05; 1074 double $$6 = Math.signum($$3) * 0.05; 1067 1075 1068 double $$7; 1076 double $$7; 1069 for ($$7 = Math.signum($$4) * 0.05; $$3 != 0.0 && this.canFa 1077 for ($$7 = Math.signum($$4) * 0.05; $$3 != 0.0 && this.canFa .... llAtLeast($$3, 0.0, $$2); $$3 -= $$6) { .... llAtLeast($$3, 0.0, (double)$$2); $$3 -= $$6) { 1070 if (Math.abs($$3) <= 0.05) { 1078 if (Math.abs($$3) <= 0.05) { 1071 $$3 = 0.0; 1079 $$3 = 0.0; 1072 break; 1080 break; 1073 } 1081 } 1074 } 1082 } 1075 1083 1076 while ($$4 != 0.0 && this.canFallAtLeast(0.0, $$4, $$2)) { 1084 while ($$4 != 0.0 && this.canFallAtLeast(0.0, $$4, (double)$ .... .... $2)) { 1077 if (Math.abs($$4) <= 0.05) { 1085 if (Math.abs($$4) <= 0.05) { 1078 $$4 = 0.0; 1086 $$4 = 0.0; 1079 break; 1087 break; net/minecraft/world/entity/player/Player.java --- 6/11 --- Java 1082 $$4 -= $$7; 1090 $$4 -= $$7; 1083 } 1091 } 1084 1092 1085 while ($$3 != 0.0 && $$4 != 0.0 && this.canFallAtLeast($$3, 1093 while ($$3 != 0.0 && $$4 != 0.0 && this.canFallAtLeast($$3, .... $$4, $$2)) { .... $$4, (double)$$2)) { 1086 if (Math.abs($$3) <= 0.05) { 1094 if (Math.abs($$3) <= 0.05) { 1087 $$3 = 0.0; 1095 $$3 = 0.0; 1088 } else { 1096 } else { net/minecraft/world/entity/player/Player.java --- 7/11 --- Java 1103 } 1111 } 1104 1112 1105 private boolean isAboveGround(float $$0) { 1113 private boolean isAboveGround(float $$0) { 1106 return this.onGround() || this.fallDistance < $$0 && !this.canF 1114 return this.onGround() || this.fallDistance < (double)$$0 && !t .... allAtLeast(0.0, 0.0, $$0 - this.fallDistance); .... his.canFallAtLeast(0.0, 0.0, (double)$$0 - this.fallDistance); 1107 } 1115 } 1108 1116 1109 private boolean canFallAtLeast(double $$0, double $$1, float $$2) 1117 private boolean canFallAtLeast(double $$0, double $$1, double $$2) .... { .... { 1110 AABB $$3 = this.getBoundingBox(); 1118 AABB $$3 = this.getBoundingBox(); 1111 return this.level() 1119 return this.level() 1112 .noCollision(this, new AABB($$3.minX + $$0, $$3.minY - (doub 1120 .noCollision( .... le)$$2 - 1.0E-5F, $$3.minZ + $$1, $$3.maxX + $$0, $$3.minY, $$3.maxZ .... .... + $$1)); .... .... 1121 this, .... 1122 new AABB($$3.minX + 1.0E-7 + $$0, $$3.minY - $$2 - 1.0E-7 .... .... , $$3.minZ + 1.0E-7 + $$1, $$3.maxX - 1.0E-7 + $$0, $$3.minY, $$3.max .... .... Z - 1.0E-7 + $$1) .... 1123 ); 1113 } 1124 } 1114 1125 net/minecraft/world/entity/player/Player.java --- 8/11 --- Java 1142 1153 1143 $$1 += $$2.getItem().getAttackDamageBonus($$0, $$1, $$ 1154 $$1 += $$2.getItem().getAttackDamageBonus($$0, $$1, $$ .... 3); .... 3); 1144 boolean $$10 = $$7 1155 boolean $$10 = $$7 1145 && this.fallDistance > 0.0F 1156 && this.fallDistance > 0.0 1146 && !this.onGround() 1157 && !this.onGround() 1147 && !this.onClimbable() 1158 && !this.onClimbable() 1148 && !this.isInWater() 1159 && !this.isInWater() net/minecraft/world/entity/player/Player.java --- 9/11 --- Java 1506 } 1517 } 1507 1518 1508 @Override 1519 @Override 1509 public boolean causeFallDamage(float $$0, float $$1, DamageSource 1520 public boolean causeFallDamage(double $$0, float $$1, DamageSource .... $$2) { .... $$2) { 1510 if (this.abilities.mayfly) { 1521 if (this.abilities.mayfly) { 1511 return false; 1522 return false; 1512 } else { 1523 } else { 1513 if ($$0 >= 2.0F) { 1524 if ($$0 >= 2.0) { 1514 this.awardStat(Stats.FALL_ONE_CM, (int)Math.round((double 1525 this.awardStat(Stats.FALL_ONE_CM, (int)Math.round($$0 * 1 .... )$$0 * 100.0)); .... 00.0)); 1515 } 1526 } 1516 1527 1517 boolean $$3 = this.currentImpulseImpactPos != null && this.i 1528 boolean $$3 = this.currentImpulseImpactPos != null && this.i .... gnoreFallDamageFromCurrentImpulse; .... gnoreFallDamageFromCurrentImpulse; 1518 float $$4; 1529 double $$4; 1519 if ($$3) { 1530 if ($$3) { 1520 $$4 = Math.min($$0, (float)(this.currentImpulseImpactPos. 1531 $$4 = Math.min($$0, this.currentImpulseImpactPos.y - this .... y - this.getY())); .... .getY()); 1521 boolean $$5 = $$4 <= 0.0F; 1532 boolean $$5 = $$4 <= 0.0; 1522 if ($$5) { 1533 if ($$5) { 1523 this.resetCurrentImpulseContext(); 1534 this.resetCurrentImpulseContext(); 1524 } else { 1535 } else { net/minecraft/world/entity/player/Player.java --- 10/11 --- Java 1528 $$4 = $$0; 1539 $$4 = $$0; 1529 } 1540 } 1530 1541 1531 if ($$4 > 0.0F && super.causeFallDamage($$4, $$1, $$2)) { 1542 if ($$4 > 0.0 && super.causeFallDamage($$4, $$1, $$2)) { 1532 this.resetCurrentImpulseContext(); 1543 this.resetCurrentImpulseContext(); 1533 return true; 1544 return true; 1534 } else { 1545 } else { net/minecraft/world/entity/player/Player.java --- 11/11 --- Java 1760 return this.inventory.add($$0); 1771 return this.inventory.add($$0); 1761 } 1772 } 1762 .... 1763 @Override .... 1764 public Iterable<ItemStack> getHandSlots() { .... 1765 return Lists.newArrayList(this.getMainHandItem(), this.getOffha .... .... ndItem()); .... 1766 } .... 1767 .... 1768 @Override .... 1769 public Iterable<ItemStack> getArmorSlots() { .... 1770 return this.inventory.armor; .... 1771 } .... 1772 .... 1773 @Override .... 1774 public boolean canUseSlot(EquipmentSlot $$0) { .... 1775 return $$0 != EquipmentSlot.BODY; .... 1776 } .... 1777 1773 1778 public boolean setEntityOnShoulder(CompoundTag $$0) { 1774 public boolean setEntityOnShoulder(CompoundTag $$0) { 1779 if (this.isPassenger() || !this.onGround() || this.isInWater() 1775 if (this.isPassenger() || !this.onGround() || this.isInWater() || this.isInPowderSnow) { || this.isInPowderSnow) { net/minecraft/gametest/framework/TestFunctionArgument.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import com.mojang.brigadier.Message; 4 import com.mojang.brigadier.StringReader; 5 import com.mojang.brigadier.arguments.ArgumentType; 6 import com.mojang.brigadier.context.CommandContext; 7 import com.mojang.brigadier.exceptions.CommandSyntaxException; 8 import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; 9 import com.mojang.brigadier.suggestion.Suggestions; 10 import com.mojang.brigadier.suggestion.SuggestionsBuilder; 11 import java.util.Arrays; 12 import java.util.Collection; 13 import java.util.Optional; 14 import java.util.concurrent.CompletableFuture; 15 import java.util.stream.Stream; 16 import net.minecraft.commands.CommandSourceStack; 17 import net.minecraft.commands.SharedSuggestionProvider; 18 import net.minecraft.network.chat.Component; 19 20 public class TestFunctionArgument implements ArgumentType<TestFunction> { 21 private static final Collection<String> EXAMPLES = Arrays.asList("techtests.piston", "techtests"); 22 23 public TestFunction parse(StringReader $$0) throws CommandSyntaxException { 24 String $$1 = $$0.readUnquotedString(); 25 Optional<TestFunction> $$2 = GameTestRegistry.findTestFunction($$1); 26 if ($$2.isPresent()) { 27 return $$2.get(); 28 } else { 29 Message $$3 = Component.literal("No such test: " + $$1); 30 throw new CommandSyntaxException(new SimpleCommandExceptionType($$3), $$3); 31 } 32 } 33 34 public static TestFunctionArgument testFunctionArgument() { 35 return new TestFunctionArgument(); 36 } 37 38 public static TestFunction getTestFunction(CommandContext<CommandSourceStack> $$0, String $$1) { 39 return $$0.getArgument($$1, TestFunction.class); 40 } 41 42 @Override 43 public <S> CompletableFuture<Suggestions> listSuggestions(CommandContext<S> $$0, SuggestionsBuilder $$1) { 44 return suggestTestFunction($$0, $$1); 45 } 46 47 public static <S> CompletableFuture<Suggestions> suggestTestFunction(CommandContext<S> $$0, SuggestionsBuilder $$1) { 48 Stream<String> $$2 = GameTestRegistry.getAllTestFunctions().stream().map(TestFunction::testName); 49 return SharedSuggestionProvider.suggest($$2, $$1); 50 } 51 52 @Override 53 public Collection<String> getExamples() { 54 return EXAMPLES; 55 } 56 } 57 net/minecraft/gametest/framework/TestInstanceFinder.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.util.stream.Stream; 4 import net.minecraft.core.Holder; 5 6 @FunctionalInterface 7 public interface TestInstanceFinder { 8 Stream<Holder.Reference<GameTestInstance>> findTests(); 9 } 10 net/minecraft/util/datafix/schemas/V1460.java --- 1/10 --- Java 16 } 16 } 17 17 18 protected static void registerMob(Schema $$0, Map<String, Supplier<T 18 protected static void registerMob(Schema $$0, Map<String, Supplier<T .. ypeTemplate>> $$1, String $$2) { .. ypeTemplate>> $$1, String $$2) { 19 $$0.register($$1, $$2, () -> V100.equipment($$0)); 19 $$0.registerSimple($$1, $$2); 20 } 20 } 21 21 22 protected static void registerInventory(Schema $$0, Map<String, Supp 22 protected static void registerInventory(Schema $$0, Map<String, Supp lier<TypeTemplate>> $$1, String $$2) { lier<TypeTemplate>> $$1, String $$2) { net/minecraft/util/datafix/schemas/V1460.java --- 2/10 --- Java 49 $$0.register( 49 $$0.register( 50 $$1, 50 $$1, "minecraft:donkey", $$1x -> DSL.optionalFields("Items", D .. .. SL.list(References.ITEM_STACK.in($$0)), "SaddleItem", References.ITEM_S .. .. TACK.in($$0)) 51 "minecraft:donkey", .. 52 $$1x -> DSL.optionalFields("Items", DSL.list(References.ITEM_S .. .. TACK.in($$0)), "SaddleItem", References.ITEM_STACK.in($$0), V100.equipm .. .. ent($$0)) .. 53 ); 51 ); 54 $$0.registerSimple($$1, "minecraft:dragon_fireball"); 52 $$0.registerSimple($$1, "minecraft:dragon_fireball"); 55 $$0.registerSimple($$1, "minecraft:egg"); 53 $$0.registerSimple($$1, "minecraft:egg"); 56 registerMob($$0, $$1, "minecraft:elder_guardian"); 54 registerMob($$0, $$1, "minecraft:elder_guardian"); 57 $$0.registerSimple($$1, "minecraft:ender_crystal"); 55 $$0.registerSimple($$1, "minecraft:ender_crystal"); 58 registerMob($$0, $$1, "minecraft:ender_dragon"); 56 registerMob($$0, $$1, "minecraft:ender_dragon"); 59 $$0.register($$1, "minecraft:enderman", $$1x -> DSL.optionalField 57 $$0.register($$1, "minecraft:enderman", $$1x -> DSL.optionalField .. s("carriedBlockState", References.BLOCK_STATE.in($$0), V100.equipment($ .. s("carriedBlockState", References.BLOCK_STATE.in($$0))); .. $0))); .. 60 registerMob($$0, $$1, "minecraft:endermite"); 58 registerMob($$0, $$1, "minecraft:endermite"); 61 $$0.registerSimple($$1, "minecraft:ender_pearl"); 59 $$0.registerSimple($$1, "minecraft:ender_pearl"); 62 $$0.registerSimple($$1, "minecraft:evocation_fangs"); 60 $$0.registerSimple($$1, "minecraft:evocation_fangs"); net/minecraft/util/datafix/schemas/V1460.java --- 3/10 --- Java 81 $$0.register( 79 $$0.register($$1, "minecraft:horse", $$1x -> DSL.optionalFields(" .. .. ArmorItem", References.ITEM_STACK.in($$0), "SaddleItem", References.ITE .. .. M_STACK.in($$0))); 82 $$1, .. 83 "minecraft:horse", .. 84 $$1x -> DSL.optionalFields("ArmorItem", References.ITEM_STACK. .. .. in($$0), "SaddleItem", References.ITEM_STACK.in($$0), V100.equipment($$ .. .. 0)) .. 85 ); .. 86 registerMob($$0, $$1, "minecraft:husk"); 80 registerMob($$0, $$1, "minecraft:husk"); 87 $$0.registerSimple($$1, "minecraft:illusion_illager"); 81 registerMob($$0, $$1, "minecraft:illusion_illager"); 88 $$0.register($$1, "minecraft:item", $$1x -> DSL.optionalFields("I 82 $$0.register($$1, "minecraft:item", $$1x -> DSL.optionalFields("I .. tem", References.ITEM_STACK.in($$0))); .. tem", References.ITEM_STACK.in($$0))); 89 $$0.register($$1, "minecraft:item_frame", $$1x -> DSL.optionalFie 83 $$0.register($$1, "minecraft:item_frame", $$1x -> DSL.optionalFie .. lds("Item", References.ITEM_STACK.in($$0))); .. lds("Item", References.ITEM_STACK.in($$0))); 90 $$0.registerSimple($$1, "minecraft:leash_knot"); 84 $$0.registerSimple($$1, "minecraft:leash_knot"); net/minecraft/util/datafix/schemas/V1460.java --- 4/10 --- Java 97 "SaddleItem", .. 98 References.ITEM_STACK.in($$0), .. 99 "DecorItem", .. 100 References.ITEM_STACK.in($$0), .. 101 V100.equipment($$0) .. 102 ) 90 ) 103 ); 91 ); 104 $$0.registerSimple($$1, "minecraft:llama_spit"); 92 $$0.registerSimple($$1, "minecraft:llama_spit"); net/minecraft/util/datafix/schemas/V1460.java --- 5/10 --- Java 108 $$0.register( 96 $$0.register( 109 $$1, 97 $$1, "minecraft:mule", $$1x -> DSL.optionalFields("Items", DS ... .. L.list(References.ITEM_STACK.in($$0)), "SaddleItem", References.ITEM_S ... .. TACK.in($$0)) 110 "minecraft:mule", .. 111 $$1x -> DSL.optionalFields("Items", DSL.list(References.ITEM_ .. ... STACK.in($$0)), "SaddleItem", References.ITEM_STACK.in($$0), V100.equi .. ... pment($$0)) .. 112 ); 98 ); 113 registerMob($$0, $$1, "minecraft:ocelot"); 99 registerMob($$0, $$1, "minecraft:ocelot"); 114 $$0.registerSimple($$1, "minecraft:painting"); 100 $$0.registerSimple($$1, "minecraft:painting"); 115 $$0.registerSimple($$1, "minecraft:parrot"); 101 registerMob($$0, $$1, "minecraft:parrot"); 116 registerMob($$0, $$1, "minecraft:pig"); 102 registerMob($$0, $$1, "minecraft:pig"); 117 registerMob($$0, $$1, "minecraft:polar_bear"); 103 registerMob($$0, $$1, "minecraft:polar_bear"); 118 $$0.register($$1, "minecraft:potion", $$1x -> DSL.optionalFields 104 $$0.register($$1, "minecraft:potion", $$1x -> DSL.optionalFields ("Potion", References.ITEM_STACK.in($$0))); ("Potion", References.ITEM_STACK.in($$0))); net/minecraft/util/datafix/schemas/V1460.java --- 6/10 --- Java 122 $$0.registerSimple($$1, "minecraft:shulker_bullet"); 108 $$0.registerSimple($$1, "minecraft:shulker_bullet"); 123 registerMob($$0, $$1, "minecraft:silverfish"); 109 registerMob($$0, $$1, "minecraft:silverfish"); 124 registerMob($$0, $$1, "minecraft:skeleton"); 110 registerMob($$0, $$1, "minecraft:skeleton"); 125 $$0.register($$1, "minecraft:skeleton_horse", $$1x -> DSL.option 111 $$0.register($$1, "minecraft:skeleton_horse", $$1x -> DSL.option ... alFields("SaddleItem", References.ITEM_STACK.in($$0), V100.equipment($ ... alFields("SaddleItem", References.ITEM_STACK.in($$0))); ... $0))); ... 126 registerMob($$0, $$1, "minecraft:slime"); 112 registerMob($$0, $$1, "minecraft:slime"); 127 $$0.registerSimple($$1, "minecraft:small_fireball"); 113 $$0.registerSimple($$1, "minecraft:small_fireball"); 128 $$0.registerSimple($$1, "minecraft:snowball"); 114 $$0.registerSimple($$1, "minecraft:snowball"); net/minecraft/util/datafix/schemas/V1460.java --- 7/10 --- Java 144 "Inventory", 130 "Inventory", DSL.list(References.ITEM_STACK.in($$0)), " ... ... Offers", DSL.optionalFields("Recipes", DSL.list(References.VILLAGER_TR ... ... ADE.in($$0))) 145 DSL.list(References.ITEM_STACK.in($$0)), ... 146 "Offers", ... 147 DSL.optionalFields("Recipes", DSL.list(References.VILLA ... ... GER_TRADE.in($$0))), ... 148 V100.equipment($$0) ... 149 ) 131 ) 150 ); 132 ); 151 registerMob($$0, $$1, "minecraft:villager_golem"); 133 registerMob($$0, $$1, "minecraft:villager_golem"); net/minecraft/util/datafix/schemas/V1460.java --- 8/10 --- Java 158 $$0.registerSimple($$1, "minecraft:xp_bottle"); 140 $$0.registerSimple($$1, "minecraft:xp_bottle"); 159 $$0.registerSimple($$1, "minecraft:xp_orb"); 141 $$0.registerSimple($$1, "minecraft:xp_orb"); 160 registerMob($$0, $$1, "minecraft:zombie"); 142 registerMob($$0, $$1, "minecraft:zombie"); 161 $$0.register($$1, "minecraft:zombie_horse", $$1x -> DSL.optional 143 $$0.register($$1, "minecraft:zombie_horse", $$1x -> DSL.optional ... Fields("SaddleItem", References.ITEM_STACK.in($$0), V100.equipment($$0 ... Fields("SaddleItem", References.ITEM_STACK.in($$0))); ... ))); ... 162 registerMob($$0, $$1, "minecraft:zombie_pigman"); 144 registerMob($$0, $$1, "minecraft:zombie_pigman"); 163 $$0.register( 145 $$0.register( 164 $$1, 146 $$1, "minecraft:zombie_villager", $$1x -> DSL.optionalFields( ... ... "Offers", DSL.optionalFields("Recipes", DSL.list(References.VILLAGER_T ... ... RADE.in($$0)))) 165 "minecraft:zombie_villager", ... 166 $$1x -> DSL.optionalFields("Offers", DSL.optionalFields("Reci ... ... pes", DSL.list(References.VILLAGER_TRADE.in($$0))), V100.equipment($$0 ... ... )) ... 167 ); 147 ); 168 return $$1; 148 return $$1; 169 } 149 } net/minecraft/util/datafix/schemas/V1460.java --- 9/10 --- Java 245 $$0.registerType( 225 $$0.registerType( 246 true, 226 true, 247 References.ENTITY, 227 References.ENTITY, 248 () -> DSL.optionalFields("CustomName", References.TEXT_COMPON 228 () -> DSL.and( ... ENT.in($$0), DSL.taggedChoiceLazy("id", namespacedString(), $$1)) ... ... 229 References.ENTITY_EQUIPMENT.in($$0), ... 230 DSL.optionalFields("CustomName", References.TEXT_COMPON ... ... ENT.in($$0), DSL.taggedChoiceLazy("id", namespacedString(), $$1)) ... 231 ) 249 ); 232 ); 250 $$0.registerType( 233 $$0.registerType( 251 true, 234 true, net/minecraft/util/datafix/schemas/V1460.java --- 10/10 --- Java 374 ); 357 ); 375 $$0.registerType(true, References.PARTICLE, () -> DSL.constType( 358 $$0.registerType(true, References.PARTICLE, () -> DSL.constType( ... DSL.string())); ... DSL.string())); 376 $$0.registerType(true, References.TEXT_COMPONENT, () -> DSL.cons 359 $$0.registerType(true, References.TEXT_COMPONENT, () -> DSL.cons ... tType(DSL.string())); ... tType(DSL.string())); ... 360 $$0.registerType( ... 361 true, ... 362 References.ENTITY_EQUIPMENT, ... 363 () -> DSL.and( ... 364 DSL.optional(DSL.field("ArmorItems", DSL.list(Reference ... ... s.ITEM_STACK.in($$0)))), ... 365 DSL.optional(DSL.field("HandItems", DSL.list(References ... ... .ITEM_STACK.in($$0)))), ... 366 DSL.optional(DSL.field("body_armor_item", References.IT ... ... EM_STACK.in($$0))), ... 367 DSL.optional(DSL.field("saddle", References.ITEM_STACK. ... ... in($$0))) ... 368 ) ... 369 ); 377 } 370 } 378 } 371 } net/minecraft/gametest/framework/AfterBatch.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.lang.annotation.ElementType; 4 import java.lang.annotation.Retention; 5 import java.lang.annotation.RetentionPolicy; 6 import java.lang.annotation.Target; 7 8 @Target({ElementType.METHOD}) 9 @Retention(RetentionPolicy.RUNTIME) 10 public @interface AfterBatch { 11 String batch(); 12 } 13 net/minecraft/gametest/framework/FunctionGameTestInstance.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import com.mojang.serialization.MapCodec; 4 import com.mojang.serialization.codecs.RecordCodecBuilder; 5 import java.util.function.Consumer; 6 import net.minecraft.core.Holder; 7 import net.minecraft.core.registries.BuiltInRegistries; 8 import net.minecraft.network.chat.Component; 9 import net.minecraft.network.chat.MutableComponent; 10 11 public class FunctionGameTestInstance extends GameTestInstance { 12 public static final MapCodec<FunctionGameTestInstance> CODEC = RecordCodecBuilder.mapCodec( 13 $$0 -> $$0.group( 14 BuiltInRegistries.TEST_FUNCTION.holderByNameCodec().fieldOf("function").forGetter(FunctionGameTestInstance::function), 15 TestData.CODEC.forGetter(GameTestInstance::info) 16 ) 17 .apply($$0, FunctionGameTestInstance::new) 18 ); 19 private final Holder<Consumer<GameTestHelper>> function; 20 21 public FunctionGameTestInstance(Holder<Consumer<GameTestHelper>> $$0, TestData<Holder<TestEnvironmentDefinition>> $$1) { 22 super($$1); 23 this.function = $$0; 24 } 25 26 @Override 27 public void run(GameTestHelper $$0) { 28 this.function.value().accept($$0); 29 } 30 31 private Holder<Consumer<GameTestHelper>> function() { 32 return this.function; 33 } 34 35 @Override 36 public MapCodec<FunctionGameTestInstance> codec() { 37 return CODEC; 38 } 39 40 @Override 41 protected MutableComponent typeDescription() { 42 return Component.translatable("test_instance.type.function"); 43 } 44 45 @Override 46 public Component describe() { 47 return this.describeType() 48 .append(this.descriptionRow("test_instance.description.function", this.function.getRegisteredName())) 49 .append(this.describeInfo()); 50 } 51 } 52 net/minecraft/world/entity/animal/FrogVariant.java --- Java 1 package net.minecraft.world.entity.animal; 1 package net.minecraft.world.entity.animal; 2 2 . 3 import com.mojang.serialization.Codec; 3 import net.minecraft.core.Holder; 4 import net.minecraft.core.Holder; 4 import net.minecraft.core.Registry; 5 import net.minecraft.core.Registry; 5 import net.minecraft.core.registries.Registries; 6 import net.minecraft.core.registries.Registries; 6 import net.minecraft.network.RegistryFriendlyByteBuf; 7 import net.minecraft.network.RegistryFriendlyByteBuf; 7 import net.minecraft.network.codec.ByteBufCodecs; 8 import net.minecraft.network.codec.ByteBufCodecs; 8 import net.minecraft.network.codec.StreamCodec; 9 import net.minecraft.network.codec.StreamCodec; . 10 import net.minecraft.resources.RegistryFixedCodec; 9 import net.minecraft.resources.ResourceKey; 11 import net.minecraft.resources.ResourceKey; 10 import net.minecraft.resources.ResourceLocation; 12 import net.minecraft.resources.ResourceLocation; 11 13 12 public record FrogVariant(ResourceLocation texture) { 14 public record FrogVariant(ResourceLocation texture) { .. 15 public static final Codec<Holder<FrogVariant>> CODEC = RegistryFixed .. .. Codec.create(Registries.FROG_VARIANT); 13 public static final StreamCodec<RegistryFriendlyByteBuf, Holder<Frog 16 public static final StreamCodec<RegistryFriendlyByteBuf, Holder<Frog .. Variant>> STREAM_CODEC = ByteBufCodecs.holderRegistry(Registries.FROG_V .. Variant>> STREAM_CODEC = ByteBufCodecs.holderRegistry(Registries.FROG_V .. ARIANT); .. ARIANT); 14 public static final ResourceKey<FrogVariant> TEMPERATE = createKey(T 17 public static final ResourceKey<FrogVariant> TEMPERATE = createKey(T .. emperatureVariant.TEMPERATE.getId()); .. emperatureVariant.TEMPERATE.getId()); 15 public static final ResourceKey<FrogVariant> WARM = createKey(Temper 18 public static final ResourceKey<FrogVariant> WARM = createKey(Temper atureVariant.WARM.getId()); atureVariant.WARM.getId()); net/minecraft/world/entity/ai/goal/LandOnOwnersShoulderGoal.java --- 1/3 --- Java 5 5 6 public class LandOnOwnersShoulderGoal extends Goal { 6 public class LandOnOwnersShoulderGoal extends Goal { 7 private final ShoulderRidingEntity entity; 7 private final ShoulderRidingEntity entity; 8 private ServerPlayer owner; . 9 private boolean isSittingOnShoulder; 8 private boolean isSittingOnShoulder; 10 9 11 public LandOnOwnersShoulderGoal(ShoulderRidingEntity $$0) { 10 public LandOnOwnersShoulderGoal(ShoulderRidingEntity $$0) { net/minecraft/world/entity/ai/goal/LandOnOwnersShoulderGoal.java --- 2/3 --- Java 14 13 15 @Override 14 @Override 16 public boolean canUse() { 15 public boolean canUse() { 17 ServerPlayer $$0 = (ServerPlayer)this.entity.getOwner(); 16 if (!(this.entity.getOwner() instanceof ServerPlayer $$0)) { .. 17 return false; .. 18 } else { 18 boolean $$1 = $$0 != null && !$$0.isSpectator() && !$$0.getAbilit 19 boolean $$1 = !$$0.isSpectator() && !$$0.getAbilities().flying .. ies().flying && !$$0.isInWater() && !$$0.isInPowderSnow; .. && !$$0.isInWater() && !$$0.isInPowderSnow; 19 return !this.entity.isOrderedToSit() && $$1 && this.entity.canSit 20 return !this.entity.isOrderedToSit() && $$1 && this.entity.can .. OnShoulder(); .. SitOnShoulder(); .. 21 } 20 } 22 } 21 23 22 @Override 24 @Override net/minecraft/world/entity/ai/goal/LandOnOwnersShoulderGoal.java --- 3/3 --- Java 26 28 27 @Override 29 @Override 28 public void start() { 30 public void start() { 29 this.owner = (ServerPlayer)this.entity.getOwner(); .. 30 this.isSittingOnShoulder = false; 31 this.isSittingOnShoulder = false; 31 } 32 } 32 33 33 @Override 34 @Override 34 public void tick() { 35 public void tick() { 35 if (!this.isSittingOnShoulder && !this.entity.isInSittingPose() & 36 if (!this.isSittingOnShoulder && !this.entity.isInSittingPose() & .. & !this.entity.isLeashed()) { .. & !this.entity.isLeashed()) { 36 if (this.entity.getBoundingBox().intersects(this.owner.getBoun 37 if (this.entity.getOwner() instanceof ServerPlayer $$0 && this .. dingBox())) { .. .entity.getBoundingBox().intersects($$0.getBoundingBox())) { 37 this.isSittingOnShoulder = this.entity.setEntityOnShoulder( 38 this.isSittingOnShoulder = this.entity.setEntityOnShoulder( .. this.owner); .. $$0); 38 } 39 } 39 } 40 } 40 } 41 } net/minecraft/gametest/framework/GameTestRunner.java --- 1/8 --- Java 11 import java.util.stream.Collectors; 11 import java.util.stream.Collectors; 12 import javax.annotation.Nullable; 12 import javax.annotation.Nullable; 13 import net.minecraft.Util; 13 import net.minecraft.Util; .. 14 import net.minecraft.core.Holder; 14 import net.minecraft.network.protocol.game.DebugPackets; 15 import net.minecraft.network.protocol.game.DebugPackets; 15 import net.minecraft.server.level.ServerLevel; 16 import net.minecraft.server.level.ServerLevel; 16 import net.minecraft.world.level.ChunkPos; 17 import net.minecraft.world.level.ChunkPos; net/minecraft/gametest/framework/GameTestRunner.java --- 2/8 --- Java 28 private final GameTestRunner.GameTestBatcher testBatcher; 29 private final GameTestRunner.GameTestBatcher testBatcher; 29 private boolean stopped = true; 30 private boolean stopped = true; 30 @Nullable 31 @Nullable 31 GameTestBatch currentBatch; 32 private Holder<TestEnvironmentDefinition> currentEnvironment; 32 private final GameTestRunner.StructureSpawner existingStructureSpawn 33 private final GameTestRunner.StructureSpawner existingStructureSpawn .. er; .. er; 33 private final GameTestRunner.StructureSpawner newStructureSpawner; 34 private final GameTestRunner.StructureSpawner newStructureSpawner; 34 final boolean haltOnError; 35 final boolean haltOnError; net/minecraft/gametest/framework/GameTestRunner.java --- 3/8 --- Java 65 66 66 public void stop() { 67 public void stop() { 67 this.stopped = true; 68 this.stopped = true; 68 if (this.currentBatch != null) { 69 if (this.currentEnvironment != null) { 69 this.currentBatch.afterBatchFunction().accept(this.level); 70 this.endCurrentEnvironment(); 70 } 71 } 71 } 72 } 72 73 net/minecraft/gametest/framework/GameTestRunner.java --- 4/8 --- Java 82 83 83 void runBatch(final int $$0) { 84 void runBatch(final int $$0) { 84 if ($$0 >= this.batches.size()) { 85 if ($$0 >= this.batches.size()) { .. 86 this.endCurrentEnvironment(); 85 this.runScheduledRerunTests(); 87 this.runScheduledRerunTests(); 86 } else { 88 } else { 87 this.currentBatch = this.batches.get($$0); 89 final GameTestBatch $$1 = this.batches.get($$0); 88 this.existingStructureSpawner.onBatchStart(this.level); 90 this.existingStructureSpawner.onBatchStart(this.level); 89 this.newStructureSpawner.onBatchStart(this.level); 91 this.newStructureSpawner.onBatchStart(this.level); 90 Collection<GameTestInfo> $$1 = this.createStructuresForBatch( 92 Collection<GameTestInfo> $$2 = this.createStructuresForBatch( .. this.currentBatch.gameTestInfos()); .. $$1.gameTestInfos()); 91 String $$2 = this.currentBatch.name(); .. 92 LOGGER.info("Running test batch '{}' ({} tests)...", $$2, $$1 93 LOGGER.info("Running test environment '{}' batch {} ({} tests .. .size()); .. )...", $$1.environment().getRegisteredName(), $$1.index(), $$2.size()) .. .. ; .. 94 if (this.currentEnvironment != $$1.environment()) { .. 95 this.endCurrentEnvironment(); .. 96 this.currentEnvironment = $$1.environment(); 93 this.currentBatch.beforeBatchFunction().accept(this.level); 97 this.currentEnvironment.value().setup(this.level); .. 98 } .. 99 94 this.batchListeners.forEach($$0x -> $$0x.testBatchStarting(th 100 this.batchListeners.forEach($$1x -> $$1x.testBatchStarting($$ .. is.currentBatch)); ... 1)); 95 final MultipleTestTracker $$3 = new MultipleTestTracker(); 101 final MultipleTestTracker $$3 = new MultipleTestTracker(); 96 $$1.forEach($$3::addTestToTrack); 102 $$2.forEach($$3::addTestToTrack); 97 $$3.addListener(new GameTestListener() { 103 $$3.addListener(new GameTestListener() { 98 private void testCompleted() { 104 private void testCompleted() { 99 if ($$3.isDone()) { 105 if ($$3.isDone()) { 100 GameTestRunner.this.currentBatch.afterBatchFunction( ... ... ).accept(GameTestRunner.this.level); ... 101 GameTestRunner.this.batchListeners.forEach($$0xxx -> 106 GameTestRunner.this.batchListeners.forEach($$1xx -> ... $$0xxx.testBatchFinished(GameTestRunner.this.currentBatch)); ... $$1xx.testBatchFinished($$1)); 102 LongSet $$0 = new LongArraySet(GameTestRunner.this.l 107 LongSet $$0 = new LongArraySet(GameTestRunner.this.l ... evel.getForceLoadedChunks()); ... evel.getForceLoadedChunks()); 103 $$0.forEach($$0xxx -> GameTestRunner.this.level.setC 108 $$0.forEach($$0xxx -> GameTestRunner.this.level.setC ... hunkForced(ChunkPos.getX($$0xxx), ChunkPos.getZ($$0xxx), false)); ... hunkForced(ChunkPos.getX($$0xxx), ChunkPos.getZ($$0xxx), false)); 104 GameTestRunner.this.runBatch($$0 + 1); 109 GameTestRunner.this.runBatch($$0 + 1); net/minecraft/gametest/framework/GameTestRunner.java --- 5/8 --- Java 110 } 115 } 111 116 112 @Override 117 @Override 113 public void testPassed(GameTestInfo $$0x, GameTestRunner $ 118 public void testPassed(GameTestInfo $$0x, GameTestRunner $ ... $1) { ... $1x) { 114 this.testCompleted(); 119 this.testCompleted(); 115 } 120 } 116 121 117 @Override 122 @Override 118 public void testFailed(GameTestInfo $$0x, GameTestRunner $ 123 public void testFailed(GameTestInfo $$0x, GameTestRunner $ ... $1) { ... $1x) { 119 if (GameTestRunner.this.haltOnError) { 124 if (GameTestRunner.this.haltOnError) { 120 GameTestRunner.this.currentBatch.afterBatchFunction( 125 GameTestRunner.this.endCurrentEnvironment(); ... ).accept(GameTestRunner.this.level); ... 121 LongSet $$2 = new LongArraySet(GameTestRunner.this.l 126 LongSet $$2 = new LongArraySet(GameTestRunner.this.l ... evel.getForceLoadedChunks()); ... evel.getForceLoadedChunks()); 122 $$2.forEach($$0xxx -> GameTestRunner.this.level.setC 127 $$2.forEach($$0xxx -> GameTestRunner.this.level.setC ... hunkForced(ChunkPos.getX($$0xxx), ChunkPos.getZ($$0xxx), false)); ... hunkForced(ChunkPos.getX($$0xxx), ChunkPos.getZ($$0xxx), false)); 123 GameTestTicker.SINGLETON.clear(); 128 GameTestTicker.SINGLETON.clear(); net/minecraft/gametest/framework/GameTestRunner.java --- 6/8 --- Java 127 } 132 } 128 133 129 @Override 134 @Override 130 public void testAddedForRerun(GameTestInfo $$0x, GameTestI 135 public void testAddedForRerun(GameTestInfo $$0x, GameTestI ... nfo $$1, GameTestRunner $$2) { ... nfo $$1x, GameTestRunner $$2) { 131 } 136 } 132 }); 137 }); 133 $$1.forEach(this.testTicker::add); 138 $$2.forEach(this.testTicker::add); 134 } 139 } 135 } 140 } ... 141 ... 142 void endCurrentEnvironment() { ... 143 if (this.currentEnvironment != null) { ... 144 this.currentEnvironment.value().teardown(this.level); ... 145 this.currentEnvironment = null; ... 146 } ... 147 } 136 148 137 private void runScheduledRerunTests() { 149 private void runScheduledRerunTests() { 138 if (!this.scheduledForRerun.isEmpty()) { 150 if (!this.scheduledForRerun.isEmpty()) { 139 LOGGER.info( 151 LOGGER.info("Starting re-run of tests: {}", this.scheduledFor ... ... Rerun.stream().map($$0 -> $$0.id().toString()).collect(Collectors.join ... ... ing(", "))); 140 "Starting re-run of tests: {}", this.scheduledForRerun.str ... ... eam().map($$0 -> $$0.getTestFunction().testName()).collect(Collectors. ... ... joining(", ")) ... 141 ); ... 142 this.batches = ImmutableList.copyOf(this.testBatcher.batch(th 152 this.batches = ImmutableList.copyOf(this.testBatcher.batch(th ... is.scheduledForRerun)); ... is.scheduledForRerun)); 143 this.scheduledForRerun.clear(); 153 this.scheduledForRerun.clear(); net/minecraft/gametest/framework/GameTestRunner.java --- 7/8 --- Java 158 } 168 } 159 169 160 private Optional<GameTestInfo> spawn(GameTestInfo $$0) { 170 private Optional<GameTestInfo> spawn(GameTestInfo $$0) { 161 return $$0.getStructureBlockPos() == null ? this.newStructureSpa 171 return $$0.getTestBlockPos() == null ? this.newStructureSpawner. ... wner.spawnStructure($$0) : this.existingStructureSpawner.spawnStructur ... spawnStructure($$0) : this.existingStructureSpawner.spawnStructure($$0 ... e($$0); ... ); 162 } 172 } 163 173 164 public static void clearMarkers(ServerLevel $$0) { 174 public static void clearMarkers(ServerLevel $$0) { net/minecraft/gametest/framework/GameTestRunner.java --- 8/8 --- Java 219 } 229 } 220 230 221 public interface StructureSpawner { 231 public interface StructureSpawner { 222 GameTestRunner.StructureSpawner IN_PLACE = $$0 -> Optional.of($$ 232 GameTestRunner.StructureSpawner IN_PLACE = $$0 -> Optional.of($$ ... 0.prepareTestStructure().placeStructure().startExecution(1)); ... 0.prepareTestStructure().startExecution(1)); 223 GameTestRunner.StructureSpawner NOT_SET = $$0 -> Optional.empty( 233 GameTestRunner.StructureSpawner NOT_SET = $$0 -> Optional.empty( ... ); ... ); 224 234 225 Optional<GameTestInfo> spawnStructure(GameTestInfo var1); 235 Optional<GameTestInfo> spawnStructure(GameTestInfo var1); net/minecraft/gametest/framework/GeneratedTest.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.util.Map; 4 import java.util.function.Consumer; 5 import net.minecraft.core.registries.Registries; 6 import net.minecraft.resources.ResourceKey; 7 import net.minecraft.resources.ResourceLocation; 8 9 public record GeneratedTest( 10 Map<ResourceLocation, TestData<ResourceKey<TestEnvironmentDefinition>>> tests, 11 ResourceKey<Consumer<GameTestHelper>> functionKey, 12 Consumer<GameTestHelper> function 13 ) { 14 public GeneratedTest(Map<ResourceLocation, TestData<ResourceKey<TestEnvironmentDefinition>>> $$0, ResourceLocation $$1, Consumer<GameTestHelper> $$2) { 15 this($$0, ResourceKey.create(Registries.TEST_FUNCTION, $$1), $$2); 16 } 17 18 public GeneratedTest(ResourceLocation $$0, TestData<ResourceKey<TestEnvironmentDefinition>> $$1, Consumer<GameTestHelper> $$2) { 19 this(Map.of($$0, $$1), $$0, $$2); 20 } 21 } 22 net/minecraft/gametest/framework/TestData.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import com.mojang.serialization.Codec; 4 import com.mojang.serialization.MapCodec; 5 import com.mojang.serialization.codecs.RecordCodecBuilder; 6 import java.util.function.Function; 7 import net.minecraft.core.Holder; 8 import net.minecraft.resources.ResourceLocation; 9 import net.minecraft.util.ExtraCodecs; 10 import net.minecraft.world.level.block.Rotation; 11 12 public record TestData<EnvironmentType>( 13 EnvironmentType environment, 14 ResourceLocation structure, 15 int maxTicks, 16 int setupTicks, 17 boolean required, 18 Rotation rotation, 19 boolean manualOnly, 20 int maxAttempts, 21 int requiredSuccesses, 22 boolean skyAccess 23 ) { 24 public static final MapCodec<TestData<Holder<TestEnvironmentDefinition>>> CODEC = RecordCodecBuilder.mapCodec( 25 $$0 -> $$0.group( 26 TestEnvironmentDefinition.CODEC.fieldOf("batch").forGetter(TestData::environment), 27 ResourceLocation.CODEC.fieldOf("structure").forGetter(TestData::structure), 28 ExtraCodecs.POSITIVE_INT.fieldOf("max_ticks").forGetter(TestData::maxTicks), 29 ExtraCodecs.NON_NEGATIVE_INT.optionalFieldOf("setup_ticks", 0).forGetter(TestData::setupTicks), 30 Codec.BOOL.optionalFieldOf("required", Boolean.valueOf(true)).forGetter(TestData::required), 31 Rotation.CODEC.optionalFieldOf("rotation", Rotation.NONE).forGetter(TestData::rotation), 32 Codec.BOOL.optionalFieldOf("manual_only", Boolean.valueOf(false)).forGetter(TestData::manualOnly), 33 ExtraCodecs.POSITIVE_INT.optionalFieldOf("max_attempts", 1).forGetter(TestData::maxAttempts), 34 ExtraCodecs.POSITIVE_INT.optionalFieldOf("required_successes", 1).forGetter(TestData::requiredSuccesses), 35 Codec.BOOL.optionalFieldOf("sky_accesss", Boolean.valueOf(false)).forGetter(TestData::skyAccess) 36 ) 37 .apply($$0, TestData::new) 38 ); 39 40 public TestData(EnvironmentType $$0, ResourceLocation $$1, int $$2, int $$3, boolean $$4, Rotation $$5) { 41 this($$0, $$1, $$2, $$3, $$4, $$5, false, 1, 1, false); 42 } 43 44 public TestData(EnvironmentType $$0, ResourceLocation $$1, int $$2, int $$3, boolean $$4) { 45 this($$0, $$1, $$2, $$3, $$4, Rotation.NONE); 46 } 47 48 public <T> TestData<T> map(Function<EnvironmentType, T> $$0) { 49 return new TestData<>( 50 $$0.apply(this.environment), 51 this.structure, 52 this.maxTicks, 53 this.setupTicks, 54 this.required, 55 this.rotation, 56 this.manualOnly, 57 this.maxAttempts, 58 this.requiredSuccesses, 59 this.skyAccess 60 ); 61 } 62 } 63 net/minecraft/world/entity/animal/allay/Allay.java --- Java 509 private void duplicateAllay() { 509 private void duplicateAllay() { 510 Allay $$0 = EntityType.ALLAY.create(this.level(), EntitySpawnRea 510 Allay $$0 = EntityType.ALLAY.create(this.level(), EntitySpawnRea ... son.BREEDING); ... son.BREEDING); 511 if ($$0 != null) { 511 if ($$0 != null) { 512 $$0.moveTo(this.position()); 512 $$0.snapTo(this.position()); 513 $$0.setPersistenceRequired(); 513 $$0.setPersistenceRequired(); 514 $$0.resetDuplicationCooldown(); 514 $$0.resetDuplicationCooldown(); 515 this.resetDuplicationCooldown(); 515 this.resetDuplicationCooldown(); net/minecraft/world/entity/monster/Zombie.java --- Java 484 } else if ((double)$$4.nextFloat() < 0.05) { 484 } else if ((double)$$4.nextFloat() < 0.05) { 485 Chicken $$9 = EntityType.CHICKEN.create(this.level() 485 Chicken $$9 = EntityType.CHICKEN.create(this.level() ... , EntitySpawnReason.JOCKEY); ... , EntitySpawnReason.JOCKEY); 486 if ($$9 != null) { 486 if ($$9 != null) { 487 $$9.moveTo(this.getX(), this.getY(), this.getZ(), 487 $$9.snapTo(this.getX(), this.getY(), this.getZ(), ... this.getYRot(), 0.0F); ... this.getYRot(), 0.0F); 488 $$9.finalizeSpawn($$0, $$1, EntitySpawnReason.JOC 488 $$9.finalizeSpawn($$0, $$1, EntitySpawnReason.JOC ... KEY, null); ... KEY, null); 489 $$9.setChickenJockey(true); 489 $$9.setChickenJockey(true); 490 this.startRiding($$9); 490 this.startRiding($$9); net/minecraft/world/entity/animal/Animal.java --- Java 221 AgeableMob $$2 = this.getBreedOffspring($$0, $$1); 221 AgeableMob $$2 = this.getBreedOffspring($$0, $$1); 222 if ($$2 != null) { 222 if ($$2 != null) { 223 $$2.setBaby(true); 223 $$2.setBaby(true); 224 $$2.moveTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F) 224 $$2.snapTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F) ... ; ... ; 225 this.finalizeSpawnChildFromBreeding($$0, $$1, $$2); 225 this.finalizeSpawnChildFromBreeding($$0, $$1, $$2); 226 $$0.addFreshEntityWithPassengers($$2); 226 $$0.addFreshEntityWithPassengers($$2); 227 } 227 } net/minecraft/util/datafix/schemas/V100.java --- Java 12 super($$0, $$1); 12 super($$0, $$1); 13 } 13 } 14 .. 15 protected static TypeTemplate equipment(Schema $$0) { .. 16 return DSL.optionalFields( .. 17 "ArmorItems", .. 18 DSL.list(References.ITEM_STACK.in($$0)), .. 19 "HandItems", .. 20 DSL.list(References.ITEM_STACK.in($$0)), .. 21 "body_armor_item", .. 22 References.ITEM_STACK.in($$0) .. 23 ); .. 24 } .. 25 .. 26 protected static void registerMob(Schema $$0, Map<String, Supplier< .. .. TypeTemplate>> $$1, String $$2) { .. 27 $$0.register($$1, $$2, () -> equipment($$0)); .. 28 } .. 29 .. 30 @Override .. 31 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema .. .. $$0) { .. 32 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities .. .. ($$0); .. 33 registerMob($$0, $$1, "ArmorStand"); .. 34 registerMob($$0, $$1, "Creeper"); .. 35 registerMob($$0, $$1, "Skeleton"); .. 36 registerMob($$0, $$1, "Spider"); .. 37 registerMob($$0, $$1, "Giant"); .. 38 registerMob($$0, $$1, "Zombie"); .. 39 registerMob($$0, $$1, "Slime"); .. 40 registerMob($$0, $$1, "Ghast"); .. 41 registerMob($$0, $$1, "PigZombie"); .. 42 $$0.register($$1, "Enderman", $$1x -> DSL.optionalFields("carrie .. .. d", References.BLOCK_NAME.in($$0), equipment($$0))); .. 43 registerMob($$0, $$1, "CaveSpider"); .. 44 registerMob($$0, $$1, "Silverfish"); .. 45 registerMob($$0, $$1, "Blaze"); .. 46 registerMob($$0, $$1, "LavaSlime"); .. 47 registerMob($$0, $$1, "EnderDragon"); .. 48 registerMob($$0, $$1, "WitherBoss"); .. 49 registerMob($$0, $$1, "Bat"); .. 50 registerMob($$0, $$1, "Witch"); .. 51 registerMob($$0, $$1, "Endermite"); .. 52 registerMob($$0, $$1, "Guardian"); .. 53 registerMob($$0, $$1, "Pig"); .. 54 registerMob($$0, $$1, "Sheep"); .. 55 registerMob($$0, $$1, "Cow"); .. 56 registerMob($$0, $$1, "Chicken"); .. 57 registerMob($$0, $$1, "Squid"); .. 58 registerMob($$0, $$1, "Wolf"); .. 59 registerMob($$0, $$1, "MushroomCow"); .. 60 registerMob($$0, $$1, "SnowMan"); .. 61 registerMob($$0, $$1, "Ozelot"); .. 62 registerMob($$0, $$1, "VillagerGolem"); .. 63 $$0.register( .. 64 $$1, .. 65 "EntityHorse", .. 66 $$1x -> DSL.optionalFields( .. 67 "Items", .. 68 DSL.list(References.ITEM_STACK.in($$0)), .. 69 "ArmorItem", .. 70 References.ITEM_STACK.in($$0), .. 71 "SaddleItem", .. 72 References.ITEM_STACK.in($$0), .. 73 equipment($$0) .. 74 ) .. 75 ); .. 76 registerMob($$0, $$1, "Rabbit"); .. 77 $$0.register( .. 78 $$1, .. 79 "Villager", .. 80 $$1x -> DSL.optionalFields( .. 81 "Inventory", .. 82 DSL.list(References.ITEM_STACK.in($$0)), .. 83 "Offers", .. 84 DSL.optionalFields("Recipes", DSL.list(References.VILLA .. .. GER_TRADE.in($$0))), .. 85 equipment($$0) .. 86 ) .. 87 ); .. 88 registerMob($$0, $$1, "Shulker"); .. 89 $$0.register($$1, "AreaEffectCloud", $$1x -> DSL.optionalFields( .. .. "Particle", References.PARTICLE.in($$0))); .. 90 $$0.registerSimple($$1, "ShulkerBullet"); .. 91 return $$1; .. 92 } .. 93 14 94 @Override 15 @Override 95 public void registerTypes(Schema $$0, Map<String, Supplier<TypeTemp 16 public void registerTypes(Schema $$0, Map<String, Supplier<TypeTemp .. late>> $$1, Map<String, Supplier<TypeTemplate>> $$2) { .. late>> $$1, Map<String, Supplier<TypeTemplate>> $$2) { 96 super.registerTypes($$0, $$1, $$2); 17 super.registerTypes($$0, $$1, $$2); 97 $$0.registerType( 18 $$0.registerType( 98 false, 19 true, 99 References.STRUCTURE, 20 References.ENTITY_EQUIPMENT, 100 () -> DSL.optionalFields( 21 () -> DSL.and( 101 "entities", 22 DSL.optional(DSL.field("ArmorItems", DSL.list(Reference ... .. s.ITEM_STACK.in($$0)))), 102 DSL.list(DSL.optionalFields("nbt", References.ENTITY_TR 23 DSL.optional(DSL.field("HandItems", DSL.list(References ... EE.in($$0))), .. .ITEM_STACK.in($$0)))), 103 "blocks", .. 104 DSL.list(DSL.optionalFields("nbt", References.BLOCK_ENT 24 DSL.optional(DSL.field("body_armor_item", References.IT ... ITY.in($$0))), .. EM_STACK.in($$0))), 105 "palette", .. 106 DSL.list(References.BLOCK_STATE.in($$0)) 25 DSL.optional(DSL.field("saddle", References.ITEM_STACK. ... .. in($$0))) 107 ) 26 ) 108 ); 27 ); 109 $$0.registerType(false, References.BLOCK_STATE, DSL::remainder); .. 110 $$0.registerType(false, References.FLAT_BLOCK_STATE, DSL::remain .. ... der); .. 111 } 28 } 112 } 29 } net/minecraft/util/datafix/schemas/V701.java --- Java 10 super($$0, $$1); 10 super($$0, $$1); 11 } 11 } 12 .. 13 protected static void registerMob(Schema $$0, Map<String, Supplier<T .. .. ypeTemplate>> $$1, String $$2) { .. 14 $$0.register($$1, $$2, () -> V100.equipment($$0)); .. 15 } .. 16 12 17 @Override 13 @Override 18 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 19 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 20 registerMob($$0, $$1, "WitherSkeleton"); 16 $$0.registerSimple($$1, "WitherSkeleton"); 21 registerMob($$0, $$1, "Stray"); 17 $$0.registerSimple($$1, "Stray"); 22 return $$1; 18 return $$1; 23 } 19 } 24 } 20 } net/minecraft/util/datafix/schemas/V2686.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:axolotl", () -> V100.equipment($$0)) 16 $$0.registerSimple($$1, "minecraft:axolotl"); .. ; .. 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/util/datafix/schemas/V4302.java --- Java 1 package net.minecraft.util.datafix.schemas; 2 3 import com.mojang.datafixers.schemas.Schema; 4 import com.mojang.datafixers.types.templates.TypeTemplate; 5 import java.util.Map; 6 import java.util.function.Supplier; 7 8 public class V4302 extends NamespacedSchema { 9 public V4302(int $$0, Schema $$1) { 10 super($$0, $$1); 11 } 12 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerBlockEntities(Schema $$0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerBlockEntities($$0); 16 $$0.registerSimple($$1, "minecraft:test_block"); 17 $$0.registerSimple($$1, "minecraft:test_instance_block"); 18 return $$1; 19 } 20 } 21 net/minecraft/util/datafix/schemas/V2571.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:goat", () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, "minecraft:goat"); 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/util/datafix/schemas/V3081.java --- Java 19 $$1, 19 $$1, 20 "minecraft:warden", 20 "minecraft:warden", 21 () -> DSL.optionalFields( 21 () -> DSL.optionalFields("listener", DSL.optionalFields("event .. .. ", DSL.optionalFields("game_event", References.GAME_EVENT_NAME.in($$0)) .. .. )) 22 "listener", DSL.optionalFields("event", DSL.optionalFiel .. .. ds("game_event", References.GAME_EVENT_NAME.in($$0))), V100.equipment($ .. .. $0) .. 23 ) .. 24 ); 22 ); 25 return $$1; 23 return $$1; net/minecraft/world/entity/animal/horse/Horse.java --- 1/4 --- Java 2 2 3 import javax.annotation.Nullable; 3 import javax.annotation.Nullable; 4 import net.minecraft.Util; 4 import net.minecraft.Util; . 5 import net.minecraft.core.component.DataComponentGetter; . 6 import net.minecraft.core.component.DataComponentType; . 7 import net.minecraft.core.component.DataComponents; 5 import net.minecraft.nbt.CompoundTag; 8 import net.minecraft.nbt.CompoundTag; 6 import net.minecraft.network.syncher.EntityDataAccessor; 9 import net.minecraft.network.syncher.EntityDataAccessor; 7 import net.minecraft.network.syncher.EntityDataSerializers; 10 import net.minecraft.network.syncher.EntityDataSerializers; net/minecraft/world/entity/animal/horse/Horse.java --- 2/4 --- Java 23 import net.minecraft.world.entity.EquipmentSlot; 26 import net.minecraft.world.entity.EquipmentSlot; 24 import net.minecraft.world.entity.Pose; 27 import net.minecraft.world.entity.Pose; 25 import net.minecraft.world.entity.SpawnGroupData; 28 import net.minecraft.world.entity.SpawnGroupData; 26 import net.minecraft.world.entity.VariantHolder; .. 27 import net.minecraft.world.entity.ai.attributes.Attributes; 29 import net.minecraft.world.entity.ai.attributes.Attributes; 28 import net.minecraft.world.entity.animal.Animal; 30 import net.minecraft.world.entity.animal.Animal; 29 import net.minecraft.world.entity.player.Player; 31 import net.minecraft.world.entity.player.Player; net/minecraft/world/entity/animal/horse/Horse.java --- 3/4 --- Java 32 import net.minecraft.world.level.ServerLevelAccessor; 34 import net.minecraft.world.level.ServerLevelAccessor; 33 import net.minecraft.world.level.block.SoundType; 35 import net.minecraft.world.level.block.SoundType; 34 36 35 public class Horse extends AbstractHorse implements VariantHolder<Varia 37 public class Horse extends AbstractHorse { .. nt> { .. 36 private static final EntityDataAccessor<Integer> DATA_ID_TYPE_VARIAN 38 private static final EntityDataAccessor<Integer> DATA_ID_TYPE_VARIAN .. T = SynchedEntityData.defineId(Horse.class, EntityDataSerializers.INT); .. T = SynchedEntityData.defineId(Horse.class, EntityDataSerializers.INT); 37 private static final EntityDimensions BABY_DIMENSIONS = EntityType.H 39 private static final EntityDimensions BABY_DIMENSIONS = EntityType.H .. ORSE .. ORSE 38 .getDimensions() 40 .getDimensions() net/minecraft/world/entity/animal/horse/Horse.java --- 4/4 --- Java 84 return Variant.byId(this.getTypeVariant() & 0xFF); 86 return Variant.byId(this.getTypeVariant() & 0xFF); 85 } 87 } 86 88 87 public void setVariant(Variant $$0) { 89 private void setVariant(Variant $$0) { 88 this.setTypeVariant($$0.getId() & 0xFF | this.getTypeVariant() & 90 this.setTypeVariant($$0.getId() & 0xFF | this.getTypeVariant() & .. -256); .. -256); 89 } 91 } .. 92 .. 93 @Nullable .. 94 @Override .. 95 public <T> T get(DataComponentType<? extends T> $$0) { .. 96 return $$0 == DataComponents.HORSE_VARIANT ? castComponentValue(( .. .. DataComponentType<T>)$$0, this.getVariant()) : super.get($$0); .. 97 } .. 98 .. 99 @Override .. 100 protected void applyImplicitComponents(DataComponentGetter $$0) { .. 101 this.applyImplicitComponentIfPresent($$0, DataComponents.HORSE_VA .. ... RIANT); .. 102 super.applyImplicitComponents($$0); .. 103 } .. 104 .. 105 @Override .. 106 protected <T> boolean applyImplicitComponent(DataComponentType<T> $$ .. ... 0, T $$1) { .. 107 if ($$0 == DataComponents.HORSE_VARIANT) { .. 108 this.setVariant(castComponentValue(DataComponents.HORSE_VARIAN .. ... T, $$1)); .. 109 return true; .. 110 } else { .. 111 return super.applyImplicitComponent($$0, $$1); .. 112 } .. 113 } 90 114 91 public Markings getMarkings() { 115 public Markings getMarkings() { 92 return Markings.byId((this.getTypeVariant() & 0xFF00) >> 8); 116 return Markings.byId((this.getTypeVariant() & 0xFF00) >> 8); net/minecraft/world/entity/animal/horse/SkeletonTrapGoal.java --- Java 37 this.horse.setAge(0); 37 this.horse.setAge(0); 38 LightningBolt $$2 = EntityType.LIGHTNING_BOLT.create($$0, EntityS 38 LightningBolt $$2 = EntityType.LIGHTNING_BOLT.create($$0, EntityS .. pawnReason.TRIGGERED); .. pawnReason.TRIGGERED); 39 if ($$2 != null) { 39 if ($$2 != null) { 40 $$2.moveTo(this.horse.getX(), this.horse.getY(), this.horse.ge 40 $$2.snapTo(this.horse.getX(), this.horse.getY(), this.horse.ge .. tZ()); .. tZ()); 41 $$2.setVisualOnly(true); 41 $$2.setVisualOnly(true); 42 $$0.addFreshEntity($$2); 42 $$0.addFreshEntity($$2); 43 Skeleton $$3 = this.createSkeleton($$1, this.horse); 43 Skeleton $$3 = this.createSkeleton($$1, this.horse); net/minecraft/gametest/framework/StructureUtils.java --- 1/5 --- Java 1 package net.minecraft.gametest.framework; 1 package net.minecraft.gametest.framework; 2 2 3 import com.mojang.logging.LogUtils; 3 import java.nio.file.Path; 4 import java.util.Collections; 4 import java.nio.file.Paths; 5 import java.util.Comparator; 5 import java.util.Collections; 6 import java.util.List; 6 import java.util.Comparator; 7 import java.util.Objects; 7 import java.util.List; 8 import java.util.Optional; 8 import java.util.Optional; 9 import java.util.stream.Stream; 9 import java.util.stream.Stream; 10 import net.minecraft.commands.arguments.blocks.BlockInput; 10 import net.minecraft.commands.arguments.blocks.BlockInput; 11 import net.minecraft.core.BlockPos; 11 import net.minecraft.core.BlockPos; 12 import net.minecraft.core.Vec3i; 12 import net.minecraft.core.Vec3i; .. 13 import net.minecraft.core.registries.Registries; .. 14 import net.minecraft.resources.ResourceKey; 13 import net.minecraft.resources.ResourceLocation; 15 import net.minecraft.resources.ResourceLocation; 14 import net.minecraft.server.level.ServerLevel; 16 import net.minecraft.server.level.ServerLevel; 15 import net.minecraft.world.entity.Entity; 17 import net.minecraft.world.entity.Entity; net/minecraft/gametest/framework/StructureUtils.java --- 2/5 --- Java 19 import net.minecraft.world.level.block.Rotation; 21 import net.minecraft.world.level.block.Rotation; 20 import net.minecraft.world.level.block.entity.BlockEntity; 22 import net.minecraft.world.level.block.entity.BlockEntity; 21 import net.minecraft.world.level.block.entity.BlockEntityType; 23 import net.minecraft.world.level.block.entity.BlockEntityType; 22 import net.minecraft.world.level.block.entity.CommandBlockEntity; 24 import net.minecraft.world.level.block.entity.TestInstanceBlockEntity; 23 import net.minecraft.world.level.block.entity.StructureBlockEntity; .. 24 import net.minecraft.world.level.block.state.BlockState; 25 import net.minecraft.world.level.block.state.BlockState; 25 import net.minecraft.world.level.block.state.properties.StructureMode; .. 26 import net.minecraft.world.level.levelgen.Heightmap; 26 import net.minecraft.world.level.levelgen.Heightmap; 27 import net.minecraft.world.level.levelgen.structure.BoundingBox; 27 import net.minecraft.world.level.levelgen.structure.BoundingBox; 28 import net.minecraft.world.level.levelgen.structure.templatesystem.Stru 28 import net.minecraft.world.level.levelgen.structure.templatesystem.Stru .. ctureTemplate; .. ctureTemplate; 29 import net.minecraft.world.phys.AABB; 29 import net.minecraft.world.phys.AABB; 30 import net.minecraft.world.phys.Vec3; 30 import net.minecraft.world.phys.Vec3; 31 import org.slf4j.Logger; .. 32 31 33 public class StructureUtils { 32 public class StructureUtils { 34 private static final Logger LOGGER = LogUtils.getLogger(); .. 35 public static final int DEFAULT_Y_SEARCH_RADIUS = 10; 33 public static final int DEFAULT_Y_SEARCH_RADIUS = 10; 36 public static final String DEFAULT_TEST_STRUCTURES_DIR = "gametestst 34 public static final String DEFAULT_TEST_STRUCTURES_DIR = "Minecraft. .. ructures"; .. Server/src/test/convertables/data"; 37 public static String testStructuresDir = "gameteststructures"; 35 public static Path testStructuresDir = Paths.get("Minecraft.Server/s .. .. rc/test/convertables/data"); 38 36 39 public static Rotation getRotationForRotationSteps(int $$0) { 37 public static Rotation getRotationForRotationSteps(int $$0) { 40 switch ($$0) { 38 switch ($$0) { net/minecraft/gametest/framework/StructureUtils.java --- 3/5 --- Java 66 } 64 } 67 } 65 } 68 .. 69 public static AABB getStructureBounds(StructureBlockEntity $$0) { .. 70 return AABB.of(getStructureBoundingBox($$0)); .. 71 } .. 72 .. 73 public static BoundingBox getStructureBoundingBox(StructureBlockEnt .. .. ity $$0) { .. 74 BlockPos $$1 = getStructureOrigin($$0); .. 75 BlockPos $$2 = getTransformedFarCorner($$1, $$0.getStructureSize .. .. (), $$0.getRotation()); .. 76 return BoundingBox.fromCorners($$1, $$2); .. 77 } .. 78 .. 79 public static BlockPos getStructureOrigin(StructureBlockEntity $$0) .. .. { .. 80 return $$0.getBlockPos().offset($$0.getStructurePos()); .. 81 } .. 82 .. 83 public static void addCommandBlockAndButtonToStartTest(BlockPos $$0 .. .. , BlockPos $$1, Rotation $$2, ServerLevel $$3) { .. 84 BlockPos $$4 = StructureTemplate.transform($$0.offset($$1), Mirr .. .. or.NONE, $$2, $$0); .. 85 $$3.setBlockAndUpdate($$4, Blocks.COMMAND_BLOCK.defaultBlockStat .. .. e()); .. 86 CommandBlockEntity $$5 = (CommandBlockEntity)$$3.getBlockEntity( .. .. $$4); .. 87 $$5.getCommandBlock().setCommand("test runclosest"); .. 88 BlockPos $$6 = StructureTemplate.transform($$4.offset(0, 0, -1), .. .. Mirror.NONE, $$2, $$4); .. 89 $$3.setBlockAndUpdate($$6, Blocks.STONE_BUTTON.defaultBlockState .. .. ().rotate($$2)); .. 90 } .. 91 66 92 public static void createNewEmptyStructureBlock(String $$0, BlockPo 67 public static TestInstanceBlockEntity createNewEmptyTest(ResourceLo .. s $$1, Vec3i $$2, Rotation $$3, ServerLevel $$4) { .. cation $$0, BlockPos $$1, Vec3i $$2, Rotation $$3, ServerLevel $$4) { 93 BoundingBox $$5 = getStructureBoundingBox($$1.above(), $$2, $$3) 68 BoundingBox $$5 = getStructureBoundingBox(TestInstanceBlockEntit .. ; .. y.getStructurePos($$1), $$2, $$3); 94 clearSpaceForStructure($$5, $$4); 69 clearSpaceForStructure($$5, $$4); 95 $$4.setBlockAndUpdate($$1, Blocks.STRUCTURE_BLOCK.defaultBlockSt 70 $$4.setBlockAndUpdate($$1, Blocks.TEST_INSTANCE_BLOCK.defaultBlo .. ate()); .. ckState()); 96 StructureBlockEntity $$6 = (StructureBlockEntity)$$4.getBlockEnt 71 TestInstanceBlockEntity $$6 = (TestInstanceBlockEntity)$$4.getBl .. ity($$1); .. ockEntity($$1); 97 $$6.setIgnoreEntities(false); .. 98 $$6.setStrict(false); .. 99 $$6.setStructureName(ResourceLocation.parse($$0)); 72 ResourceKey<GameTestInstance> $$7 = ResourceKey.create(Registrie .. .. s.TEST_INSTANCE, $$0); 100 $$6.setMetaData($$0); .. 101 $$6.setStructureSize($$2); .. 102 $$6.setMode(StructureMode.SAVE); 73 $$6.set(new TestInstanceBlockEntity.Data(Optional.of($$7), $$2, ... .. $$3, false, TestInstanceBlockEntity.Status.CLEARED, Optional.empty())) ... .. ; 103 $$6.setShowBoundingBox(true); 74 return $$6; 104 } 75 } 105 .. 106 public static BlockPos getStartCorner(GameTestInfo $$0, BlockPos $$ .. ... 1, Rotation $$2, ServerLevel $$3) { .. 107 Vec3i $$4 = $$3.getStructureManager() .. 108 .get(ResourceLocation.parse($$0.getStructureName())) .. 109 .orElseThrow(() -> new IllegalStateException("Missing test st .. ... ructure: " + $$0.getStructureName())) .. 110 .getSize(); .. 111 BlockPos $$5; .. 112 if ($$2 == Rotation.NONE) { .. 113 $$5 = $$1; .. 114 } else if ($$2 == Rotation.CLOCKWISE_90) { .. 115 $$5 = $$1.offset($$4.getZ() - 1, 0, 0); .. 116 } else if ($$2 == Rotation.CLOCKWISE_180) { .. 117 $$5 = $$1.offset($$4.getX() - 1, 0, $$4.getZ() - 1); .. 118 } else { .. 119 if ($$2 != Rotation.COUNTERCLOCKWISE_90) { .. 120 throw new IllegalArgumentException("Invalid rotation: " + .. ... $$2); .. 121 } .. 122 .. 123 $$5 = $$1.offset(0, 0, $$4.getX() - 1); .. 124 } .. 125 .. 126 return $$5; .. 127 } .. 128 .. 129 public static StructureBlockEntity prepareTestStructure(GameTestInf .. ... o $$0, BlockPos $$1, Rotation $$2, ServerLevel $$3) { .. 130 Vec3i $$4 = $$3.getStructureManager() .. 131 .get(ResourceLocation.parse($$0.getStructureName())) .. 132 .orElseThrow(() -> new IllegalStateException("Missing test st .. ... ructure: " + $$0.getStructureName())) .. 133 .getSize(); .. 134 BoundingBox $$5 = getStructureBoundingBox($$1, $$4, $$2); .. 135 BlockPos $$6 = getStartCorner($$0, $$1, $$2, $$3); .. 136 forceLoadChunks($$5, $$3); .. 137 clearSpaceForStructure($$5, $$3); .. 138 return createStructureBlock($$0, $$6.below(), $$2, $$3); .. 139 } .. 140 .. 141 public static void encaseStructure(AABB $$0, ServerLevel $$1, boole .. ... an $$2) { .. 142 BlockPos $$3 = BlockPos.containing($$0.minX, $$0.minY, $$0.minZ) .. ... .offset(-1, 0, -1); .. 143 BlockPos $$4 = BlockPos.containing($$0.maxX, $$0.maxY, $$0.maxZ) .. ... ; .. 144 BlockPos.betweenClosedStream($$3, $$4).forEach($$4x -> { .. 145 boolean $$5 = $$4x.getX() == $$3.getX() || $$4x.getX() == $$4 .. ... .getX() || $$4x.getZ() == $$3.getZ() || $$4x.getZ() == $$4.getZ(); .. 146 boolean $$6 = $$4x.getY() == $$4.getY(); .. 147 if ($$5 || $$6 && $$2) { .. 148 $$1.setBlockAndUpdate($$4x, Blocks.BARRIER.defaultBlockSta .. ... te()); .. 149 } .. 150 }); .. 151 } .. 152 .. 153 public static void removeBarriers(AABB $$0, ServerLevel $$1) { .. 154 BlockPos $$2 = BlockPos.containing($$0.minX, $$0.minY, $$0.minZ) .. ... .offset(-1, 0, -1); .. 155 BlockPos $$3 = BlockPos.containing($$0.maxX, $$0.maxY, $$0.maxZ) .. ... ; .. 156 BlockPos.betweenClosedStream($$2, $$3).forEach($$3x -> { .. 157 boolean $$4 = $$3x.getX() == $$2.getX() || $$3x.getX() == $$3 .. ... .getX() || $$3x.getZ() == $$2.getZ() || $$3x.getZ() == $$3.getZ(); .. 158 boolean $$5 = $$3x.getY() == $$3.getY(); .. 159 if ($$1.getBlockState($$3x).is(Blocks.BARRIER) && ($$4 || $$5 .. ... )) { .. 160 $$1.setBlockAndUpdate($$3x, Blocks.AIR.defaultBlockState() .. ... ); .. 161 } .. 162 }); .. 163 } .. 164 .. 165 private static void forceLoadChunks(BoundingBox $$0, ServerLevel $$ .. ... 1) { .. 166 $$0.intersectingChunks().forEach($$1x -> $$1.setChunkForced($$1x .. ... .x, $$1x.z, true)); .. 167 } .. 168 76 169 public static void clearSpaceForStructure(BoundingBox $$0, ServerLe 77 public static void clearSpaceForStructure(BoundingBox $$0, ServerLe ... vel $$1) { .. vel $$1) { 170 int $$2 = $$0.minY() - 1; 78 int $$2 = $$0.minY() - 1; net/minecraft/gametest/framework/StructureUtils.java --- 4/5 --- Java 190 return $$4.move($$0.getX() - $$5, 0, $$0.getZ() - $$6); 98 return $$4.move($$0.getX() - $$5, 0, $$0.getZ() - $$6); 191 } 99 } 192 100 193 public static Optional<BlockPos> findStructureBlockContainingPos(Bl 101 public static Optional<BlockPos> findTestContainingPos(BlockPos $$0 ... ockPos $$0, int $$1, ServerLevel $$2) { ... , int $$1, ServerLevel $$2) { 194 return findStructureBlocks($$0, $$1, $$2).filter($$2x -> doesStr 102 return findTestBlocks($$0, $$1, $$2).filter($$2x -> doesStructur ... uctureContain($$2x, $$0, $$2)).findFirst(); ... eContain($$2x, $$0, $$2)).findFirst(); 195 } 103 } 196 104 197 public static Optional<BlockPos> findNearestStructureBlock(BlockPos 105 public static Optional<BlockPos> findNearestTest(BlockPos $$0, int ... $$0, int $$1, ServerLevel $$2) { ... $$1, ServerLevel $$2) { 198 Comparator<BlockPos> $$3 = Comparator.comparingInt($$1x -> $$1x. 106 Comparator<BlockPos> $$3 = Comparator.comparingInt($$1x -> $$1x. ... distManhattan($$0)); ... distManhattan($$0)); 199 return findStructureBlocks($$0, $$1, $$2).min($$3); 107 return findTestBlocks($$0, $$1, $$2).min($$3); 200 } 108 } 201 ... 202 public static Stream<BlockPos> findStructureByTestFunction(BlockPos ... ... $$0, int $$1, ServerLevel $$2, String $$3) { ... 203 return findStructureBlocks($$0, $$1, $$2) ... 204 .map($$1x -> (StructureBlockEntity)$$2.getBlockEntity($$1x)) ... 205 .filter(Objects::nonNull) ... 206 .filter($$1x -> Objects.equals($$1x.getStructureName(), $$3)) ... 207 .map(BlockEntity::getBlockPos) ... 208 .map(BlockPos::immutable); ... 209 } ... 210 109 211 public static Stream<BlockPos> findStructureBlocks(BlockPos $$0, in 110 public static Stream<BlockPos> findTestBlocks(BlockPos $$0, int $$1 ... t $$1, ServerLevel $$2) { ... , ServerLevel $$2) { 212 BoundingBox $$3 = getBoundingBoxAtGround($$0, $$1, $$2); 111 BoundingBox $$3 = getBoundingBoxAtGround($$0, $$1, $$2); 213 return BlockPos.betweenClosedStream($$3).filter($$1x -> $$2.getB 112 return BlockPos.betweenClosedStream($$3).filter($$1x -> $$2.getB ... lockState($$1x).is(Blocks.STRUCTURE_BLOCK)).map(BlockPos::immutable); ... lockState($$1x).is(Blocks.TEST_INSTANCE_BLOCK)).map(BlockPos::immutabl ... ... e); 214 } 113 } 215 ... 216 private static StructureBlockEntity createStructureBlock(GameTestIn ... ... fo $$0, BlockPos $$1, Rotation $$2, ServerLevel $$3) { ... 217 $$3.setBlockAndUpdate($$1, Blocks.STRUCTURE_BLOCK.defaultBlockSt ... ... ate()); ... 218 StructureBlockEntity $$4 = (StructureBlockEntity)$$3.getBlockEnt ... ... ity($$1); ... 219 $$4.setMode(StructureMode.LOAD); ... 220 $$4.setRotation($$2); ... 221 $$4.setIgnoreEntities(false); ... 222 $$4.setStrict(false); ... 223 $$4.setStructureName(ResourceLocation.parse($$0.getStructureName ... ... ())); ... 224 $$4.setMetaData($$0.getTestName()); ... 225 if (!$$4.loadStructureInfo($$3)) { ... 226 throw new RuntimeException("Failed to load structure info for ... ... test: " + $$0.getTestName() + ". Structure name: " + $$0.getStructure ... ... Name()); ... 227 } else { ... 228 return $$4; ... 229 } ... 230 } ... 231 114 232 private static BoundingBox getBoundingBoxAtGround(BlockPos $$0, int 115 private static BoundingBox getBoundingBoxAtGround(BlockPos $$0, int ... $$1, ServerLevel $$2) { ... $$1, ServerLevel $$2) { 233 BlockPos $$3 = BlockPos.containing((double)$$0.getX(), (double)$ 116 BlockPos $$3 = BlockPos.containing((double)$$0.getX(), (double)$ ... $2.getHeightmapPos(Heightmap.Types.WORLD_SURFACE, $$0).getY(), (double ... $2.getHeightmapPos(Heightmap.Types.WORLD_SURFACE, $$0).getY(), (double ... )$$0.getZ()); ... )$$0.getZ()); 234 return new BoundingBox($$3).inflatedBy($$1, 10, $$1); 117 return new BoundingBox($$3).inflatedBy($$1, 10, $$1); 235 } 118 } 236 119 237 public static Stream<BlockPos> lookedAtStructureBlockPos(BlockPos $ 120 public static Stream<BlockPos> lookedAtTestPos(BlockPos $$0, Entity ... $0, Entity $$1, ServerLevel $$2) { ... $$1, ServerLevel $$2) { 238 int $$3 = 200; 121 int $$3 = 200; 239 Vec3 $$4 = $$1.getEyePosition(); 122 Vec3 $$4 = $$1.getEyePosition(); 240 Vec3 $$5 = $$4.add($$1.getLookAngle().scale(200.0)); 123 Vec3 $$5 = $$4.add($$1.getLookAngle().scale(200.0)); 241 return findStructureBlocks($$0, 200, $$2) 124 return findTestBlocks($$0, 200, $$2) 242 .map($$1x -> $$2.getBlockEntity($$1x, BlockEntityType.STRUCTU 125 .map($$1x -> $$2.getBlockEntity($$1x, BlockEntityType.TEST_IN ... RE_BLOCK)) ... STANCE_BLOCK)) 243 .flatMap(Optional::stream) 126 .flatMap(Optional::stream) 244 .filter($$2x -> getStructureBounds($$2x).clip($$4, $$5).isPre 127 .filter($$2x -> $$2x.getStructureBounds().clip($$4, $$5).isPr ... sent()) ... esent()) 245 .map(BlockEntity::getBlockPos) 128 .map(BlockEntity::getBlockPos) 246 .sorted(Comparator.comparing($$0::distSqr)) 129 .sorted(Comparator.comparing($$0::distSqr)) 247 .limit(1L); 130 .limit(1L); net/minecraft/gametest/framework/StructureUtils.java --- 5/5 --- Java 261 } 144 } 262 145 263 private static boolean doesStructureContain(BlockPos $$0, BlockPos 146 private static boolean doesStructureContain(BlockPos $$0, BlockPos ... $$1, ServerLevel $$2) { ... $$1, ServerLevel $$2) { 264 StructureBlockEntity $$3 = (StructureBlockEntity)$$2.getBlockEnt ... ... ity($$0); ... 265 return getStructureBoundingBox($$3).isInside($$1); 147 return $$2.getBlockEntity($$0) instanceof TestInstanceBlockEntit ... ... y $$3 ? $$3.getStructureBoundingBox().isInside($$1) : false; 266 } 148 } 267 } 149 } net/minecraft/gametest/framework/TestFunction.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.util.function.Consumer; 4 import net.minecraft.world.level.block.Rotation; 5 6 public record TestFunction( 7 String batchName, 8 String testName, 9 String structureName, 10 Rotation rotation, 11 int maxTicks, 12 long setupTicks, 13 boolean required, 14 boolean manualOnly, 15 int maxAttempts, 16 int requiredSuccesses, 17 boolean skyAccess, 18 Consumer<GameTestHelper> function 19 ) { 20 public TestFunction(String $$0, String $$1, String $$2, int $$3, long $$4, boolean $$5, Consumer<GameTestHelper> $$6) { 21 this($$0, $$1, $$2, Rotation.NONE, $$3, $$4, $$5, false, 1, 1, false, $$6); 22 } 23 24 public TestFunction(String $$0, String $$1, String $$2, Rotation $$3, int $$4, long $$5, boolean $$6, Consumer<GameTestHelper> $$7) { 25 this($$0, $$1, $$2, $$3, $$4, $$5, $$6, false, 1, 1, false, $$7); 26 } 27 28 public TestFunction(String $$0, String $$1, String $$2, Rotation $$3, int $$4, long $$5, boolean $$6, boolean $$7, Consumer<GameTestHelper> $$8) { 29 this($$0, $$1, $$2, $$3, $$4, $$5, $$6, false, 1, 1, $$7, $$8); 30 } 31 32 public void run(GameTestHelper $$0) { 33 this.function.accept($$0); 34 } 35 36 @Override 37 public String toString() { 38 return this.testName; 39 } 40 41 public boolean isFlaky() { 42 return this.maxAttempts > 1; 43 } 44 } 45 net/minecraft/gametest/framework/FailedTestTracker.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import com.google.common.collect.Sets; 4 import java.util.Set; 5 import java.util.stream.Stream; 6 import net.minecraft.core.Holder; 7 8 public class FailedTestTracker { 9 private static final Set<Holder.Reference<GameTestInstance>> LAST_FAILED_TESTS = Sets.newHashSet(); 10 11 public static Stream<Holder.Reference<GameTestInstance>> getLastFailedTests() { 12 return LAST_FAILED_TESTS.stream(); 13 } 14 15 public static void rememberFailedTest(Holder.Reference<GameTestInstance> $$0) { 16 LAST_FAILED_TESTS.add($$0); 17 } 18 19 public static void forgetFailedTests() { 20 LAST_FAILED_TESTS.clear(); 21 } 22 } 23 net/minecraft/world/entity/animal/horse/Variant.java --- 1/2 --- Java 1 package net.minecraft.world.entity.animal.horse; 1 package net.minecraft.world.entity.animal.horse; 2 2 3 import com.mojang.serialization.Codec; 3 import com.mojang.serialization.Codec; . 4 import io.netty.buffer.ByteBuf; 4 import java.util.function.IntFunction; 5 import java.util.function.IntFunction; . 6 import net.minecraft.network.codec.ByteBufCodecs; . 7 import net.minecraft.network.codec.StreamCodec; 5 import net.minecraft.util.ByIdMap; 8 import net.minecraft.util.ByIdMap; 6 import net.minecraft.util.StringRepresentable; 9 import net.minecraft.util.StringRepresentable; 7 10 net/minecraft/world/entity/animal/horse/Variant.java --- 2/2 --- Java 16 19 17 public static final Codec<Variant> CODEC = StringRepresentable.fromE 20 public static final Codec<Variant> CODEC = StringRepresentable.fromE .. num(Variant::values); .. num(Variant::values); 18 private static final IntFunction<Variant> BY_ID = ByIdMap.continuous 21 private static final IntFunction<Variant> BY_ID = ByIdMap.continuous .. (Variant::getId, values(), ByIdMap.OutOfBoundsStrategy.WRAP); .. (Variant::getId, values(), ByIdMap.OutOfBoundsStrategy.WRAP); .. 22 public static final StreamCodec<ByteBuf, Variant> STREAM_CODEC = Byt .. .. eBufCodecs.idMapper(BY_ID, Variant::getId); 19 private final int id; 23 private final int id; 20 private final String name; 24 private final String name; 21 25 net/minecraft/gametest/framework/GameTestBatch.java --- Java 1 package net.minecraft.gametest.framework; 1 package net.minecraft.gametest.framework; 2 2 3 import java.util.Collection; 3 import java.util.Collection; 4 import java.util.function.Consumer; . 5 import net.minecraft.server.level.ServerLevel; 4 import net.minecraft.core.Holder; 6 5 7 public record GameTestBatch( 6 public record GameTestBatch(int index, Collection<GameTestInfo> gameTes . . tInfos, Holder<TestEnvironmentDefinition> environment) { 8 String name, Collection<GameTestInfo> gameTestInfos, Consumer<Server . . Level> beforeBatchFunction, Consumer<ServerLevel> afterBatchFunction . 9 ) { . 10 public static final String DEFAULT_BATCH_NAME = "defaultBatch"; . 11 . 12 public GameTestBatch( 7 public GameTestBatch(int index, Collection<GameTestInfo> gameTestInf .. . os, Holder<TestEnvironmentDefinition> environment) { 13 String name, Collection<GameTestInfo> gameTestInfos, Consumer<Ser . .. verLevel> beforeBatchFunction, Consumer<ServerLevel> afterBatchFunction . 14 ) { . 15 if (gameTestInfos.isEmpty()) { 8 if (gameTestInfos.isEmpty()) { 16 throw new IllegalArgumentException("A GameTestBatch must inclu 9 throw new IllegalArgumentException("A GameTestBatch must inclu .. de at least one GameTestInfo!"); . de at least one GameTestInfo!"); 17 } else { 10 } else { 18 this.name = name; 11 this.index = index; 19 this.gameTestInfos = gameTestInfos; 12 this.gameTestInfos = gameTestInfos; 20 this.beforeBatchFunction = beforeBatchFunction; 13 this.environment = environment; 21 this.afterBatchFunction = afterBatchFunction; .. 22 } 14 } 23 } 15 } 24 } 16 } net/minecraft/world/entity/animal/Cat.java --- 1/4 --- Java 5 import javax.annotation.Nullable; 5 import javax.annotation.Nullable; 6 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.BlockPos; 7 import net.minecraft.core.Holder; 7 import net.minecraft.core.Holder; . 8 import net.minecraft.core.component.DataComponentGetter; . 9 import net.minecraft.core.component.DataComponentType; 8 import net.minecraft.core.component.DataComponents; 10 import net.minecraft.core.component.DataComponents; 9 import net.minecraft.core.registries.BuiltInRegistries; 11 import net.minecraft.core.registries.BuiltInRegistries; 10 import net.minecraft.core.registries.Registries; 12 import net.minecraft.core.registries.Registries; net/minecraft/world/entity/animal/Cat.java --- 2/4 --- Java 36 import net.minecraft.world.entity.Pose; 38 import net.minecraft.world.entity.Pose; 37 import net.minecraft.world.entity.SpawnGroupData; 39 import net.minecraft.world.entity.SpawnGroupData; 38 import net.minecraft.world.entity.TamableAnimal; 40 import net.minecraft.world.entity.TamableAnimal; 39 import net.minecraft.world.entity.VariantHolder; .. 40 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 41 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 41 import net.minecraft.world.entity.ai.attributes.Attributes; 42 import net.minecraft.world.entity.ai.attributes.Attributes; 42 import net.minecraft.world.entity.ai.goal.AvoidEntityGoal; 43 import net.minecraft.world.entity.ai.goal.AvoidEntityGoal; net/minecraft/world/entity/animal/Cat.java --- 3/4 --- Java 67 import net.minecraft.world.level.storage.loot.BuiltInLootTables; 68 import net.minecraft.world.level.storage.loot.BuiltInLootTables; 68 import net.minecraft.world.phys.AABB; 69 import net.minecraft.world.phys.AABB; 69 70 70 public class Cat extends TamableAnimal implements VariantHolder<Holder< 71 public class Cat extends TamableAnimal { .. CatVariant>> { .. 71 public static final double TEMPT_SPEED_MOD = 0.6; 72 public static final double TEMPT_SPEED_MOD = 0.6; 72 public static final double WALK_SPEED_MOD = 0.8; 73 public static final double WALK_SPEED_MOD = 0.8; 73 public static final double SPRINT_SPEED_MOD = 1.33; 74 public static final double SPRINT_SPEED_MOD = 1.33; net/minecraft/world/entity/animal/Cat.java --- 4/4 --- Java 117 return this.entityData.get(DATA_VARIANT_ID); 118 return this.entityData.get(DATA_VARIANT_ID); 118 } 119 } 119 120 120 public void setVariant(Holder<CatVariant> $$0) { 121 private void setVariant(Holder<CatVariant> $$0) { 121 this.entityData.set(DATA_VARIANT_ID, $$0); 122 this.entityData.set(DATA_VARIANT_ID, $$0); 122 } 123 } ... 124 ... 125 @Nullable ... 126 @Override ... 127 public <T> T get(DataComponentType<? extends T> $$0) { ... 128 if ($$0 == DataComponents.CAT_VARIANT) { ... 129 return castComponentValue((DataComponentType<T>)$$0, this.get ... ... Variant()); ... 130 } else { ... 131 return $$0 == DataComponents.CAT_COLLAR ? castComponentValue( ... ... (DataComponentType<T>)$$0, this.getCollarColor()) : super.get($$0); ... 132 } ... 133 } ... 134 ... 135 @Override ... 136 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 137 this.applyImplicitComponentIfPresent($$0, DataComponents.CAT_VAR ... ... IANT); ... 138 this.applyImplicitComponentIfPresent($$0, DataComponents.CAT_COL ... ... LAR); ... 139 super.applyImplicitComponents($$0); ... 140 } ... 141 ... 142 @Override ... 143 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 144 if ($$0 == DataComponents.CAT_VARIANT) { ... 145 this.setVariant(castComponentValue(DataComponents.CAT_VARIANT ... ... , $$1)); ... 146 return true; ... 147 } else if ($$0 == DataComponents.CAT_COLLAR) { ... 148 this.setCollarColor(castComponentValue(DataComponents.CAT_COL ... ... LAR, $$1)); ... 149 return true; ... 150 } else { ... 151 return super.applyImplicitComponent($$0, $$1); ... 152 } ... 153 } 123 154 124 public void setLying(boolean $$0) { 155 public void setLying(boolean $$0) { 125 this.entityData.set(IS_LYING, $$0); 156 this.entityData.set(IS_LYING, $$0); net/minecraft/gametest/framework/GameTestEnvironments.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.util.List; 4 import net.minecraft.core.registries.Registries; 5 import net.minecraft.data.worldgen.BootstrapContext; 6 import net.minecraft.resources.ResourceKey; 7 import net.minecraft.resources.ResourceLocation; 8 9 public interface GameTestEnvironments { 10 String DEFAULT = "default"; 11 ResourceKey<TestEnvironmentDefinition> DEFAULT_KEY = create("default"); 12 13 private static ResourceKey<TestEnvironmentDefinition> create(String $$0) { 14 return ResourceKey.create(Registries.TEST_ENVIRONMENT, ResourceLocation.withDefaultNamespace($$0)); 15 } 16 17 static void bootstrap(BootstrapContext<TestEnvironmentDefinition> $$0) { 18 $$0.register(DEFAULT_KEY, new TestEnvironmentDefinition.AllOf(List.of())); 19 } 20 } 21 net/minecraft/gametest/framework/BeforeBatch.java --- Java 1 package net.minecraft.gametest.framework; 2 3 import java.lang.annotation.ElementType; 4 import java.lang.annotation.Retention; 5 import java.lang.annotation.RetentionPolicy; 6 import java.lang.annotation.Target; 7 8 @Target({ElementType.METHOD}) 9 @Retention(RetentionPolicy.RUNTIME) 10 public @interface BeforeBatch { 11 String batch(); 12 } 13 net/minecraft/world/entity/decoration/ArmorStand.java --- 1/8 --- Java 1 package net.minecraft.world.entity.decoration; 1 package net.minecraft.world.entity.decoration; 2 2 . 3 import com.mojang.logging.LogUtils; 3 import java.util.function.Predicate; 4 import java.util.function.Predicate; 4 import javax.annotation.Nullable; 5 import javax.annotation.Nullable; 5 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.NonNullList; . 7 import net.minecraft.core.Rotations; 7 import net.minecraft.core.Rotations; 8 import net.minecraft.core.component.DataComponents; 8 import net.minecraft.core.component.DataComponents; 9 import net.minecraft.core.particles.BlockParticleOption; 9 import net.minecraft.core.particles.BlockParticleOption; 10 import net.minecraft.core.particles.ParticleTypes; 10 import net.minecraft.core.particles.ParticleTypes; 11 import net.minecraft.nbt.CompoundTag; 11 import net.minecraft.nbt.CompoundTag; 12 import net.minecraft.nbt.ListTag; 12 import net.minecraft.nbt.ListTag; .. 13 import net.minecraft.nbt.NbtOps; .. 14 import net.minecraft.nbt.Tag; 13 import net.minecraft.network.syncher.EntityDataAccessor; 15 import net.minecraft.network.syncher.EntityDataAccessor; 14 import net.minecraft.network.syncher.EntityDataSerializers; 16 import net.minecraft.network.syncher.EntityDataSerializers; 15 import net.minecraft.network.syncher.SynchedEntityData; 17 import net.minecraft.network.syncher.SynchedEntityData; .. 18 import net.minecraft.resources.RegistryOps; 16 import net.minecraft.server.level.ServerLevel; 19 import net.minecraft.server.level.ServerLevel; 17 import net.minecraft.sounds.SoundEvent; 20 import net.minecraft.sounds.SoundEvent; 18 import net.minecraft.sounds.SoundEvents; 21 import net.minecraft.sounds.SoundEvents; net/minecraft/world/entity/decoration/ArmorStand.java --- 2/8 --- Java 22 import net.minecraft.world.damagesource.DamageSource; 25 import net.minecraft.world.damagesource.DamageSource; 23 import net.minecraft.world.entity.Entity; 26 import net.minecraft.world.entity.Entity; 24 import net.minecraft.world.entity.EntityDimensions; 27 import net.minecraft.world.entity.EntityDimensions; .. 28 import net.minecraft.world.entity.EntityEquipment; 25 import net.minecraft.world.entity.EntityType; 29 import net.minecraft.world.entity.EntityType; 26 import net.minecraft.world.entity.EquipmentSlot; 30 import net.minecraft.world.entity.EquipmentSlot; 27 import net.minecraft.world.entity.HumanoidArm; 31 import net.minecraft.world.entity.HumanoidArm; net/minecraft/world/entity/decoration/ArmorStand.java --- 3/8 --- Java 45 import net.minecraft.world.level.material.PushReaction; 49 import net.minecraft.world.level.material.PushReaction; 46 import net.minecraft.world.phys.AABB; 50 import net.minecraft.world.phys.AABB; 47 import net.minecraft.world.phys.Vec3; 51 import net.minecraft.world.phys.Vec3; .. 52 import org.slf4j.Logger; 48 53 49 public class ArmorStand extends LivingEntity { 54 public class ArmorStand extends LivingEntity { 50 public static final int WOBBLE_TIME = 5; 55 public static final int WOBBLE_TIME = 5; 51 private static final boolean ENABLE_ARMS = true; 56 private static final boolean ENABLE_ARMS = true; .. 57 private static final Logger LOGGER = LogUtils.getLogger(); 52 public static final Rotations DEFAULT_HEAD_POSE = new Rotations(0.0F 58 public static final Rotations DEFAULT_HEAD_POSE = new Rotations(0.0F .. , 0.0F, 0.0F); .. , 0.0F, 0.0F); 53 public static final Rotations DEFAULT_BODY_POSE = new Rotations(0.0F 59 public static final Rotations DEFAULT_BODY_POSE = new Rotations(0.0F .. , 0.0F, 0.0F); .. , 0.0F, 0.0F); 54 public static final Rotations DEFAULT_LEFT_ARM_POSE = new Rotations( 60 public static final Rotations DEFAULT_LEFT_ARM_POSE = new Rotations( -10.0F, 0.0F, -10.0F); -10.0F, 0.0F, -10.0F); net/minecraft/world/entity/decoration/ArmorStand.java --- 4/8 --- Java 81 87 82 return false; 88 return false; 83 }; 89 }; 84 private final NonNullList<ItemStack> handItems = NonNullList.withSiz 90 private EntityEquipment equipment = new EntityEquipment(); .. e(2, ItemStack.EMPTY); .. 85 private final NonNullList<ItemStack> armorItems = NonNullList.withSi .. .. ze(4, ItemStack.EMPTY); .. 86 private boolean invisible; 91 private boolean invisible; 87 public long lastHit; 92 public long lastHit; 88 private int disabledSlots; 93 private int disabledSlots; net/minecraft/world/entity/decoration/ArmorStand.java --- 5/8 --- Java 136 $$0.define(DATA_RIGHT_LEG_POSE, DEFAULT_RIGHT_LEG_POSE); 141 $$0.define(DATA_RIGHT_LEG_POSE, DEFAULT_RIGHT_LEG_POSE); 137 } 142 } 138 ... 139 @Override ... 140 public Iterable<ItemStack> getHandSlots() { ... 141 return this.handItems; ... 142 } ... 143 ... 144 @Override ... 145 public Iterable<ItemStack> getArmorSlots() { ... 146 return this.armorItems; ... 147 } ... 148 143 149 @Override 144 @Override 150 public ItemStack getItemBySlot(EquipmentSlot $$0) { 145 public ItemStack getItemBySlot(EquipmentSlot $$0) { 151 switch ($$0.getType()) { ... 152 case HAND: ... 153 return this.handItems.get($$0.getIndex()); 146 return this.equipment.get($$0); 154 case HUMANOID_ARMOR: ... 155 return this.armorItems.get($$0.getIndex()); ... 156 default: ... 157 return ItemStack.EMPTY; ... 158 } ... 159 } 147 } 160 148 161 @Override 149 @Override 162 public boolean canUseSlot(EquipmentSlot $$0) { 150 public boolean canUseSlot(EquipmentSlot $$0) { 163 return $$0 != EquipmentSlot.BODY && !this.isDisabled($$0); 151 return $$0 != EquipmentSlot.BODY && $$0 != EquipmentSlot.SADDLE ... ... && !this.isDisabled($$0); 164 } 152 } 165 153 166 @Override 154 @Override 167 public void setItemSlot(EquipmentSlot $$0, ItemStack $$1) { 155 public void setItemSlot(EquipmentSlot $$0, ItemStack $$1) { 168 this.verifyEquippedItem($$1); 156 this.verifyEquippedItem($$1); 169 switch ($$0.getType()) { ... 170 case HAND: ... 171 this.onEquipItem($$0, this.handItems.set($$0.getIndex(), $ 157 ItemStack $$2 = this.equipment.set($$0, $$1); ... $1), $$1); ... 172 break; 158 this.onEquipItem($$0, $$2, $$1); 173 case HUMANOID_ARMOR: ... 174 this.onEquipItem($$0, this.armorItems.set($$0.getIndex(), ... ... $$1), $$1); ... 175 } ... 176 } 159 } 177 160 178 @Override 161 @Override 179 public void addAdditionalSaveData(CompoundTag $$0) { 162 public void addAdditionalSaveData(CompoundTag $$0) { 180 super.addAdditionalSaveData($$0); 163 super.addAdditionalSaveData($$0); 181 ListTag $$1 = new ListTag(); ... 182 ... 183 for (ItemStack $$2 : this.armorItems) { ... 184 $$1.add($$2.saveOptional(this.registryAccess())); ... 185 } ... 186 ... 187 $$0.put("ArmorItems", $$1); ... 188 ListTag $$3 = new ListTag(); ... 189 ... 190 for (ItemStack $$4 : this.handItems) { 164 if (!this.equipment.isEmpty()) { 191 $$3.add($$4.saveOptional(this.registryAccess())); 165 RegistryOps<Tag> $$1 = this.registryAccess().createSerializat ... ... ionContext(NbtOps.INSTANCE); ... 166 $$0.put("equipment", EntityEquipment.CODEC.encodeStart($$1, t ... ... his.equipment).getOrThrow()); 192 } 167 } 193 168 194 $$0.put("HandItems", $$3); ... 195 $$0.putBoolean("Invisible", this.isInvisible()); 169 $$0.putBoolean("Invisible", this.isInvisible()); 196 $$0.putBoolean("Small", this.isSmall()); 170 $$0.putBoolean("Small", this.isSmall()); 197 $$0.putBoolean("ShowArms", this.showArms()); 171 $$0.putBoolean("ShowArms", this.showArms()); net/minecraft/world/entity/decoration/ArmorStand.java --- 6/8 --- Java 207 @Override 181 @Override 208 public void readAdditionalSaveData(CompoundTag $$0) { 182 public void readAdditionalSaveData(CompoundTag $$0) { 209 super.readAdditionalSaveData($$0); 183 super.readAdditionalSaveData($$0); 210 if ($$0.contains("ArmorItems", 9)) { 184 if ($$0.contains("equipment")) { 211 ListTag $$1 = $$0.getList("ArmorItems", 10); 185 RegistryOps<Tag> $$1 = this.registryAccess().createSerializat ... ... ionContext(NbtOps.INSTANCE); 212 186 EntityEquipment.CODEC 213 for (int $$2 = 0; $$2 < this.armorItems.size(); $$2++) { 187 .parse($$1, $$0.get("equipment")) 214 CompoundTag $$3 = $$1.getCompound($$2); 188 .resultOrPartial($$0x -> LOGGER.warn("Failed to parse equi ... ... pment: {}", $$0x)) 215 this.armorItems.set($$2, ItemStack.parseOptional(this.regi 189 .ifPresent($$0x -> this.equipment = $$0x); ... stryAccess(), $$3)); ... 216 } ... 217 } 190 } else { 218 191 this.equipment = new EntityEquipment(); 219 if ($$0.contains("HandItems", 9)) { 192 } 220 ListTag $$4 = $$0.getList("HandItems", 10); ... 221 ... 222 for (int $$5 = 0; $$5 < this.handItems.size(); $$5++) { ... 223 CompoundTag $$6 = $$4.getCompound($$5); ... 224 this.handItems.set($$5, ItemStack.parseOptional(this.regis ... ... tryAccess(), $$6)); ... 225 } ... 226 } ... 227 193 228 this.setInvisible($$0.getBoolean("Invisible")); 194 this.setInvisible($$0.getBoolean("Invisible")); 229 this.setSmall($$0.getBoolean("Small")); 195 this.setSmall($$0.getBoolean("Small")); net/minecraft/world/entity/decoration/ArmorStand.java --- 7/8 --- Java 232 this.setNoBasePlate($$0.getBoolean("NoBasePlate")); 198 this.setNoBasePlate($$0.getBoolean("NoBasePlate")); 233 this.setMarker($$0.getBoolean("Marker")); 199 this.setMarker($$0.getBoolean("Marker")); 234 this.noPhysics = !this.hasPhysics(); 200 this.noPhysics = !this.hasPhysics(); 235 CompoundTag $$7 = $$0.getCompound("Pose"); 201 CompoundTag $$2 = $$0.getCompound("Pose"); 236 this.readPose($$7); 202 this.readPose($$2); 237 } 203 } 238 204 239 private void readPose(CompoundTag $$0) { 205 private void readPose(CompoundTag $$0) { net/minecraft/world/entity/decoration/ArmorStand.java --- 8/8 --- Java 500 this.playBrokenSound(); 466 this.playBrokenSound(); 501 this.dropAllDeathLoot($$0, $$1); 467 this.dropAllDeathLoot($$0, $$1); 502 468 503 for (int $$2 = 0; $$2 < this.handItems.size(); $$2++) { 469 for (EquipmentSlot $$2 : EquipmentSlot.VALUES) { 504 ItemStack $$3 = this.handItems.get($$2); 470 ItemStack $$3 = this.equipment.set($$2, ItemStack.EMPTY); 505 if (!$$3.isEmpty()) { 471 if (!$$3.isEmpty()) { 506 Block.popResource(this.level(), this.blockPosition().above 472 Block.popResource(this.level(), this.blockPosition().above ... (), $$3); ... (), $$3); 507 this.handItems.set($$2, ItemStack.EMPTY); ... 508 } 473 } 509 } 474 } 510 ... 511 for (int $$4 = 0; $$4 < this.armorItems.size(); $$4++) { ... 512 ItemStack $$5 = this.armorItems.get($$4); ... 513 if (!$$5.isEmpty()) { ... 514 Block.popResource(this.level(), this.blockPosition().above ... ... (), $$5); ... 515 this.armorItems.set($$4, ItemStack.EMPTY); ... 516 } ... 517 } ... 518 } 475 } 519 476 520 private void playBrokenSound() { 477 private void playBrokenSound() { net/minecraft/world/entity/animal/Sheep.java --- 1/2 --- Java 4 import javax.annotation.Nullable; 4 import javax.annotation.Nullable; 5 import net.minecraft.Util; 5 import net.minecraft.Util; 6 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.BlockPos; . 7 import net.minecraft.core.component.DataComponentGetter; . 8 import net.minecraft.core.component.DataComponentType; . 9 import net.minecraft.core.component.DataComponents; 7 import net.minecraft.nbt.CompoundTag; 10 import net.minecraft.nbt.CompoundTag; 8 import net.minecraft.network.syncher.EntityDataAccessor; 11 import net.minecraft.network.syncher.EntityDataAccessor; 9 import net.minecraft.network.syncher.EntityDataSerializers; 12 import net.minecraft.network.syncher.EntityDataSerializers; net/minecraft/world/entity/animal/Sheep.java --- 2/2 --- Java 235 this.entityData.set(DATA_WOOL_ID, (byte)($$1 & 240 | $$0.getId() 238 this.entityData.set(DATA_WOOL_ID, (byte)($$1 & 240 | $$0.getId() ... & 15)); ... & 15)); 236 } 239 } ... 240 ... 241 @Nullable ... 242 @Override ... 243 public <T> T get(DataComponentType<? extends T> $$0) { ... 244 return $$0 == DataComponents.SHEEP_COLOR ? castComponentValue((D ... ... ataComponentType<T>)$$0, this.getColor()) : super.get($$0); ... 245 } ... 246 ... 247 @Override ... 248 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 249 this.applyImplicitComponentIfPresent($$0, DataComponents.SHEEP_C ... ... OLOR); ... 250 super.applyImplicitComponents($$0); ... 251 } ... 252 ... 253 @Override ... 254 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 255 if ($$0 == DataComponents.SHEEP_COLOR) { ... 256 this.setColor(castComponentValue(DataComponents.SHEEP_COLOR, ... ... $$1)); ... 257 return true; ... 258 } else { ... 259 return super.applyImplicitComponent($$0, $$1); ... 260 } ... 261 } 237 262 238 public boolean isSheared() { 263 public boolean isSheared() { 239 return (this.entityData.get(DATA_WOOL_ID) & 16) != 0; 264 return (this.entityData.get(DATA_WOOL_ID) & 16) != 0; net/minecraft/gametest/framework/ReportGameListener.java --- 1/8 --- Java 1 package net.minecraft.gametest.framework; 1 package net.minecraft.gametest.framework; 2 2 3 import com.google.common.base.MoreObjects; 3 import com.google.common.base.MoreObjects; 4 import java.util.Arrays; 4 import java.util.Optional; 5 import java.util.List; . 6 import net.minecraft.ChatFormatting; 5 import net.minecraft.ChatFormatting; 7 import net.minecraft.Util; 6 import net.minecraft.Util; 8 import net.minecraft.core.BlockPos; 7 import net.minecraft.core.BlockPos; 9 import net.minecraft.core.component.DataComponents; . 10 import net.minecraft.network.chat.Component; 8 import net.minecraft.network.chat.Component; 11 import net.minecraft.network.protocol.game.DebugPackets; 9 import net.minecraft.network.protocol.game.DebugPackets; 12 import net.minecraft.server.level.ServerLevel; 10 import net.minecraft.server.level.ServerLevel; 13 import net.minecraft.server.network.Filterable; .. 14 import net.minecraft.world.item.ItemStack; .. 15 import net.minecraft.world.item.Items; .. 16 import net.minecraft.world.item.component.WritableBookContent; .. 17 import net.minecraft.world.level.block.Block; 11 import net.minecraft.world.level.block.entity.BlockEntityType; 18 import net.minecraft.world.level.block.Blocks; .. 19 import net.minecraft.world.level.block.LecternBlock; .. 20 import net.minecraft.world.level.block.Mirror; .. 21 import net.minecraft.world.level.block.state.BlockState; 12 import net.minecraft.world.level.block.entity.TestInstanceBlockEntity; 22 import net.minecraft.world.level.levelgen.structure.templatesystem.Stru .. .. ctureTemplate; .. 23 import org.apache.commons.lang3.exception.ExceptionUtils; 13 import org.apache.commons.lang3.exception.ExceptionUtils; 24 14 25 class ReportGameListener implements GameTestListener { 15 class ReportGameListener implements GameTestListener { net/minecraft/gametest/framework/ReportGameListener.java --- 2/8 --- Java 31 21 32 @Override 22 @Override 33 public void testStructureLoaded(GameTestInfo $$0) { 23 public void testStructureLoaded(GameTestInfo $$0) { 34 spawnBeacon($$0, Blocks.LIGHT_GRAY_STAINED_GLASS); .. 35 this.attempts++; 24 this.attempts++; 36 } 25 } 37 26 net/minecraft/gametest/framework/ReportGameListener.java --- 3/8 --- Java 43 } 32 } 44 33 45 $$4 = $$4 + "]"; 34 $$4 = $$4 + "]"; 46 String $$5 = $$0.getTestName() + " " + ($$2 ? "passed" : "failed" 35 String $$5 = $$0.id() + " " + ($$2 ? "passed" : "failed") + "! " .. ) + "! " + $$0.getRunTime() + "ms"; .. + $$0.getRunTime() + "ms"; 47 String $$6 = String.format("%-53s%s", $$4, $$5); 36 String $$6 = String.format("%-53s%s", $$4, $$5); 48 if ($$2) { 37 if ($$2) { 49 reportPassed($$0, $$6); 38 reportPassed($$0, $$6); net/minecraft/gametest/framework/ReportGameListener.java --- 4/8 --- Java 62 if ($$0.retryOptions().hasRetries()) { 51 if ($$0.retryOptions().hasRetries()) { 63 this.handleRetry($$0, $$1, true); 52 this.handleRetry($$0, $$1, true); 64 } else if (!$$0.isFlaky()) { 53 } else if (!$$0.isFlaky()) { 65 reportPassed($$0, $$0.getTestName() + " passed! (" + $$0.getRu 54 reportPassed($$0, $$0.id() + " passed! (" + $$0.getRunTime() + .. nTime() + "ms)"); .. "ms)"); 66 } else { 55 } else { 67 if (this.successes >= $$0.requiredSuccesses()) { 56 if (this.successes >= $$0.requiredSuccesses()) { 68 reportPassed($$0, $$0 + " passed " + this.successes + " tim 57 reportPassed($$0, $$0 + " passed " + this.successes + " tim es of " + this.attempts + " attempts."); es of " + this.attempts + " attempts."); net/minecraft/gametest/framework/ReportGameListener.java --- 5/8 --- Java 81 this.handleRetry($$0, $$1, false); 70 this.handleRetry($$0, $$1, false); 82 } 71 } 83 } else { 72 } else { 84 TestFunction $$2 = $$0.getTestFunction(); 73 GameTestInstance $$2 = $$0.getTest(); 85 String $$3 = "Flaky test " + $$0 + " failed, attempt: " + this 74 String $$3 = "Flaky test " + $$0 + " failed, attempt: " + this .. .attempts + "/" + $$2.maxAttempts(); .. .attempts + "/" + $$2.maxAttempts(); 86 if ($$2.requiredSuccesses() > 1) { 75 if ($$2.requiredSuccesses() > 1) { 87 $$3 = $$3 + ", successes: " + this.successes + " (" + $$2.r 76 $$3 = $$3 + ", successes: " + this.successes + " (" + $$2.r equiredSuccesses() + " required)"; equiredSuccesses() + " required)"; net/minecraft/gametest/framework/ReportGameListener.java --- 6/8 --- Java 102 } 91 } 103 92 104 public static void reportPassed(GameTestInfo $$0, String $$1) { 93 public static void reportPassed(GameTestInfo $$0, String $$1) { 105 updateBeaconGlass($$0, Blocks.LIME_STAINED_GLASS); 94 getTestInstanceBlockEntity($$0).ifPresent($$0x -> $$0x.setSucces ... .. s()); 106 visualizePassedTest($$0, $$1); 95 visualizePassedTest($$0, $$1); 107 } 96 } 108 97 net/minecraft/gametest/framework/ReportGameListener.java --- 7/8 --- Java 112 } 101 } 113 102 114 protected static void reportFailure(GameTestInfo $$0, Throwable $$1 103 protected static void reportFailure(GameTestInfo $$0, Throwable $$1 ... ) { ... ) { ... 104 Component $$3; ... 105 if ($$1 instanceof GameTestAssertException $$2) { 115 updateBeaconGlass($$0, $$0.isRequired() ? Blocks.RED_STAINED_GLA 106 $$3 = $$2.getDescription(); ... SS : Blocks.ORANGE_STAINED_GLASS); ... ... 107 } else { ... 108 $$3 = Component.literal(Util.describeError($$1)); ... 109 } ... 110 116 spawnLectern($$0, Util.describeError($$1)); 111 getTestInstanceBlockEntity($$0).ifPresent($$1x -> $$1x.setErrorM ... ... essage($$3)); 117 visualizeFailedTest($$0, $$1); 112 visualizeFailedTest($$0, $$1); 118 } 113 } 119 114 120 protected static void visualizeFailedTest(GameTestInfo $$0, Throwab 115 protected static void visualizeFailedTest(GameTestInfo $$0, Throwab ... le $$1) { ... le $$1) { 121 String $$2 = $$1.getMessage() + ($$1.getCause() == null ? "" : " 116 String $$2 = $$1.getMessage() + ($$1.getCause() == null ? "" : " ... cause: " + Util.describeError($$1.getCause())); ... cause: " + Util.describeError($$1.getCause())); 122 String $$3 = ($$0.isRequired() ? "" : "(optional) ") + $$0.getTe 117 String $$3 = ($$0.isRequired() ? "" : "(optional) ") + $$0.id() ... stName() + " failed! " + $$2; ... + " failed! " + $$2; 123 say($$0.getLevel(), $$0.isRequired() ? ChatFormatting.RED : Chat 118 say($$0.getLevel(), $$0.isRequired() ? ChatFormatting.RED : Chat ... Formatting.YELLOW, $$3); ... Formatting.YELLOW, $$3); 124 Throwable $$4 = MoreObjects.firstNonNull(ExceptionUtils.getRootC 119 Throwable $$4 = MoreObjects.firstNonNull(ExceptionUtils.getRootC ... ause($$1), $$1); ... ause($$1), $$1); 125 if ($$4 instanceof GameTestAssertPosException $$5) { 120 if ($$4 instanceof GameTestAssertPosException $$5) { net/minecraft/gametest/framework/ReportGameListener.java --- 8/8 --- Java 129 GlobalTestReporter.onTestFailed($$0); 124 GlobalTestReporter.onTestFailed($$0); 130 } 125 } 131 ... 132 protected static void spawnBeacon(GameTestInfo $$0, Block $$1) { ... 133 ServerLevel $$2 = $$0.getLevel(); ... 134 BlockPos $$3 = getBeaconPos($$0); ... 135 $$2.setBlockAndUpdate($$3, Blocks.BEACON.defaultBlockState().rot ... ... ate($$0.getRotation())); ... 136 updateBeaconGlass($$0, $$1); ... 137 ... 138 for (int $$4 = -1; $$4 <= 1; $$4++) { ... 139 for (int $$5 = -1; $$5 <= 1; $$5++) { ... 140 BlockPos $$6 = $$3.offset($$4, -1, $$5); ... 141 $$2.setBlockAndUpdate($$6, Blocks.IRON_BLOCK.defaultBlockS ... ... tate()); ... 142 } ... 143 } ... 144 } ... 145 126 146 private static BlockPos getBeaconPos(GameTestInfo $$0) { 127 private static Optional<TestInstanceBlockEntity> getTestInstanceBlo ... ... ckEntity(GameTestInfo $$0) { 147 BlockPos $$1 = $$0.getStructureBlockPos(); ... 148 BlockPos $$2 = new BlockPos(-1, -2, -1); ... 149 return StructureTemplate.transform($$1.offset($$2), Mirror.NONE, ... ... $$0.getRotation(), $$1); ... 150 } ... 151 ... 152 private static void updateBeaconGlass(GameTestInfo $$0, Block $$1) ... ... { ... 153 ServerLevel $$2 = $$0.getLevel(); ... 154 BlockPos $$3 = getBeaconPos($$0); ... 155 if ($$2.getBlockState($$3).is(Blocks.BEACON)) { ... 156 BlockPos $$4 = $$3.offset(0, 1, 0); ... 157 $$2.setBlockAndUpdate($$4, $$1.defaultBlockState()); ... 158 } ... 159 } ... 160 ... 161 private static void spawnLectern(GameTestInfo $$0, String $$1) { ... 162 ServerLevel $$2 = $$0.getLevel(); 128 ServerLevel $$1 = $$0.getLevel(); 163 BlockPos $$3 = $$0.getStructureBlockPos(); ... 164 BlockPos $$4 = new BlockPos(-1, 0, -1); ... 165 BlockPos $$5 = StructureTemplate.transform($$3.offset($$4), Mirr 129 Optional<BlockPos> $$2 = Optional.ofNullable($$0.getTestBlockPos ... or.NONE, $$0.getRotation(), $$3); ... ()); 166 $$2.setBlockAndUpdate($$5, Blocks.LECTERN.defaultBlockState().ro 130 return $$2.flatMap($$1x -> $$1.getBlockEntity($$1x, BlockEntityT ... tate($$0.getRotation())); ... ype.TEST_INSTANCE_BLOCK)); 167 BlockState $$6 = $$2.getBlockState($$5); ... 168 ItemStack $$7 = createBook($$0.getTestName(), $$0.isRequired(), ... ... $$1); ... 169 LecternBlock.tryPlaceBook(null, $$2, $$5, $$6, $$7); ... 170 } 131 } 171 ... 172 private static ItemStack createBook(String $$0, boolean $$1, String ... ... $$2) { ... 173 StringBuffer $$3 = new StringBuffer(); ... 174 Arrays.stream($$0.split("\\.")).forEach($$1x -> $$3.append($$1x) ... ... .append('\n')); ... 175 if (!$$1) { ... 176 $$3.append("(optional)\n"); ... 177 } ... 178 ... 179 $$3.append("-------------------\n"); ... 180 ItemStack $$4 = new ItemStack(Items.WRITABLE_BOOK); ... 181 $$4.set(DataComponents.WRITABLE_BOOK_CONTENT, new WritableBookCo ... ... ntent(List.of(Filterable.passThrough($$3 + $$2)))); ... 182 return $$4; ... 183 } ... 184 132 185 protected static void say(ServerLevel $$0, ChatFormatting $$1, Stri 133 protected static void say(ServerLevel $$0, ChatFormatting $$1, Stri ... ng $$2) { ... ng $$2) { 186 $$0.getPlayers($$0x -> true).forEach($$2x -> $$2x.sendSystemMess 134 $$0.getPlayers($$0x -> true).forEach($$2x -> $$2x.sendSystemMess age(Component.literal($$2).withStyle($$1))); age(Component.literal($$2).withStyle($$1))); net/minecraft/world/entity/npc/VillagerType.java --- 1/2 --- Java 1 package net.minecraft.world.entity.npc; 1 package net.minecraft.world.entity.npc; 2 2 3 import com.google.common.collect.Maps; 3 import com.google.common.collect.Maps; . 4 import com.mojang.serialization.Codec; 4 import java.util.Map; 5 import java.util.Map; 5 import net.minecraft.Util; 6 import net.minecraft.Util; 6 import net.minecraft.core.Holder; 7 import net.minecraft.core.Holder; 7 import net.minecraft.core.Registry; 8 import net.minecraft.core.Registry; 8 import net.minecraft.core.registries.BuiltInRegistries; 9 import net.minecraft.core.registries.Registries; . 10 import net.minecraft.network.RegistryFriendlyByteBuf; . 11 import net.minecraft.network.codec.ByteBufCodecs; . 12 import net.minecraft.network.codec.StreamCodec; . 13 import net.minecraft.resources.RegistryFixedCodec; 9 import net.minecraft.resources.ResourceKey; 14 import net.minecraft.resources.ResourceKey; 10 import net.minecraft.resources.ResourceLocation; 15 import net.minecraft.resources.ResourceLocation; 11 import net.minecraft.world.level.biome.Biome; 16 import net.minecraft.world.level.biome.Biome; 12 import net.minecraft.world.level.biome.Biomes; 17 import net.minecraft.world.level.biome.Biomes; 13 18 14 public final class VillagerType { 19 public final class VillagerType { 15 public static final VillagerType DESERT = register("desert"); 20 public static final ResourceKey<VillagerType> DESERT = createKey("de .. .. sert"); 16 public static final VillagerType JUNGLE = register("jungle"); 21 public static final ResourceKey<VillagerType> JUNGLE = createKey("ju .. .. ngle"); 17 public static final VillagerType PLAINS = register("plains"); 22 public static final ResourceKey<VillagerType> PLAINS = createKey("pl .. .. ains"); 18 public static final VillagerType SAVANNA = register("savanna"); 23 public static final ResourceKey<VillagerType> SAVANNA = createKey("s .. .. avanna"); 19 public static final VillagerType SNOW = register("snow"); 24 public static final ResourceKey<VillagerType> SNOW = createKey("snow .. .. "); 20 public static final VillagerType SWAMP = register("swamp"); 25 public static final ResourceKey<VillagerType> SWAMP = createKey("swa .. .. mp"); 21 public static final VillagerType TAIGA = register("taiga"); 26 public static final ResourceKey<VillagerType> TAIGA = createKey("tai .. .. ga"); 22 private final String name; 27 public static final Codec<Holder<VillagerType>> CODEC = RegistryFixe .. .. dCodec.create(Registries.VILLAGER_TYPE); .. 28 public static final StreamCodec<RegistryFriendlyByteBuf, Holder<Vill .. .. agerType>> STREAM_CODEC = ByteBufCodecs.holderRegistry(Registries.VILLA .. .. GER_TYPE); 23 private static final Map<ResourceKey<Biome>, VillagerType> BY_BIOME 29 private static final Map<ResourceKey<Biome>, ResourceKey<VillagerTyp .. = Util.make(Maps.newHashMap(), $$0 -> { .. e>> BY_BIOME = Util.make(Maps.newHashMap(), $$0 -> { 24 $$0.put(Biomes.BADLANDS, DESERT); 30 $$0.put(Biomes.BADLANDS, DESERT); 25 $$0.put(Biomes.DESERT, DESERT); 31 $$0.put(Biomes.DESERT, DESERT); 26 $$0.put(Biomes.ERODED_BADLANDS, DESERT); 32 $$0.put(Biomes.ERODED_BADLANDS, DESERT); net/minecraft/world/entity/npc/VillagerType.java --- 2/2 --- Java 52 $$0.put(Biomes.WINDSWEPT_FOREST, TAIGA); 58 $$0.put(Biomes.WINDSWEPT_FOREST, TAIGA); 53 }); 59 }); 54 60 55 private VillagerType(String $$0) { 61 private static ResourceKey<VillagerType> createKey(String $$0) { 56 this.name = $$0; 62 return ResourceKey.create(Registries.VILLAGER_TYPE, ResourceLocat .. .. ion.withDefaultNamespace($$0)); 57 } 63 } 58 .. 59 @Override .. 60 public String toString() { .. 61 return this.name; .. 62 } .. 63 64 64 private static VillagerType register(String $$0) { 65 private static VillagerType register(Registry<VillagerType> $$0, Res .. .. ourceKey<VillagerType> $$1) { 65 return Registry.register(BuiltInRegistries.VILLAGER_TYPE, Resourc 66 return Registry.register($$0, $$1, new VillagerType()); .. eLocation.withDefaultNamespace($$0), new VillagerType($$0)); .. 66 } 67 } .. 68 .. 69 public static VillagerType bootstrap(Registry<VillagerType> $$0) { .. 70 register($$0, DESERT); .. 71 register($$0, JUNGLE); .. 72 register($$0, PLAINS); .. 73 register($$0, SAVANNA); .. 74 register($$0, SNOW); .. 75 register($$0, SWAMP); .. 76 return register($$0, TAIGA); .. 77 } 67 78 68 public static VillagerType byBiome(Holder<Biome> $$0) { 79 public static ResourceKey<VillagerType> byBiome(Holder<Biome> $$0) { 69 return $$0.unwrapKey().map(BY_BIOME::get).orElse(PLAINS); 80 return $$0.unwrapKey().map(BY_BIOME::get).orElse(PLAINS); 70 } 81 } 71 } 82 } net/minecraft/world/entity/animal/horse/AbstractChestedHorse.java --- 1/2 --- Java 80 if (this.hasChest()) { 80 if (this.hasChest()) { 81 ListTag $$1 = new ListTag(); 81 ListTag $$1 = new ListTag(); 82 82 83 for (int $$2 = 1; $$2 < this.inventory.getContainerSize(); $$2 83 for (int $$2 = 0; $$2 < this.inventory.getContainerSize(); $$2 .. ++) { .. ++) { 84 ItemStack $$3 = this.inventory.getItem($$2); 84 ItemStack $$3 = this.inventory.getItem($$2); 85 if (!$$3.isEmpty()) { 85 if (!$$3.isEmpty()) { 86 CompoundTag $$4 = new CompoundTag(); 86 CompoundTag $$4 = new CompoundTag(); 87 $$4.putByte("Slot", (byte)($$2 - 1)); 87 $$4.putByte("Slot", (byte)$$2); 88 $$1.add($$3.save(this.registryAccess(), $$4)); 88 $$1.add($$3.save(this.registryAccess(), $$4)); 89 } 89 } 90 } 90 } net/minecraft/world/entity/animal/horse/AbstractChestedHorse.java --- 2/2 --- Java 104 for (int $$2 = 0; $$2 < $$1.size(); $$2++) { 104 for (int $$2 = 0; $$2 < $$1.size(); $$2++) { 105 CompoundTag $$3 = $$1.getCompound($$2); 105 CompoundTag $$3 = $$1.getCompound($$2); 106 int $$4 = $$3.getByte("Slot") & 255; 106 int $$4 = $$3.getByte("Slot") & 255; 107 if ($$4 < this.inventory.getContainerSize() - 1) { 107 if ($$4 < this.inventory.getContainerSize()) { 108 this.inventory.setItem($$4 + 1, ItemStack.parse(this.re 108 this.inventory.setItem($$4, ItemStack.parse(this.regist ... gistryAccess(), $$3).orElse(ItemStack.EMPTY)); ... ryAccess(), $$3).orElse(ItemStack.EMPTY)); 109 } 109 } 110 } 110 } 111 } 111 } 112 ... 113 this.syncSaddleToClients(); ... 114 } 112 } 115 113 116 @Override 114 @Override net/minecraft/world/entity/LivingEntity.java --- 1/20 --- Java 4 import com.google.common.base.Objects; 4 import com.google.common.base.Objects; 5 import com.google.common.collect.ImmutableList; 5 import com.google.common.collect.ImmutableList; 6 import com.google.common.collect.ImmutableMap; 6 import com.google.common.collect.ImmutableMap; 7 import com.google.common.collect.Iterables; . 8 import com.google.common.collect.Lists; 7 import com.google.common.collect.Lists; 9 import com.google.common.collect.Maps; 8 import com.google.common.collect.Maps; 10 import com.mojang.datafixers.util.Pair; 9 import com.mojang.datafixers.util.Pair; net/minecraft/world/entity/LivingEntity.java --- 2/20 --- Java 36 import net.minecraft.core.BlockPos; 35 import net.minecraft.core.BlockPos; 37 import net.minecraft.core.Direction; 36 import net.minecraft.core.Direction; 38 import net.minecraft.core.Holder; 37 import net.minecraft.core.Holder; 39 import net.minecraft.core.NonNullList; .. 40 import net.minecraft.core.component.DataComponents; 38 import net.minecraft.core.component.DataComponents; 41 import net.minecraft.core.particles.BlockParticleOption; 39 import net.minecraft.core.particles.BlockParticleOption; 42 import net.minecraft.core.particles.ItemParticleOption; 40 import net.minecraft.core.particles.ItemParticleOption; net/minecraft/world/entity/LivingEntity.java --- 3/20 --- Java 145 private static final AttributeModifier SPEED_MODIFIER_SPRINTING = n 143 private static final AttributeModifier SPEED_MODIFIER_SPRINTING = n ... ew AttributeModifier( ... ew AttributeModifier( 146 SPRINTING_MODIFIER_ID, 0.3F, AttributeModifier.Operation.ADD_MUL 144 SPRINTING_MODIFIER_ID, 0.3F, AttributeModifier.Operation.ADD_MUL ... TIPLIED_TOTAL ... TIPLIED_TOTAL 147 ); 145 ); 148 public static final int HAND_SLOTS = 2; ... 149 public static final int ARMOR_SLOTS = 4; ... 150 public static final int EQUIPMENT_SLOT_OFFSET = 98; 146 public static final int EQUIPMENT_SLOT_OFFSET = 98; 151 public static final int ARMOR_SLOT_OFFSET = 100; 147 public static final int ARMOR_SLOT_OFFSET = 100; 152 public static final int BODY_ARMOR_OFFSET = 105; 148 public static final int BODY_ARMOR_OFFSET = 105; ... 149 public static final int SADDLE_OFFSET = 106; 153 public static final int SWING_DURATION = 6; 150 public static final int SWING_DURATION = 6; 154 public static final int PLAYER_HURT_EXPERIENCE_TIME = 100; 151 public static final int PLAYER_HURT_EXPERIENCE_TIME = 100; 155 private static final int DAMAGE_SOURCE_TIMEOUT = 40; 152 private static final int DAMAGE_SOURCE_TIMEOUT = 40; net/minecraft/world/entity/LivingEntity.java --- 4/20 --- Java 190 private final AttributeMap attributes; 187 private final AttributeMap attributes; 191 private final CombatTracker combatTracker = new CombatTracker(this) 188 private final CombatTracker combatTracker = new CombatTracker(this) ... ; ... ; 192 private final Map<Holder<MobEffect>, MobEffectInstance> activeEffec 189 private final Map<Holder<MobEffect>, MobEffectInstance> activeEffec ... ts = Maps.newHashMap(); ... ts = Maps.newHashMap(); 193 private final NonNullList<ItemStack> lastHandItemStacks = NonNullLi 190 private final Map<EquipmentSlot, ItemStack> lastEquipmentItems = Ut ... st.withSize(2, ItemStack.EMPTY); ... il.makeEnumMap(EquipmentSlot.class, $$0x -> ItemStack.EMPTY); 194 private final NonNullList<ItemStack> lastArmorItemStacks = NonNullL ... ... ist.withSize(4, ItemStack.EMPTY); ... 195 private ItemStack lastBodyItemStack = ItemStack.EMPTY; ... 196 public boolean swinging; 191 public boolean swinging; 197 private boolean discardFriction = false; 192 private boolean discardFriction = false; 198 public InteractionHand swingingArm; 193 public InteractionHand swingingArm; net/minecraft/world/entity/LivingEntity.java --- 5/20 --- Java 327 this.updateInWaterStateAndDoWaterCurrentPushing(); 322 this.updateInWaterStateAndDoWaterCurrentPushing(); 328 } 323 } 329 324 330 if (this.level() instanceof ServerLevel $$4 && $$1 && this.fallD 325 if (this.level() instanceof ServerLevel $$4 && $$1 && this.fallD ... istance > 0.0F) { ... istance > 0.0) { 331 this.onChangedBlock($$4, $$3); 326 this.onChangedBlock($$4, $$3); 332 double $$5 = this.getAttributeValue(Attributes.SAFE_FALL_DIST 327 double $$5 = (double)Math.max(0, Mth.floor(this.calculateFall ... ANCE); ... Power(this.fallDistance))); 333 if ((double)this.fallDistance > $$5 && !$$2.isAir()) { 328 if ($$5 > 0.0 && !$$2.isAir()) { 334 double $$6 = this.getX(); 329 double $$6 = this.getX(); 335 double $$7 = this.getY(); 330 double $$7 = this.getY(); 336 double $$8 = this.getZ(); 331 double $$8 = this.getZ(); net/minecraft/world/entity/LivingEntity.java --- 6/20 --- Java 343 $$8 = (double)$$3.getZ() + 0.5 + $$11 / $$12 * 0.5; 338 $$8 = (double)$$3.getZ() + 0.5 + $$11 / $$12 * 0.5; 344 } 339 } 345 340 346 float $$13 = (float)Mth.ceil((double)this.fallDistance - $ ... ... $5); ... 347 double $$14 = Math.min((double)(0.2F + $$13 / 15.0F), 2.5) 341 double $$13 = Math.min(0.2F + $$5 / 15.0, 2.5); ... ; ... 348 int $$15 = (int)(150.0 * $$14); 342 int $$14 = (int)(150.0 * $$13); 349 $$4.sendParticles(new BlockParticleOption(ParticleTypes.BL 343 $$4.sendParticles(new BlockParticleOption(ParticleTypes.BL ... OCK, $$2), $$6, $$7, $$8, $$15, 0.0, 0.0, 0.0, 0.15F); ... OCK, $$2), $$6, $$7, $$8, $$14, 0.0, 0.0, 0.0, 0.15F); 350 } 344 } 351 } 345 } 352 346 net/minecraft/world/entity/LivingEntity.java --- 7/20 --- Java 427 } 421 } 428 } 422 } 429 423 430 if (this.isAlive() && (this.isInWaterOrRain() || this.isInPowder 424 if (this.isAlive() && this.isInRain()) { ... Snow)) { ... 431 this.extinguishFire(); 425 this.extinguishFire(); 432 } 426 } 433 427 net/minecraft/world/entity/LivingEntity.java --- 8/20 --- Java 650 644 651 public void onEquipItem(EquipmentSlot $$0, ItemStack $$1, ItemStack 645 public void onEquipItem(EquipmentSlot $$0, ItemStack $$1, ItemStack ... $$2) { ... $$2) { 652 if (!this.level().isClientSide() && !this.isSpectator()) { 646 if (!this.level().isClientSide() && !this.isSpectator()) { 653 boolean $$3 = $$2.isEmpty() && $$1.isEmpty(); ... 654 if (!$$3 && !ItemStack.isSameItemSameComponents($$1, $$2) && 647 if (!ItemStack.isSameItemSameComponents($$1, $$2) && !this.fi ... !this.firstTick) { ... rstTick) { 655 Equippable $$4 = $$2.get(DataComponents.EQUIPPABLE); 648 Equippable $$3 = $$2.get(DataComponents.EQUIPPABLE); 656 if (!this.isSilent() && $$4 != null && $$0 == $$4.slot()) 649 if (!this.isSilent() && $$3 != null && $$0 == $$3.slot()) ... { ... { 657 this.level() 650 this.level() 658 .playSeededSound(null, this.getX(), this.getY(), thi 651 .playSeededSound( ... s.getZ(), $$4.equipSound(), this.getSoundSource(), 1.0F, 1.0F, this.ra ... ... ndom.nextLong()); ... ... 652 null, this.getX(), this.getY(), this.getZ(), this ... ... .getEquipSound($$0, $$2, $$3), this.getSoundSource(), 1.0F, 1.0F, this ... ... .random.nextLong() ... 653 ); 659 } 654 } 660 655 661 if (this.doesEmitEquipEvent($$0)) { 656 if (this.doesEmitEquipEvent($$0)) { 662 this.gameEvent($$4 != null ? GameEvent.EQUIP : GameEven 657 this.gameEvent($$3 != null ? GameEvent.EQUIP : GameEven ... t.UNEQUIP); ... t.UNEQUIP); 663 } 658 } 664 } 659 } 665 } 660 } 666 } 661 } ... 662 ... 663 protected Holder<SoundEvent> getEquipSound(EquipmentSlot $$0, ItemS ... ... tack $$1, Equippable $$2) { ... 664 return $$2.equipSound(); ... 665 } 667 666 668 @Override 667 @Override 669 public void remove(Entity.RemovalReason $$0) { 668 public void remove(Entity.RemovalReason $$0) { net/minecraft/world/entity/LivingEntity.java --- 9/20 --- Java 1630 } 1629 } 1631 1630 1632 @Override 1631 @Override 1633 public boolean causeFallDamage(float $$0, float $$1, DamageSource 1632 public boolean causeFallDamage(double $$0, float $$1, DamageSource .... $$2) { .... $$2) { 1634 boolean $$3 = super.causeFallDamage($$0, $$1, $$2); 1633 boolean $$3 = super.causeFallDamage($$0, $$1, $$2); 1635 int $$4 = this.calculateFallDamage($$0, $$1); 1634 int $$4 = this.calculateFallDamage($$0, $$1); 1636 if ($$4 > 0) { 1635 if ($$4 > 0) { net/minecraft/world/entity/LivingEntity.java --- 10/20 --- Java 1643 } 1642 } 1644 } 1643 } 1645 1644 1646 protected int calculateFallDamage(float $$0, float $$1) { 1645 protected int calculateFallDamage(double $$0, float $$1) { 1647 if (this.getType().is(EntityTypeTags.FALL_DAMAGE_IMMUNE)) { 1646 if (this.getType().is(EntityTypeTags.FALL_DAMAGE_IMMUNE)) { 1648 return 0; 1647 return 0; 1649 } else { 1648 } else { 1650 float $$2 = (float)this.getAttributeValue(Attributes.SAFE_FA 1649 double $$2 = this.calculateFallPower($$0); .... LL_DISTANCE); .... 1651 float $$3 = $$0 - $$2; .... 1652 return Mth.ceil((double)($$3 * $$1) * this.getAttributeValue 1650 return Mth.floor($$2 * (double)$$1 * this.getAttributeValue( .... (Attributes.FALL_DAMAGE_MULTIPLIER)); .... Attributes.FALL_DAMAGE_MULTIPLIER)); 1653 } 1651 } 1654 } 1652 } .... 1653 .... 1654 private double calculateFallPower(double $$0) { .... 1655 return $$0 + 1.0E-6 - this.getAttributeValue(Attributes.SAFE_FA .... .... LL_DISTANCE); .... 1656 } 1655 1657 1656 protected void playBlockFallSound() { 1658 protected void playBlockFallSound() { 1657 if (!this.isSilent()) { 1659 if (!this.isSilent()) { net/minecraft/world/entity/LivingEntity.java --- 11/20 --- Java 1969 break; 1971 break; 1970 case 67: 1972 case 67: 1971 this.makeDrownParticles(); 1973 this.makeDrownParticles(); .... 1974 break; .... 1975 case 68: .... 1976 this.breakItem(this.getItemBySlot(EquipmentSlot.SADDLE)); 1972 } 1977 } 1973 } 1978 } 1974 1979 net/minecraft/world/entity/LivingEntity.java --- 12/20 --- Java 2092 } 2097 } 2093 2098 2094 public boolean canUseSlot(EquipmentSlot $$0) { 2099 public boolean canUseSlot(EquipmentSlot $$0) { 2095 return false; 2100 return true; 2096 } 2101 } 2097 .... 2098 public abstract Iterable<ItemStack> getArmorSlots(); .... 2099 2102 2100 public abstract ItemStack getItemBySlot(EquipmentSlot var1); 2103 public abstract ItemStack getItemBySlot(EquipmentSlot var1); 2101 2104 2102 public abstract void setItemSlot(EquipmentSlot var1, ItemStack var 2105 public abstract void setItemSlot(EquipmentSlot var1, ItemStack var .... 2); .... 2); 2103 .... 2104 public Iterable<ItemStack> getHandSlots() { .... 2105 return List.of(); .... 2106 } .... 2107 .... 2108 public Iterable<ItemStack> getArmorAndBodyArmorSlots() { .... 2109 return this.getArmorSlots(); .... 2110 } .... 2111 .... 2112 public Iterable<ItemStack> getAllSlots() { .... 2113 return Iterables.concat(this.getHandSlots(), this.getArmorAndBo .... .... dyArmorSlots()); .... 2114 } .... 2115 2106 2116 protected void verifyEquippedItem(ItemStack $$0) { 2107 protected void verifyEquippedItem(ItemStack $$0) { 2117 $$0.getItem().verifyComponentsAfterLoad($$0); 2108 $$0.getItem().verifyComponentsAfterLoad($$0); 2118 } 2109 } 2119 2110 2120 public float getArmorCoverPercentage() { 2111 public float getArmorCoverPercentage() { 2121 Iterable<ItemStack> $$0 = this.getArmorSlots(); 2112 int $$0 = 0; 2122 int $$1 = 0; 2113 int $$1 = 0; 2123 int $$2 = 0; .... 2124 2114 2125 for (ItemStack $$3 : $$0) { 2115 for (EquipmentSlot $$2 : EquipmentSlotGroup.ARMOR) { .... 2116 if ($$2.getType() == EquipmentSlot.Type.HUMANOID_ARMOR) { .... 2117 ItemStack $$3 = this.getItemBySlot($$2); 2126 if (!$$3.isEmpty()) { 2118 if (!$$3.isEmpty()) { 2127 $$2++; 2119 $$1++; 2128 } 2120 } 2129 2121 2130 $$1++; 2122 $$0++; .... 2123 } 2131 } 2124 } 2132 2125 2133 return $$1 > 0 ? (float)$$2 / (float)$$1 : 0.0F; 2126 return $$0 > 0 ? (float)$$1 / (float)$$0 : 0.0F; 2134 } 2127 } 2135 2128 2136 @Override 2129 @Override net/minecraft/world/entity/LivingEntity.java --- 13/20 --- Java 2623 Map<EquipmentSlot, ItemStack> $$0 = null; 2616 Map<EquipmentSlot, ItemStack> $$0 = null; 2624 2617 2625 for (EquipmentSlot $$1 : EquipmentSlot.VALUES) { 2618 for (EquipmentSlot $$1 : EquipmentSlot.VALUES) { 2626 ItemStack $$2 = switch ($$1.getType()) { 2619 ItemStack $$2 = this.lastEquipmentItems.get($$1); 2627 case HAND -> this.getLastHandItem($$1); .... 2628 case HUMANOID_ARMOR -> this.getLastArmorItem($$1); .... 2629 case ANIMAL_ARMOR -> this.lastBodyItemStack; .... 2630 }; .... 2631 ItemStack $$3 = this.getItemBySlot($$1); 2620 ItemStack $$3 = this.getItemBySlot($$1); 2632 if (this.equipmentHasChanged($$2, $$3)) { 2621 if (this.equipmentHasChanged($$2, $$3)) { 2633 if ($$0 == null) { 2622 if ($$0 == null) { net/minecraft/world/entity/LivingEntity.java --- 14/20 --- Java 2647 EquipmentSlot $$6 = $$5.getKey(); 2636 EquipmentSlot $$6 = $$5.getKey(); 2648 ItemStack $$7 = $$5.getValue(); 2637 ItemStack $$7 = $$5.getValue(); 2649 if (!$$7.isEmpty() && !$$7.isBroken()) { 2638 if (!$$7.isEmpty() && !$$7.isBroken()) { 2650 $$7.forEachModifier($$6, ($$0x, $$1) -> { 2639 $$7.forEachModifier($$6, ($$0x, $$1x) -> { 2651 AttributeInstance $$2 = this.attributes.getInstance 2640 AttributeInstance $$2 = this.attributes.getInstance .... ($$0x); .... ($$0x); 2652 if ($$2 != null) { 2641 if ($$2 != null) { 2653 $$2.removeModifier($$1.id()); 2642 $$2.removeModifier($$1x.id()); 2654 $$2.addTransientModifier($$1); 2643 $$2.addTransientModifier($$1x); 2655 } 2644 } 2656 }); 2645 }); 2657 if (this.level() instanceof ServerLevel $$8) { 2646 if (this.level() instanceof ServerLevel $$8) { net/minecraft/world/entity/LivingEntity.java --- 15/20 --- Java 2673 ItemStack $$2 = $$0.get(EquipmentSlot.OFFHAND); 2662 ItemStack $$2 = $$0.get(EquipmentSlot.OFFHAND); 2674 if ($$1 != null 2663 if ($$1 != null 2675 && $$2 != null 2664 && $$2 != null 2676 && ItemStack.matches($$1, this.getLastHandItem(EquipmentSlot 2665 && ItemStack.matches($$1, this.lastEquipmentItems.get(Equipm .... .OFFHAND)) .... entSlot.OFFHAND)) 2677 && ItemStack.matches($$2, this.getLastHandItem(EquipmentSlot 2666 && ItemStack.matches($$2, this.lastEquipmentItems.get(Equipm .... .MAINHAND))) { .... entSlot.MAINHAND))) { 2678 ((ServerLevel)this.level()).getChunkSource().broadcast(this, 2667 ((ServerLevel)this.level()).getChunkSource().broadcast(this, .... new ClientboundEntityEventPacket(this, (byte)55)); .... new ClientboundEntityEventPacket(this, (byte)55)); 2679 $$0.remove(EquipmentSlot.MAINHAND); 2668 $$0.remove(EquipmentSlot.MAINHAND); 2680 $$0.remove(EquipmentSlot.OFFHAND); 2669 $$0.remove(EquipmentSlot.OFFHAND); 2681 this.setLastHandItem(EquipmentSlot.MAINHAND, $$1.copy()); 2670 this.lastEquipmentItems.put(EquipmentSlot.MAINHAND, $$1.copy .... .... ()); 2682 this.setLastHandItem(EquipmentSlot.OFFHAND, $$2.copy()); 2671 this.lastEquipmentItems.put(EquipmentSlot.OFFHAND, $$2.copy( .... .... )); 2683 } 2672 } 2684 } 2673 } 2685 2674 net/minecraft/world/entity/LivingEntity.java --- 16/20 --- Java 2688 $$0.forEach(($$1x, $$2) -> { 2677 $$0.forEach(($$1x, $$2) -> { 2689 ItemStack $$3 = $$2.copy(); 2678 ItemStack $$3 = $$2.copy(); 2690 $$1.add(Pair.of($$1x, $$3)); 2679 $$1.add(Pair.of($$1x, $$3)); 2691 switch ($$1x.getType()) { .... 2692 case HAND: .... 2693 this.setLastHandItem($$1x, $$3); 2680 this.lastEquipmentItems.put($$1x, $$3); 2694 break; .... 2695 case HUMANOID_ARMOR: .... 2696 this.setLastArmorItem($$1x, $$3); .... 2697 break; .... 2698 case ANIMAL_ARMOR: .... 2699 this.lastBodyItemStack = $$3; .... 2700 } .... 2701 }); 2681 }); 2702 ((ServerLevel)this.level()).getChunkSource().broadcast(this, ne 2682 ((ServerLevel)this.level()).getChunkSource().broadcast(this, ne .... w ClientboundSetEquipmentPacket(this.getId(), $$1)); .... w ClientboundSetEquipmentPacket(this.getId(), $$1)); 2703 } 2683 } 2704 .... 2705 private ItemStack getLastArmorItem(EquipmentSlot $$0) { .... 2706 return this.lastArmorItemStacks.get($$0.getIndex()); .... 2707 } .... 2708 .... 2709 private void setLastArmorItem(EquipmentSlot $$0, ItemStack $$1) { .... 2710 this.lastArmorItemStacks.set($$0.getIndex(), $$1); .... 2711 } .... 2712 .... 2713 private ItemStack getLastHandItem(EquipmentSlot $$0) { .... 2714 return this.lastHandItemStacks.get($$0.getIndex()); .... 2715 } .... 2716 .... 2717 private void setLastHandItem(EquipmentSlot $$0, ItemStack $$1) { .... 2718 this.lastHandItemStacks.set($$0.getIndex(), $$1); .... 2719 } .... 2720 2684 2721 protected void tickHeadTurn(float $$0) { 2685 protected void tickHeadTurn(float $$0) { 2722 float $$1 = Mth.wrapDegrees($$0 - this.yBodyRot); 2686 float $$1 = Mth.wrapDegrees($$0 - this.yBodyRot); net/minecraft/world/entity/LivingEntity.java --- 17/20 --- Java 3494 case FEET -> 52; 3458 case FEET -> 52; 3495 case LEGS -> 51; 3459 case LEGS -> 51; 3496 case BODY -> 65; 3460 case BODY -> 65; .... 3461 case SADDLE -> 68; 3497 }; 3462 }; 3498 } 3463 } 3499 3464 net/minecraft/world/entity/LivingEntity.java --- 18/20 --- Java 3568 return EquipmentSlot.MAINHAND; 3533 return EquipmentSlot.MAINHAND; 3569 } else if ($$0 == 99) { 3534 } else if ($$0 == 99) { 3570 return EquipmentSlot.OFFHAND; 3535 return EquipmentSlot.OFFHAND; 3571 } else { 3536 } else if ($$0 == 105) { .... 3537 return EquipmentSlot.BODY; .... 3538 } else { 3572 return $$0 == 105 ? EquipmentSlot.BODY : null; 3539 return $$0 == 106 ? EquipmentSlot.SADDLE : null; 3573 } 3540 } 3574 } 3541 } 3575 3542 net/minecraft/world/entity/LivingEntity.java --- 19/20 --- Java 3584 if (this.isSpectator()) { 3551 if (this.isSpectator()) { 3585 return false; 3552 return false; 3586 } else { 3553 } else { 3587 boolean $$0 = !this.getItemBySlot(EquipmentSlot.HEAD).is(Ite 3554 for (EquipmentSlot $$0 : EquipmentSlotGroup.ARMOR) { .... mTags.FREEZE_IMMUNE_WEARABLES) .... 3588 && !this.getItemBySlot(EquipmentSlot.CHEST).is(ItemTags.F .... .... REEZE_IMMUNE_WEARABLES) .... 3589 && !this.getItemBySlot(EquipmentSlot.LEGS).is(ItemTags.FR .... .... EEZE_IMMUNE_WEARABLES) .... 3590 && !this.getItemBySlot(EquipmentSlot.FEET).is(ItemTags.FR .... .... EEZE_IMMUNE_WEARABLES) .... 3591 && !this.getItemBySlot(EquipmentSlot.BODY).is(ItemTags.FR 3555 if (this.getItemBySlot($$0).is(ItemTags.FREEZE_IMMUNE_WEA .... EEZE_IMMUNE_WEARABLES); .... RABLES)) { .... 3556 return false; .... 3557 } .... 3558 } .... 3559 3592 return $$0 && super.canFreeze(); 3560 return super.canFreeze(); 3593 } 3561 } 3594 } 3562 } 3595 3563 net/minecraft/world/entity/LivingEntity.java --- 20/20 --- Java 3617 this.yHeadRotO = this.yHeadRot; 3585 this.yHeadRotO = this.yHeadRot; 3618 this.setId($$0.getId()); 3586 this.setId($$0.getId()); 3619 this.setUUID($$0.getUUID()); 3587 this.setUUID($$0.getUUID()); 3620 this.absMoveTo($$1, $$2, $$3, $$4, $$5); 3588 this.absSnapTo($$1, $$2, $$3, $$4, $$5); 3621 this.setDeltaMovement($$0.getXa(), $$0.getYa(), $$0.getZa()); 3589 this.setDeltaMovement($$0.getXa(), $$0.getYa(), $$0.getZa()); 3622 } 3590 } 3623 3591 net/minecraft/util/datafix/schemas/V99.java --- 1/4 --- Java 65 super($$0, $$1); 65 super($$0, $$1); 66 } 66 } 67 .. 68 protected static TypeTemplate equipment(Schema $$0) { .. 69 return DSL.optionalFields("Equipment", DSL.list(References.ITEM_S .. .. TACK.in($$0))); .. 70 } .. 71 .. 72 protected static void registerMob(Schema $$0, Map<String, Supplier<T .. .. ypeTemplate>> $$1, String $$2) { .. 73 $$0.register($$1, $$2, () -> equipment($$0)); .. 74 } .. 75 67 76 protected static void registerThrowableProjectile(Schema $$0, Map<St 68 protected static void registerThrowableProjectile(Schema $$0, Map<St .. ring, Supplier<TypeTemplate>> $$1, String $$2) { .. ring, Supplier<TypeTemplate>> $$1, String $$2) { 77 $$0.register($$1, $$2, () -> DSL.optionalFields("inTile", Referen 69 $$0.register($$1, $$2, () -> DSL.optionalFields("inTile", Referen ces.BLOCK_NAME.in($$0))); ces.BLOCK_NAME.in($$0))); net/minecraft/util/datafix/schemas/V99.java --- 2/4 --- Java 123 $$0.register( 115 $$0.register( 124 $$1, "MinecartCommandBlock", () -> DSL.optionalFields("Displa 116 $$1, "MinecartCommandBlock", () -> DSL.optionalFields("Displa ... yTile", References.BLOCK_NAME.in($$0), "LastOutput", References.TEXT_C ... yTile", References.BLOCK_NAME.in($$0), "LastOutput", References.TEXT_C ... OMPONENT.in($$0)) ... OMPONENT.in($$0)) 125 ); 117 ); 126 registerMob($$0, $$1, "ArmorStand"); 118 $$0.registerSimple($$1, "ArmorStand"); 127 registerMob($$0, $$1, "Creeper"); 119 $$0.registerSimple($$1, "Creeper"); 128 registerMob($$0, $$1, "Skeleton"); 120 $$0.registerSimple($$1, "Skeleton"); 129 registerMob($$0, $$1, "Spider"); 121 $$0.registerSimple($$1, "Spider"); 130 registerMob($$0, $$1, "Giant"); 122 $$0.registerSimple($$1, "Giant"); 131 registerMob($$0, $$1, "Zombie"); 123 $$0.registerSimple($$1, "Zombie"); 132 registerMob($$0, $$1, "Slime"); 124 $$0.registerSimple($$1, "Slime"); 133 registerMob($$0, $$1, "Ghast"); 125 $$0.registerSimple($$1, "Ghast"); 134 registerMob($$0, $$1, "PigZombie"); 126 $$0.registerSimple($$1, "PigZombie"); 135 $$0.register($$1, "Enderman", $$1x -> DSL.optionalFields("carrie 127 $$0.register($$1, "Enderman", $$1x -> DSL.optionalFields("carrie ... d", References.BLOCK_NAME.in($$0), equipment($$0))); ... d", References.BLOCK_NAME.in($$0))); 136 registerMob($$0, $$1, "CaveSpider"); 128 $$0.registerSimple($$1, "CaveSpider"); 137 registerMob($$0, $$1, "Silverfish"); 129 $$0.registerSimple($$1, "Silverfish"); 138 registerMob($$0, $$1, "Blaze"); 130 $$0.registerSimple($$1, "Blaze"); 139 registerMob($$0, $$1, "LavaSlime"); 131 $$0.registerSimple($$1, "LavaSlime"); 140 registerMob($$0, $$1, "EnderDragon"); 132 $$0.registerSimple($$1, "EnderDragon"); 141 registerMob($$0, $$1, "WitherBoss"); 133 $$0.registerSimple($$1, "WitherBoss"); 142 registerMob($$0, $$1, "Bat"); 134 $$0.registerSimple($$1, "Bat"); 143 registerMob($$0, $$1, "Witch"); 135 $$0.registerSimple($$1, "Witch"); 144 registerMob($$0, $$1, "Endermite"); 136 $$0.registerSimple($$1, "Endermite"); 145 registerMob($$0, $$1, "Guardian"); 137 $$0.registerSimple($$1, "Guardian"); 146 registerMob($$0, $$1, "Pig"); 138 $$0.registerSimple($$1, "Pig"); 147 registerMob($$0, $$1, "Sheep"); 139 $$0.registerSimple($$1, "Sheep"); 148 registerMob($$0, $$1, "Cow"); 140 $$0.registerSimple($$1, "Cow"); 149 registerMob($$0, $$1, "Chicken"); 141 $$0.registerSimple($$1, "Chicken"); 150 registerMob($$0, $$1, "Squid"); 142 $$0.registerSimple($$1, "Squid"); 151 registerMob($$0, $$1, "Wolf"); 143 $$0.registerSimple($$1, "Wolf"); 152 registerMob($$0, $$1, "MushroomCow"); 144 $$0.registerSimple($$1, "MushroomCow"); 153 registerMob($$0, $$1, "SnowMan"); 145 $$0.registerSimple($$1, "SnowMan"); 154 registerMob($$0, $$1, "Ozelot"); 146 $$0.registerSimple($$1, "Ozelot"); 155 registerMob($$0, $$1, "VillagerGolem"); 147 $$0.registerSimple($$1, "VillagerGolem"); 156 $$0.register( 148 $$0.register( 157 $$1, 149 $$1, 158 "EntityHorse", 150 "EntityHorse", 159 $$1x -> DSL.optionalFields( 151 $$1x -> DSL.optionalFields( 160 "Items", 152 "Items", DSL.list(References.ITEM_STACK.in($$0)), "Armo ... ... rItem", References.ITEM_STACK.in($$0), "SaddleItem", References.ITEM_S ... ... TACK.in($$0) 161 DSL.list(References.ITEM_STACK.in($$0)), ... 162 "ArmorItem", ... 163 References.ITEM_STACK.in($$0), ... 164 "SaddleItem", ... 165 References.ITEM_STACK.in($$0), ... 166 equipment($$0) ... 167 ) 153 ) 168 ); 154 ); 169 registerMob($$0, $$1, "Rabbit"); 155 $$0.registerSimple($$1, "Rabbit"); 170 $$0.register( 156 $$0.register( 171 $$1, 157 $$1, 172 "Villager", 158 "Villager", 173 $$1x -> DSL.optionalFields( 159 $$1x -> DSL.optionalFields( 174 "Inventory", 160 "Inventory", DSL.list(References.ITEM_STACK.in($$0)), " ... ... Offers", DSL.optionalFields("Recipes", DSL.list(References.VILLAGER_TR ... ... ADE.in($$0))) 175 DSL.list(References.ITEM_STACK.in($$0)), ... 176 "Offers", ... 177 DSL.optionalFields("Recipes", DSL.list(References.VILLA ... ... GER_TRADE.in($$0))), ... 178 equipment($$0) ... 179 ) 161 ) 180 ); 162 ); 181 $$0.registerSimple($$1, "EnderCrystal"); 163 $$0.registerSimple($$1, "EnderCrystal"); 182 $$0.register($$1, "AreaEffectCloud", $$1x -> DSL.optionalFields( 164 $$0.register($$1, "AreaEffectCloud", $$1x -> DSL.optionalFields( ... "Particle", References.PARTICLE.in($$0))); ... "Particle", References.PARTICLE.in($$0))); 183 $$0.registerSimple($$1, "ShulkerBullet"); 165 $$0.registerSimple($$1, "ShulkerBullet"); 184 $$0.registerSimple($$1, "DragonFireball"); 166 $$0.registerSimple($$1, "DragonFireball"); 185 registerMob($$0, $$1, "Shulker"); 167 $$0.registerSimple($$1, "Shulker"); 186 return $$1; 168 return $$1; 187 } 169 } 188 170 net/minecraft/util/datafix/schemas/V99.java --- 3/4 --- Java 263 $$0.registerType( 245 $$0.registerType( 264 true, References.ENTITY, () -> DSL.optionalFields("CustomName 246 true, ... ", DSL.constType(DSL.string()), DSL.taggedChoiceLazy("id", DSL.string( ... ... ), $$1)) ... ... 247 References.ENTITY, ... 248 () -> DSL.and( ... 249 References.ENTITY_EQUIPMENT.in($$0), ... 250 DSL.optionalFields("CustomName", DSL.constType(DSL.stri ... ... ng()), DSL.taggedChoiceLazy("id", DSL.string(), $$1)) ... 251 ) 265 ); 252 ); 266 $$0.registerType( 253 $$0.registerType( 267 true, 254 true, net/minecraft/util/datafix/schemas/V99.java --- 4/4 --- Java 330 ); 317 ); 331 $$0.registerType(true, References.PARTICLE, () -> DSL.constType( 318 $$0.registerType(true, References.PARTICLE, () -> DSL.constType( ... DSL.string())); ... DSL.string())); 332 $$0.registerType(true, References.TEXT_COMPONENT, () -> DSL.cons 319 $$0.registerType(true, References.TEXT_COMPONENT, () -> DSL.cons ... tType(DSL.string())); ... tType(DSL.string())); ... 320 $$0.registerType( ... 321 false, ... 322 References.STRUCTURE, ... 323 () -> DSL.optionalFields( ... 324 "entities", ... 325 DSL.list(DSL.optionalFields("nbt", References.ENTITY_TR ... ... EE.in($$0))), ... 326 "blocks", ... 327 DSL.list(DSL.optionalFields("nbt", References.BLOCK_ENT ... ... ITY.in($$0))), ... 328 "palette", ... 329 DSL.list(References.BLOCK_STATE.in($$0)) ... 330 ) ... 331 ); ... 332 $$0.registerType(false, References.BLOCK_STATE, DSL::remainder); ... 333 $$0.registerType(false, References.FLAT_BLOCK_STATE, DSL::remain ... ... der); ... 334 $$0.registerType(true, References.ENTITY_EQUIPMENT, () -> DSL.op ... ... tional(DSL.field("Equipment", DSL.list(References.ITEM_STACK.in($$0))) ... ... )); 333 } 335 } 334 336 335 public static TypeTemplate itemStackTag(Schema $$0) { 337 public static TypeTemplate itemStackTag(Schema $$0) { net/minecraft/util/datafix/schemas/V2519.java --- Java 13 @Override 13 @Override 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 14 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 15 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 16 $$0.register($$1, "minecraft:strider", () -> V100.equipment($$0)) 16 $$0.registerSimple($$1, "minecraft:strider"); .. ; .. 17 return $$1; 17 return $$1; 18 } 18 } 19 } 19 } net/minecraft/util/datafix/schemas/V3689.java --- Java 15 @Override 15 @Override 16 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ 16 public Map<String, Supplier<TypeTemplate>> registerEntities(Schema $ .. $0) { .. $0) { 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( 17 Map<String, Supplier<TypeTemplate>> $$1 = super.registerEntities( .. $$0); .. $$0); 18 $$0.register($$1, "minecraft:breeze", () -> V100.equipment($$0)); 18 $$0.registerSimple($$1, "minecraft:breeze"); 19 $$0.registerSimple($$1, "minecraft:wind_charge"); 19 $$0.registerSimple($$1, "minecraft:wind_charge"); 20 $$0.registerSimple($$1, "minecraft:breeze_wind_charge"); 20 $$0.registerSimple($$1, "minecraft:breeze_wind_charge"); 21 return $$1; 21 return $$1; net/minecraft/util/datafix/schemas/V3078.java --- Java 13 } 13 } 14 14 15 protected static void registerMob(Schema $$0, Map<String, Supplier<T 15 protected static void registerMob(Schema $$0, Map<String, Supplier<T .. ypeTemplate>> $$1, String $$2) { .. ypeTemplate>> $$1, String $$2) { 16 $$0.register($$1, $$2, () -> V100.equipment($$0)); 16 $$0.registerSimple($$1, $$2); 17 } 17 } 18 18 19 @Override 19 @Override net/minecraft/client/model/CamelModel.java --- 1/5 --- Java 5 import net.minecraft.client.animation.definitions.CamelAnimation; 5 import net.minecraft.client.animation.definitions.CamelAnimation; 6 import net.minecraft.client.model.geom.ModelPart; 6 import net.minecraft.client.model.geom.ModelPart; 7 import net.minecraft.client.model.geom.PartPose; 7 import net.minecraft.client.model.geom.PartPose; 8 import net.minecraft.client.model.geom.builders.CubeDeformation; . 9 import net.minecraft.client.model.geom.builders.CubeListBuilder; 8 import net.minecraft.client.model.geom.builders.CubeListBuilder; 10 import net.minecraft.client.model.geom.builders.LayerDefinition; 9 import net.minecraft.client.model.geom.builders.LayerDefinition; 11 import net.minecraft.client.model.geom.builders.MeshDefinition; 10 import net.minecraft.client.model.geom.builders.MeshDefinition; net/minecraft/client/model/CamelModel.java --- 2/5 --- Java 19 private static final float MAX_WALK_ANIMATION_SPEED = 2.0F; 18 private static final float MAX_WALK_ANIMATION_SPEED = 2.0F; 20 private static final float WALK_ANIMATION_SCALE_FACTOR = 2.5F; 19 private static final float WALK_ANIMATION_SCALE_FACTOR = 2.5F; 21 public static final MeshTransformer BABY_TRANSFORMER = MeshTransform 20 public static final MeshTransformer BABY_TRANSFORMER = MeshTransform .. er.scaling(0.45F); .. er.scaling(0.45F); 22 private static final String SADDLE = "saddle"; .. 23 private static final String BRIDLE = "bridle"; .. 24 private static final String REINS = "reins"; .. 25 private final ModelPart head; 21 protected final ModelPart head; 26 private final ModelPart[] saddleParts; .. 27 private final ModelPart[] ridingParts; .. 28 22 29 public CamelModel(ModelPart $$0) { 23 public CamelModel(ModelPart $$0) { 30 super($$0); 24 super($$0); 31 ModelPart $$1 = $$0.getChild("body"); 25 ModelPart $$1 = $$0.getChild("body"); 32 this.head = $$1.getChild("head"); 26 this.head = $$1.getChild("head"); .. 27 } .. 28 .. 29 public static LayerDefinition createBodyLayer() { 33 this.saddleParts = new ModelPart[]{$$1.getChild("saddle"), this.h 30 return LayerDefinition.create(createBodyMesh(), 128, 128); .. ead.getChild("bridle")}; .. 34 this.ridingParts = new ModelPart[]{this.head.getChild("reins")}; 31 } 35 } .. 36 32 37 public static LayerDefinition createBodyLayer() { 33 protected static MeshDefinition createBodyMesh() { 38 MeshDefinition $$0 = new MeshDefinition(); 34 MeshDefinition $$0 = new MeshDefinition(); 39 PartDefinition $$1 = $$0.getRoot(); 35 PartDefinition $$1 = $$0.getRoot(); 40 CubeDeformation $$2 = new CubeDeformation(0.05F); .. 41 PartDefinition $$3 = $$1.addOrReplaceChild( 36 PartDefinition $$2 = $$1.addOrReplaceChild( 42 "body", CubeListBuilder.create().texOffs(0, 25).addBox(-7.5F, 37 "body", CubeListBuilder.create().texOffs(0, 25).addBox(-7.5F, .. -12.0F, -23.5F, 15.0F, 12.0F, 27.0F), PartPose.offset(0.0F, 4.0F, 9.5F) .. -12.0F, -23.5F, 15.0F, 12.0F, 27.0F), PartPose.offset(0.0F, 4.0F, 9.5F) 43 ); 38 ); 44 $$3.addOrReplaceChild( 39 $$2.addOrReplaceChild( 45 "hump", CubeListBuilder.create().texOffs(74, 0).addBox(-4.5F, 40 "hump", CubeListBuilder.create().texOffs(74, 0).addBox(-4.5F, .. -5.0F, -5.5F, 9.0F, 5.0F, 11.0F), PartPose.offset(0.0F, -12.0F, -10.0F) .. -5.0F, -5.5F, 9.0F, 5.0F, 11.0F), PartPose.offset(0.0F, -12.0F, -10.0F) 46 ); 41 ); 47 $$3.addOrReplaceChild("tail", CubeListBuilder.create().texOffs(12 42 $$2.addOrReplaceChild("tail", CubeListBuilder.create().texOffs(12 .. 2, 0).addBox(-1.5F, 0.0F, 0.0F, 3.0F, 14.0F, 0.0F), PartPose.offset(0.0 .. 2, 0).addBox(-1.5F, 0.0F, 0.0F, 3.0F, 14.0F, 0.0F), PartPose.offset(0.0 .. F, -9.0F, 3.5F)); .. F, -9.0F, 3.5F)); 48 PartDefinition $$4 = $$3.addOrReplaceChild( 43 PartDefinition $$3 = $$2.addOrReplaceChild( 49 "head", 44 "head", 50 CubeListBuilder.create() 45 CubeListBuilder.create() 51 .texOffs(60, 24) 46 .texOffs(60, 24) net/minecraft/client/model/CamelModel.java --- 3/5 --- Java 56 .addBox(-2.5F, -21.0F, -21.0F, 5.0F, 5.0F, 6.0F), 51 .addBox(-2.5F, -21.0F, -21.0F, 5.0F, 5.0F, 6.0F), 57 PartPose.offset(0.0F, -3.0F, -19.5F) 52 PartPose.offset(0.0F, -3.0F, -19.5F) 58 ); 53 ); 59 $$4.addOrReplaceChild( 54 $$3.addOrReplaceChild( 60 "left_ear", CubeListBuilder.create().texOffs(45, 0).addBox(-0. 55 "left_ear", CubeListBuilder.create().texOffs(45, 0).addBox(-0. .. 5F, 0.5F, -1.0F, 3.0F, 1.0F, 2.0F), PartPose.offset(2.5F, -21.0F, -9.5F .. 5F, 0.5F, -1.0F, 3.0F, 1.0F, 2.0F), PartPose.offset(2.5F, -21.0F, -9.5F .. ) .. ) 61 ); 56 ); 62 $$4.addOrReplaceChild( 57 $$3.addOrReplaceChild( 63 "right_ear", CubeListBuilder.create().texOffs(67, 0).addBox(-2 58 "right_ear", CubeListBuilder.create().texOffs(67, 0).addBox(-2 .. .5F, 0.5F, -1.0F, 3.0F, 1.0F, 2.0F), PartPose.offset(-2.5F, -21.0F, -9. .. .5F, 0.5F, -1.0F, 3.0F, 1.0F, 2.0F), PartPose.offset(-2.5F, -21.0F, -9. .. 5F) .. 5F) 64 ); 59 ); 65 $$1.addOrReplaceChild( 60 $$1.addOrReplaceChild( net/minecraft/client/model/CamelModel.java --- 4/5 --- Java 74 $$1.addOrReplaceChild( 69 $$1.addOrReplaceChild( 75 "right_front_leg", CubeListBuilder.create().texOffs(0, 26).ad 70 "right_front_leg", CubeListBuilder.create().texOffs(0, 26).ad .. dBox(-2.5F, 2.0F, -2.5F, 5.0F, 21.0F, 5.0F), PartPose.offset(-4.9F, 1. .. dBox(-2.5F, 2.0F, -2.5F, 5.0F, 21.0F, 5.0F), PartPose.offset(-4.9F, 1. .. 0F, -10.5F) .. 0F, -10.5F) 76 ); 71 ); 77 $$3.addOrReplaceChild( .. 78 "saddle", .. 79 CubeListBuilder.create() .. 80 .texOffs(74, 64) .. 81 .addBox(-4.5F, -17.0F, -15.5F, 9.0F, 5.0F, 11.0F, $$2) .. 82 .texOffs(92, 114) .. 83 .addBox(-3.5F, -20.0F, -15.5F, 7.0F, 3.0F, 11.0F, $$2) .. 84 .texOffs(0, 89) .. 85 .addBox(-7.5F, -12.0F, -23.5F, 15.0F, 12.0F, 27.0F, $$2), .. 86 PartPose.offset(0.0F, 0.0F, 0.0F) .. 87 ); .. 88 $$4.addOrReplaceChild( .. 89 "reins", .. 90 CubeListBuilder.create() .. 91 .texOffs(98, 42) .. 92 .addBox(3.51F, -18.0F, -17.0F, 0.0F, 7.0F, 15.0F) .. 93 .texOffs(84, 57) .. 94 .addBox(-3.5F, -18.0F, -2.0F, 7.0F, 7.0F, 0.0F) .. 95 .texOffs(98, 42) .. 96 .addBox(-3.51F, -18.0F, -17.0F, 0.0F, 7.0F, 15.0F), .. 97 PartPose.offset(0.0F, 0.0F, 0.0F) .. 98 ); .. 99 $$4.addOrReplaceChild( .. 100 "bridle", .. 101 CubeListBuilder.create() .. 102 .texOffs(60, 87) .. 103 .addBox(-3.5F, -7.0F, -15.0F, 7.0F, 8.0F, 19.0F, $$2) .. 104 .texOffs(21, 64) .. 105 .addBox(-3.5F, -21.0F, -15.0F, 7.0F, 14.0F, 7.0F, $$2) .. 106 .texOffs(50, 64) .. 107 .addBox(-2.5F, -21.0F, -21.0F, 5.0F, 5.0F, 6.0F, $$2) .. 108 .texOffs(74, 70) .. 109 .addBox(2.5F, -19.0F, -18.0F, 1.0F, 2.0F, 2.0F) .. 110 .texOffs(74, 70) .. 111 .mirror() .. 112 .addBox(-3.5F, -19.0F, -18.0F, 1.0F, 2.0F, 2.0F), .. 113 PartPose.offset(0.0F, 0.0F, 0.0F) .. 114 ); .. 115 return LayerDefinition.create($$0, 128, 128); 72 return $$0; 116 } 73 } 117 74 118 public void setupAnim(CamelRenderState $$0) { 75 public void setupAnim(CamelRenderState $$0) { 119 super.setupAnim($$0); 76 super.setupAnim($$0); 120 this.applyHeadRotation($$0, $$0.yRot, $$0.xRot); 77 this.applyHeadRotation($$0, $$0.yRot, $$0.xRot); 121 this.toggleInvisibleParts($$0); .. 122 this.animateWalk(CamelAnimation.CAMEL_WALK, $$0.walkAnimationPos 78 this.animateWalk(CamelAnimation.CAMEL_WALK, $$0.walkAnimationPos ... , $$0.walkAnimationSpeed, 2.0F, 2.5F); .. , $$0.walkAnimationSpeed, 2.0F, 2.5F); 123 this.animate($$0.sitAnimationState, CamelAnimation.CAMEL_SIT, $$ 79 this.animate($$0.sitAnimationState, CamelAnimation.CAMEL_SIT, $$ ... 0.ageInTicks, 1.0F); .. 0.ageInTicks, 1.0F); 124 this.animate($$0.sitPoseAnimationState, CamelAnimation.CAMEL_SIT 80 this.animate($$0.sitPoseAnimationState, CamelAnimation.CAMEL_SIT _POSE, $$0.ageInTicks, 1.0F); _POSE, $$0.ageInTicks, 1.0F); net/minecraft/client/model/CamelModel.java --- 5/5 --- Java 139 this.head.xRot = $$2 * (float) (Math.PI / 180.0); 95 this.head.xRot = $$2 * (float) (Math.PI / 180.0); 140 } 96 } 141 .. 142 private void toggleInvisibleParts(CamelRenderState $$0) { .. 143 boolean $$1 = $$0.isSaddled; .. 144 boolean $$2 = $$0.isRidden; .. 145 .. 146 for (ModelPart $$3 : this.saddleParts) { .. 147 $$3.visible = $$1; .. 148 } .. 149 .. 150 for (ModelPart $$4 : this.ridingParts) { .. 151 $$4.visible = $$2 && $$1; .. 152 } .. 153 } .. 154 } 97 } net/minecraft/advancements/critereon/EntityPredicate.java --- 1/8 --- Java 8 import java.util.stream.Stream; 8 import java.util.stream.Stream; 9 import javax.annotation.Nullable; 9 import javax.annotation.Nullable; 10 import net.minecraft.core.HolderGetter; 10 import net.minecraft.core.HolderGetter; .. 11 import net.minecraft.core.component.DataComponentGetter; .. 12 import net.minecraft.core.component.DataComponentPredicate; 11 import net.minecraft.server.level.ServerLevel; 13 import net.minecraft.server.level.ServerLevel; 12 import net.minecraft.server.level.ServerPlayer; 14 import net.minecraft.server.level.ServerPlayer; 13 import net.minecraft.tags.TagKey; 15 import net.minecraft.tags.TagKey; net/minecraft/advancements/critereon/EntityPredicate.java --- 2/8 --- Java 39 Optional<EntityPredicate> passenger, 41 Optional<EntityPredicate> passenger, 40 Optional<EntityPredicate> targetedEntity, 42 Optional<EntityPredicate> targetedEntity, 41 Optional<String> team, 43 Optional<String> team, 42 Optional<SlotsPredicate> slots 44 Optional<SlotsPredicate> slots, .. 45 Optional<DataComponentPredicate> components 43 ) { 46 ) { 44 public static final Codec<EntityPredicate> CODEC = Codec.recursive( 47 public static final Codec<EntityPredicate> CODEC = Codec.recursive( 45 "EntityPredicate", 48 "EntityPredicate", net/minecraft/advancements/critereon/EntityPredicate.java --- 3/8 --- Java 59 $$0.optionalFieldOf("passenger").forGetter(EntityP 62 $$0.optionalFieldOf("passenger").forGetter(EntityP .. redicate::passenger), .. redicate::passenger), 60 $$0.optionalFieldOf("targeted_entity").forGetter(E 63 $$0.optionalFieldOf("targeted_entity").forGetter(E .. ntityPredicate::targetedEntity), .. ntityPredicate::targetedEntity), 61 Codec.STRING.optionalFieldOf("team").forGetter(Ent 64 Codec.STRING.optionalFieldOf("team").forGetter(Ent .. ityPredicate::team), .. ityPredicate::team), 62 SlotsPredicate.CODEC.optionalFieldOf("slots").forG 65 SlotsPredicate.CODEC.optionalFieldOf("slots").forG .. etter(EntityPredicate::slots) .. etter(EntityPredicate::slots), .. 66 DataComponentPredicate.CODEC.optionalFieldOf("comp .. .. onents").forGetter(EntityPredicate::components) 63 ) 67 ) 64 .apply($$1, EntityPredicate::new) 68 .apply($$1, EntityPredicate::new) 65 ) 69 ) net/minecraft/advancements/critereon/EntityPredicate.java --- 4/8 --- Java 104 if (this.movement.isPresent()) { 108 if (this.movement.isPresent()) { 105 Vec3 $$3 = $$2.getKnownMovement(); 109 Vec3 $$3 = $$2.getKnownMovement(); 106 Vec3 $$4 = $$3.scale(20.0); 110 Vec3 $$4 = $$3.scale(20.0); 107 if (!this.movement.get().matches($$4.x, $$4.y, $$4.z, (dou 111 if (!this.movement.get().matches($$4.x, $$4.y, $$4.z, $$2. ... ble)$$2.fallDistance)) { ... fallDistance)) { 108 return false; 112 return false; 109 } 113 } 110 } 114 } net/minecraft/advancements/critereon/EntityPredicate.java --- 5/8 --- Java 150 } 154 } 151 } 155 } 152 156 153 return this.slots.isPresent() && !this.slots.get().matc 157 if (this.slots.isPresent() && !this.slots.get().matches ... hes($$2) ? false : !this.nbt.isPresent() || this.nbt.get().matches($$2 ... ($$2)) { ... ); ... ... 158 return false; ... 159 } else { ... 160 return this.components.isPresent() && !this.componen ... ... ts.get().test((DataComponentGetter)$$2) ... 161 ? false ... 162 : this.nbt.isEmpty() || this.nbt.get().matches($$ ... ... 2); ... 163 } 154 } 164 } 155 } 165 } 156 } 166 } net/minecraft/advancements/critereon/EntityPredicate.java --- 6/8 --- Java 182 private Optional<EntityPredicate> targetedEntity = Optional.empt 192 private Optional<EntityPredicate> targetedEntity = Optional.empt ... y(); ... y(); 183 private Optional<String> team = Optional.empty(); 193 private Optional<String> team = Optional.empty(); 184 private Optional<SlotsPredicate> slots = Optional.empty(); 194 private Optional<SlotsPredicate> slots = Optional.empty(); ... 195 private Optional<DataComponentPredicate> components = Optional.e ... ... mpty(); 185 196 186 public static EntityPredicate.Builder entity() { 197 public static EntityPredicate.Builder entity() { 187 return new EntityPredicate.Builder(); 198 return new EntityPredicate.Builder(); net/minecraft/advancements/critereon/EntityPredicate.java --- 7/8 --- Java 287 return this; 298 return this; 288 } 299 } ... 300 ... 301 public EntityPredicate.Builder components(DataComponentPredicate ... ... $$0) { ... 302 this.components = Optional.of($$0); ... 303 return this; ... 304 } 289 305 290 public EntityPredicate build() { 306 public EntityPredicate build() { 291 return new EntityPredicate( 307 return new EntityPredicate( net/minecraft/advancements/critereon/EntityPredicate.java --- 8/8 --- Java 303 this.passenger, 319 this.passenger, 304 this.targetedEntity, 320 this.targetedEntity, 305 this.team, 321 this.team, 306 this.slots 322 this.slots, ... 323 this.components 307 ); 324 ); 308 } 325 } 309 } 326 } net/minecraft/world/entity/monster/Strider.java --- 1/10 --- Java 5 import javax.annotation.Nullable; 5 import javax.annotation.Nullable; 6 import net.minecraft.core.BlockPos; 6 import net.minecraft.core.BlockPos; 7 import net.minecraft.core.Direction; 7 import net.minecraft.core.Direction; 8 import net.minecraft.nbt.CompoundTag; 8 import net.minecraft.core.Holder; 9 import net.minecraft.network.syncher.EntityDataAccessor; 9 import net.minecraft.network.syncher.EntityDataAccessor; 10 import net.minecraft.network.syncher.EntityDataSerializers; 10 import net.minecraft.network.syncher.EntityDataSerializers; 11 import net.minecraft.network.syncher.SynchedEntityData; 11 import net.minecraft.network.syncher.SynchedEntityData; 12 import net.minecraft.resources.ResourceLocation; 12 import net.minecraft.resources.ResourceLocation; 13 import net.minecraft.server.level.ServerLevel; 13 import net.minecraft.server.level.ServerLevel; 14 import net.minecraft.sounds.SoundEvent; 14 import net.minecraft.sounds.SoundEvent; 15 import net.minecraft.sounds.SoundEvents; 15 import net.minecraft.sounds.SoundEvents; 16 import net.minecraft.sounds.SoundSource; .. 17 import net.minecraft.tags.BlockTags; 16 import net.minecraft.tags.BlockTags; 18 import net.minecraft.tags.FluidTags; 17 import net.minecraft.tags.FluidTags; 19 import net.minecraft.tags.ItemTags; 18 import net.minecraft.tags.ItemTags; net/minecraft/world/entity/monster/Strider.java --- 2/10 --- Java 34 import net.minecraft.world.entity.LivingEntity; 33 import net.minecraft.world.entity.LivingEntity; 35 import net.minecraft.world.entity.Mob; 34 import net.minecraft.world.entity.Mob; 36 import net.minecraft.world.entity.Pose; 35 import net.minecraft.world.entity.Pose; 37 import net.minecraft.world.entity.Saddleable; .. 38 import net.minecraft.world.entity.SpawnGroupData; 36 import net.minecraft.world.entity.SpawnGroupData; 39 import net.minecraft.world.entity.ai.attributes.AttributeInstance; 37 import net.minecraft.world.entity.ai.attributes.AttributeInstance; 40 import net.minecraft.world.entity.ai.attributes.AttributeModifier; 38 import net.minecraft.world.entity.ai.attributes.AttributeModifier; net/minecraft/world/entity/monster/Strider.java --- 3/10 --- Java 55 import net.minecraft.world.entity.vehicle.DismountHelper; 53 import net.minecraft.world.entity.vehicle.DismountHelper; 56 import net.minecraft.world.item.ItemStack; 54 import net.minecraft.world.item.ItemStack; 57 import net.minecraft.world.item.Items; 55 import net.minecraft.world.item.Items; .. 56 import net.minecraft.world.item.equipment.Equippable; 58 import net.minecraft.world.level.Level; 57 import net.minecraft.world.level.Level; 59 import net.minecraft.world.level.LevelAccessor; 58 import net.minecraft.world.level.LevelAccessor; 60 import net.minecraft.world.level.LevelReader; 59 import net.minecraft.world.level.LevelReader; net/minecraft/world/entity/monster/Strider.java --- 4/10 --- Java 71 import net.minecraft.world.phys.Vec3; 70 import net.minecraft.world.phys.Vec3; 72 import net.minecraft.world.phys.shapes.CollisionContext; 71 import net.minecraft.world.phys.shapes.CollisionContext; 73 72 74 public class Strider extends Animal implements ItemSteerable, Saddleabl 73 public class Strider extends Animal implements ItemSteerable { .. e { .. 75 private static final ResourceLocation SUFFOCATING_MODIFIER_ID = Reso 74 private static final ResourceLocation SUFFOCATING_MODIFIER_ID = Reso .. urceLocation.withDefaultNamespace("suffocating"); .. urceLocation.withDefaultNamespace("suffocating"); 76 private static final AttributeModifier SUFFOCATING_MODIFIER = new At 75 private static final AttributeModifier SUFFOCATING_MODIFIER = new At .. tributeModifier( .. tributeModifier( 77 SUFFOCATING_MODIFIER_ID, -0.34F, AttributeModifier.Operation.ADD_ 76 SUFFOCATING_MODIFIER_ID, -0.34F, AttributeModifier.Operation.ADD_ MULTIPLIED_BASE MULTIPLIED_BASE net/minecraft/world/entity/monster/Strider.java --- 5/10 --- Java 80 private static final float STEERING_MODIFIER = 0.55F; 79 private static final float STEERING_MODIFIER = 0.55F; 81 private static final EntityDataAccessor<Integer> DATA_BOOST_TIME = S 80 private static final EntityDataAccessor<Integer> DATA_BOOST_TIME = S .. ynchedEntityData.defineId(Strider.class, EntityDataSerializers.INT); .. ynchedEntityData.defineId(Strider.class, EntityDataSerializers.INT); 82 private static final EntityDataAccessor<Boolean> DATA_SUFFOCATING = 81 private static final EntityDataAccessor<Boolean> DATA_SUFFOCATING = .. SynchedEntityData.defineId(Strider.class, EntityDataSerializers.BOOLEAN .. SynchedEntityData.defineId(Strider.class, EntityDataSerializers.BOOLEAN .. ); .. ); 83 private static final EntityDataAccessor<Boolean> DATA_SADDLE_ID = Sy .. .. nchedEntityData.defineId(Strider.class, EntityDataSerializers.BOOLEAN); .. 84 private final ItemBasedSteering steering = new ItemBasedSteering(thi 82 private final ItemBasedSteering steering = new ItemBasedSteering(thi .. s.entityData, DATA_BOOST_TIME, DATA_SADDLE_ID); .. s.entityData, DATA_BOOST_TIME); 85 @Nullable 83 @Nullable 86 private TemptGoal temptGoal; 84 private TemptGoal temptGoal; 87 85 net/minecraft/world/entity/monster/Strider.java --- 6/10 --- Java 118 super.defineSynchedData($$0); 116 super.defineSynchedData($$0); 119 $$0.define(DATA_BOOST_TIME, 0); 117 $$0.define(DATA_BOOST_TIME, 0); 120 $$0.define(DATA_SUFFOCATING, false); 118 $$0.define(DATA_SUFFOCATING, false); 121 $$0.define(DATA_SADDLE_ID, false); ... 122 } 119 } 123 120 124 @Override 121 @Override 125 public void addAdditionalSaveData(CompoundTag $$0) { 122 public boolean canUseSlot(EquipmentSlot $$0) { 126 super.addAdditionalSaveData($$0); ... 127 this.steering.addAdditionalSaveData($$0); ... 128 } ... 129 ... 130 @Override ... 131 public void readAdditionalSaveData(CompoundTag $$0) { 123 return $$0 != EquipmentSlot.SADDLE ? super.canUseSlot($$0) : thi ... ... s.isAlive() && !this.isBaby(); 132 super.readAdditionalSaveData($$0); 124 } 133 this.steering.readAdditionalSaveData($$0); ... 134 } ... 135 ... 136 @Override ... 137 public boolean isSaddled() { ... 138 return this.steering.hasSaddle(); ... 139 } ... 140 125 141 @Override 126 @Override 142 public boolean isSaddleable() { 127 protected boolean canDispenserEquipIntoSlot(EquipmentSlot $$0) { 143 return this.isAlive() && !this.isBaby(); 128 return $$0 == EquipmentSlot.SADDLE || super.canDispenserEquipInt ... ... oSlot($$0); 144 } 129 } 145 130 146 @Override 131 @Override 147 public void equipSaddle(ItemStack $$0, @Nullable SoundSource $$1) { 132 protected Holder<SoundEvent> getEquipSound(EquipmentSlot $$0, ItemS ... ... tack $$1, Equippable $$2) { 148 this.steering.setSaddle(true); ... 149 if ($$1 != null) { 133 return (Holder<SoundEvent>)($$0 == EquipmentSlot.SADDLE ? SoundE ... ... vents.STRIDER_SADDLE : super.getEquipSound($$0, $$1, $$2)); 150 this.level().playSound(null, this, SoundEvents.STRIDER_SADDLE ... ... , $$1, 0.5F, 1.0F); ... 151 } ... 152 } 134 } 153 135 154 @Override 136 @Override net/minecraft/world/entity/monster/Strider.java --- 7/10 --- Java 405 return $$0.is(ItemTags.STRIDER_FOOD); 387 return $$0.is(ItemTags.STRIDER_FOOD); 406 } 388 } 407 ... 408 @Override ... 409 protected void dropEquipment(ServerLevel $$0) { ... 410 super.dropEquipment($$0); ... 411 if (this.isSaddled()) { ... 412 this.spawnAtLocation($$0, Items.SADDLE); ... 413 } ... 414 } ... 415 389 416 @Override 390 @Override 417 public InteractionResult mobInteract(Player $$0, InteractionHand $$ 391 public InteractionResult mobInteract(Player $$0, InteractionHand $$ 1) { 1) { net/minecraft/world/entity/monster/Strider.java --- 8/10 --- Java 426 InteractionResult $$3 = super.mobInteract($$0, $$1); 400 InteractionResult $$3 = super.mobInteract($$0, $$1); 427 if (!$$3.consumesAction()) { 401 if (!$$3.consumesAction()) { 428 ItemStack $$4 = $$0.getItemInHand($$1); 402 ItemStack $$4 = $$0.getItemInHand($$1); 429 return (InteractionResult)($$4.is(Items.SADDLE) ? $$4.inte 403 return (InteractionResult)(this.isEquippableInSlot($$4, Eq ... ractLivingEntity($$0, this, $$1) : InteractionResult.PASS); ... uipmentSlot.SADDLE) ? $$4.interactLivingEntity($$0, this, $$1) : Inter ... ... actionResult.PASS); 430 } else { 404 } else { 431 if ($$2 && !this.isSilent()) { 405 if ($$2 && !this.isSilent()) { 432 this.level() 406 this.level() net/minecraft/world/entity/monster/Strider.java --- 9/10 --- Java 464 if ($$5 != null) { 438 if ($$5 != null) { 465 $$3 = this.spawnJockey($$0, $$1, $$5, new Zombie.Zombie 439 $$3 = this.spawnJockey($$0, $$1, $$5, new Zombie.Zombie ... GroupData(Zombie.getSpawnAsBabyOdds($$4), false)); ... GroupData(Zombie.getSpawnAsBabyOdds($$4), false)); 466 $$5.setItemSlot(EquipmentSlot.MAINHAND, new ItemStack(I 440 $$5.setItemSlot(EquipmentSlot.MAINHAND, new ItemStack(I ... tems.WARPED_FUNGUS_ON_A_STICK)); ... tems.WARPED_FUNGUS_ON_A_STICK)); 467 this.equipSaddle(new ItemStack(Items.SADDLE), null); 441 this.setItemSlot(EquipmentSlot.SADDLE, new ItemStack(It ... ... ems.SADDLE)); ... 442 this.setGuaranteedDrop(EquipmentSlot.SADDLE); 468 } 443 } 469 } else if ($$4.nextInt(10) == 0) { 444 } else if ($$4.nextInt(10) == 0) { 470 AgeableMob $$6 = EntityType.STRIDER.create($$0.getLevel(), 445 AgeableMob $$6 = EntityType.STRIDER.create($$0.getLevel(), EntitySpawnReason.JOCKEY); EntitySpawnReason.JOCKEY); net/minecraft/world/entity/monster/Strider.java --- 10/10 --- Java 481 } 456 } 482 457 483 private SpawnGroupData spawnJockey(ServerLevelAccessor $$0, Difficu 458 private SpawnGroupData spawnJockey(ServerLevelAccessor $$0, Difficu ... ltyInstance $$1, Mob $$2, @Nullable SpawnGroupData $$3) { ... ltyInstance $$1, Mob $$2, @Nullable SpawnGroupData $$3) { 484 $$2.moveTo(this.getX(), this.getY(), this.getZ(), this.getYRot() 459 $$2.snapTo(this.getX(), this.getY(), this.getZ(), this.getYRot() ... , 0.0F); ... , 0.0F); 485 $$2.finalizeSpawn($$0, $$1, EntitySpawnReason.JOCKEY, $$3); 460 $$2.finalizeSpawn($$0, $$1, EntitySpawnReason.JOCKEY, $$3); 486 $$2.startRiding(this, true); 461 $$2.startRiding(this, true); 487 return new AgeableMob.AgeableMobGroupData(0.0F); 462 return new AgeableMob.AgeableMobGroupData(0.0F); net/minecraft/world/entity/npc/VillagerTrades.java --- 1/11 --- Java 75 private static final int XP_LEVEL_5_TRADE = 30; 75 private static final int XP_LEVEL_5_TRADE = 30; 76 private static final float LOW_TIER_PRICE_MULTIPLIER = 0.05F; 76 private static final float LOW_TIER_PRICE_MULTIPLIER = 0.05F; 77 private static final float HIGH_TIER_PRICE_MULTIPLIER = 0.2F; 77 private static final float HIGH_TIER_PRICE_MULTIPLIER = 0.2F; 78 public static final Map<VillagerProfession, Int2ObjectMap<VillagerTr 78 public static final Map<ResourceKey<VillagerProfession>, Int2ObjectM .. ades.ItemListing[]>> TRADES = Util.make( .. ap<VillagerTrades.ItemListing[]>> TRADES = Util.make( 79 Maps.newHashMap(), 79 Maps.newHashMap(), 80 $$0 -> { 80 $$0 -> { 81 $$0.put( 81 $$0.put( net/minecraft/world/entity/npc/VillagerTrades.java --- 2/11 --- Java 149 1, 149 1, 150 12, 150 12, 151 30, 151 30, 152 ImmutableMap.<VillagerType, Item>builder() 152 ImmutableMap.<ResourceKey<VillagerType>, Item> ... ... builder() 153 .put(VillagerType.PLAINS, Items.OAK_BOAT) 153 .put(VillagerType.PLAINS, Items.OAK_BOAT) 154 .put(VillagerType.TAIGA, Items.SPRUCE_BOAT) 154 .put(VillagerType.TAIGA, Items.SPRUCE_BOAT) 155 .put(VillagerType.SNOW, Items.SPRUCE_BOAT) 155 .put(VillagerType.SNOW, Items.SPRUCE_BOAT) net/minecraft/world/entity/npc/VillagerTrades.java --- 3/11 --- Java 758 private static final VillagerTrades.TreasureMapForEmeralds SWAMP_MA 758 private static final VillagerTrades.TreasureMapForEmeralds SWAMP_MA ... P = new VillagerTrades.TreasureMapForEmeralds( ... P = new VillagerTrades.TreasureMapForEmeralds( 759 8, StructureTags.ON_SWAMP_EXPLORER_MAPS, "filled_map.explorer_sw 759 8, StructureTags.ON_SWAMP_EXPLORER_MAPS, "filled_map.explorer_sw ... amp", MapDecorationTypes.SWAMP_HUT, 12, 5 ... amp", MapDecorationTypes.SWAMP_HUT, 12, 5 760 ); 760 ); 761 public static final Map<VillagerProfession, Int2ObjectMap<VillagerT 761 public static final Map<ResourceKey<VillagerProfession>, Int2Object ... rades.ItemListing[]>> EXPERIMENTAL_TRADES = Map.of( ... Map<VillagerTrades.ItemListing[]>> EXPERIMENTAL_TRADES = Map.of( 762 VillagerProfession.LIBRARIAN, 762 VillagerProfession.LIBRARIAN, 763 toIntMap( 763 toIntMap( 764 ImmutableMap.<Integer, VillagerTrades.ItemListing[]>builder() 764 ImmutableMap.<Integer, VillagerTrades.ItemListing[]>builder() net/minecraft/world/entity/npc/VillagerTrades.java --- 4/11 --- Java 1112 new VillagerTrades.ItemListing[]{ 1112 new VillagerTrades.ItemListing[]{ 1113 new VillagerTrades.EmeraldForItems(Items.GLASS_PANE, 1 1113 new VillagerTrades.EmeraldForItems(Items.GLASS_PANE, 1 .... 1, 16, 10), .... 1, 16, 10), 1114 new VillagerTrades.TypeSpecificTrade( 1114 new VillagerTrades.TypeSpecificTrade( 1115 ImmutableMap.<VillagerType, VillagerTrades.ItemList 1115 ImmutableMap.<ResourceKey<VillagerType>, VillagerTr .... ing>builder() .... ades.ItemListing>builder() 1116 .put(VillagerType.DESERT, SAVANNA_MAP) 1116 .put(VillagerType.DESERT, SAVANNA_MAP) 1117 .put(VillagerType.SAVANNA, PLAINS_MAP) 1117 .put(VillagerType.SAVANNA, PLAINS_MAP) 1118 .put(VillagerType.PLAINS, TAIGA_MAP) 1118 .put(VillagerType.PLAINS, TAIGA_MAP) net/minecraft/world/entity/npc/VillagerTrades.java --- 5/11 --- Java 1123 .build() 1123 .build() 1124 ), 1124 ), 1125 new VillagerTrades.TypeSpecificTrade( 1125 new VillagerTrades.TypeSpecificTrade( 1126 ImmutableMap.<VillagerType, VillagerTrades.ItemList 1126 ImmutableMap.<ResourceKey<VillagerType>, VillagerTr .... ing>builder() .... ades.ItemListing>builder() 1127 .put(VillagerType.DESERT, PLAINS_MAP) 1127 .put(VillagerType.DESERT, PLAINS_MAP) 1128 .put(VillagerType.SAVANNA, DESERT_MAP) 1128 .put(VillagerType.SAVANNA, DESERT_MAP) 1129 .put(VillagerType.PLAINS, SAVANNA_MAP) 1129 .put(VillagerType.PLAINS, SAVANNA_MAP) net/minecraft/world/entity/npc/VillagerTrades.java --- 6/11 --- Java 1134 .build() 1134 .build() 1135 ), 1135 ), 1136 new VillagerTrades.TypeSpecificTrade( 1136 new VillagerTrades.TypeSpecificTrade( 1137 ImmutableMap.<VillagerType, VillagerTrades.ItemList 1137 ImmutableMap.<ResourceKey<VillagerType>, VillagerTr .... ing>builder() .... ades.ItemListing>builder() 1138 .put(VillagerType.DESERT, JUNGLE_MAP) 1138 .put(VillagerType.DESERT, JUNGLE_MAP) 1139 .put(VillagerType.SAVANNA, JUNGLE_MAP) 1139 .put(VillagerType.SAVANNA, JUNGLE_MAP) 1140 .put(VillagerType.PLAINS, new VillagerTrades.Fai 1140 .put(VillagerType.PLAINS, new VillagerTrades.Fai lureItemListing()) lureItemListing()) net/minecraft/world/entity/npc/VillagerTrades.java --- 7/11 --- Java 1300 1300 1301 private static VillagerTrades.ItemListing commonBooks(int $$0) { 1301 private static VillagerTrades.ItemListing commonBooks(int $$0) { 1302 return new VillagerTrades.TypeSpecificTrade( 1302 return new VillagerTrades.TypeSpecificTrade( 1303 ImmutableMap.<VillagerType, VillagerTrades.ItemListing>build 1303 ImmutableMap.<ResourceKey<VillagerType>, VillagerTrades.Item .... er() .... Listing>builder() 1304 .put(VillagerType.DESERT, new VillagerTrades.EnchantBookF 1304 .put(VillagerType.DESERT, new VillagerTrades.EnchantBookF .... orEmeralds($$0, EnchantmentTags.TRADES_DESERT_COMMON)) .... orEmeralds($$0, EnchantmentTags.TRADES_DESERT_COMMON)) 1305 .put(VillagerType.JUNGLE, new VillagerTrades.EnchantBookF 1305 .put(VillagerType.JUNGLE, new VillagerTrades.EnchantBookF .... orEmeralds($$0, EnchantmentTags.TRADES_JUNGLE_COMMON)) .... orEmeralds($$0, EnchantmentTags.TRADES_JUNGLE_COMMON)) 1306 .put(VillagerType.PLAINS, new VillagerTrades.EnchantBookF 1306 .put(VillagerType.PLAINS, new VillagerTrades.EnchantBookF orEmeralds($$0, EnchantmentTags.TRADES_PLAINS_COMMON)) orEmeralds($$0, EnchantmentTags.TRADES_PLAINS_COMMON)) net/minecraft/world/entity/npc/VillagerTrades.java --- 8/11 --- Java 1314 1314 1315 private static VillagerTrades.ItemListing specialBooks() { 1315 private static VillagerTrades.ItemListing specialBooks() { 1316 return new VillagerTrades.TypeSpecificTrade( 1316 return new VillagerTrades.TypeSpecificTrade( 1317 ImmutableMap.<VillagerType, VillagerTrades.ItemListing>build 1317 ImmutableMap.<ResourceKey<VillagerType>, VillagerTrades.Item .... er() .... Listing>builder() 1318 .put(VillagerType.DESERT, new VillagerTrades.EnchantBookF 1318 .put(VillagerType.DESERT, new VillagerTrades.EnchantBookF .... orEmeralds(30, 3, 3, EnchantmentTags.TRADES_DESERT_SPECIAL)) .... orEmeralds(30, 3, 3, EnchantmentTags.TRADES_DESERT_SPECIAL)) 1319 .put(VillagerType.JUNGLE, new VillagerTrades.EnchantBookF 1319 .put(VillagerType.JUNGLE, new VillagerTrades.EnchantBookF .... orEmeralds(30, 2, 2, EnchantmentTags.TRADES_JUNGLE_SPECIAL)) .... orEmeralds(30, 2, 2, EnchantmentTags.TRADES_JUNGLE_SPECIAL)) 1320 .put(VillagerType.PLAINS, new VillagerTrades.EnchantBookF 1320 .put(VillagerType.PLAINS, new VillagerTrades.EnchantBookF orEmeralds(30, 3, 3, EnchantmentTags.TRADES_PLAINS_SPECIAL)) orEmeralds(30, 3, 3, EnchantmentTags.TRADES_PLAINS_SPECIAL)) net/minecraft/world/entity/npc/VillagerTrades.java --- 9/11 --- Java 1411 } 1411 } 1412 1412 1413 static class EmeraldsForVillagerTypeItem implements VillagerTrades 1413 static class EmeraldsForVillagerTypeItem implements VillagerTrades .... .ItemListing { .... .ItemListing { 1414 private final Map<VillagerType, Item> trades; 1414 private final Map<ResourceKey<VillagerType>, Item> trades; 1415 private final int cost; 1415 private final int cost; 1416 private final int maxUses; 1416 private final int maxUses; 1417 private final int villagerXp; 1417 private final int villagerXp; 1418 1418 1419 public EmeraldsForVillagerTypeItem(int $$0, int $$1, int $$2, M 1419 public EmeraldsForVillagerTypeItem(int $$0, int $$1, int $$2, M .... ap<VillagerType, Item> $$3) { .... ap<ResourceKey<VillagerType>, Item> $$3) { 1420 BuiltInRegistries.VILLAGER_TYPE.stream().filter($$1x -> !$$3 1420 BuiltInRegistries.VILLAGER_TYPE.registryKeySet().stream().fi .... .containsKey($$1x)).findAny().ifPresent($$0x -> { .... lter($$1x -> !$$3.containsKey($$1x)).findAny().ifPresent($$0x -> { 1421 throw new IllegalStateException("Missing trade for villag 1421 throw new IllegalStateException("Missing trade for villag .... er type: " + BuiltInRegistries.VILLAGER_TYPE.getKey($$0x)); .... er type: " + $$0x); 1422 }); 1422 }); 1423 this.trades = $$3; 1423 this.trades = $$3; 1424 this.cost = $$0; 1424 this.cost = $$0; net/minecraft/world/entity/npc/VillagerTrades.java --- 10/11 --- Java 1430 @Override 1430 @Override 1431 public MerchantOffer getOffer(Entity $$0, RandomSource $$1) { 1431 public MerchantOffer getOffer(Entity $$0, RandomSource $$1) { 1432 if ($$0 instanceof VillagerDataHolder $$2) { 1432 if ($$0 instanceof VillagerDataHolder $$2) { .... 1433 ResourceKey<VillagerType> $$3 = $$2.getVillagerData().typ .... .... e().unwrapKey().orElse(null); .... 1434 if ($$3 == null) { .... 1435 return null; .... 1436 } else { 1433 ItemCost $$3 = new ItemCost(this.trades.get($$2.getVillag 1437 ItemCost $$4 = new ItemCost(this.trades.get($$3), this .... erData().getType()), this.cost); .... .cost); 1434 return new MerchantOffer($$3, new ItemStack(Items.EMERALD 1438 return new MerchantOffer($$4, new ItemStack(Items.EMER .... ), this.maxUses, this.villagerXp, 0.05F); .... ALD), this.maxUses, this.villagerXp, 0.05F); .... 1439 } 1435 } else { 1440 } else { 1436 return null; 1441 return null; 1437 } 1442 } net/minecraft/world/entity/npc/VillagerTrades.java --- 11/11 --- Java 1717 @Nullable 1722 @Nullable 1718 @Override 1723 @Override 1719 public MerchantOffer getOffer(Entity $$0, RandomSource $$1) { 1724 public MerchantOffer getOffer(Entity $$0, RandomSource $$1) { 1720 if (!($$0.level() instanceof ServerLevel)) { 1725 if ($$0.level() instanceof ServerLevel $$2) { 1721 return null; .... 1722 } else { .... 1723 ServerLevel $$2 = (ServerLevel)$$0.level(); .... 1724 BlockPos $$3 = $$2.findNearestMapStructure(this.destinati 1726 BlockPos $$4 = $$2.findNearestMapStructure(this.destinati .... on, $$0.blockPosition(), 100, true); .... on, $$0.blockPosition(), 100, true); 1725 if ($$3 != null) { 1727 if ($$4 != null) { 1726 ItemStack $$4 = MapItem.create($$2, $$3.getX(), $$3.ge 1728 ItemStack $$5 = MapItem.create($$2, $$4.getX(), $$4.ge .... tZ(), (byte)2, true, true); .... tZ(), (byte)2, true, true); 1727 MapItem.renderBiomePreviewMap($$2, $$4); 1729 MapItem.renderBiomePreviewMap($$2, $$5); 1728 MapItemSavedData.addTargetDecoration($$4, $$3, "+", th 1730 MapItemSavedData.addTargetDecoration($$5, $$4, "+", th .... is.destinationType); .... is.destinationType); 1729 $$4.set(DataComponents.ITEM_NAME, Component.translatab 1731 $$5.set(DataComponents.ITEM_NAME, Component.translatab .... le(this.displayName)); .... le(this.displayName)); 1730 return new MerchantOffer( 1732 return new MerchantOffer( 1731 new ItemCost(Items.EMERALD, this.emeraldCost), Opti 1733 new ItemCost(Items.EMERALD, this.emeraldCost), Opti .... onal.of(new ItemCost(Items.COMPASS)), $$4, this.maxUses, this.village .... onal.of(new ItemCost(Items.COMPASS)), $$5, this.maxUses, this.village .... rXp, 0.2F .... rXp, 0.2F 1732 ); 1734 ); 1733 } else { 1735 } else { 1734 return null; 1736 return null; 1735 } 1737 } 1736 } 1738 } else { .... 1739 return null; .... 1740 } 1737 } 1741 } 1738 } 1742 } 1739 1743 1740 static record TypeSpecificTrade(Map<VillagerType, VillagerTrades.I 1744 static record TypeSpecificTrade(Map<ResourceKey<VillagerType>, Vil .... temListing> trades) implements VillagerTrades.ItemListing { .... lagerTrades.ItemListing> trades) implements VillagerTrades.ItemListin .... .... g { .... 1745 @SafeVarargs 1741 public static VillagerTrades.TypeSpecificTrade oneTradeInBiomes 1746 public static VillagerTrades.TypeSpecificTrade oneTradeInBiomes .... (VillagerTrades.ItemListing $$0, VillagerType... $$1) { .... (VillagerTrades.ItemListing $$0, ResourceKey<VillagerType>... $$1) { 1742 return new VillagerTrades.TypeSpecificTrade(Arrays.stream($$ 1747 return new VillagerTrades.TypeSpecificTrade(Arrays.stream($$ .... 1).collect(Collectors.toMap($$0x -> $$0x, $$1x -> $$0))); .... 1).collect(Collectors.toMap($$0x -> $$0x, $$1x -> $$0))); 1743 } 1748 } 1744 1749 1745 @Nullable 1750 @Nullable 1746 @Override 1751 @Override 1747 public MerchantOffer getOffer(Entity $$0, RandomSource $$1) { 1752 public MerchantOffer getOffer(Entity $$0, RandomSource $$1) { 1748 if ($$0 instanceof VillagerDataHolder $$2) { 1753 if ($$0 instanceof VillagerDataHolder $$2) { 1749 VillagerType $$3 = $$2.getVillagerData().getType(); 1754 ResourceKey<VillagerType> $$3 = $$2.getVillagerData().typ .... .... e().unwrapKey().orElse(null); .... 1755 if ($$3 == null) { .... 1756 return null; .... 1757 } else { 1750 VillagerTrades.ItemListing $$4 = this.trades.get($$3); 1758 VillagerTrades.ItemListing $$4 = this.trades.get($$3); 1751 return $$4 == null ? null : $$4.getOffer($$0, $$1); 1759 return $$4 == null ? null : $$4.getOffer($$0, $$1); .... 1760 } 1752 } else { 1761 } else { 1753 return null; 1762 return null; 1754 } 1763 } net/minecraft/world/entity/animal/frog/Frog.java --- 1/5 --- Java 8 import javax.annotation.Nullable; 8 import javax.annotation.Nullable; 9 import net.minecraft.core.BlockPos; 9 import net.minecraft.core.BlockPos; 10 import net.minecraft.core.Holder; 10 import net.minecraft.core.Holder; .. 11 import net.minecraft.core.component.DataComponentGetter; .. 12 import net.minecraft.core.component.DataComponentType; .. 13 import net.minecraft.core.component.DataComponents; 11 import net.minecraft.core.registries.BuiltInRegistries; 14 import net.minecraft.core.registries.BuiltInRegistries; 12 import net.minecraft.core.registries.Registries; 15 import net.minecraft.core.registries.Registries; 13 import net.minecraft.nbt.CompoundTag; 16 import net.minecraft.nbt.CompoundTag; net/minecraft/world/entity/animal/frog/Frog.java --- 2/5 --- Java 42 import net.minecraft.world.entity.MoverType; 45 import net.minecraft.world.entity.MoverType; 43 import net.minecraft.world.entity.Pose; 46 import net.minecraft.world.entity.Pose; 44 import net.minecraft.world.entity.SpawnGroupData; 47 import net.minecraft.world.entity.SpawnGroupData; 45 import net.minecraft.world.entity.VariantHolder; .. 46 import net.minecraft.world.entity.ai.Brain; 48 import net.minecraft.world.entity.ai.Brain; 47 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 49 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 48 import net.minecraft.world.entity.ai.attributes.Attributes; 50 import net.minecraft.world.entity.ai.attributes.Attributes; net/minecraft/world/entity/animal/frog/Frog.java --- 3/5 --- Java 69 import net.minecraft.world.level.pathfinder.PathfindingContext; 71 import net.minecraft.world.level.pathfinder.PathfindingContext; 70 import net.minecraft.world.phys.Vec3; 72 import net.minecraft.world.phys.Vec3; 71 73 72 public class Frog extends Animal implements VariantHolder<Holder<FrogVa 74 public class Frog extends Animal { .. riant>> { .. 73 protected static final ImmutableList<SensorType<? extends Sensor<? s 75 protected static final ImmutableList<SensorType<? extends Sensor<? s .. uper Frog>>> SENSOR_TYPES = ImmutableList.of( .. uper Frog>>> SENSOR_TYPES = ImmutableList.of( 74 SensorType.NEAREST_LIVING_ENTITIES, SensorType.HURT_BY, SensorTyp 76 SensorType.NEAREST_LIVING_ENTITIES, SensorType.HURT_BY, SensorTyp .. e.FROG_ATTACKABLES, SensorType.FROG_TEMPTATIONS, SensorType.IS_IN_WATER .. e.FROG_ATTACKABLES, SensorType.FROG_TEMPTATIONS, SensorType.IS_IN_WATER 75 ); 77 ); net/minecraft/world/entity/animal/frog/Frog.java --- 4/5 --- Java 163 return this.entityData.get(DATA_VARIANT_ID); 165 return this.entityData.get(DATA_VARIANT_ID); 164 } 166 } 165 167 166 public void setVariant(Holder<FrogVariant> $$0) { 168 private void setVariant(Holder<FrogVariant> $$0) { 167 this.entityData.set(DATA_VARIANT_ID, $$0); 169 this.entityData.set(DATA_VARIANT_ID, $$0); 168 } 170 } ... 171 ... 172 @Nullable ... 173 @Override ... 174 public <T> T get(DataComponentType<? extends T> $$0) { ... 175 return $$0 == DataComponents.FROG_VARIANT ? castComponentValue(( ... ... DataComponentType<T>)$$0, this.getVariant()) : super.get($$0); ... 176 } ... 177 ... 178 @Override ... 179 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 180 this.applyImplicitComponentIfPresent($$0, DataComponents.FROG_VA ... ... RIANT); ... 181 super.applyImplicitComponents($$0); ... 182 } ... 183 ... 184 @Override ... 185 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 186 if ($$0 == DataComponents.FROG_VARIANT) { ... 187 this.setVariant(castComponentValue(DataComponents.FROG_VARIAN ... ... T, $$1)); ... 188 return true; ... 189 } else { ... 190 return super.applyImplicitComponent($$0, $$1); ... 191 } ... 192 } 169 193 170 @Override 194 @Override 171 public void addAdditionalSaveData(CompoundTag $$0) { 195 public void addAdditionalSaveData(CompoundTag $$0) { net/minecraft/world/entity/animal/frog/Frog.java --- 5/5 --- Java 330 } 354 } 331 355 332 @Override 356 @Override 333 protected int calculateFallDamage(float $$0, float $$1) { 357 protected int calculateFallDamage(double $$0, float $$1) { 334 return super.calculateFallDamage($$0, $$1) - 5; 358 return super.calculateFallDamage($$0, $$1) - 5; 335 } 359 } 336 360 net/minecraft/gametest/framework/GameTestServer.java --- 1/9 --- Java 1 package net.minecraft.gametest.framework; 1 package net.minecraft.gametest.framework; 2 2 3 import com.google.common.base.Stopwatch; 3 import com.google.common.base.Stopwatch; 4 import com.google.common.collect.Lists; . 5 import com.mojang.authlib.GameProfile; 4 import com.mojang.authlib.GameProfile; 6 import com.mojang.authlib.yggdrasil.ServicesKeySet; 5 import com.mojang.authlib.yggdrasil.ServicesKeySet; . 6 import com.mojang.brigadier.StringReader; 7 import com.mojang.logging.LogUtils; 7 import com.mojang.logging.LogUtils; 8 import com.mojang.serialization.Lifecycle; 8 import com.mojang.serialization.Lifecycle; 9 import java.net.Proxy; 9 import java.net.Proxy; 10 import java.util.ArrayList; 10 import java.util.ArrayList; 11 import java.util.Collection; 11 import java.util.Collection; 12 import java.util.List; 12 import java.util.List; .. 13 import java.util.Optional; 13 import java.util.concurrent.TimeUnit; 14 import java.util.concurrent.TimeUnit; 14 import java.util.function.BooleanSupplier; 15 import java.util.function.BooleanSupplier; .. 16 import java.util.stream.Stream; .. 17 import java.util.stream.Stream.Builder; 15 import javax.annotation.Nullable; 18 import javax.annotation.Nullable; 16 import net.minecraft.CrashReport; 19 import net.minecraft.CrashReport; 17 import net.minecraft.ReportType; 20 import net.minecraft.ReportType; 18 import net.minecraft.SystemReport; 21 import net.minecraft.SystemReport; 19 import net.minecraft.Util; 22 import net.minecraft.Util; 20 import net.minecraft.commands.Commands; 23 import net.minecraft.commands.Commands; .. 24 import net.minecraft.commands.arguments.ResourceSelectorArgument; 21 import net.minecraft.core.BlockPos; 25 import net.minecraft.core.BlockPos; .. 26 import net.minecraft.core.Holder; 22 import net.minecraft.core.LayeredRegistryAccess; 27 import net.minecraft.core.LayeredRegistryAccess; 23 import net.minecraft.core.MappedRegistry; 28 import net.minecraft.core.MappedRegistry; 24 import net.minecraft.core.Registry; 29 import net.minecraft.core.Registry; .. 30 import net.minecraft.core.RegistryAccess; 25 import net.minecraft.core.registries.Registries; 31 import net.minecraft.core.registries.Registries; 26 import net.minecraft.server.MinecraftServer; 32 import net.minecraft.server.MinecraftServer; 27 import net.minecraft.server.RegistryLayer; 33 import net.minecraft.server.RegistryLayer; net/minecraft/gametest/framework/GameTestServer.java --- 2/9 --- Java 43 import net.minecraft.world.level.GameType; 49 import net.minecraft.world.level.GameType; 44 import net.minecraft.world.level.LevelSettings; 50 import net.minecraft.world.level.LevelSettings; 45 import net.minecraft.world.level.WorldDataConfiguration; 51 import net.minecraft.world.level.WorldDataConfiguration; .. 52 import net.minecraft.world.level.block.Rotation; 46 import net.minecraft.world.level.dimension.LevelStem; 53 import net.minecraft.world.level.dimension.LevelStem; 47 import net.minecraft.world.level.levelgen.WorldDimensions; 54 import net.minecraft.world.level.levelgen.WorldDimensions; 48 import net.minecraft.world.level.levelgen.WorldOptions; 55 import net.minecraft.world.level.levelgen.WorldOptions; net/minecraft/gametest/framework/GameTestServer.java --- 3/9 --- Java 60 .allFlags() 67 .allFlags() 61 .subtract(FeatureFlagSet.of(FeatureFlags.REDSTONE_EXPERIMENTS, Fe 68 .subtract(FeatureFlagSet.of(FeatureFlags.REDSTONE_EXPERIMENTS, Fe .. atureFlags.MINECART_IMPROVEMENTS)); .. atureFlags.MINECART_IMPROVEMENTS)); 62 private final LocalSampleLogger sampleLogger = new LocalSampleLogger 69 private final LocalSampleLogger sampleLogger = new LocalSampleLogger .. (4); .. (4); .. 70 private final Optional<String> testSelection; .. 71 private final boolean verify; 63 private List<GameTestBatch> testBatches = new ArrayList<>(); 72 private List<GameTestBatch> testBatches = new ArrayList<>(); 64 private final List<TestFunction> testFunctions; .. 65 private final BlockPos spawnPos; .. 66 private final Stopwatch stopwatch = Stopwatch.createUnstarted(); 73 private final Stopwatch stopwatch = Stopwatch.createUnstarted(); 67 private static final GameRules TEST_GAME_RULES = Util.make(new GameR .. .. ules(ENABLED_FEATURES), $$0 -> { .. 68 $$0.getRule(GameRules.RULE_DOMOBSPAWNING).set(false, null); .. 69 $$0.getRule(GameRules.RULE_WEATHER_CYCLE).set(false, null); .. 70 $$0.getRule(GameRules.RULE_RANDOMTICKING).set(0, null); .. 71 $$0.getRule(GameRules.RULE_DOFIRETICK).set(false, null); .. 72 }); .. 73 private static final WorldOptions WORLD_OPTIONS = new WorldOptions(0 74 private static final WorldOptions WORLD_OPTIONS = new WorldOptions(0 .. L, false, false); .. L, false, false); 74 @Nullable 75 @Nullable 75 private MultipleTestTracker testTracker; 76 private MultipleTestTracker testTracker; 76 77 77 public static GameTestServer create(Thread $$0, LevelStorageSource.L 78 public static GameTestServer create(Thread $$0, LevelStorageSource.L .. evelStorageAccess $$1, PackRepository $$2, Collection<TestFunction> $$3 .. evelStorageAccess $$1, PackRepository $$2, Optional<String> $$3, boolea .. , BlockPos $$4) { .. n $$4) { 78 if ($$3.isEmpty()) { 79 $$2.reload(); 79 throw new IllegalArgumentException("No test functions were giv 80 ArrayList<String> $$5 = new ArrayList<>($$2.getAvailableIds()); .. en!"); .. 80 } else { .. 81 $$2.reload(); 81 $$5.remove("vanilla"); .. 82 $$5.addFirst("vanilla"); 82 WorldDataConfiguration $$5 = new WorldDataConfiguration(new Da 83 WorldDataConfiguration $$6 = new WorldDataConfiguration(new DataP .. taPackConfig(new ArrayList<>($$2.getAvailableIds()), List.of()), ENABLE .. ackConfig($$5, List.of()), ENABLED_FEATURES); .. D_FEATURES); .. 83 LevelSettings $$6 = new LevelSettings("Test Level", GameType.C 84 LevelSettings $$7 = new LevelSettings("Test Level", GameType.CREA .. REATIVE, false, Difficulty.NORMAL, true, TEST_GAME_RULES, $$5); .. TIVE, false, Difficulty.NORMAL, true, new GameRules(ENABLED_FEATURES), .. .. $$6); 84 WorldLoader.PackConfig $$7 = new WorldLoader.PackConfig($$2, $ 85 WorldLoader.PackConfig $$8 = new WorldLoader.PackConfig($$2, $$6, .. $5, false, true); .. false, true); 85 WorldLoader.InitConfig $$8 = new WorldLoader.InitConfig($$7, C 86 WorldLoader.InitConfig $$9 = new WorldLoader.InitConfig($$8, Comm .. ommands.CommandSelection.DEDICATED, 4); .. ands.CommandSelection.DEDICATED, 4); 86 87 87 try { 88 try { 88 LOGGER.debug("Starting resource loading"); 89 LOGGER.debug("Starting resource loading"); 89 Stopwatch $$9 = Stopwatch.createStarted(); 90 Stopwatch $$10 = Stopwatch.createStarted(); 90 WorldStem $$10 = Util.<WorldStem>blockUntilDone( 91 WorldStem $$11 = Util.<WorldStem>blockUntilDone( 91 $$2x -> WorldLoader.load( 92 $$2x -> WorldLoader.load( 92 $$8, 93 $$9, 93 $$1xx -> { 94 $$1xx -> { 94 Registry<LevelStem> $$2xx = new MappedRegist 95 Registry<LevelStem> $$2xx = new MappedRegistry< .. ry<>(Registries.LEVEL_STEM, Lifecycle.stable()).freeze(); .. >(Registries.LEVEL_STEM, Lifecycle.stable()).freeze(); 95 WorldDimensions.Complete $$3x = $$1xx.datapa 96 WorldDimensions.Complete $$3x = $$1xx.datapackW ckWorldgen() orldgen() net/minecraft/gametest/framework/GameTestServer.java --- 4/9 --- Java 99 .createWorldDimensions() 100 .createWorldDimensions() 100 .bake($$2xx); 101 .bake($$2xx); 101 return new WorldLoader.DataLoadOutput<>( 102 return new WorldLoader.DataLoadOutput<>( 102 new PrimaryLevelData($$6, WORLD_OPTIONS, 103 new PrimaryLevelData($$7, WORLD_OPTIONS, $$ ... $$3x.specialWorldProperty(), $$3x.lifecycle()), $$3x.dimensionsRegist ... 3x.specialWorldProperty(), $$3x.lifecycle()), $$3x.dimensionsRegistryA ... ryAccess() ... ccess() 103 ); 104 ); 104 }, 105 }, 105 WorldStem::new, 106 WorldStem::new, net/minecraft/gametest/framework/GameTestServer.java --- 5/9 --- Java 108 ) 109 ) 109 ) 110 ) 110 .get(); 111 .get(); 111 $$9.stop(); 112 $$10.stop(); 112 LOGGER.debug("Finished resource loading after {} ms", $$9. 113 LOGGER.debug("Finished resource loading after {} ms", $$10.el ... elapsed(TimeUnit.MILLISECONDS)); ... apsed(TimeUnit.MILLISECONDS)); 113 return new GameTestServer($$0, $$1, $$2, $$10, $$3, $$4); 114 return new GameTestServer($$0, $$1, $$2, $$11, $$3, $$4); 114 } catch (Exception var11) { 115 } catch (Exception var12) { 115 LOGGER.warn("Failed to load vanilla datapack, bit oops", ( 116 LOGGER.warn("Failed to load vanilla datapack, bit oops", (Thr ... Throwable)var11); ... owable)var12); 116 System.exit(-1); 117 System.exit(-1); 117 throw new IllegalStateException(); 118 throw new IllegalStateException(); 118 } 119 } 119 } ... 120 } 120 } 121 121 122 private GameTestServer(Thread $$0, LevelStorageSource.LevelStorageA 122 private GameTestServer(Thread $$0, LevelStorageSource.LevelStorageA ... ccess $$1, PackRepository $$2, WorldStem $$3, Collection<TestFunction> ... ccess $$1, PackRepository $$2, WorldStem $$3, Optional<String> $$4, bo ... $$4, BlockPos $$5) { ... olean $$5) { 123 super($$0, $$1, $$2, $$3, Proxy.NO_PROXY, DataFixers.getDataFixe 123 super($$0, $$1, $$2, $$3, Proxy.NO_PROXY, DataFixers.getDataFixe ... r(), NO_SERVICES, LoggerChunkProgressListener::createFromGameruleRadiu ... r(), NO_SERVICES, LoggerChunkProgressListener::createFromGameruleRadiu ... s); ... s); 124 this.testFunctions = Lists.newArrayList($$4); 124 this.testSelection = $$4; 125 this.spawnPos = $$5; 125 this.verify = $$5; 126 } 126 } 127 127 128 @Override 128 @Override net/minecraft/gametest/framework/GameTestServer.java --- 6/9 --- Java 131 }); 131 }); 132 this.loadLevel(); 132 this.loadLevel(); 133 ServerLevel $$0 = this.overworld(); 133 ServerLevel $$0 = this.overworld(); 134 this.testBatches = Lists.newArrayList(GameTestBatchFactory.fromT 134 this.testBatches = this.evaluateTestsToRun($$0); ... estFunction(this.testFunctions, $$0)); ... 135 $$0.setDefaultSpawnPos(this.spawnPos, 0.0F); ... 136 int $$1 = 20000000; ... 137 $$0.setWeatherParameters(20000000, 20000000, false, false); ... 138 LOGGER.info("Started game test server"); 135 LOGGER.info("Started game test server"); 139 return true; 136 return true; 140 } 137 } ... 138 ... 139 private List<GameTestBatch> evaluateTestsToRun(ServerLevel $$0) { ... 140 Registry<GameTestInstance> $$1 = $$0.registryAccess().lookupOrTh ... ... row(Registries.TEST_INSTANCE); ... 141 Collection<Holder.Reference<GameTestInstance>> $$2; ... 142 GameTestBatchFactory.TestDecorator $$3; ... 143 if (this.testSelection.isPresent()) { ... 144 $$2 = getTestsForSelection($$0.registryAccess(), this.testSel ... ... ection.get()).filter($$0x -> !((GameTestInstance)$$0x.value()).manualO ... ... nly()).toList(); ... 145 if (this.verify) { ... 146 $$3 = GameTestServer::rotateAndMultiply; ... 147 LOGGER.info("Verify requested. Will run each test that mat ... ... ches {} {} times", this.testSelection.get(), 100 * Rotation.values().l ... ... ength); ... 148 } else { ... 149 $$3 = GameTestBatchFactory.DIRECT; ... 150 LOGGER.info("Will run tests matching {} ({} tests)", this. ... ... testSelection.get(), $$2.size()); ... 151 } ... 152 } else { ... 153 $$2 = $$1.listElements().filter($$0x -> !((GameTestInstance)$ ... ... $0x.value()).manualOnly()).toList(); ... 154 $$3 = GameTestBatchFactory.DIRECT; ... 155 } ... 156 ... 157 return GameTestBatchFactory.divideIntoBatches($$2, $$3, $$0); ... 158 } ... 159 ... 160 private static Stream<GameTestInfo> rotateAndMultiply(Holder.Refere ... ... nce<GameTestInstance> $$0, ServerLevel $$1) { ... 161 Builder<GameTestInfo> $$2 = Stream.builder(); ... 162 ... 163 for (Rotation $$3 : Rotation.values()) { ... 164 for (int $$4 = 0; $$4 < 100; $$4++) { ... 165 $$2.add(new GameTestInfo($$0, $$3, $$1, RetryOptions.noRet ... ... ries())); ... 166 } ... 167 } ... 168 ... 169 return $$2.build(); ... 170 } ... 171 ... 172 public static Stream<Holder.Reference<GameTestInstance>> getTestsFo ... ... rSelection(RegistryAccess $$0, String $$1) { ... 173 return ResourceSelectorArgument.parse(new StringReader($$1), $$0 ... ... .lookupOrThrow(Registries.TEST_INSTANCE)).stream(); ... 174 } 141 175 142 @Override 176 @Override 143 public void tickServer(BooleanSupplier $$0) { 177 public void tickServer(BooleanSupplier $$0) { net/minecraft/gametest/framework/GameTestServer.java --- 7/9 --- Java 158 LOGGER.info("========= {} GAME TESTS COMPLETE IN {} ========= 192 LOGGER.info("========= {} GAME TESTS COMPLETE IN {} ========= ... =============", this.testTracker.getTotalCount(), this.stopwatch.stop( ... =============", this.testTracker.getTotalCount(), this.stopwatch.stop( ... )); ... )); 159 if (this.testTracker.hasFailedRequired()) { 193 if (this.testTracker.hasFailedRequired()) { 160 LOGGER.info("{} required tests failed :(", this.testTracke 194 LOGGER.info("{} required tests failed :(", this.testTracke ... r.getFailedRequiredCount()); ... r.getFailedRequiredCount()); 161 this.testTracker.getFailedRequired().forEach($$0x -> LOGGE 195 this.testTracker.getFailedRequired().forEach($$0x -> LOGGE ... R.info(" - {}", $$0x.getTestName())); ... R.info(" - {}", $$0x.id())); 162 } else { 196 } else { 163 LOGGER.info("All {} required tests passed :)", this.testTr 197 LOGGER.info("All {} required tests passed :)", this.testTr ... acker.getTotalCount()); ... acker.getTotalCount()); 164 } 198 } 165 199 166 if (this.testTracker.hasFailedOptional()) { 200 if (this.testTracker.hasFailedOptional()) { 167 LOGGER.info("{} optional tests failed", this.testTracker.g 201 LOGGER.info("{} optional tests failed", this.testTracker.g ... etFailedOptionalCount()); ... etFailedOptionalCount()); 168 this.testTracker.getFailedOptional().forEach($$0x -> LOGGE 202 this.testTracker.getFailedOptional().forEach($$0x -> LOGGE ... R.info(" - {} with rotation: {}", $$0x.getTestName(), $$0x.getRotati ... R.info(" - {} with rotation: {}", $$0x.id(), $$0x.getRotation())); ... on())); ... 169 } 203 } 170 204 171 LOGGER.info("================================================ 205 LOGGER.info("================================================ ===="); ===="); net/minecraft/gametest/framework/GameTestServer.java --- 8/9 --- Java 197 public void onServerExit() { 231 public void onServerExit() { 198 super.onServerExit(); 232 super.onServerExit(); 199 LOGGER.info("Game test server shutting down"); 233 LOGGER.info("Game test server shutting down"); 200 System.exit(this.testTracker.getFailedRequiredCount()); 234 System.exit(this.testTracker != null ? this.testTracker.getFaile ... ... dRequiredCount() : -1); 201 } 235 } 202 236 203 @Override 237 @Override net/minecraft/gametest/framework/GameTestServer.java --- 9/9 --- Java 209 243 210 private void startTests(ServerLevel $$0) { 244 private void startTests(ServerLevel $$0) { 211 BlockPos $$1 = new BlockPos($$0.random.nextIntBetweenInclusive(- 245 BlockPos $$1 = new BlockPos($$0.random.nextIntBetweenInclusive(- ... 14999992, 14999992), -59, $$0.random.nextIntBetweenInclusive(-14999992 ... 14999992, 14999992), -59, $$0.random.nextIntBetweenInclusive(-14999992 ... , 14999992)); ... , 14999992)); ... 246 $$0.setDefaultSpawnPos($$1, 0.0F); 212 GameTestRunner $$2 = GameTestRunner.Builder.fromBatches(this.tes 247 GameTestRunner $$2 = GameTestRunner.Builder.fromBatches(this.tes ... tBatches, $$0).newStructureSpawner(new StructureGridSpawner($$1, 8, fa ... tBatches, $$0).newStructureSpawner(new StructureGridSpawner($$1, 8, fa ... lse)).build(); ... lse)).build(); 213 Collection<GameTestInfo> $$3 = $$2.getTestInfos(); 248 Collection<GameTestInfo> $$3 = $$2.getTestInfos(); 214 this.testTracker = new MultipleTestTracker($$3); 249 this.testTracker = new MultipleTestTracker($$3); net/minecraft/world/entity/Mob.java --- 1/13 --- Java 1 package net.minecraft.world.entity; 1 package net.minecraft.world.entity; 2 2 3 import com.google.common.annotations.VisibleForTesting; 3 import com.google.common.annotations.VisibleForTesting; 4 import com.google.common.collect.Iterables; . 5 import com.google.common.collect.Maps; 4 import com.google.common.collect.Maps; 6 import com.mojang.logging.LogUtils; 5 import com.mojang.logging.LogUtils; 7 import it.unimi.dsi.fastutil.objects.Object2IntMap.Entry; 6 import it.unimi.dsi.fastutil.objects.Object2IntMap.Entry; 8 import java.util.Collections; . 9 import java.util.HashSet; 7 import java.util.HashSet; 10 import java.util.List; 8 import java.util.List; 11 import java.util.Map; 9 import java.util.Map; net/minecraft/world/entity/Mob.java --- 2/13 --- Java 16 import javax.annotation.Nullable; 14 import javax.annotation.Nullable; 17 import net.minecraft.core.BlockPos; 15 import net.minecraft.core.BlockPos; 18 import net.minecraft.core.Holder; 16 import net.minecraft.core.Holder; 19 import net.minecraft.core.NonNullList; .. 20 import net.minecraft.core.Vec3i; 17 import net.minecraft.core.Vec3i; 21 import net.minecraft.core.component.DataComponents; 18 import net.minecraft.core.component.DataComponents; 22 import net.minecraft.core.registries.Registries; 19 import net.minecraft.core.registries.Registries; 23 import net.minecraft.nbt.CompoundTag; 20 import net.minecraft.nbt.CompoundTag; 24 import net.minecraft.nbt.ListTag; .. 25 import net.minecraft.nbt.NbtOps; 21 import net.minecraft.nbt.NbtOps; .. 22 import net.minecraft.nbt.Tag; 26 import net.minecraft.network.protocol.game.DebugPackets; 23 import net.minecraft.network.protocol.game.DebugPackets; 27 import net.minecraft.network.syncher.EntityDataAccessor; 24 import net.minecraft.network.syncher.EntityDataAccessor; 28 import net.minecraft.network.syncher.EntityDataSerializers; 25 import net.minecraft.network.syncher.EntityDataSerializers; 29 import net.minecraft.network.syncher.SynchedEntityData; 26 import net.minecraft.network.syncher.SynchedEntityData; .. 27 import net.minecraft.resources.RegistryOps; 30 import net.minecraft.resources.ResourceKey; 28 import net.minecraft.resources.ResourceKey; 31 import net.minecraft.resources.ResourceLocation; 29 import net.minecraft.resources.ResourceLocation; 32 import net.minecraft.server.level.ServerLevel; 30 import net.minecraft.server.level.ServerLevel; net/minecraft/world/entity/Mob.java --- 3/13 --- Java 36 import net.minecraft.util.RandomSource; 34 import net.minecraft.util.RandomSource; 37 import net.minecraft.util.profiling.Profiler; 35 import net.minecraft.util.profiling.Profiler; 38 import net.minecraft.util.profiling.ProfilerFiller; 36 import net.minecraft.util.profiling.ProfilerFiller; .. 37 import net.minecraft.world.Container; 39 import net.minecraft.world.Difficulty; 38 import net.minecraft.world.Difficulty; 40 import net.minecraft.world.DifficultyInstance; 39 import net.minecraft.world.DifficultyInstance; 41 import net.minecraft.world.InteractionHand; 40 import net.minecraft.world.InteractionHand; net/minecraft/world/entity/Mob.java --- 4/13 --- Java 84 import net.minecraft.world.level.storage.loot.parameters.LootContextPar 83 import net.minecraft.world.level.storage.loot.parameters.LootContextPar .. amSets; .. amSets; 85 import net.minecraft.world.level.storage.loot.parameters.LootContextPar 84 import net.minecraft.world.level.storage.loot.parameters.LootContextPar .. ams; .. ams; 86 import net.minecraft.world.phys.AABB; 85 import net.minecraft.world.phys.AABB; .. 86 import net.minecraft.world.ticks.ContainerSingleItem; 87 import org.slf4j.Logger; 87 import org.slf4j.Logger; 88 88 89 public abstract class Mob extends LivingEntity implements EquipmentUser 89 public abstract class Mob extends LivingEntity implements EquipmentUser , Leashable, Targeting { , Leashable, Targeting { net/minecraft/world/entity/Mob.java --- 5/13 --- Java 116 @Nullable 116 @Nullable 117 private LivingEntity target; 117 private LivingEntity target; 118 private final Sensing sensing; 118 private final Sensing sensing; 119 private final NonNullList<ItemStack> handItems = NonNullList.withSi 119 private EntityEquipment equipment = new EntityEquipment(); ... ze(2, ItemStack.EMPTY); ... 120 private final NonNullList<ItemStack> armorItems = NonNullList.withS ... ... ize(4, ItemStack.EMPTY); ... 121 private ItemStack bodyArmorItem = ItemStack.EMPTY; ... 122 private DropChances dropChances = DropChances.DEFAULT; 120 private DropChances dropChances = DropChances.DEFAULT; 123 private boolean canPickUpLoot; 121 private boolean canPickUpLoot; 124 private boolean persistenceRequired; 122 private boolean persistenceRequired; net/minecraft/world/entity/Mob.java --- 6/13 --- Java 291 int $$1 = this.xpReward; 289 int $$1 = this.xpReward; 292 290 293 for (EquipmentSlot $$2 : EquipmentSlot.VALUES) { 291 for (EquipmentSlot $$2 : EquipmentSlot.VALUES) { ... 292 if ($$2.canIncreaseExperience()) { 294 ItemStack $$3 = this.getItemBySlot($$2); 293 ItemStack $$3 = this.getItemBySlot($$2); 295 if (!$$3.isEmpty() && this.dropChances.byEquipment($$2) <= 294 if (!$$3.isEmpty() && this.dropChances.byEquipment($$2) ... 1.0F) { ... <= 1.0F) { 296 $$1 += 1 + this.random.nextInt(3); 295 $$1 += 1 + this.random.nextInt(3); 297 } 296 } 298 } 297 } ... 298 } 299 299 300 return $$1; 300 return $$1; net/minecraft/world/entity/Mob.java --- 7/13 --- Java 351 super.addAdditionalSaveData($$0); 351 super.addAdditionalSaveData($$0); 352 $$0.putBoolean("CanPickUpLoot", this.canPickUpLoot()); 352 $$0.putBoolean("CanPickUpLoot", this.canPickUpLoot()); 353 $$0.putBoolean("PersistenceRequired", this.persistenceRequired); 353 $$0.putBoolean("PersistenceRequired", this.persistenceRequired); 354 ListTag $$1 = new ListTag(); ... 355 ... 356 for (ItemStack $$2 : this.armorItems) { ... 357 if (!$$2.isEmpty()) { 354 if (!this.equipment.isEmpty()) { 358 $$1.add($$2.save(this.registryAccess())); 355 RegistryOps<Tag> $$1 = this.registryAccess().createSerializat ... ... ionContext(NbtOps.INSTANCE); ... 356 $$0.put("equipment", EntityEquipment.CODEC.encodeStart($$1, t ... ... his.equipment).getOrThrow()); 359 } else { 357 } 360 $$1.add(new CompoundTag()); 358 361 } ... 362 } ... 363 ... 364 $$0.put("ArmorItems", $$1); ... 365 if (!this.dropChances.equals(DropChances.DEFAULT)) { 359 if (!this.dropChances.equals(DropChances.DEFAULT)) { 366 $$0.put("drop_chances", DropChances.CODEC.encodeStart(NbtOps. 360 $$0.put("drop_chances", DropChances.CODEC.encodeStart(NbtOps. ... INSTANCE, this.dropChances).getOrThrow()); ... INSTANCE, this.dropChances).getOrThrow()); 367 } 361 } 368 ... 369 ListTag $$3 = new ListTag(); ... 370 ... 371 for (ItemStack $$4 : this.handItems) { ... 372 if (!$$4.isEmpty()) { ... 373 $$3.add($$4.save(this.registryAccess())); ... 374 } else { ... 375 $$3.add(new CompoundTag()); ... 376 } ... 377 } ... 378 ... 379 $$0.put("HandItems", $$3); ... 380 if (!this.bodyArmorItem.isEmpty()) { ... 381 $$0.put("body_armor_item", this.bodyArmorItem.save(this.regis ... ... tryAccess())); ... 382 } ... 383 362 384 this.writeLeashData($$0, this.leashData); 363 this.writeLeashData($$0, this.leashData); 385 $$0.putBoolean("LeftHanded", this.isLeftHanded()); 364 $$0.putBoolean("LeftHanded", this.isLeftHanded()); net/minecraft/world/entity/Mob.java --- 8/13 --- Java 401 super.readAdditionalSaveData($$0); 380 super.readAdditionalSaveData($$0); 402 this.setCanPickUpLoot($$0.getBoolean("CanPickUpLoot")); 381 this.setCanPickUpLoot($$0.getBoolean("CanPickUpLoot")); 403 this.persistenceRequired = $$0.getBoolean("PersistenceRequired") 382 this.persistenceRequired = $$0.getBoolean("PersistenceRequired") ... ; ... ; 404 if ($$0.contains("ArmorItems", 9)) { 383 if ($$0.contains("equipment")) { 405 ListTag $$1 = $$0.getList("ArmorItems", 10); 384 RegistryOps<Tag> $$1 = this.registryAccess().createSerializat ... ... ionContext(NbtOps.INSTANCE); 406 385 EntityEquipment.CODEC 407 for (int $$2 = 0; $$2 < this.armorItems.size(); $$2++) { 386 .parse($$1, $$0.get("equipment")) 408 CompoundTag $$3 = $$1.getCompound($$2); 387 .resultOrPartial($$0x -> LOGGER.warn("Failed to parse equi ... ... pment: {}", $$0x)) 409 this.armorItems.set($$2, ItemStack.parseOptional(this.regi 388 .ifPresent($$0x -> this.equipment = $$0x); ... stryAccess(), $$3)); ... 410 } ... 411 } else { 389 } else { 412 Collections.fill(this.armorItems, ItemStack.EMPTY); 390 this.equipment = new EntityEquipment(); 413 } 391 } 414 392 415 if ($$0.contains("drop_chances")) { 393 if ($$0.contains("drop_chances")) { net/minecraft/world/entity/Mob.java --- 9/13 --- Java 421 this.dropChances = DropChances.DEFAULT; 399 this.dropChances = DropChances.DEFAULT; 422 } 400 } 423 ... 424 if ($$0.contains("HandItems", 9)) { ... 425 ListTag $$4 = $$0.getList("HandItems", 10); ... 426 ... 427 for (int $$5 = 0; $$5 < this.handItems.size(); $$5++) { ... 428 CompoundTag $$6 = $$4.getCompound($$5); ... 429 this.handItems.set($$5, ItemStack.parseOptional(this.regis ... ... tryAccess(), $$6)); ... 430 } ... 431 } else { ... 432 Collections.fill(this.handItems, ItemStack.EMPTY); ... 433 } ... 434 ... 435 if ($$0.contains("body_armor_item", 10)) { ... 436 this.bodyArmorItem = ItemStack.parse(this.registryAccess(), $ ... ... $0.getCompound("body_armor_item")).orElse(ItemStack.EMPTY); ... 437 } else { ... 438 this.bodyArmorItem = ItemStack.EMPTY; ... 439 } ... 440 401 441 this.readLeashData($$0); 402 this.readLeashData($$0); 442 this.setLeftHanded($$0.getBoolean("LeftHanded")); 403 this.setLeftHanded($$0.getBoolean("LeftHanded")); net/minecraft/world/entity/Mob.java --- 10/13 --- Java 533 494 534 public ItemStack equipItemIfPossible(ServerLevel $$0, ItemStack $$1 495 public ItemStack equipItemIfPossible(ServerLevel $$0, ItemStack $$1 ... ) { ... ) { 535 EquipmentSlot $$2 = this.getEquipmentSlotForItem($$1); 496 EquipmentSlot $$2 = this.getEquipmentSlotForItem($$1); ... 497 if (!this.isEquippableInSlot($$1, $$2)) { ... 498 return ItemStack.EMPTY; ... 499 } else { 536 ItemStack $$3 = this.getItemBySlot($$2); 500 ItemStack $$3 = this.getItemBySlot($$2); 537 boolean $$4 = this.canReplaceCurrentItem($$1, $$3, $$2); 501 boolean $$4 = this.canReplaceCurrentItem($$1, $$3, $$2); 538 if ($$2.isArmor() && !$$4) { 502 if ($$2.isArmor() && !$$4) { net/minecraft/world/entity/Mob.java --- 11/13 --- Java 553 } else { 517 } else { 554 return ItemStack.EMPTY; 518 return ItemStack.EMPTY; 555 } 519 } ... 520 } 556 } 521 } 557 522 558 protected void setItemSlotAndDropWhenKilled(EquipmentSlot $$0, Item 523 protected void setItemSlotAndDropWhenKilled(EquipmentSlot $$0, Item Stack $$1) { Stack $$1) { net/minecraft/world/entity/Mob.java --- 12/13 --- Java 814 } 779 } 815 } 780 } 816 ... 817 @Override ... 818 public Iterable<ItemStack> getHandSlots() { ... 819 return this.handItems; ... 820 } ... 821 ... 822 @Override ... 823 public Iterable<ItemStack> getArmorSlots() { ... 824 return this.armorItems; ... 825 } ... 826 781 827 public ItemStack getBodyArmorItem() { 782 public ItemStack getBodyArmorItem() { 828 return this.bodyArmorItem; 783 return this.getItemBySlot(EquipmentSlot.BODY); 829 } 784 } 830 785 831 @Override ... 832 public boolean canUseSlot(EquipmentSlot $$0) { 786 public boolean isSaddled() { 833 return $$0 != EquipmentSlot.BODY; 787 return this.hasItemInSlot(EquipmentSlot.SADDLE); 834 } 788 } 835 789 836 public boolean isWearingBodyArmor() { 790 public boolean isWearingBodyArmor() { 837 return !this.getItemBySlot(EquipmentSlot.BODY).isEmpty(); 791 return this.hasItemInSlot(EquipmentSlot.BODY); 838 } 792 } 839 793 840 public void setBodyArmorItem(ItemStack $$0) { 794 public void setBodyArmorItem(ItemStack $$0) { 841 this.setItemSlotAndDropWhenKilled(EquipmentSlot.BODY, $$0); 795 this.setItemSlotAndDropWhenKilled(EquipmentSlot.BODY, $$0); 842 } 796 } 843 797 844 @Override 798 @Override 845 public Iterable<ItemStack> getArmorAndBodyArmorSlots() { 799 public ItemStack getItemBySlot(EquipmentSlot $$0) { 846 return (Iterable<ItemStack>)(this.bodyArmorItem.isEmpty() ? this 800 return this.equipment.get($$0); ... .armorItems : Iterables.concat(this.armorItems, List.of(this.bodyArmor ... ... Item))); ... 847 } 801 } 848 802 849 @Override 803 @Override 850 public ItemStack getItemBySlot(EquipmentSlot $$0) { 804 public void setItemSlot(EquipmentSlot $$0, ItemStack $$1) { 851 return switch ($$0.getType()) { 805 this.verifyEquippedItem($$1); 852 case HAND -> (ItemStack)this.handItems.get($$0.getIndex()); 806 ItemStack $$2 = this.equipment.set($$0, $$1); 853 case HUMANOID_ARMOR -> (ItemStack)this.armorItems.get($$0.get 807 this.onEquipItem($$0, $$2, $$1); ... Index()); ... 854 case ANIMAL_ARMOR -> this.bodyArmorItem; ... 855 }; ... 856 } 808 } 857 809 858 @Override ... 859 public void setItemSlot(EquipmentSlot $$0, ItemStack $$1) { 810 public Container createEquipmentSlotContainer(final EquipmentSlot $ ... ... $0) { 860 this.verifyEquippedItem($$1); ... 861 switch ($$0.getType()) { 811 return new ContainerSingleItem() { 862 case HAND: 812 @Override ... 813 public ItemStack getTheItem() { 863 this.onEquipItem($$0, this.handItems.set($$0.getIndex(), $ 814 return Mob.this.getItemBySlot($$0); ... $1), $$1); ... 864 break; 815 } 865 case HUMANOID_ARMOR: 816 ... 817 @Override ... 818 public void setTheItem(ItemStack $$0x) { 866 this.onEquipItem($$0, this.armorItems.set($$0.getIndex(), 819 Mob.this.setItemSlot($$0, $$0); ... $$1), $$1); ... ... 820 if (!$$0.isEmpty()) { 867 break; 821 Mob.this.setGuaranteedDrop($$0); 868 case ANIMAL_ARMOR: 822 Mob.this.setPersistenceRequired(); 869 ItemStack $$2 = this.bodyArmorItem; 823 } 870 this.bodyArmorItem = $$1; 824 } ... 825 ... 826 @Override ... 827 public void setChanged() { ... 828 } ... 829 ... 830 @Override ... 831 public boolean stillValid(Player $$0x) { 871 this.onEquipItem($$0, $$2, $$1); 832 return $$0.getVehicle() == Mob.this || $$0.canInteractWith ... ... Entity(Mob.this, 4.0); ... 833 } 872 } 834 }; 873 } 835 } 874 836 875 @Override 837 @Override net/minecraft/world/entity/Mob.java --- 13/13 --- Java 1397 protected void removeAfterChangingDimensions() { 1359 protected void removeAfterChangingDimensions() { 1398 super.removeAfterChangingDimensions(); 1360 super.removeAfterChangingDimensions(); .... 1361 1399 this.getAllSlots().forEach($$0 -> { 1362 for (EquipmentSlot $$0 : EquipmentSlot.VALUES) { .... 1363 ItemStack $$1 = this.getItemBySlot($$0); 1400 if (!$$0.isEmpty()) { 1364 if (!$$1.isEmpty()) { 1401 $$0.setCount(0); 1365 $$1.setCount(0); 1402 } 1366 } 1403 }); 1367 } 1404 } 1368 } 1405 1369 1406 @Nullable 1370 @Nullable net/minecraft/world/level/block/entity/BeaconBlockEntity.java --- 1/8 --- Java 2 2 3 import com.google.common.collect.ImmutableList; 3 import com.google.common.collect.ImmutableList; 4 import com.google.common.collect.Lists; 4 import com.google.common.collect.Lists; . 5 import java.util.ArrayList; 5 import java.util.Collection; 6 import java.util.Collection; 6 import java.util.List; 7 import java.util.List; 7 import java.util.Objects; 8 import java.util.Objects; net/minecraft/world/level/block/entity/BeaconBlockEntity.java --- 2/8 --- Java 12 import net.minecraft.core.BlockPos; 13 import net.minecraft.core.BlockPos; 13 import net.minecraft.core.Holder; 14 import net.minecraft.core.Holder; 14 import net.minecraft.core.HolderLookup; 15 import net.minecraft.core.HolderLookup; .. 16 import net.minecraft.core.component.DataComponentGetter; 15 import net.minecraft.core.component.DataComponentMap; 17 import net.minecraft.core.component.DataComponentMap; 16 import net.minecraft.core.component.DataComponents; 18 import net.minecraft.core.component.DataComponents; 17 import net.minecraft.core.registries.BuiltInRegistries; 19 import net.minecraft.core.registries.BuiltInRegistries; net/minecraft/world/level/block/entity/BeaconBlockEntity.java --- 3/8 --- Java 46 import net.minecraft.world.level.levelgen.Heightmap; 48 import net.minecraft.world.level.levelgen.Heightmap; 47 import net.minecraft.world.phys.AABB; 49 import net.minecraft.world.phys.AABB; 48 50 49 public class BeaconBlockEntity extends BlockEntity implements MenuProvi 51 public class BeaconBlockEntity extends BlockEntity implements MenuProvi .. der, Nameable { .. der, Nameable, BeaconBeamOwner { 50 private static final int MAX_LEVELS = 4; 52 private static final int MAX_LEVELS = 4; 51 public static final List<List<Holder<MobEffect>>> BEACON_EFFECTS = L 53 public static final List<List<Holder<MobEffect>>> BEACON_EFFECTS = L .. ist.of( .. ist.of( 52 List.of(MobEffects.SPEED, MobEffects.HASTE), 54 List.of(MobEffects.SPEED, MobEffects.HASTE), net/minecraft/world/level/block/entity/BeaconBlockEntity.java --- 4/8 --- Java 63 private static final Component DEFAULT_NAME = Component.translatable 65 private static final Component DEFAULT_NAME = Component.translatable .. ("container.beacon"); .. ("container.beacon"); 64 private static final String TAG_PRIMARY = "primary_effect"; 66 private static final String TAG_PRIMARY = "primary_effect"; 65 private static final String TAG_SECONDARY = "secondary_effect"; 67 private static final String TAG_SECONDARY = "secondary_effect"; 66 List<BeaconBlockEntity.BeaconBeamSection> beamSections = Lists.newAr 68 List<BeaconBeamOwner.Section> beamSections = new ArrayList<>(); .. rayList(); .. 67 private List<BeaconBlockEntity.BeaconBeamSection> checkingBeamSectio 69 private List<BeaconBeamOwner.Section> checkingBeamSections = new Arr .. ns = Lists.newArrayList(); .. ayList<>(); 68 int levels; 70 int levels; 69 private int lastCheckY; 71 private int lastCheckY; 70 @Nullable 72 @Nullable net/minecraft/world/level/block/entity/BeaconBlockEntity.java --- 5/8 --- Java 131 $$7 = new BlockPos($$4, $$3.lastCheckY + 1, $$6); 133 $$7 = new BlockPos($$4, $$3.lastCheckY + 1, $$6); 132 } 134 } 133 135 134 BeaconBlockEntity.BeaconBeamSection $$9 = $$3.checkingBeamSectio 136 BeaconBeamOwner.Section $$9 = $$3.checkingBeamSections.isEmpty() ... ns.isEmpty() ? null : $$3.checkingBeamSections.get($$3.checkingBeamSec ... ? null : $$3.checkingBeamSections.get($$3.checkingBeamSections.size() ... tions.size() - 1); ... - 1); 135 int $$10 = $$0.getHeight(Heightmap.Types.WORLD_SURFACE, $$4, $$6 137 int $$10 = $$0.getHeight(Heightmap.Types.WORLD_SURFACE, $$4, $$6 ... ); ... ); 136 138 137 for (int $$11 = 0; $$11 < 10 && $$7.getY() <= $$10; $$11++) { 139 for (int $$11 = 0; $$11 < 10 && $$7.getY() <= $$10; $$11++) { 138 BlockState $$12 = $$0.getBlockState($$7); 140 BlockState $$12 = $$0.getBlockState($$7); 139 if ($$12.getBlock() instanceof BeaconBeamBlock $$14) { 141 if ($$12.getBlock() instanceof BeaconBeamBlock $$14) { 140 int $$15 = $$14.getColor().getTextureDiffuseColor(); 142 int $$15 = $$14.getColor().getTextureDiffuseColor(); 141 if ($$3.checkingBeamSections.size() <= 1) { 143 if ($$3.checkingBeamSections.size() <= 1) { 142 $$9 = new BeaconBlockEntity.BeaconBeamSection($$15); 144 $$9 = new BeaconBeamOwner.Section($$15); 143 $$3.checkingBeamSections.add($$9); 145 $$3.checkingBeamSections.add($$9); 144 } else if ($$9 != null) { 146 } else if ($$9 != null) { 145 if ($$15 == $$9.color) { 147 if ($$15 == $$9.getColor()) { 146 $$9.increaseHeight(); 148 $$9.increaseHeight(); 147 } else { 149 } else { 148 $$9 = new BeaconBlockEntity.BeaconBeamSection(ARGB.a 150 $$9 = new BeaconBeamOwner.Section(ARGB.average($$9.g ... verage($$9.color, $$15)); ... etColor(), $$15)); 149 $$3.checkingBeamSections.add($$9); 151 $$3.checkingBeamSections.add($$9); 150 } 152 } 151 } 153 } net/minecraft/world/level/block/entity/BeaconBlockEntity.java --- 6/8 --- Java 258 $$0.playSound(null, $$1, $$2, SoundSource.BLOCKS, 1.0F, 1.0F); 260 $$0.playSound(null, $$1, $$2, SoundSource.BLOCKS, 1.0F, 1.0F); 259 } 261 } 260 262 ... 263 @Override 261 public List<BeaconBlockEntity.BeaconBeamSection> getBeamSections() 264 public List<BeaconBeamOwner.Section> getBeamSections() { ... { ... 262 return (List<BeaconBlockEntity.BeaconBeamSection>)(this.levels = 265 return (List<BeaconBeamOwner.Section>)(this.levels == 0 ? Immuta ... = 0 ? ImmutableList.of() : this.beamSections); ... bleList.of() : this.beamSections); 263 } 266 } 264 267 265 public ClientboundBlockEntityDataPacket getUpdatePacket() { 268 public ClientboundBlockEntityDataPacket getUpdatePacket() { net/minecraft/world/level/block/entity/BeaconBlockEntity.java --- 7/8 --- Java 341 } 344 } 342 345 343 @Override 346 @Override 344 protected void applyImplicitComponents(BlockEntity.DataComponentInp 347 protected void applyImplicitComponents(DataComponentGetter $$0) { ... ut $$0) { ... 345 super.applyImplicitComponents($$0); 348 super.applyImplicitComponents($$0); 346 this.name = $$0.get(DataComponents.CUSTOM_NAME); 349 this.name = $$0.get(DataComponents.CUSTOM_NAME); 347 this.lockKey = $$0.getOrDefault(DataComponents.LOCK, LockCode.NO 350 this.lockKey = $$0.getOrDefault(DataComponents.LOCK, LockCode.NO _LOCK); _LOCK); net/minecraft/world/level/block/entity/BeaconBlockEntity.java --- 8/8 --- Java 368 this.lastCheckY = $$0.getMinY() - 1; 371 this.lastCheckY = $$0.getMinY() - 1; 369 } 372 } 370 ... 371 public static class BeaconBeamSection { ... 372 final int color; ... 373 private int height; ... 374 ... 375 public BeaconBeamSection(int $$0) { ... 376 this.color = $$0; ... 377 this.height = 1; ... 378 } ... 379 ... 380 protected void increaseHeight() { ... 381 this.height++; ... 382 } ... 383 ... 384 public int getColor() { ... 385 return this.color; ... 386 } ... 387 ... 388 public int getHeight() { ... 389 return this.height; ... 390 } ... 391 } ... 392 } 373 } net/minecraft/world/entity/animal/Salmon.java --- 1/4 --- Java 1 package net.minecraft.world.entity.animal; 1 package net.minecraft.world.entity.animal; 2 2 . 3 import io.netty.buffer.ByteBuf; 3 import java.util.function.IntFunction; 4 import java.util.function.IntFunction; 4 import javax.annotation.Nullable; 5 import javax.annotation.Nullable; . 6 import net.minecraft.core.component.DataComponentGetter; . 7 import net.minecraft.core.component.DataComponentType; 5 import net.minecraft.core.component.DataComponents; 8 import net.minecraft.core.component.DataComponents; 6 import net.minecraft.nbt.CompoundTag; 9 import net.minecraft.nbt.CompoundTag; . 10 import net.minecraft.network.codec.ByteBufCodecs; . 11 import net.minecraft.network.codec.StreamCodec; 7 import net.minecraft.network.syncher.EntityDataAccessor; 12 import net.minecraft.network.syncher.EntityDataAccessor; 8 import net.minecraft.network.syncher.EntityDataSerializers; 13 import net.minecraft.network.syncher.EntityDataSerializers; 9 import net.minecraft.network.syncher.SynchedEntityData; 14 import net.minecraft.network.syncher.SynchedEntityData; net/minecraft/world/entity/animal/Salmon.java --- 2/4 --- Java 19 import net.minecraft.world.entity.EntityType; 24 import net.minecraft.world.entity.EntityType; 20 import net.minecraft.world.entity.Pose; 25 import net.minecraft.world.entity.Pose; 21 import net.minecraft.world.entity.SpawnGroupData; 26 import net.minecraft.world.entity.SpawnGroupData; 22 import net.minecraft.world.entity.VariantHolder; .. 23 import net.minecraft.world.item.ItemStack; 27 import net.minecraft.world.item.ItemStack; 24 import net.minecraft.world.item.Items; 28 import net.minecraft.world.item.Items; 25 import net.minecraft.world.item.component.CustomData; .. 26 import net.minecraft.world.level.Level; 29 import net.minecraft.world.level.Level; 27 import net.minecraft.world.level.ServerLevelAccessor; 30 import net.minecraft.world.level.ServerLevelAccessor; 28 31 29 public class Salmon extends AbstractSchoolingFish implements VariantHol 32 public class Salmon extends AbstractSchoolingFish { .. der<Salmon.Variant> { .. 30 private static final String TAG_TYPE = "type"; 33 private static final String TAG_TYPE = "type"; 31 private static final EntityDataAccessor<Integer> DATA_TYPE = Synched 34 private static final EntityDataAccessor<Integer> DATA_TYPE = Synched .. EntityData.defineId(Salmon.class, EntityDataSerializers.INT); .. EntityData.defineId(Salmon.class, EntityDataSerializers.INT); 32 35 net/minecraft/world/entity/animal/Salmon.java --- 3/4 --- Java 94 @Override 97 @Override 95 public void saveToBucketTag(ItemStack $$0) { 98 public void saveToBucketTag(ItemStack $$0) { 96 Bucketable.saveDefaultDataToBucketTag(this, $$0); 99 Bucketable.saveDefaultDataToBucketTag(this, $$0); 97 CustomData.update(DataComponents.BUCKET_ENTITY_DATA, $$0, $$0x - 100 $$0.copyFrom(DataComponents.SALMON_SIZE, this); .. > $$0x.putString("type", this.getVariant().getSerializedName())); ... 98 } 101 } 99 ... 100 @Override ... 101 public void loadFromBucketTag(CompoundTag $$0) { ... 102 Bucketable.loadDefaultDataFromBucketTag(this, $$0); ... 103 this.setVariant(Salmon.Variant.byName($$0.getString("type"))); ... 104 } ... 105 102 106 public void setVariant(Salmon.Variant $$0) { 103 private void setVariant(Salmon.Variant $$0) { 107 this.entityData.set(DATA_TYPE, $$0.id); 104 this.entityData.set(DATA_TYPE, $$0.id); 108 } 105 } 109 106 110 public Salmon.Variant getVariant() { 107 public Salmon.Variant getVariant() { 111 return Salmon.Variant.BY_ID.apply(this.entityData.get(DATA_TYPE) 108 return Salmon.Variant.BY_ID.apply(this.entityData.get(DATA_TYPE) ... ); ... ); 112 } 109 } ... 110 ... 111 @Nullable ... 112 @Override ... 113 public <T> T get(DataComponentType<? extends T> $$0) { ... 114 return $$0 == DataComponents.SALMON_SIZE ? castComponentValue((D ... ... ataComponentType<T>)$$0, this.getVariant()) : super.get($$0); ... 115 } ... 116 ... 117 @Override ... 118 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 119 this.applyImplicitComponentIfPresent($$0, DataComponents.SALMON_ ... ... SIZE); ... 120 super.applyImplicitComponents($$0); ... 121 } ... 122 ... 123 @Override ... 124 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 125 if ($$0 == DataComponents.SALMON_SIZE) { ... 126 this.setVariant(castComponentValue(DataComponents.SALMON_SIZE ... ... , $$1)); ... 127 return true; ... 128 } else { ... 129 return super.applyImplicitComponent($$0, $$1); ... 130 } ... 131 } 113 132 114 @Nullable 133 @Nullable 115 @Override 134 @Override net/minecraft/world/entity/animal/Salmon.java --- 4/4 --- Java 138 157 139 public static final StringRepresentable.EnumCodec<Salmon.Variant 158 public static final StringRepresentable.EnumCodec<Salmon.Variant ... > CODEC = StringRepresentable.fromEnum(Salmon.Variant::values); ... > CODEC = StringRepresentable.fromEnum(Salmon.Variant::values); 140 static final IntFunction<Salmon.Variant> BY_ID = ByIdMap.continu 159 static final IntFunction<Salmon.Variant> BY_ID = ByIdMap.continu ... ous(Salmon.Variant::id, values(), ByIdMap.OutOfBoundsStrategy.CLAMP); ... ous(Salmon.Variant::id, values(), ByIdMap.OutOfBoundsStrategy.CLAMP); ... 160 public static final StreamCodec<ByteBuf, Salmon.Variant> STREAM_ ... ... CODEC = ByteBufCodecs.idMapper(BY_ID, Salmon.Variant::id); 141 private final String name; 161 private final String name; 142 final int id; 162 final int id; 143 final float boundingBoxScale; 163 final float boundingBoxScale; net/minecraft/world/entity/npc/VillagerProfession.java --- 1/2 --- Java 5 import javax.annotation.Nullable; 5 import javax.annotation.Nullable; 6 import net.minecraft.core.Holder; 6 import net.minecraft.core.Holder; 7 import net.minecraft.core.Registry; 7 import net.minecraft.core.Registry; 8 import net.minecraft.core.registries.BuiltInRegistries; 8 import net.minecraft.core.registries.Registries; . 9 import net.minecraft.network.chat.Component; 9 import net.minecraft.resources.ResourceKey; 10 import net.minecraft.resources.ResourceKey; 10 import net.minecraft.resources.ResourceLocation; 11 import net.minecraft.resources.ResourceLocation; 11 import net.minecraft.sounds.SoundEvent; 12 import net.minecraft.sounds.SoundEvent; net/minecraft/world/entity/npc/VillagerProfession.java --- 2/2 --- Java 19 import net.minecraft.world.level.block.Blocks; 20 import net.minecraft.world.level.block.Blocks; 20 21 21 public record VillagerProfession( 22 public record VillagerProfession( 22 String name, 23 Component name, 23 Predicate<Holder<PoiType>> heldJobSite, 24 Predicate<Holder<PoiType>> heldJobSite, 24 Predicate<Holder<PoiType>> acquirableJobSite, 25 Predicate<Holder<PoiType>> acquirableJobSite, 25 ImmutableSet<Item> requestedItems, 26 ImmutableSet<Item> requestedItems, 26 ImmutableSet<Block> secondaryPoi, 27 ImmutableSet<Block> secondaryPoi, 27 @Nullable SoundEvent workSound 28 @Nullable SoundEvent workSound 28 ) { 29 ) { 29 public static final Predicate<Holder<PoiType>> ALL_ACQUIRABLE_JOBS = 30 public static final Predicate<Holder<PoiType>> ALL_ACQUIRABLE_JOBS = .. $$0 -> $$0.is(PoiTypeTags.ACQUIRABLE_JOB_SITE); .. $$0 -> $$0.is(PoiTypeTags.ACQUIRABLE_JOB_SITE); 30 public static final VillagerProfession NONE = register("none", PoiTy 31 public static final ResourceKey<VillagerProfession> NONE = createKey .. pe.NONE, ALL_ACQUIRABLE_JOBS, null); .. ("none"); 31 public static final VillagerProfession ARMORER = register("armorer", 32 public static final ResourceKey<VillagerProfession> ARMORER = create .. PoiTypes.ARMORER, SoundEvents.VILLAGER_WORK_ARMORER); .. Key("armorer"); 32 public static final VillagerProfession BUTCHER = register("butcher", 33 public static final ResourceKey<VillagerProfession> BUTCHER = create .. PoiTypes.BUTCHER, SoundEvents.VILLAGER_WORK_BUTCHER); .. Key("butcher"); 33 public static final VillagerProfession CARTOGRAPHER = register("cart 34 public static final ResourceKey<VillagerProfession> CARTOGRAPHER = c .. ographer", PoiTypes.CARTOGRAPHER, SoundEvents.VILLAGER_WORK_CARTOGRAPHE .. reateKey("cartographer"); .. R); .. 34 public static final VillagerProfession CLERIC = register("cleric", P 35 public static final ResourceKey<VillagerProfession> CLERIC = createK .. oiTypes.CLERIC, SoundEvents.VILLAGER_WORK_CLERIC); .. ey("cleric"); 35 public static final VillagerProfession FARMER = register( 36 public static final ResourceKey<VillagerProfession> FARMER = createK .. .. ey("farmer"); 36 "farmer", .. 37 PoiTypes.FARMER, .. 38 ImmutableSet.of(Items.WHEAT, Items.WHEAT_SEEDS, Items.BEETROOT_SE .. .. EDS, Items.BONE_MEAL), .. 39 ImmutableSet.of(Blocks.FARMLAND), .. 40 SoundEvents.VILLAGER_WORK_FARMER .. 41 ); .. 42 public static final VillagerProfession FISHERMAN = register("fisherm 37 public static final ResourceKey<VillagerProfession> FISHERMAN = crea .. an", PoiTypes.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN); .. teKey("fisherman"); 43 public static final VillagerProfession FLETCHER = register("fletcher 38 public static final ResourceKey<VillagerProfession> FLETCHER = creat .. ", PoiTypes.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER); .. eKey("fletcher"); 44 public static final VillagerProfession LEATHERWORKER = register("lea 39 public static final ResourceKey<VillagerProfession> LEATHERWORKER = .. therworker", PoiTypes.LEATHERWORKER, SoundEvents.VILLAGER_WORK_LEATHERW .. createKey("leatherworker"); .. ORKER); .. 45 public static final VillagerProfession LIBRARIAN = register("librari 40 public static final ResourceKey<VillagerProfession> LIBRARIAN = crea .. an", PoiTypes.LIBRARIAN, SoundEvents.VILLAGER_WORK_LIBRARIAN); .. teKey("librarian"); 46 public static final VillagerProfession MASON = register("mason", Poi 41 public static final ResourceKey<VillagerProfession> MASON = createKe .. Types.MASON, SoundEvents.VILLAGER_WORK_MASON); .. y("mason"); 47 public static final VillagerProfession NITWIT = register("nitwit", P 42 public static final ResourceKey<VillagerProfession> NITWIT = createK .. oiType.NONE, PoiType.NONE, null); .. ey("nitwit"); 48 public static final VillagerProfession SHEPHERD = register("shepherd 43 public static final ResourceKey<VillagerProfession> SHEPHERD = creat .. ", PoiTypes.SHEPHERD, SoundEvents.VILLAGER_WORK_SHEPHERD); .. eKey("shepherd"); 49 public static final VillagerProfession TOOLSMITH = register("toolsmi 44 public static final ResourceKey<VillagerProfession> TOOLSMITH = crea .. th", PoiTypes.TOOLSMITH, SoundEvents.VILLAGER_WORK_TOOLSMITH); .. teKey("toolsmith"); 50 public static final VillagerProfession WEAPONSMITH = register("weapo 45 public static final ResourceKey<VillagerProfession> WEAPONSMITH = cr .. nsmith", PoiTypes.WEAPONSMITH, SoundEvents.VILLAGER_WORK_WEAPONSMITH); .. eateKey("weaponsmith"); 51 46 52 @Override .. 53 public String toString() { 47 private static ResourceKey<VillagerProfession> createKey(String $$0) .. .. { 54 return this.name; 48 return ResourceKey.create(Registries.VILLAGER_PROFESSION, Resourc .. .. eLocation.withDefaultNamespace($$0)); 55 } 49 } 56 50 57 private static VillagerProfession register(String $$0, ResourceKey<P 51 private static VillagerProfession register( .. oiType> $$1, @Nullable SoundEvent $$2) { .. .. 52 Registry<VillagerProfession> $$0, ResourceKey<VillagerProfession> .. .. $$1, ResourceKey<PoiType> $$2, @Nullable SoundEvent $$3 .. 53 ) { 58 return register($$0, $$1x -> $$1x.is($$1), $$1x -> $$1x.is($$1), 54 return register($$0, $$1, $$1x -> $$1x.is($$2), $$1x -> $$1x.is($ .. $$2); .. $2), $$3); 59 } 55 } 60 56 61 private static VillagerProfession register(String $$0, Predicate<Hol 57 private static VillagerProfession register( .. der<PoiType>> $$1, Predicate<Holder<PoiType>> $$2, @Nullable SoundEvent .. .. $$3) { .. .. 58 Registry<VillagerProfession> $$0, .. 59 ResourceKey<VillagerProfession> $$1, .. 60 Predicate<Holder<PoiType>> $$2, .. 61 Predicate<Holder<PoiType>> $$3, .. 62 @Nullable SoundEvent $$4 .. 63 ) { 62 return register($$0, $$1, $$2, ImmutableSet.of(), ImmutableSet.of 64 return register($$0, $$1, $$2, $$3, ImmutableSet.of(), ImmutableS .. (), $$3); .. et.of(), $$4); 63 } 65 } 64 66 65 private static VillagerProfession register(String $$0, ResourceKey<P 67 private static VillagerProfession register( .. oiType> $$1, ImmutableSet<Item> $$2, ImmutableSet<Block> $$3, @Nullable .. .. SoundEvent $$4) { .. .. 68 Registry<VillagerProfession> $$0, .. 69 ResourceKey<VillagerProfession> $$1, .. 70 ResourceKey<PoiType> $$2, .. 71 ImmutableSet<Item> $$3, .. 72 ImmutableSet<Block> $$4, .. 73 @Nullable SoundEvent $$5 .. 74 ) { 66 return register($$0, $$1x -> $$1x.is($$1), $$1x -> $$1x.is($$1), 75 return register($$0, $$1, $$1x -> $$1x.is($$2), $$1x -> $$1x.is($ .. $$2, $$3, $$4); .. $2), $$3, $$4, $$5); 67 } 76 } 68 77 69 private static VillagerProfession register( 78 private static VillagerProfession register( 70 String $$0, Predicate<Holder<PoiType>> $$1, Predicate<Holder<PoiT 79 Registry<VillagerProfession> $$0, .. ype>> $$2, ImmutableSet<Item> $$3, ImmutableSet<Block> $$4, @Nullable S .. .. oundEvent $$5 .. .. 80 ResourceKey<VillagerProfession> $$1, .. 81 Predicate<Holder<PoiType>> $$2, .. 82 Predicate<Holder<PoiType>> $$3, .. 83 ImmutableSet<Item> $$4, .. 84 ImmutableSet<Block> $$5, .. 85 @Nullable SoundEvent $$6 71 ) { 86 ) { 72 return Registry.register( 87 return Registry.register( 73 BuiltInRegistries.VILLAGER_PROFESSION, ResourceLocation.withDe 88 $$0, .. faultNamespace($$0), new VillagerProfession($$0, $$1, $$2, $$3, $$4, $$ .. .. 5) .. .. 89 $$1, .. 90 new VillagerProfession( .. 91 Component.translatable("entity." + $$1.location().getNamesp .. .. ace() + ".villager." + $$1.location().getPath()), $$2, $$3, $$4, $$5, $ .. .. $6 .. 92 ) 74 ); 93 ); 75 } 94 } .. 95 .. 96 public static VillagerProfession bootstrap(Registry<VillagerProfessi .. .. on> $$0) { .. 97 register($$0, NONE, PoiType.NONE, ALL_ACQUIRABLE_JOBS, null); .. 98 register($$0, ARMORER, PoiTypes.ARMORER, SoundEvents.VILLAGER_WOR .. .. K_ARMORER); .. 99 register($$0, BUTCHER, PoiTypes.BUTCHER, SoundEvents.VILLAGER_WOR .. .. K_BUTCHER); .. 100 register($$0, CARTOGRAPHER, PoiTypes.CARTOGRAPHER, SoundEvents.VI .. ... LLAGER_WORK_CARTOGRAPHER); .. 101 register($$0, CLERIC, PoiTypes.CLERIC, SoundEvents.VILLAGER_WORK_ .. ... CLERIC); .. 102 register( .. 103 $$0, .. 104 FARMER, .. 105 PoiTypes.FARMER, .. 106 ImmutableSet.of(Items.WHEAT, Items.WHEAT_SEEDS, Items.BEETROOT .. ... _SEEDS, Items.BONE_MEAL), .. 107 ImmutableSet.of(Blocks.FARMLAND), .. 108 SoundEvents.VILLAGER_WORK_FARMER .. 109 ); .. 110 register($$0, FISHERMAN, PoiTypes.FISHERMAN, SoundEvents.VILLAGER .. ... _WORK_FISHERMAN); .. 111 register($$0, FLETCHER, PoiTypes.FLETCHER, SoundEvents.VILLAGER_W .. ... ORK_FLETCHER); .. 112 register($$0, LEATHERWORKER, PoiTypes.LEATHERWORKER, SoundEvents. .. ... VILLAGER_WORK_LEATHERWORKER); .. 113 register($$0, LIBRARIAN, PoiTypes.LIBRARIAN, SoundEvents.VILLAGER .. ... _WORK_LIBRARIAN); .. 114 register($$0, MASON, PoiTypes.MASON, SoundEvents.VILLAGER_WORK_MA .. ... SON); .. 115 register($$0, NITWIT, PoiType.NONE, PoiType.NONE, null); .. 116 register($$0, SHEPHERD, PoiTypes.SHEPHERD, SoundEvents.VILLAGER_W .. ... ORK_SHEPHERD); .. 117 register($$0, TOOLSMITH, PoiTypes.TOOLSMITH, SoundEvents.VILLAGER .. ... _WORK_TOOLSMITH); .. 118 return register($$0, WEAPONSMITH, PoiTypes.WEAPONSMITH, SoundEven .. ... ts.VILLAGER_WORK_WEAPONSMITH); .. 119 } 76 } 120 } net/minecraft/client/model/AbstractEquineModel.java --- 1/5 --- Java 21 private static final float DEG_30 = (float) (Math.PI / 6); 21 private static final float DEG_30 = (float) (Math.PI / 6); 22 private static final float DEG_15 = (float) (Math.PI / 12); 22 private static final float DEG_15 = (float) (Math.PI / 12); 23 protected static final String HEAD_PARTS = "head_parts"; 23 protected static final String HEAD_PARTS = "head_parts"; 24 private static final String SADDLE = "saddle"; .. 25 private static final String LEFT_SADDLE_MOUTH = "left_saddle_mouth"; .. 26 private static final String LEFT_SADDLE_LINE = "left_saddle_line"; .. 27 private static final String RIGHT_SADDLE_MOUTH = "right_saddle_mouth .. .. "; .. 28 private static final String RIGHT_SADDLE_LINE = "right_saddle_line"; .. 29 private static final String HEAD_SADDLE = "head_saddle"; .. 30 private static final String MOUTH_SADDLE_WRAP = "mouth_saddle_wrap"; .. 31 protected static final MeshTransformer BABY_TRANSFORMER = new BabyMo 24 protected static final MeshTransformer BABY_TRANSFORMER = new BabyMo .. delTransform(true, 16.2F, 1.36F, 2.7272F, 2.0F, 20.0F, Set.of("head_par .. delTransform(true, 16.2F, 1.36F, 2.7272F, 2.0F, 20.0F, Set.of("head_par .. ts")); .. ts")); 32 protected final ModelPart body; 25 protected final ModelPart body; 33 protected final ModelPart headParts; 26 protected final ModelPart headParts; net/minecraft/client/model/AbstractEquineModel.java --- 2/5 --- Java 36 private final ModelPart rightFrontLeg; 29 private final ModelPart rightFrontLeg; 37 private final ModelPart leftFrontLeg; 30 private final ModelPart leftFrontLeg; 38 private final ModelPart tail; 31 private final ModelPart tail; 39 private final ModelPart[] saddleParts; .. 40 private final ModelPart[] ridingParts; .. 41 32 42 public AbstractEquineModel(ModelPart $$0) { 33 public AbstractEquineModel(ModelPart $$0) { 43 super($$0); 34 super($$0); net/minecraft/client/model/AbstractEquineModel.java --- 3/5 --- Java 48 this.rightFrontLeg = $$0.getChild("right_front_leg"); 39 this.rightFrontLeg = $$0.getChild("right_front_leg"); 49 this.leftFrontLeg = $$0.getChild("left_front_leg"); 40 this.leftFrontLeg = $$0.getChild("left_front_leg"); 50 this.tail = this.body.getChild("tail"); 41 this.tail = this.body.getChild("tail"); 51 ModelPart $$1 = this.body.getChild("saddle"); .. 52 ModelPart $$2 = this.headParts.getChild("left_saddle_mouth"); .. 53 ModelPart $$3 = this.headParts.getChild("right_saddle_mouth"); .. 54 ModelPart $$4 = this.headParts.getChild("left_saddle_line"); .. 55 ModelPart $$5 = this.headParts.getChild("right_saddle_line"); .. 56 ModelPart $$6 = this.headParts.getChild("head_saddle"); .. 57 ModelPart $$7 = this.headParts.getChild("mouth_saddle_wrap"); .. 58 this.saddleParts = new ModelPart[]{$$1, $$2, $$3, $$6, $$7}; .. 59 this.ridingParts = new ModelPart[]{$$4, $$5}; .. 60 } 42 } 61 43 62 public static MeshDefinition createBodyMesh(CubeDeformation $$0) { 44 public static MeshDefinition createBodyMesh(CubeDeformation $$0) { net/minecraft/client/model/AbstractEquineModel.java --- 4/5 --- Java 100 CubeListBuilder.create().texOffs(42, 36).addBox(-1.5F, 0.0F, 82 CubeListBuilder.create().texOffs(42, 36).addBox(-1.5F, 0.0F, ... 0.0F, 3.0F, 14.0F, 4.0F, $$0), .. 0.0F, 3.0F, 14.0F, 4.0F, $$0), 101 PartPose.offsetAndRotation(0.0F, -5.0F, 2.0F, (float) (Math.P 83 PartPose.offsetAndRotation(0.0F, -5.0F, 2.0F, (float) (Math.P ... I / 6), 0.0F, 0.0F) .. I / 6), 0.0F, 0.0F) 102 ); 84 ); 103 $$3.addOrReplaceChild( .. 104 "saddle", CubeListBuilder.create().texOffs(26, 0).addBox(-5.0 .. ... F, -8.0F, -9.0F, 10.0F, 9.0F, 9.0F, new CubeDeformation(0.5F)), PartPo .. ... se.ZERO .. 105 ); .. 106 $$4.addOrReplaceChild("left_saddle_mouth", CubeListBuilder.creat .. ... e().texOffs(29, 5).addBox(2.0F, -9.0F, -6.0F, 1.0F, 2.0F, 2.0F, $$0), .. ... PartPose.ZERO); .. 107 $$4.addOrReplaceChild("right_saddle_mouth", CubeListBuilder.crea .. ... te().texOffs(29, 5).addBox(-3.0F, -9.0F, -6.0F, 1.0F, 2.0F, 2.0F, $$0) .. ... , PartPose.ZERO); .. 108 $$4.addOrReplaceChild( .. 109 "left_saddle_line", .. 110 CubeListBuilder.create().texOffs(32, 2).addBox(3.1F, -6.0F, - .. ... 8.0F, 0.0F, 3.0F, 16.0F), .. 111 PartPose.rotation((float) (-Math.PI / 6), 0.0F, 0.0F) .. 112 ); .. 113 $$4.addOrReplaceChild( .. 114 "right_saddle_line", .. 115 CubeListBuilder.create().texOffs(32, 2).addBox(-3.1F, -6.0F, .. ... -8.0F, 0.0F, 3.0F, 16.0F), .. 116 PartPose.rotation((float) (-Math.PI / 6), 0.0F, 0.0F) .. 117 ); .. 118 $$4.addOrReplaceChild( .. 119 "head_saddle", CubeListBuilder.create().texOffs(1, 1).addBox( .. ... -3.0F, -11.0F, -1.9F, 6.0F, 5.0F, 6.0F, new CubeDeformation(0.22F)), P .. ... artPose.ZERO .. 120 ); .. 121 $$4.addOrReplaceChild( .. 122 "mouth_saddle_wrap", CubeListBuilder.create().texOffs(19, 0). .. ... addBox(-2.0F, -11.0F, -4.0F, 4.0F, 5.0F, 2.0F, new CubeDeformation(0.2 .. ... F)), PartPose.ZERO .. 123 ); .. 124 $$5.addOrReplaceChild( 85 $$5.addOrReplaceChild( 125 "left_ear", CubeListBuilder.create().texOffs(19, 16).addBox(0 86 "left_ear", CubeListBuilder.create().texOffs(19, 16).addBox(0 ... .55F, -13.0F, 4.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(-0.001F)), P .. .55F, -13.0F, 4.0F, 2.0F, 3.0F, 1.0F, new CubeDeformation(-0.001F)), P ... artPose.ZERO .. artPose.ZERO 126 ); 87 ); net/minecraft/client/model/AbstractEquineModel.java --- 5/5 --- Java 162 public void setupAnim(T $$0) { 123 public void setupAnim(T $$0) { 163 super.setupAnim($$0); 124 super.setupAnim($$0); 164 ... 165 for (ModelPart $$1 : this.saddleParts) { ... 166 $$1.visible = $$0.isSaddled; ... 167 } ... 168 ... 169 for (ModelPart $$2 : this.ridingParts) { ... 170 $$2.visible = $$0.isRidden && $$0.isSaddled; ... 171 } ... 172 ... 173 float $$3 = Mth.clamp($$0.yRot, -20.0F, 20.0F); 125 float $$1 = Mth.clamp($$0.yRot, -20.0F, 20.0F); 174 float $$4 = $$0.xRot * (float) (Math.PI / 180.0); 126 float $$2 = $$0.xRot * (float) (Math.PI / 180.0); 175 float $$5 = $$0.walkAnimationSpeed; 127 float $$3 = $$0.walkAnimationSpeed; 176 float $$6 = $$0.walkAnimationPos; 128 float $$4 = $$0.walkAnimationPos; 177 if ($$5 > 0.2F) { 129 if ($$3 > 0.2F) { 178 $$4 += Mth.cos($$6 * 0.8F) * 0.15F * $$5; 130 $$2 += Mth.cos($$4 * 0.8F) * 0.15F * $$3; 179 } 131 } 180 132 181 float $$7 = $$0.eatAnimation; 133 float $$5 = $$0.eatAnimation; 182 float $$8 = $$0.standAnimation; 134 float $$6 = $$0.standAnimation; 183 float $$9 = 1.0F - $$8; 135 float $$7 = 1.0F - $$6; 184 float $$10 = $$0.feedingAnimation; 136 float $$8 = $$0.feedingAnimation; 185 boolean $$11 = $$0.animateTail; 137 boolean $$9 = $$0.animateTail; 186 this.headParts.xRot = (float) (Math.PI / 6) + $$4; 138 this.headParts.xRot = (float) (Math.PI / 6) + $$2; 187 this.headParts.yRot = $$3 * (float) (Math.PI / 180.0); 139 this.headParts.yRot = $$1 * (float) (Math.PI / 180.0); 188 float $$12 = $$0.isInWater ? 0.2F : 1.0F; 140 float $$10 = $$0.isInWater ? 0.2F : 1.0F; 189 float $$13 = Mth.cos($$12 * $$6 * 0.6662F + (float) Math.PI); 141 float $$11 = Mth.cos($$10 * $$4 * 0.6662F + (float) Math.PI); 190 float $$14 = $$13 * 0.8F * $$5; 142 float $$12 = $$11 * 0.8F * $$3; 191 float $$15 = (1.0F - Math.max($$8, $$7)) * ((float) (Math.PI / 6 143 float $$13 = (1.0F - Math.max($$6, $$5)) * ((float) (Math.PI / 6 ... ) + $$4 + $$10 * Mth.sin($$0.ageInTicks) * 0.05F); ... ) + $$2 + $$8 * Mth.sin($$0.ageInTicks) * 0.05F); 192 this.headParts.xRot = $$8 * ((float) (Math.PI / 12) + $$4) + $$7 144 this.headParts.xRot = $$6 * ((float) (Math.PI / 12) + $$2) + $$5 ... * (2.1816616F + Mth.sin($$0.ageInTicks) * 0.05F) + $$15; ... * (2.1816616F + Mth.sin($$0.ageInTicks) * 0.05F) + $$13; 193 this.headParts.yRot = $$8 * $$3 * (float) (Math.PI / 180.0) + (1 145 this.headParts.yRot = $$6 * $$1 * (float) (Math.PI / 180.0) + (1 ... .0F - Math.max($$8, $$7)) * this.headParts.yRot; ... .0F - Math.max($$6, $$5)) * this.headParts.yRot; 194 float $$16 = $$0.ageScale; 146 float $$14 = $$0.ageScale; 195 this.headParts.y = this.headParts.y + Mth.lerp($$7, Mth.lerp($$8 147 this.headParts.y = this.headParts.y + Mth.lerp($$5, Mth.lerp($$6 ... , 0.0F, -8.0F * $$16), 7.0F * $$16); ... , 0.0F, -8.0F * $$14), 7.0F * $$14); 196 this.headParts.z = Mth.lerp($$8, this.headParts.z, -4.0F * $$16) 148 this.headParts.z = Mth.lerp($$6, this.headParts.z, -4.0F * $$14) ... ; ... ; 197 this.body.xRot = $$8 * (float) (-Math.PI / 4) + $$9 * this.body. 149 this.body.xRot = $$6 * (float) (-Math.PI / 4) + $$7 * this.body. ... xRot; ... xRot; 198 float $$17 = (float) (Math.PI / 12) * $$8; 150 float $$15 = (float) (Math.PI / 12) * $$6; 199 float $$18 = Mth.cos($$0.ageInTicks * 0.6F + (float) Math.PI); 151 float $$16 = Mth.cos($$0.ageInTicks * 0.6F + (float) Math.PI); 200 this.leftFrontLeg.y -= 12.0F * $$16 * $$8; 152 this.leftFrontLeg.y -= 12.0F * $$14 * $$6; 201 this.leftFrontLeg.z += 4.0F * $$16 * $$8; 153 this.leftFrontLeg.z += 4.0F * $$14 * $$6; 202 this.rightFrontLeg.y = this.leftFrontLeg.y; 154 this.rightFrontLeg.y = this.leftFrontLeg.y; 203 this.rightFrontLeg.z = this.leftFrontLeg.z; 155 this.rightFrontLeg.z = this.leftFrontLeg.z; 204 float $$19 = ((float) (-Math.PI / 3) + $$18) * $$8 + $$14 * $$9; 156 float $$17 = ((float) (-Math.PI / 3) + $$16) * $$6 + $$12 * $$7; 205 float $$20 = ((float) (-Math.PI / 3) - $$18) * $$8 - $$14 * $$9; 157 float $$18 = ((float) (-Math.PI / 3) - $$16) * $$6 - $$12 * $$7; 206 this.leftHindLeg.xRot = $$17 - $$13 * 0.5F * $$5 * $$9; 158 this.leftHindLeg.xRot = $$15 - $$11 * 0.5F * $$3 * $$7; 207 this.rightHindLeg.xRot = $$17 + $$13 * 0.5F * $$5 * $$9; 159 this.rightHindLeg.xRot = $$15 + $$11 * 0.5F * $$3 * $$7; 208 this.leftFrontLeg.xRot = $$19; 160 this.leftFrontLeg.xRot = $$17; 209 this.rightFrontLeg.xRot = $$20; 161 this.rightFrontLeg.xRot = $$18; 210 this.tail.xRot = (float) (Math.PI / 6) + $$5 * 0.75F; 162 this.tail.xRot = (float) (Math.PI / 6) + $$3 * 0.75F; 211 this.tail.y += $$5 * $$16; 163 this.tail.y += $$3 * $$14; 212 this.tail.z += $$5 * 2.0F * $$16; 164 this.tail.z += $$3 * 2.0F * $$14; 213 if ($$11) { 165 if ($$9) { 214 this.tail.yRot = Mth.cos($$0.ageInTicks * 0.7F); 166 this.tail.yRot = Mth.cos($$0.ageInTicks * 0.7F); 215 } else { 167 } else { 216 this.tail.yRot = 0.0F; 168 this.tail.yRot = 0.0F; net/minecraft/gametest/framework/TestFinder.java --- 1/2 --- Java 1 package net.minecraft.gametest.framework; 1 package net.minecraft.gametest.framework; 2 2 3 import com.mojang.brigadier.context.CommandContext; 3 import com.mojang.brigadier.context.CommandContext; 4 import java.util.LinkedList; 4 import java.util.Collection; 5 import java.util.List; 5 import java.util.LinkedList; 6 import java.util.function.Function; 6 import java.util.List; 7 import java.util.function.Supplier; 7 import java.util.function.Supplier; 8 import java.util.function.UnaryOperator; 8 import java.util.function.UnaryOperator; 9 import java.util.stream.Stream; 9 import java.util.stream.Stream; 10 import net.minecraft.commands.CommandSourceStack; 10 import net.minecraft.commands.CommandSourceStack; 11 import net.minecraft.core.BlockPos; 11 import net.minecraft.core.BlockPos; .. 12 import net.minecraft.core.Holder; 12 13 13 public class TestFinder<T> implements StructureBlockPosFinder, TestFunc 14 public class TestFinder implements TestInstanceFinder, TestPosFinder { .. tionFinder { .. 14 static final TestFunctionFinder NO_FUNCTIONS = Stream::empty; 15 static final TestInstanceFinder NO_FUNCTIONS = Stream::empty; 15 static final StructureBlockPosFinder NO_STRUCTURES = Stream::empty; 16 static final TestPosFinder NO_STRUCTURES = Stream::empty; 16 private final TestFunctionFinder testFunctionFinder; 17 private final TestInstanceFinder testInstanceFinder; 17 private final StructureBlockPosFinder structureBlockPosFinder; 18 private final TestPosFinder testPosFinder; 18 private final CommandSourceStack source; 19 private final CommandSourceStack source; 19 private final Function<TestFinder<T>, T> contextProvider; .. 20 20 21 @Override 21 @Override 22 public Stream<BlockPos> findStructureBlockPos() { 22 public Stream<BlockPos> findTestPos() { 23 return this.structureBlockPosFinder.findStructureBlockPos(); 23 return this.testPosFinder.findTestPos(); 24 } 24 } .. 25 .. 26 public static TestFinder.Builder builder() { .. 27 return new TestFinder.Builder(); .. 28 } 25 29 26 TestFinder(CommandSourceStack $$0, Function<TestFinder<T>, T> $$1, T 30 TestFinder(CommandSourceStack $$0, TestInstanceFinder $$1, TestPosFi .. estFunctionFinder $$2, StructureBlockPosFinder $$3) { .. nder $$2) { 27 this.source = $$0; 31 this.source = $$0; 28 this.contextProvider = $$1; 32 this.testInstanceFinder = $$1; 29 this.testFunctionFinder = $$2; 33 this.testPosFinder = $$2; 30 this.structureBlockPosFinder = $$3; .. 31 } 34 } 32 .. 33 T get() { .. 34 return this.contextProvider.apply(this); .. 35 } .. 36 35 37 public CommandSourceStack source() { 36 public CommandSourceStack source() { 38 return this.source; 37 return this.source; 39 } 38 } 40 39 41 @Override 40 @Override 42 public Stream<TestFunction> findTestFunctions() { 41 public Stream<Holder.Reference<GameTestInstance>> findTests() { 43 return this.testFunctionFinder.findTestFunctions(); 42 return this.testInstanceFinder.findTests(); 44 } 43 } 45 44 46 public static class Builder<T> { 45 public static class Builder { 47 private final Function<TestFinder<T>, T> contextProvider; .. 48 private final UnaryOperator<Supplier<Stream<TestFunction>>> testF 46 private final UnaryOperator<Supplier<Stream<Holder.Reference<Game .. unctionFinderWrapper; .. TestInstance>>>> testFinderWrapper; 49 private final UnaryOperator<Supplier<Stream<BlockPos>>> structure 47 private final UnaryOperator<Supplier<Stream<BlockPos>>> structure .. BlockPosFinderWrapper; .. BlockPosFinderWrapper; 50 48 51 public Builder(Function<TestFinder<T>, T> $$0) { 49 public Builder() { 52 this.contextProvider = $$0; .. 53 this.testFunctionFinderWrapper = $$0x -> $$0x; 50 this.testFinderWrapper = $$0 -> $$0; 54 this.structureBlockPosFinderWrapper = $$0x -> $$0x; 51 this.structureBlockPosFinderWrapper = $$0 -> $$0; 55 } 52 } 56 53 57 private Builder(Function<TestFinder<T>, T> $$0, UnaryOperator<Sup 54 private Builder(UnaryOperator<Supplier<Stream<Holder.Reference<Ga .. plier<Stream<TestFunction>>> $$1, UnaryOperator<Supplier<Stream<BlockPo .. meTestInstance>>>> $$0, UnaryOperator<Supplier<Stream<BlockPos>>> $$1) .. s>>> $$2) { .. { 58 this.contextProvider = $$0; 55 this.testFinderWrapper = $$0; 59 this.testFunctionFinderWrapper = $$1; .. 60 this.structureBlockPosFinderWrapper = $$2; 56 this.structureBlockPosFinderWrapper = $$1; 61 } 57 } 62 58 63 public TestFinder.Builder<T> createMultipleCopies(int $$0) { 59 public TestFinder.Builder createMultipleCopies(int $$0) { 64 return new TestFinder.Builder<>(this.contextProvider, createCo 60 return new TestFinder.Builder(createCopies($$0), createCopies( .. pies($$0), createCopies($$0)); .. $$0)); 65 } 61 } 66 62 67 private static <Q> UnaryOperator<Supplier<Stream<Q>>> createCopie 63 private static <Q> UnaryOperator<Supplier<Stream<Q>>> createCopie s(int $$0) { s(int $$0) { net/minecraft/gametest/framework/TestFinder.java --- 2/2 --- Java 77 }; 73 }; 78 } 74 } 79 75 80 private T build(CommandSourceStack $$0, TestFunctionFinder $$1, 76 private TestFinder build(CommandSourceStack $$0, TestInstanceFin .. StructureBlockPosFinder $$2) { .. der $$1, TestPosFinder $$2) { 81 return new TestFinder<>( 77 return new TestFinder($$0, this.testFinderWrapper.apply($$1:: .. .. findTests)::get, this.structureBlockPosFinderWrapper.apply($$2::findTe .. .. stPos)::get); 82 $$0, .. 83 this.contextProvider, .. 84 this.testFunctionFinderWrapper.apply($$1::findTestFunct .. .. ions)::get, .. 85 this.structureBlockPosFinderWrapper.apply($$2::findStru .. .. ctureBlockPos)::get .. 86 ) .. 87 .get(); .. 88 } 78 } 89 79 90 public T radius(CommandContext<CommandSourceStack> $$0, int $$1) 80 public TestFinder radius(CommandContext<CommandSourceStack> $$0, .. { .. int $$1) { 91 CommandSourceStack $$2 = $$0.getSource(); 81 CommandSourceStack $$2 = $$0.getSource(); 92 BlockPos $$3 = BlockPos.containing($$2.getPosition()); 82 BlockPos $$3 = BlockPos.containing($$2.getPosition()); 93 return this.build($$2, TestFinder.NO_FUNCTIONS, () -> Structu 83 return this.build($$2, TestFinder.NO_FUNCTIONS, () -> Structu .. reUtils.findStructureBlocks($$3, $$1, $$2.getLevel())); .. reUtils.findTestBlocks($$3, $$1, $$2.getLevel())); 94 } 84 } 95 85 96 public T nearest(CommandContext<CommandSourceStack> $$0) { 86 public TestFinder nearest(CommandContext<CommandSourceStack> $$0 .. .. ) { 97 CommandSourceStack $$1 = $$0.getSource(); 87 CommandSourceStack $$1 = $$0.getSource(); 98 BlockPos $$2 = BlockPos.containing($$1.getPosition()); 88 BlockPos $$2 = BlockPos.containing($$1.getPosition()); 99 return this.build($$1, TestFinder.NO_FUNCTIONS, () -> Structu 89 return this.build($$1, TestFinder.NO_FUNCTIONS, () -> Structu .. reUtils.findNearestStructureBlock($$2, 15, $$1.getLevel()).stream()); .. reUtils.findNearestTest($$2, 15, $$1.getLevel()).stream()); 100 } 90 } 101 91 102 public T allNearby(CommandContext<CommandSourceStack> $$0) { 92 public TestFinder allNearby(CommandContext<CommandSourceStack> $ ... .. $0) { 103 CommandSourceStack $$1 = $$0.getSource(); 93 CommandSourceStack $$1 = $$0.getSource(); 104 BlockPos $$2 = BlockPos.containing($$1.getPosition()); 94 BlockPos $$2 = BlockPos.containing($$1.getPosition()); 105 return this.build($$1, TestFinder.NO_FUNCTIONS, () -> Structu 95 return this.build($$1, TestFinder.NO_FUNCTIONS, () -> Structu ... reUtils.findStructureBlocks($$2, 200, $$1.getLevel())); .. reUtils.findTestBlocks($$2, 200, $$1.getLevel())); 106 } 96 } 107 97 108 public T lookedAt(CommandContext<CommandSourceStack> $$0) { 98 public TestFinder lookedAt(CommandContext<CommandSourceStack> $$ ... .. 0) { 109 CommandSourceStack $$1 = $$0.getSource(); 99 CommandSourceStack $$1 = $$0.getSource(); 110 return this.build( 100 return this.build( 111 $$1, 101 $$1, 112 TestFinder.NO_FUNCTIONS, 102 TestFinder.NO_FUNCTIONS, 113 () -> StructureUtils.lookedAtStructureBlockPos(BlockPos.co 103 () -> StructureUtils.lookedAtTestPos(BlockPos.containing($ ... ntaining($$1.getPosition()), $$1.getPlayer().getCamera(), $$1.getLevel ... $1.getPosition()), $$1.getPlayer().getCamera(), $$1.getLevel()) ... ()) ... 114 ); 104 ); 115 } 105 } 116 106 117 public T allTests(CommandContext<CommandSourceStack> $$0) { 107 public TestFinder failedTests(CommandContext<CommandSourceStack> ... ... $$0, boolean $$1) { 118 return this.build($$0.getSource(), () -> GameTestRegistry.get ... ... AllTestFunctions().stream().filter($$0x -> !$$0x.manualOnly()), TestFi ... ... nder.NO_STRUCTURES); ... 119 } ... 120 ... 121 public T allTestsInClass(CommandContext<CommandSourceStack> $$0, ... ... String $$1) { ... 122 return this.build( ... 123 $$0.getSource(), () -> GameTestRegistry.getTestFunctionsFo ... ... rClassName($$1).filter($$0xx -> !$$0xx.manualOnly()), TestFinder.NO_ST ... ... RUCTURES ... 124 ); ... 125 } ... 126 ... 127 public T failedTests(CommandContext<CommandSourceStack> $$0, boo ... ... lean $$1) { ... 128 return this.build($$0.getSource(), () -> GameTestRegistry.get 108 return this.build( ... LastFailedTests().filter($$1x -> !$$1 || $$1x.required()), TestFinder. ... ... NO_STRUCTURES); ... ... 109 $$0.getSource(), ... 110 () -> FailedTestTracker.getLastFailedTests().filter($$1x - ... ... > !$$1 || ((GameTestInstance)$$1x.value()).required()), ... 111 TestFinder.NO_STRUCTURES ... 112 ); 129 } 113 } 130 114 131 public T byArgument(CommandContext<CommandSourceStack> $$0, Stri 115 public TestFinder byResourceSelection(CommandContext<CommandSour ... ng $$1) { ... ceStack> $$0, Collection<Holder.Reference<GameTestInstance>> $$1) { 132 return this.build($$0.getSource(), () -> Stream.of(TestFuncti 116 return this.build($$0.getSource(), $$1::stream, TestFinder.NO ... onArgument.getTestFunction($$0, $$1)), TestFinder.NO_STRUCTURES); ... _STRUCTURES); 133 } 117 } 134 118 135 public T locateByName(CommandContext<CommandSourceStack> $$0, St 119 public TestFinder failedTests(CommandContext<CommandSourceStack> ... ring $$1) { ... $$0) { 136 CommandSourceStack $$2 = $$0.getSource(); ... 137 BlockPos $$3 = BlockPos.containing($$2.getPosition()); ... 138 return this.build($$2, TestFinder.NO_FUNCTIONS, () -> Structu ... ... reUtils.findStructureByTestFunction($$3, 1024, $$2.getLevel(), $$1)); ... 139 } ... 140 ... 141 public T failedTests(CommandContext<CommandSourceStack> $$0) { ... 142 return this.failedTests($$0, false); 120 return this.failedTests($$0, false); 143 } 121 } 144 } 122 } net/minecraft/world/entity/animal/horse/Llama.java --- 1/7 --- Java 1 package net.minecraft.world.entity.animal.horse; 1 package net.minecraft.world.entity.animal.horse; 2 2 3 import com.mojang.serialization.Codec; 3 import com.mojang.serialization.Codec; . 4 import io.netty.buffer.ByteBuf; 4 import java.util.function.IntFunction; 5 import java.util.function.IntFunction; 5 import javax.annotation.Nullable; 6 import javax.annotation.Nullable; 6 import net.minecraft.Util; 7 import net.minecraft.Util; 7 import net.minecraft.core.BlockPos; 8 import net.minecraft.core.BlockPos; . 9 import net.minecraft.core.component.DataComponentGetter; . 10 import net.minecraft.core.component.DataComponentType; . 11 import net.minecraft.core.component.DataComponents; 8 import net.minecraft.core.particles.ParticleTypes; 12 import net.minecraft.core.particles.ParticleTypes; 9 import net.minecraft.nbt.CompoundTag; 13 import net.minecraft.nbt.CompoundTag; . 14 import net.minecraft.network.codec.ByteBufCodecs; . 15 import net.minecraft.network.codec.StreamCodec; 10 import net.minecraft.network.syncher.EntityDataAccessor; 16 import net.minecraft.network.syncher.EntityDataAccessor; 11 import net.minecraft.network.syncher.EntityDataSerializers; 17 import net.minecraft.network.syncher.EntityDataSerializers; 12 import net.minecraft.network.syncher.SynchedEntityData; 18 import net.minecraft.network.syncher.SynchedEntityData; net/minecraft/world/entity/animal/horse/Llama.java --- 2/7 --- Java 30 import net.minecraft.world.entity.LivingEntity; 36 import net.minecraft.world.entity.LivingEntity; 31 import net.minecraft.world.entity.Pose; 37 import net.minecraft.world.entity.Pose; 32 import net.minecraft.world.entity.SpawnGroupData; 38 import net.minecraft.world.entity.SpawnGroupData; 33 import net.minecraft.world.entity.VariantHolder; .. 34 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 39 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 35 import net.minecraft.world.entity.ai.goal.BreedGoal; 40 import net.minecraft.world.entity.ai.goal.BreedGoal; 36 import net.minecraft.world.entity.ai.goal.FloatGoal; 41 import net.minecraft.world.entity.ai.goal.FloatGoal; net/minecraft/world/entity/animal/horse/Llama.java --- 3/7 --- Java 59 import net.minecraft.world.level.block.state.BlockState; 64 import net.minecraft.world.level.block.state.BlockState; 60 import net.minecraft.world.phys.Vec3; 65 import net.minecraft.world.phys.Vec3; 61 66 62 public class Llama extends AbstractChestedHorse implements VariantHolde 67 public class Llama extends AbstractChestedHorse implements RangedAttack .. r<Llama.Variant>, RangedAttackMob { .. Mob { 63 private static final int MAX_STRENGTH = 5; 68 private static final int MAX_STRENGTH = 5; 64 private static final EntityDataAccessor<Integer> DATA_STRENGTH_ID = 69 private static final EntityDataAccessor<Integer> DATA_STRENGTH_ID = .. SynchedEntityData.defineId(Llama.class, EntityDataSerializers.INT); .. SynchedEntityData.defineId(Llama.class, EntityDataSerializers.INT); 65 private static final EntityDataAccessor<Integer> DATA_VARIANT_ID = S 70 private static final EntityDataAccessor<Integer> DATA_VARIANT_ID = S ynchedEntityData.defineId(Llama.class, EntityDataSerializers.INT); ynchedEntityData.defineId(Llama.class, EntityDataSerializers.INT); net/minecraft/world/entity/animal/horse/Llama.java --- 4/7 --- Java 141 return Llama.Variant.byId(this.entityData.get(DATA_VARIANT_ID)); 146 return Llama.Variant.byId(this.entityData.get(DATA_VARIANT_ID)); 142 } 147 } 143 148 144 public void setVariant(Llama.Variant $$0) { 149 private void setVariant(Llama.Variant $$0) { 145 this.entityData.set(DATA_VARIANT_ID, $$0.id); 150 this.entityData.set(DATA_VARIANT_ID, $$0.id); 146 } 151 } ... 152 ... 153 @Nullable ... 154 @Override ... 155 public <T> T get(DataComponentType<? extends T> $$0) { ... 156 return $$0 == DataComponents.LLAMA_VARIANT ? castComponentValue( ... ... (DataComponentType<T>)$$0, this.getVariant()) : super.get($$0); ... 157 } ... 158 ... 159 @Override ... 160 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 161 this.applyImplicitComponentIfPresent($$0, DataComponents.LLAMA_V ... ... ARIANT); ... 162 super.applyImplicitComponents($$0); ... 163 } ... 164 ... 165 @Override ... 166 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 167 if ($$0 == DataComponents.LLAMA_VARIANT) { ... 168 this.setVariant(castComponentValue(DataComponents.LLAMA_VARIA ... ... NT, $$1)); ... 169 return true; ... 170 } else { ... 171 return super.applyImplicitComponent($$0, $$1); ... 172 } ... 173 } 147 174 148 @Override 175 @Override 149 public boolean isFood(ItemStack $$0) { 176 public boolean isFood(ItemStack $$0) { net/minecraft/world/entity/animal/horse/Llama.java --- 5/7 --- Java 281 return true; 308 return true; 282 } 309 } 283 ... 284 @Override ... 285 public boolean isSaddleable() { ... 286 return false; ... 287 } ... 288 310 289 @Override 311 @Override 290 public int getMaxTemper() { 312 public int getMaxTemper() { net/minecraft/world/entity/animal/horse/Llama.java --- 6/7 --- Java 351 } 373 } 352 374 353 @Override 375 @Override 354 public boolean causeFallDamage(float $$0, float $$1, DamageSource $ 376 public boolean causeFallDamage(double $$0, float $$1, DamageSource ... $2) { ... $$2) { 355 int $$3 = this.calculateFallDamage($$0, $$1); 377 int $$3 = this.calculateFallDamage($$0, $$1); 356 if ($$3 <= 0) { 378 if ($$3 <= 0) { 357 return false; 379 return false; 358 } else { 380 } else { 359 if ($$0 >= 6.0F) { 381 if ($$0 >= 6.0) { 360 this.hurt($$2, (float)$$3); 382 this.hurt($$2, (float)$$3); 361 if (this.isVehicle()) { 383 if (this.isVehicle()) { 362 for (Entity $$4 : this.getIndirectPassengers()) { 384 for (Entity $$4 : this.getIndirectPassengers()) { net/minecraft/world/entity/animal/horse/Llama.java --- 7/7 --- Java 477 499 478 public static final Codec<Llama.Variant> CODEC = StringRepresent 500 public static final Codec<Llama.Variant> CODEC = StringRepresent ... able.fromEnum(Llama.Variant::values); ... able.fromEnum(Llama.Variant::values); 479 private static final IntFunction<Llama.Variant> BY_ID = ByIdMap. 501 private static final IntFunction<Llama.Variant> BY_ID = ByIdMap. ... continuous(Llama.Variant::getId, values(), ByIdMap.OutOfBoundsStrategy ... continuous(Llama.Variant::getId, values(), ByIdMap.OutOfBoundsStrategy ... .CLAMP); ... .CLAMP); ... 502 public static final StreamCodec<ByteBuf, Llama.Variant> STREAM_C ... ... ODEC = ByteBufCodecs.idMapper(BY_ID, Llama.Variant::getId); 480 final int id; 503 final int id; 481 private final String name; 504 private final String name; 482 505 net/minecraft/util/datafix/fixes/EntityEquipmentToArmorAndHandFix.java --- 1/2 --- Java 3 import com.google.common.collect.Lists; 3 import com.google.common.collect.Lists; 4 import com.mojang.datafixers.DSL; 4 import com.mojang.datafixers.DSL; 5 import com.mojang.datafixers.DataFix; 5 import com.mojang.datafixers.DataFix; 6 import com.mojang.datafixers.OpticFinder; . 7 import com.mojang.datafixers.TypeRewriteRule; 6 import com.mojang.datafixers.TypeRewriteRule; 8 import com.mojang.datafixers.schemas.Schema; 7 import com.mojang.datafixers.schemas.Schema; 9 import com.mojang.datafixers.types.Type; 8 import com.mojang.datafixers.types.Type; net/minecraft/util/datafix/fixes/EntityEquipmentToArmorAndHandFix.java --- 2/2 --- Java 14 import java.util.Iterator; 13 import java.util.Iterator; 15 import java.util.List; 14 import java.util.List; 16 import java.util.Optional; 15 import java.util.Optional; .. 16 import java.util.function.Function; 17 import java.util.stream.Stream; 17 import java.util.stream.Stream; 18 18 19 public class EntityEquipmentToArmorAndHandFix extends DataFix { 19 public class EntityEquipmentToArmorAndHandFix extends DataFix { 20 public EntityEquipmentToArmorAndHandFix(Schema $$0, boolean $$1) { 20 public EntityEquipmentToArmorAndHandFix(Schema $$0) { 21 super($$0, $$1); 21 super($$0, true); 22 } 22 } 23 23 24 @Override 24 @Override 25 public TypeRewriteRule makeRule() { 25 public TypeRewriteRule makeRule() { 26 return this.cap(this.getInputSchema().getTypeRaw(References.ITEM_ 26 return this.cap(this.getInputSchema().getTypeRaw(References.ITEM_ .. STACK)); .. STACK), this.getOutputSchema().getTypeRaw(References.ITEM_STACK)); 27 } 27 } 28 28 29 private <IS> TypeRewriteRule cap(Type<IS> $$0) { 29 private <ItemStackOld, ItemStackNew> TypeRewriteRule cap(Type<ItemSt .. .. ackOld> $$0, Type<ItemStackNew> $$1) { 30 Type<Pair<Either<List<IS>, Unit>, Dynamic<?>>> $$1 = DSL.and(DSL. 30 Type<Pair<String, Either<List<ItemStackOld>, Unit>>> $$2 = DSL.na .. optional(DSL.field("Equipment", DSL.list($$0))), DSL.remainderType()); .. med( .. 31 References.ENTITY_EQUIPMENT.typeName(), DSL.optional(DSL.field .. .. ("Equipment", DSL.list($$0))) .. 32 ); 31 Type<Pair<Either<List<IS>, Unit>, Pair<Either<List<IS>, Unit>, Pa 33 Type<Pair<String, Pair<Either<List<ItemStackNew>, Unit>, Pair<Eit .. ir<Either<IS, Unit>, Dynamic<?>>>>> $$2 = DSL.and( .. her<List<ItemStackNew>, Unit>, Pair<Either<ItemStackNew, Unit>, Either< .. .. ItemStackNew, Unit>>>>>> $$3 = DSL.named( .. 34 References.ENTITY_EQUIPMENT.typeName(), .. 35 DSL.and( 32 DSL.optional(DSL.field("ArmorItems", DSL.list($$0))), 36 DSL.optional(DSL.field("ArmorItems", DSL.list($$1))), 33 DSL.optional(DSL.field("HandItems", DSL.list($$0))), 37 DSL.optional(DSL.field("HandItems", DSL.list($$1))), 34 DSL.optional(DSL.field("body_armor_item", $$0)), 38 DSL.optional(DSL.field("body_armor_item", $$1)), 35 DSL.remainderType() 39 DSL.optional(DSL.field("saddle", $$1)) 36 ); 40 ) 37 OpticFinder<Pair<Either<List<IS>, Unit>, Dynamic<?>>> $$3 = DSL.t 41 ); .. ypeFinder($$1); .. .. 42 if (!$$2.equals(this.getInputSchema().getType(References.ENTITY_E .. .. QUIPMENT))) { 38 OpticFinder<List<IS>> $$4 = DSL.fieldFinder("Equipment", DSL.list 43 throw new IllegalStateException("Input entity_equipment type d .. ($$0)); .. oes not match expected"); .. 44 } else if (!$$3.equals(this.getOutputSchema().getType(References. .. .. ENTITY_EQUIPMENT))) { .. 45 throw new IllegalStateException("Output entity_equipment type .. .. does not match expected"); .. 46 } else { 39 return this.fixTypeEverywhereTyped( 47 return TypeRewriteRule.seq( 40 "EntityEquipmentToArmorAndHandFix", .. 41 this.getInputSchema().getType(References.ENTITY), 48 this.fixTypeEverywhereTyped( .. 49 "EntityEquipmentToArmorAndHandFix - drop chances", .. 50 this.getInputSchema().getType(References.ENTITY), .. 51 $$0x -> $$0x.update(DSL.remainderFinder(), EntityEquipme .. .. ntToArmorAndHandFix::fixDropChances) .. 52 ), 42 this.getOutputSchema().getType(References.ENTITY), 53 this.fixTypeEverywhere( .. 54 "EntityEquipmentToArmorAndHandFix - equipment", .. 55 $$2, .. 56 $$3, 43 $$4x -> { 57 $$1x -> { .. 58 ItemStackNew $$2x = (ItemStackNew)((Pair)$$1.read(new .. .. Dynamic($$1x).emptyMap()) .. 59 .result() .. 60 .orElseThrow(() -> new IllegalStateException("C .. .. ould not parse newly created empty itemstack."))) .. 61 .getFirst(); 44 Either<List<IS>, Unit> $$5 = Either.right(DSL.unit()); 62 Either<ItemStackNew, Unit> $$3x = Either.right(DSL.un .. .. it()); .. 63 return $$2xx -> $$2xx.mapSecond($$2xxx -> { 45 Either<List<IS>, Unit> $$6 = Either.right(DSL.unit()); 64 List<ItemStackOld> $$3xx = $$2xxx.map(Function. .. .. identity(), $$0xxxx -> List.of()); 46 Either<IS, Unit> $$7 = Either.right(DSL.unit()); 65 Either<List<ItemStackNew>, Unit> $$4 = Either.r .. .. ight(DSL.unit()); 47 Dynamic<?> $$8 = $$4x.getOrCreate(DSL.remainderFinder()); .. 48 Optional<List<IS>> $$9 = $$4x.getOptional($$4); 66 Either<List<ItemStackNew>, Unit> $$5 = Either.r .. .. ight(DSL.unit()); 49 if ($$9.isPresent()) { .. 50 List<IS> $$10 = $$9.get(); .. 51 IS $$11 = $$0.read($$8.emptyMap()) .. 52 .result() .. 53 .orElseThrow(() -> new IllegalStateException("Could n .. .. ot parse newly created empty itemstack.")) .. 54 .getFirst(); .. 55 if (!$$10.isEmpty()) { 67 if (!$$3xx.isEmpty()) { 56 $$5 = Either.left(Lists.newArrayList($$10.get(0), $$1 68 $$4 = Either.left(Lists.newArrayList((ItemSt .. 1)); .. ackNew[])(new Object[]{$$3xx.getFirst(), $$2x}))); 57 } 69 } 58 70 59 if ($$10.size() > 1) { 71 if ($$3xx.size() > 1) { 60 List<IS> $$12 = Lists.newArrayList($$11, $$11, $$11, 72 List<ItemStackNew> $$6 = Lists.newArrayList( .. $$11); .. $$2x, $$2x, $$2x, $$2x); 61 73 62 for (int $$13 = 1; $$13 < Math.min($$10.size(), 5); $ 74 for (int $$7 = 1; $$7 < Math.min($$3xx.size( .. $13++) { .. ), 5); $$7++) { 63 $$12.set($$13 - 1, $$10.get($$13)); 75 $$6.set($$7 - 1, (ItemStackNew)$$3xx.get( .. .. $$7)); 64 } 76 } 65 77 66 $$6 = Either.left($$12); 78 $$5 = Either.left($$6); 67 } 79 } 68 } .. 69 .. 70 Dynamic<?> $$14 = $$8; .. 71 Optional<? extends Stream<? extends Dynamic<?>>> $$15 = $$8 .. .. .get("DropChances").asStreamOpt().result(); .. 72 if ($$15.isPresent()) { .. 73 Iterator<? extends Dynamic<?>> $$16 = Stream.concat((Str .. .. eam<? extends Dynamic<?>>)$$15.get(), Stream.generate(() -> $$14.create .. .. Int(0))) .. 74 .iterator(); .. 75 float $$17 = $$16.next().asFloat(0.0F); .. 76 if ($$8.get("HandDropChances").result().isEmpty()) { .. 77 Dynamic<?> $$18 = $$8.createList(Stream.of($$17, 0.0F .. .. ).map($$8::createFloat)); .. 78 $$8 = $$8.set("HandDropChances", $$18); .. 79 } .. 80 .. 81 if ($$8.get("ArmorDropChances").result().isEmpty()) { .. 82 Dynamic<?> $$19 = $$8.createList( .. 83 Stream.of($$16.next().asFloat(0.0F), $$16.next().a .. .. sFloat(0.0F), $$16.next().asFloat(0.0F), $$16.next().asFloat(0.0F)) .. 84 .map($$8::createFloat) .. 85 ); .. 86 $$8 = $$8.set("ArmorDropChances", $$19); .. 87 } .. 88 .. 89 $$8 = $$8.remove("DropChances"); .. 90 } .. 91 80 92 return $$4x.set($$3, $$2, Pair.of($$5, Pair.of($$6, Pair.of 81 return Pair.of($$5, Pair.of($$4, Pair.of($$3x, .. ($$7, $$8)))); .. $$3x))); .. 82 }); 93 } 83 } .. 84 ) 94 ); 85 ); .. 86 } 95 } 87 } .. 88 .. 89 private static Dynamic<?> fixDropChances(Dynamic<?> $$0) { .. 90 Optional<? extends Stream<? extends Dynamic<?>>> $$1 = $$0.get("D .. .. ropChances").asStreamOpt().result(); .. 91 $$0 = $$0.remove("DropChances"); .. 92 if ($$1.isPresent()) { .. 93 Iterator<Float> $$2 = Stream.concat($$1.get().map($$0x -> $$0x .. .. .asFloat(0.0F)), Stream.generate(() -> 0.0F)).iterator(); .. 94 float $$3 = $$2.next(); .. 95 if ($$0.get("HandDropChances").result().isEmpty()) { .. 96 $$0 = $$0.set("HandDropChances", $$0.createList(Stream.of($ .. .. $3, 0.0F).map($$0::createFloat))); .. 97 } .. 98 .. 99 if ($$0.get("ArmorDropChances").result().isEmpty()) { .. 100 $$0 = $$0.set("ArmorDropChances", $$0.createList(Stream.of( .. ... $$2.next(), $$2.next(), $$2.next(), $$2.next()).map($$0::createFloat))) .. ... ; .. 101 } .. 102 } .. 103 .. 104 return $$0; .. 105 } 96 } 106 } net/minecraft/world/entity/animal/Wolf.java --- 1/5 --- Java 7 import net.minecraft.core.Holder; 7 import net.minecraft.core.Holder; 8 import net.minecraft.core.Registry; 8 import net.minecraft.core.Registry; 9 import net.minecraft.core.RegistryAccess; 9 import net.minecraft.core.RegistryAccess; . 10 import net.minecraft.core.component.DataComponentGetter; . 11 import net.minecraft.core.component.DataComponentType; 10 import net.minecraft.core.component.DataComponents; 12 import net.minecraft.core.component.DataComponents; 11 import net.minecraft.core.particles.ItemParticleOption; 13 import net.minecraft.core.particles.ItemParticleOption; 12 import net.minecraft.core.particles.ParticleTypes; 14 import net.minecraft.core.particles.ParticleTypes; net/minecraft/world/entity/animal/Wolf.java --- 2/5 --- Java 40 import net.minecraft.world.entity.NeutralMob; 42 import net.minecraft.world.entity.NeutralMob; 41 import net.minecraft.world.entity.SpawnGroupData; 43 import net.minecraft.world.entity.SpawnGroupData; 42 import net.minecraft.world.entity.TamableAnimal; 44 import net.minecraft.world.entity.TamableAnimal; 43 import net.minecraft.world.entity.VariantHolder; .. 44 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 45 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 45 import net.minecraft.world.entity.ai.attributes.Attributes; 46 import net.minecraft.world.entity.ai.attributes.Attributes; 46 import net.minecraft.world.entity.ai.goal.AvoidEntityGoal; 47 import net.minecraft.world.entity.ai.goal.AvoidEntityGoal; net/minecraft/world/entity/animal/Wolf.java --- 3/5 --- Java 85 import net.minecraft.world.level.pathfinder.PathType; 86 import net.minecraft.world.level.pathfinder.PathType; 86 import net.minecraft.world.phys.Vec3; 87 import net.minecraft.world.phys.Vec3; 87 88 88 public class Wolf extends TamableAnimal implements NeutralMob, VariantH 89 public class Wolf extends TamableAnimal implements NeutralMob { .. older<Holder<WolfVariant>> { .. 89 private static final EntityDataAccessor<Boolean> DATA_INTERESTED_ID 90 private static final EntityDataAccessor<Boolean> DATA_INTERESTED_ID .. = SynchedEntityData.defineId(Wolf.class, EntityDataSerializers.BOOLEAN) .. = SynchedEntityData.defineId(Wolf.class, EntityDataSerializers.BOOLEAN) .. ; .. ; 90 private static final EntityDataAccessor<Integer> DATA_COLLAR_COLOR = 91 private static final EntityDataAccessor<Integer> DATA_COLLAR_COLOR = .. SynchedEntityData.defineId(Wolf.class, EntityDataSerializers.INT); .. SynchedEntityData.defineId(Wolf.class, EntityDataSerializers.INT); 91 private static final EntityDataAccessor<Integer> DATA_REMAINING_ANGE 92 private static final EntityDataAccessor<Integer> DATA_REMAINING_ANGE R_TIME = SynchedEntityData.defineId(Wolf.class, EntityDataSerializers.I R_TIME = SynchedEntityData.defineId(Wolf.class, EntityDataSerializers.I NT); NT); net/minecraft/world/entity/animal/Wolf.java --- 4/5 --- Java 148 } 149 } 149 } 150 } 150 151 151 public Holder<WolfVariant> getVariant() { 152 private Holder<WolfVariant> getVariant() { 152 return this.entityData.get(DATA_VARIANT_ID); 153 return this.entityData.get(DATA_VARIANT_ID); 153 } 154 } 154 155 155 public void setVariant(Holder<WolfVariant> $$0) { 156 private void setVariant(Holder<WolfVariant> $$0) { 156 this.entityData.set(DATA_VARIANT_ID, $$0); 157 this.entityData.set(DATA_VARIANT_ID, $$0); 157 } 158 } ... 159 ... 160 @Nullable ... 161 @Override ... 162 public <T> T get(DataComponentType<? extends T> $$0) { ... 163 if ($$0 == DataComponents.WOLF_VARIANT) { ... 164 return castComponentValue((DataComponentType<T>)$$0, this.get ... ... Variant()); ... 165 } else { ... 166 return $$0 == DataComponents.WOLF_COLLAR ? castComponentValue ... ... ((DataComponentType<T>)$$0, this.getCollarColor()) : super.get($$0); ... 167 } ... 168 } ... 169 ... 170 @Override ... 171 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 172 this.applyImplicitComponentIfPresent($$0, DataComponents.WOLF_VA ... ... RIANT); ... 173 this.applyImplicitComponentIfPresent($$0, DataComponents.WOLF_CO ... ... LLAR); ... 174 super.applyImplicitComponents($$0); ... 175 } ... 176 ... 177 @Override ... 178 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 179 if ($$0 == DataComponents.WOLF_VARIANT) { ... 180 this.setVariant(castComponentValue(DataComponents.WOLF_VARIAN ... ... T, $$1)); ... 181 return true; ... 182 } else if ($$0 == DataComponents.WOLF_COLLAR) { ... 183 this.setCollarColor(castComponentValue(DataComponents.WOLF_CO ... ... LLAR, $$1)); ... 184 return true; ... 185 } else { ... 186 return super.applyImplicitComponent($$0, $$1); ... 187 } ... 188 } 158 189 159 public static AttributeSupplier.Builder createAttributes() { 190 public static AttributeSupplier.Builder createAttributes() { 160 return Animal.createAnimalAttributes().add(Attributes.MOVEMENT_S 191 return Animal.createAnimalAttributes().add(Attributes.MOVEMENT_S PEED, 0.3F).add(Attributes.MAX_HEALTH, 8.0).add(Attributes.ATTACK_DAMA PEED, 0.3F).add(Attributes.MAX_HEALTH, 8.0).add(Attributes.ATTACK_DAMA GE, 4.0); GE, 4.0); net/minecraft/world/entity/animal/Wolf.java --- 5/5 --- Java 345 } 376 } 346 } 377 } 347 ... 348 @Override ... 349 public boolean canUseSlot(EquipmentSlot $$0) { ... 350 return true; ... 351 } ... 352 378 353 @Override 379 @Override 354 protected void actuallyHurt(ServerLevel $$0, DamageSource $$1, floa 380 protected void actuallyHurt(ServerLevel $$0, DamageSource $$1, floa t $$2) { t $$2) { net/minecraft/world/entity/animal/axolotl/Axolotl.java --- 1/7 --- Java 3 import com.google.common.collect.ImmutableList; 3 import com.google.common.collect.ImmutableList; 4 import com.mojang.serialization.Codec; 4 import com.mojang.serialization.Codec; 5 import com.mojang.serialization.Dynamic; 5 import com.mojang.serialization.Dynamic; . 6 import io.netty.buffer.ByteBuf; 6 import java.util.Arrays; 7 import java.util.Arrays; 7 import java.util.List; 8 import java.util.List; 8 import java.util.Optional; 9 import java.util.Optional; 9 import java.util.function.IntFunction; 10 import java.util.function.IntFunction; 10 import javax.annotation.Nullable; 11 import javax.annotation.Nullable; 11 import net.minecraft.Util; 12 import net.minecraft.Util; 12 import net.minecraft.core.BlockPos; 13 import net.minecraft.core.BlockPos; .. 14 import net.minecraft.core.component.DataComponentGetter; .. 15 import net.minecraft.core.component.DataComponentType; 13 import net.minecraft.core.component.DataComponents; 16 import net.minecraft.core.component.DataComponents; 14 import net.minecraft.nbt.CompoundTag; 17 import net.minecraft.nbt.CompoundTag; .. 18 import net.minecraft.network.codec.ByteBufCodecs; .. 19 import net.minecraft.network.codec.StreamCodec; 15 import net.minecraft.network.protocol.game.DebugPackets; 20 import net.minecraft.network.protocol.game.DebugPackets; 16 import net.minecraft.network.syncher.EntityDataAccessor; 21 import net.minecraft.network.syncher.EntityDataAccessor; 17 import net.minecraft.network.syncher.EntityDataSerializers; 22 import net.minecraft.network.syncher.EntityDataSerializers; net/minecraft/world/entity/animal/axolotl/Axolotl.java --- 2/7 --- Java 41 import net.minecraft.world.entity.LivingEntity; 46 import net.minecraft.world.entity.LivingEntity; 42 import net.minecraft.world.entity.MoverType; 47 import net.minecraft.world.entity.MoverType; 43 import net.minecraft.world.entity.SpawnGroupData; 48 import net.minecraft.world.entity.SpawnGroupData; 44 import net.minecraft.world.entity.VariantHolder; .. 45 import net.minecraft.world.entity.ai.Brain; 49 import net.minecraft.world.entity.ai.Brain; 46 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 50 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 47 import net.minecraft.world.entity.ai.attributes.Attributes; 51 import net.minecraft.world.entity.ai.attributes.Attributes; net/minecraft/world/entity/animal/axolotl/Axolotl.java --- 3/7 --- Java 65 import net.minecraft.world.level.pathfinder.PathType; 69 import net.minecraft.world.level.pathfinder.PathType; 66 import net.minecraft.world.phys.Vec3; 70 import net.minecraft.world.phys.Vec3; 67 71 68 public class Axolotl extends Animal implements VariantHolder<Axolotl.Va 72 public class Axolotl extends Animal implements Bucketable { .. riant>, Bucketable { .. 69 public static final int TOTAL_PLAYDEAD_TIME = 200; 73 public static final int TOTAL_PLAYDEAD_TIME = 200; 70 private static final int POSE_ANIMATION_TICKS = 10; 74 private static final int POSE_ANIMATION_TICKS = 10; 71 protected static final ImmutableList<? extends SensorType<? extends 75 protected static final ImmutableList<? extends SensorType<? extends Sensor<? super Axolotl>>> SENSOR_TYPES = ImmutableList.of( Sensor<? super Axolotl>>> SENSOR_TYPES = ImmutableList.of( net/minecraft/world/entity/animal/axolotl/Axolotl.java --- 4/7 --- Java 231 return Axolotl.Variant.byId(this.entityData.get(DATA_VARIANT)); 235 return Axolotl.Variant.byId(this.entityData.get(DATA_VARIANT)); 232 } 236 } 233 237 234 public void setVariant(Axolotl.Variant $$0) { 238 private void setVariant(Axolotl.Variant $$0) { 235 this.entityData.set(DATA_VARIANT, $$0.getId()); 239 this.entityData.set(DATA_VARIANT, $$0.getId()); 236 } 240 } ... 241 ... 242 @Nullable ... 243 @Override ... 244 public <T> T get(DataComponentType<? extends T> $$0) { ... 245 return $$0 == DataComponents.AXOLOTL_VARIANT ? castComponentValu ... ... e((DataComponentType<T>)$$0, this.getVariant()) : super.get($$0); ... 246 } ... 247 ... 248 @Override ... 249 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 250 this.applyImplicitComponentIfPresent($$0, DataComponents.AXOLOTL ... ... _VARIANT); ... 251 super.applyImplicitComponents($$0); ... 252 } ... 253 ... 254 @Override ... 255 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 256 if ($$0 == DataComponents.AXOLOTL_VARIANT) { ... 257 this.setVariant(castComponentValue(DataComponents.AXOLOTL_VAR ... ... IANT, $$1)); ... 258 return true; ... 259 } else { ... 260 return super.applyImplicitComponent($$0, $$1); ... 261 } ... 262 } 237 263 238 private static boolean useRareVariant(RandomSource $$0) { 264 private static boolean useRareVariant(RandomSource $$0) { 239 return $$0.nextInt(1200) == 0; 265 return $$0.nextInt(1200) == 0; net/minecraft/world/entity/animal/axolotl/Axolotl.java --- 5/7 --- Java 363 @Override 389 @Override 364 public void saveToBucketTag(ItemStack $$0) { 390 public void saveToBucketTag(ItemStack $$0) { 365 Bucketable.saveDefaultDataToBucketTag(this, $$0); 391 Bucketable.saveDefaultDataToBucketTag(this, $$0); ... 392 $$0.copyFrom(DataComponents.AXOLOTL_VARIANT, $$0); 366 CustomData.update(DataComponents.BUCKET_ENTITY_DATA, $$0, $$0x - 393 CustomData.update(DataComponents.BUCKET_ENTITY_DATA, $$0, $$0x - ... > { ... > { 367 $$0x.putInt("Variant", this.getVariant().getId()); ... 368 $$0x.putInt("Age", this.getAge()); 394 $$0x.putInt("Age", this.getAge()); 369 Brain<?> $$1 = this.getBrain(); 395 Brain<?> $$1 = this.getBrain(); 370 if ($$1.hasMemoryValue(MemoryModuleType.HAS_HUNTING_COOLDOWN) 396 if ($$1.hasMemoryValue(MemoryModuleType.HAS_HUNTING_COOLDOWN) ) { ) { net/minecraft/world/entity/animal/axolotl/Axolotl.java --- 6/7 --- Java 376 @Override 402 @Override 377 public void loadFromBucketTag(CompoundTag $$0) { 403 public void loadFromBucketTag(CompoundTag $$0) { 378 Bucketable.loadDefaultDataFromBucketTag(this, $$0); 404 Bucketable.loadDefaultDataFromBucketTag(this, $$0); 379 this.setVariant(Axolotl.Variant.byId($$0.getInt("Variant"))); ... 380 if ($$0.contains("Age")) { 405 if ($$0.contains("Age")) { 381 this.setAge($$0.getInt("Age")); 406 this.setAge($$0.getInt("Age")); 382 } 407 } net/minecraft/world/entity/animal/axolotl/Axolotl.java --- 7/7 --- Java 575 BLUE(4, "blue", false); 600 BLUE(4, "blue", false); 576 601 577 private static final IntFunction<Axolotl.Variant> BY_ID = ByIdMa 602 private static final IntFunction<Axolotl.Variant> BY_ID = ByIdMa ... p.continuous(Axolotl.Variant::getId, values(), ByIdMap.OutOfBoundsStra ... p.continuous(Axolotl.Variant::getId, values(), ByIdMap.OutOfBoundsStra ... tegy.ZERO); ... tegy.ZERO); ... 603 public static final StreamCodec<ByteBuf, Axolotl.Variant> STREAM ... ... _CODEC = ByteBufCodecs.idMapper(BY_ID, Axolotl.Variant::getId); 578 public static final Codec<Axolotl.Variant> CODEC = StringReprese 604 public static final Codec<Axolotl.Variant> CODEC = StringReprese ... ntable.fromEnum(Axolotl.Variant::values); ... ntable.fromEnum(Axolotl.Variant::values); 579 private final int id; 605 private final int id; 580 private final String name; 606 private final String name; net/minecraft/world/entity/monster/Shulker.java --- 1/6 --- Java 7 import net.minecraft.core.BlockPos; 7 import net.minecraft.core.BlockPos; 8 import net.minecraft.core.Direction; 8 import net.minecraft.core.Direction; 9 import net.minecraft.core.Vec3i; 9 import net.minecraft.core.Vec3i; . 10 import net.minecraft.core.component.DataComponentGetter; . 11 import net.minecraft.core.component.DataComponentType; . 12 import net.minecraft.core.component.DataComponents; 10 import net.minecraft.nbt.CompoundTag; 13 import net.minecraft.nbt.CompoundTag; 11 import net.minecraft.network.protocol.game.ClientboundAddEntityPacket; 14 import net.minecraft.network.protocol.game.ClientboundAddEntityPacket; 12 import net.minecraft.network.syncher.EntityDataAccessor; 15 import net.minecraft.network.syncher.EntityDataAccessor; net/minecraft/world/entity/monster/Shulker.java --- 2/6 --- Java 31 import net.minecraft.world.entity.Mob; 34 import net.minecraft.world.entity.Mob; 32 import net.minecraft.world.entity.MoverType; 35 import net.minecraft.world.entity.MoverType; 33 import net.minecraft.world.entity.SpawnGroupData; 36 import net.minecraft.world.entity.SpawnGroupData; 34 import net.minecraft.world.entity.VariantHolder; .. 35 import net.minecraft.world.entity.ai.attributes.AttributeModifier; 37 import net.minecraft.world.entity.ai.attributes.AttributeModifier; 36 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 38 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 37 import net.minecraft.world.entity.ai.attributes.Attributes; 39 import net.minecraft.world.entity.ai.attributes.Attributes; net/minecraft/world/entity/monster/Shulker.java --- 3/6 --- Java 56 import net.minecraft.world.phys.Vec3; 58 import net.minecraft.world.phys.Vec3; 57 import org.joml.Vector3f; 59 import org.joml.Vector3f; 58 60 59 public class Shulker extends AbstractGolem implements VariantHolder<Opt 61 public class Shulker extends AbstractGolem implements Enemy { .. ional<DyeColor>>, Enemy { .. 60 private static final ResourceLocation COVERED_ARMOR_MODIFIER_ID = Re 62 private static final ResourceLocation COVERED_ARMOR_MODIFIER_ID = Re .. sourceLocation.withDefaultNamespace("covered"); .. sourceLocation.withDefaultNamespace("covered"); 61 private static final AttributeModifier COVERED_ARMOR_MODIFIER = new 63 private static final AttributeModifier COVERED_ARMOR_MODIFIER = new .. AttributeModifier(COVERED_ARMOR_MODIFIER_ID, 20.0, AttributeModifier.Op .. AttributeModifier(COVERED_ARMOR_MODIFIER_ID, 20.0, AttributeModifier.Op .. eration.ADD_VALUE); .. eration.ADD_VALUE); 62 protected static final EntityDataAccessor<Direction> DATA_ATTACH_FAC 64 protected static final EntityDataAccessor<Direction> DATA_ATTACH_FAC E_ID = SynchedEntityData.defineId(Shulker.class, EntityDataSerializers. E_ID = SynchedEntityData.defineId(Shulker.class, EntityDataSerializers. DIRECTION); DIRECTION); net/minecraft/world/entity/monster/Shulker.java --- 4/6 --- Java 448 Shulker $$4 = EntityType.SHULKER.create(this.level(), Enti 450 Shulker $$4 = EntityType.SHULKER.create(this.level(), Enti ... tySpawnReason.BREEDING); ... tySpawnReason.BREEDING); 449 if ($$4 != null) { 451 if ($$4 != null) { 450 $$4.setVariant(this.getVariant()); 452 $$4.setVariant(this.getVariant()); 451 $$4.moveTo($$0); 453 $$4.snapTo($$0); 452 this.level().addFreshEntity($$4); 454 this.level().addFreshEntity($$4); 453 } 455 } 454 } 456 } net/minecraft/world/entity/monster/Shulker.java --- 5/6 --- Java 543 return Math.min($$0, 3.0F); 545 return Math.min($$0, 3.0F); 544 } 546 } 545 547 546 public void setVariant(Optional<DyeColor> $$0) { 548 private void setVariant(Optional<DyeColor> $$0) { 547 this.entityData.set(DATA_COLOR_ID, $$0.<Byte>map($$0x -> (byte)$ 549 this.entityData.set(DATA_COLOR_ID, $$0.<Byte>map($$0x -> (byte)$ ... $0x.getId()).orElse((byte)16)); ... $0x.getId()).orElse((byte)16)); 548 } 550 } 549 551 net/minecraft/world/entity/monster/Shulker.java --- 6/6 --- Java 557 return $$0 != 16 && $$0 <= 15 ? DyeColor.byId($$0) : null; 559 return $$0 != 16 && $$0 <= 15 ? DyeColor.byId($$0) : null; 558 } 560 } ... 561 ... 562 @Nullable ... 563 @Override ... 564 public <T> T get(DataComponentType<? extends T> $$0) { ... 565 return $$0 == DataComponents.SHULKER_COLOR ? castComponentValue( ... ... (DataComponentType<T>)$$0, this.getColor()) : super.get($$0); ... 566 } ... 567 ... 568 @Override ... 569 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 570 this.applyImplicitComponentIfPresent($$0, DataComponents.SHULKER ... ... _COLOR); ... 571 super.applyImplicitComponents($$0); ... 572 } ... 573 ... 574 @Override ... 575 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 576 if ($$0 == DataComponents.SHULKER_COLOR) { ... 577 this.setVariant(Optional.of(castComponentValue(DataComponents ... ... .SHULKER_COLOR, $$1))); ... 578 return true; ... 579 } else { ... 580 return super.applyImplicitComponent($$0, $$1); ... 581 } ... 582 } 559 583 560 class ShulkerAttackGoal extends Goal { 584 class ShulkerAttackGoal extends Goal { 561 private int attackTime; 585 private int attackTime; net/minecraft/world/entity/animal/TropicalFish.java --- 1/6 --- Java 1 package net.minecraft.world.entity.animal; 1 package net.minecraft.world.entity.animal; 2 2 3 import com.mojang.serialization.Codec; 3 import com.mojang.serialization.Codec; . 4 import io.netty.buffer.ByteBuf; 4 import java.util.List; 5 import java.util.List; 5 import java.util.function.IntFunction; 6 import java.util.function.IntFunction; 6 import javax.annotation.Nullable; 7 import javax.annotation.Nullable; 7 import net.minecraft.Util; 8 import net.minecraft.Util; 8 import net.minecraft.core.BlockPos; 9 import net.minecraft.core.BlockPos; . 10 import net.minecraft.core.component.DataComponentGetter; . 11 import net.minecraft.core.component.DataComponentType; 9 import net.minecraft.core.component.DataComponents; 12 import net.minecraft.core.component.DataComponents; 10 import net.minecraft.nbt.CompoundTag; 13 import net.minecraft.nbt.CompoundTag; 11 import net.minecraft.network.chat.Component; 14 import net.minecraft.network.chat.Component; .. 15 import net.minecraft.network.codec.ByteBufCodecs; .. 16 import net.minecraft.network.codec.StreamCodec; 12 import net.minecraft.network.syncher.EntityDataAccessor; 17 import net.minecraft.network.syncher.EntityDataAccessor; 13 import net.minecraft.network.syncher.EntityDataSerializers; 18 import net.minecraft.network.syncher.EntityDataSerializers; 14 import net.minecraft.network.syncher.SynchedEntityData; 19 import net.minecraft.network.syncher.SynchedEntityData; net/minecraft/world/entity/animal/TropicalFish.java --- 2/6 --- Java 24 import net.minecraft.world.entity.EntitySpawnReason; 29 import net.minecraft.world.entity.EntitySpawnReason; 25 import net.minecraft.world.entity.EntityType; 30 import net.minecraft.world.entity.EntityType; 26 import net.minecraft.world.entity.SpawnGroupData; 31 import net.minecraft.world.entity.SpawnGroupData; 27 import net.minecraft.world.entity.VariantHolder; .. 28 import net.minecraft.world.item.DyeColor; 32 import net.minecraft.world.item.DyeColor; 29 import net.minecraft.world.item.ItemStack; 33 import net.minecraft.world.item.ItemStack; 30 import net.minecraft.world.item.Items; 34 import net.minecraft.world.item.Items; 31 import net.minecraft.world.item.component.CustomData; .. 32 import net.minecraft.world.level.Level; 35 import net.minecraft.world.level.Level; 33 import net.minecraft.world.level.LevelAccessor; 36 import net.minecraft.world.level.LevelAccessor; 34 import net.minecraft.world.level.ServerLevelAccessor; 37 import net.minecraft.world.level.ServerLevelAccessor; 35 import net.minecraft.world.level.block.Blocks; 38 import net.minecraft.world.level.block.Blocks; 36 39 37 public class TropicalFish extends AbstractSchoolingFish implements Vari 40 public class TropicalFish extends AbstractSchoolingFish { .. antHolder<TropicalFish.Pattern> { .. 38 public static final String BUCKET_VARIANT_TAG = "BucketVariantTag"; 41 public static final TropicalFish.Variant DEFAULT_VARIANT = new Tropi .. .. calFish.Variant(TropicalFish.Pattern.KOB, DyeColor.WHITE, DyeColor.WHIT .. .. E); 39 private static final EntityDataAccessor<Integer> DATA_ID_TYPE_VARIAN 42 private static final EntityDataAccessor<Integer> DATA_ID_TYPE_VARIAN .. T = SynchedEntityData.defineId(TropicalFish.class, EntityDataSerializer .. T = SynchedEntityData.defineId(TropicalFish.class, EntityDataSerializer .. s.INT); .. s.INT); 40 public static final List<TropicalFish.Variant> COMMON_VARIANTS = Lis 43 public static final List<TropicalFish.Variant> COMMON_VARIANTS = Lis .. t.of( .. t.of( 41 new TropicalFish.Variant(TropicalFish.Pattern.STRIPEY, DyeColor.O 44 new TropicalFish.Variant(TropicalFish.Pattern.STRIPEY, DyeColor.O RANGE, DyeColor.GRAY), RANGE, DyeColor.GRAY), net/minecraft/world/entity/animal/TropicalFish.java --- 3/6 --- Java 90 @Override 93 @Override 91 protected void defineSynchedData(SynchedEntityData.Builder $$0) { 94 protected void defineSynchedData(SynchedEntityData.Builder $$0) { 92 super.defineSynchedData($$0); 95 super.defineSynchedData($$0); 93 $$0.define(DATA_ID_TYPE_VARIANT, 0); 96 $$0.define(DATA_ID_TYPE_VARIANT, DEFAULT_VARIANT.getPackedId()); 94 } 97 } 95 98 96 @Override 99 @Override net/minecraft/world/entity/animal/TropicalFish.java --- 4/6 --- Java 126 return getPatternColor(this.getPackedVariant()); 129 return getPatternColor(this.getPackedVariant()); 127 } 130 } 128 131 129 public TropicalFish.Pattern getVariant() { 132 public TropicalFish.Pattern getPattern() { 130 return getPattern(this.getPackedVariant()); 133 return getPattern(this.getPackedVariant()); 131 } 134 } 132 135 133 public void setVariant(TropicalFish.Pattern $$0) { 136 private void setPattern(TropicalFish.Pattern $$0) { 134 int $$1 = this.getPackedVariant(); 137 int $$1 = this.getPackedVariant(); 135 DyeColor $$2 = getBaseColor($$1); 138 DyeColor $$2 = getBaseColor($$1); 136 DyeColor $$3 = getPatternColor($$1); 139 DyeColor $$3 = getPatternColor($$1); 137 this.setPackedVariant(packVariant($$0, $$2, $$3)); 140 this.setPackedVariant(packVariant($$0, $$2, $$3)); 138 } 141 } ... 142 ... 143 private void setBaseColor(DyeColor $$0) { ... 144 int $$1 = this.getPackedVariant(); ... 145 TropicalFish.Pattern $$2 = getPattern($$1); ... 146 DyeColor $$3 = getPatternColor($$1); ... 147 this.setPackedVariant(packVariant($$2, $$0, $$3)); ... 148 } ... 149 ... 150 private void setPatternColor(DyeColor $$0) { ... 151 int $$1 = this.getPackedVariant(); ... 152 TropicalFish.Pattern $$2 = getPattern($$1); ... 153 DyeColor $$3 = getBaseColor($$1); ... 154 this.setPackedVariant(packVariant($$2, $$3, $$0)); ... 155 } ... 156 ... 157 @Nullable ... 158 @Override ... 159 public <T> T get(DataComponentType<? extends T> $$0) { ... 160 if ($$0 == DataComponents.TROPICAL_FISH_PATTERN) { ... 161 return castComponentValue((DataComponentType<T>)$$0, this.get ... ... Pattern()); ... 162 } else if ($$0 == DataComponents.TROPICAL_FISH_BASE_COLOR) { ... 163 return castComponentValue((DataComponentType<T>)$$0, this.get ... ... BaseColor()); ... 164 } else { ... 165 return $$0 == DataComponents.TROPICAL_FISH_PATTERN_COLOR ? ca ... ... stComponentValue((DataComponentType<T>)$$0, this.getPatternColor()) : ... ... super.get($$0); ... 166 } ... 167 } ... 168 ... 169 @Override ... 170 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 171 this.applyImplicitComponentIfPresent($$0, DataComponents.TROPICA ... ... L_FISH_PATTERN); ... 172 this.applyImplicitComponentIfPresent($$0, DataComponents.TROPICA ... ... L_FISH_BASE_COLOR); ... 173 this.applyImplicitComponentIfPresent($$0, DataComponents.TROPICA ... ... L_FISH_PATTERN_COLOR); ... 174 super.applyImplicitComponents($$0); ... 175 } ... 176 ... 177 @Override ... 178 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 179 if ($$0 == DataComponents.TROPICAL_FISH_PATTERN) { ... 180 this.setPattern(castComponentValue(DataComponents.TROPICAL_FI ... ... SH_PATTERN, $$1)); ... 181 return true; ... 182 } else if ($$0 == DataComponents.TROPICAL_FISH_BASE_COLOR) { ... 183 this.setBaseColor(castComponentValue(DataComponents.TROPICAL_ ... ... FISH_BASE_COLOR, $$1)); ... 184 return true; ... 185 } else if ($$0 == DataComponents.TROPICAL_FISH_PATTERN_COLOR) { ... 186 this.setPatternColor(castComponentValue(DataComponents.TROPIC ... ... AL_FISH_PATTERN_COLOR, $$1)); ... 187 return true; ... 188 } else { ... 189 return super.applyImplicitComponent($$0, $$1); ... 190 } ... 191 } 139 192 140 @Override 193 @Override 141 public void saveToBucketTag(ItemStack $$0) { 194 public void saveToBucketTag(ItemStack $$0) { 142 super.saveToBucketTag($$0); 195 super.saveToBucketTag($$0); 143 CustomData.update(DataComponents.BUCKET_ENTITY_DATA, $$0, $$0x - 196 $$0.copyFrom(DataComponents.TROPICAL_FISH_PATTERN, this); ... > $$0x.putInt("BucketVariantTag", this.getPackedVariant())); ... ... 197 $$0.copyFrom(DataComponents.TROPICAL_FISH_BASE_COLOR, this); ... 198 $$0.copyFrom(DataComponents.TROPICAL_FISH_PATTERN_COLOR, this); 144 } 199 } 145 200 146 @Override 201 @Override net/minecraft/world/entity/animal/TropicalFish.java --- 5/6 --- Java 168 return SoundEvents.TROPICAL_FISH_FLOP; 223 return SoundEvents.TROPICAL_FISH_FLOP; 169 } 224 } 170 ... 171 @Override ... 172 public void loadFromBucketTag(CompoundTag $$0) { ... 173 super.loadFromBucketTag($$0); ... 174 if ($$0.contains("BucketVariantTag", 3)) { ... 175 this.setPackedVariant($$0.getInt("BucketVariantTag")); ... 176 } ... 177 } ... 178 225 179 @Nullable 226 @Nullable 180 @Override 227 @Override net/minecraft/world/entity/animal/TropicalFish.java --- 6/6 --- Java 236 283 237 public static final Codec<TropicalFish.Pattern> CODEC = StringRe 284 public static final Codec<TropicalFish.Pattern> CODEC = StringRe ... presentable.fromEnum(TropicalFish.Pattern::values); ... presentable.fromEnum(TropicalFish.Pattern::values); 238 private static final IntFunction<TropicalFish.Pattern> BY_ID = B 285 private static final IntFunction<TropicalFish.Pattern> BY_ID = B ... yIdMap.sparse(TropicalFish.Pattern::getPackedId, values(), KOB); ... yIdMap.sparse(TropicalFish.Pattern::getPackedId, values(), KOB); ... 286 public static final StreamCodec<ByteBuf, TropicalFish.Pattern> S ... ... TREAM_CODEC = ByteBufCodecs.idMapper(BY_ID, TropicalFish.Pattern::getP ... ... ackedId); 239 private final String name; 287 private final String name; 240 private final Component displayName; 288 private final Component displayName; 241 private final TropicalFish.Base base; 289 private final TropicalFish.Base base; net/minecraft/gametest/framework/GameTestHelper.java --- 1/30 --- Java 5 import com.mojang.datafixers.util.Either; 5 import com.mojang.datafixers.util.Either; 6 import io.netty.channel.embedded.EmbeddedChannel; 6 import io.netty.channel.embedded.EmbeddedChannel; 7 import java.util.List; 7 import java.util.List; 8 import java.util.Locale; . 9 import java.util.Objects; 8 import java.util.Objects; 10 import java.util.UUID; 9 import java.util.UUID; 11 import java.util.function.Consumer; 10 import java.util.function.Consumer; net/minecraft/gametest/framework/GameTestHelper.java --- 2/30 --- Java 18 import net.minecraft.core.BlockPos; 17 import net.minecraft.core.BlockPos; 19 import net.minecraft.core.Direction; 18 import net.minecraft.core.Direction; 20 import net.minecraft.core.Holder; 19 import net.minecraft.core.Holder; 21 import net.minecraft.core.registries.BuiltInRegistries; .. 22 import net.minecraft.core.registries.Registries; 20 import net.minecraft.core.registries.Registries; 23 import net.minecraft.network.Connection; 21 import net.minecraft.network.Connection; .. 22 import net.minecraft.network.chat.Component; 24 import net.minecraft.network.protocol.PacketFlow; 23 import net.minecraft.network.protocol.PacketFlow; 25 import net.minecraft.resources.ResourceKey; 24 import net.minecraft.resources.ResourceKey; 26 import net.minecraft.resources.ResourceLocation; .. 27 import net.minecraft.server.commands.FillBiomeCommand; 25 import net.minecraft.server.commands.FillBiomeCommand; 28 import net.minecraft.server.level.ServerLevel; 26 import net.minecraft.server.level.ServerLevel; 29 import net.minecraft.server.level.ServerPlayer; 27 import net.minecraft.server.level.ServerPlayer; 30 import net.minecraft.server.network.CommonListenerCookie; 28 import net.minecraft.server.network.CommonListenerCookie; 31 import net.minecraft.tags.BlockTags; 29 import net.minecraft.tags.BlockTags; .. 30 import net.minecraft.tags.TagKey; 32 import net.minecraft.world.InteractionHand; 31 import net.minecraft.world.InteractionHand; 33 import net.minecraft.world.InteractionResult; 32 import net.minecraft.world.InteractionResult; 34 import net.minecraft.world.damagesource.DamageSource; 33 import net.minecraft.world.damagesource.DamageSource; net/minecraft/gametest/framework/GameTestHelper.java --- 3/30 --- Java 44 import net.minecraft.world.entity.player.Player; 43 import net.minecraft.world.entity.player.Player; 45 import net.minecraft.world.item.Item; 44 import net.minecraft.world.item.Item; 46 import net.minecraft.world.item.ItemStack; 45 import net.minecraft.world.item.ItemStack; .. 46 import net.minecraft.world.item.alchemy.PotionContents; 47 import net.minecraft.world.item.context.UseOnContext; 47 import net.minecraft.world.item.context.UseOnContext; 48 import net.minecraft.world.level.GameType; 48 import net.minecraft.world.level.GameType; 49 import net.minecraft.world.level.biome.Biome; 49 import net.minecraft.world.level.biome.Biome; net/minecraft/gametest/framework/GameTestHelper.java --- 4/30 --- Java 73 this.testInfo = $$0; 73 this.testInfo = $$0; 74 } 74 } .. 75 .. 76 public GameTestAssertException assertionException(Component $$0) { .. 77 return new GameTestAssertException($$0, this.testInfo.getTick()); .. 78 } .. 79 .. 80 public GameTestAssertException assertionException(String $$0, Object .. .. ... $$1) { .. 81 return this.assertionException(Component.translatableEscape($$0, .. .. $$1)); .. 82 } .. 83 .. 84 public GameTestAssertPosException assertionException(BlockPos $$0, C .. .. omponent $$1) { .. 85 return new GameTestAssertPosException($$1, this.absolutePos($$0), .. .. $$0, this.testInfo.getTick()); .. 86 } .. 87 .. 88 public GameTestAssertPosException assertionException(BlockPos $$0, S .. .. tring $$1, Object... $$2) { .. 89 return this.assertionException($$0, Component.translatableEscape( .. .. $$1, $$2)); .. 90 } 75 91 76 public ServerLevel getLevel() { 92 public ServerLevel getLevel() { 77 return this.testInfo.getLevel(); 93 return this.testInfo.getLevel(); net/minecraft/gametest/framework/GameTestHelper.java --- 5/30 --- Java 81 return this.getLevel().getBlockState(this.absolutePos($$0)); 97 return this.getLevel().getBlockState(this.absolutePos($$0)); 82 } 98 } 83 99 84 public <T extends BlockEntity> T getBlockEntity(BlockPos $$0) { 100 public <T extends BlockEntity> T getBlockEntity(BlockPos $$0, Class .. ... <T> $$1) { 85 BlockEntity $$1 = this.getLevel().getBlockEntity(this.absolutePo 101 BlockEntity $$2 = this.getLevel().getBlockEntity(this.absolutePo .. s($$0)); ... s($$0)); 86 if ($$1 == null) { 102 if ($$2 == null) { 87 throw new GameTestAssertPosException("Missing block entity", 103 throw this.assertionException($$0, "test.error.missing_block_ .. this.absolutePos($$0), $$0, this.testInfo.getTick()); ... entity"); 88 } else { 104 } else if ($$1.isInstance($$2)) { 89 return (T)$$1; 105 return $$1.cast($$2); 90 } 106 } else { .. 107 throw this.assertionException($$0, "test.error.wrong_block_en .. ... tity", $$2.getType().builtInRegistryHolder().getRegisteredName()); .. 108 } 91 } 109 } 92 110 93 public void killAllEntities() { 111 public void killAllEntities() { 94 this.killAllEntitiesOfClass(Entity.class); 112 this.killAllEntitiesOfClass(Entity.class); 95 } 113 } 96 114 97 public void killAllEntitiesOfClass(Class $$0) { 115 public void killAllEntitiesOfClass(Class<? extends Entity> $$0) { 98 AABB $$1 = this.getBounds(); 116 AABB $$1 = this.getBounds(); 99 List<Entity> $$2 = this.getLevel().getEntitiesOfClass($$0, $$1.i 117 List<? extends Entity> $$2 = this.getLevel().getEntitiesOfClass( .. nflate(1.0), $$0x -> !($$0x instanceof Player)); ... $$0, $$1.inflate(1.0), $$0x -> !($$0x instanceof Player)); 100 $$2.forEach($$0x -> $$0x.kill(this.getLevel())); 118 $$2.forEach($$0x -> $$0x.kill(this.getLevel())); 101 } 119 } 102 120 net/minecraft/gametest/framework/GameTestHelper.java --- 6/30 --- Java 125 ServerLevel $$2 = this.getLevel(); 143 ServerLevel $$2 = this.getLevel(); 126 E $$3 = $$0.create($$2, EntitySpawnReason.STRUCTURE); 144 E $$3 = $$0.create($$2, EntitySpawnReason.STRUCTURE); 127 if ($$3 == null) { 145 if ($$3 == null) { 128 throw new NullPointerException("Failed to create entity " + $ 146 throw this.assertionException(BlockPos.containing($$1), "test ... $0.builtInRegistryHolder().key().location()); ... .error.spawn_failure", $$0.builtInRegistryHolder().getRegisteredName() ... ... ); 129 } else { 147 } else { 130 if ($$3 instanceof Mob $$4) { 148 if ($$3 instanceof Mob $$4) { 131 $$4.setPersistenceRequired(); 149 $$4.setPersistenceRequired(); 132 } 150 } 133 151 134 Vec3 $$5 = this.absoluteVec($$1); 152 Vec3 $$5 = this.absoluteVec($$1); 135 $$3.moveTo($$5.x, $$5.y, $$5.z, $$3.getYRot(), $$3.getXRot()) 153 $$3.snapTo($$5.x, $$5.y, $$5.z, $$3.getYRot(), $$3.getXRot()) ... ; ... ; 136 $$2.addFreshEntity($$3); 154 $$2.addFreshEntity($$3); 137 return $$3; 155 return $$3; 138 } 156 } net/minecraft/gametest/framework/GameTestHelper.java --- 7/30 --- Java 153 public <E extends Entity> E findClosestEntity(EntityType<E> $$0, in 171 public <E extends Entity> E findClosestEntity(EntityType<E> $$0, in ... t $$1, int $$2, int $$3, double $$4) { ... t $$1, int $$2, int $$3, double $$4) { 154 List<E> $$5 = this.findEntities($$0, $$1, $$2, $$3, $$4); 172 List<E> $$5 = this.findEntities($$0, $$1, $$2, $$3, $$4); 155 if ($$5.isEmpty()) { 173 if ($$5.isEmpty()) { 156 throw new GameTestAssertException("Expected " + $$0.toShortSt 174 throw this.assertionException("test.error.expected_entity_at_ ... ring() + " to exist around " + $$1 + "," + $$2 + "," + $$3); ... pos", $$0.getDescription(), $$1, $$2, $$3); 157 } else if ($$5.size() > 1) { 175 } else if ($$5.size() > 1) { 158 throw new GameTestAssertException( 176 throw this.assertionException("test.error.too_many_entities", ... ... $$0.toShortString(), $$1, $$2, $$3, $$5.size()); 159 "Expected only one " + $$0.toShortString() + " to exist ar ... ... ound " + $$1 + "," + $$2 + "," + $$3 + ", but found " + $$5.size() ... 160 ); ... 161 } else { 177 } else { 162 Vec3 $$6 = this.absoluteVec(new Vec3((double)$$1, (double)$$2 178 Vec3 $$6 = this.absoluteVec(new Vec3((double)$$1, (double)$$2 , (double)$$3)); , (double)$$3)); net/minecraft/gametest/framework/GameTestHelper.java --- 8/30 --- Java 211 227 212 public void moveTo(Mob $$0, float $$1, float $$2, float $$3) { 228 public void moveTo(Mob $$0, float $$1, float $$2, float $$3) { 213 Vec3 $$4 = this.absoluteVec(new Vec3((double)$$1, (double)$$2, ( 229 Vec3 $$4 = this.absoluteVec(new Vec3((double)$$1, (double)$$2, ( ... double)$$3)); ... double)$$3)); 214 $$0.moveTo($$4.x, $$4.y, $$4.z, $$0.getYRot(), $$0.getXRot()); 230 $$0.snapTo($$4.x, $$4.y, $$4.z, $$0.getYRot(), $$0.getXRot()); 215 } 231 } 216 232 217 public GameTestSequence walkTo(Mob $$0, BlockPos $$1, float $$2) { 233 public GameTestSequence walkTo(Mob $$0, BlockPos $$1, float $$2) { net/minecraft/gametest/framework/GameTestHelper.java --- 9/30 --- Java 226 } 242 } 227 243 228 public void pressButton(BlockPos $$0) { 244 public void pressButton(BlockPos $$0) { 229 this.assertBlockState($$0, $$0x -> $$0x.is(BlockTags.BUTTONS), ( 245 this.assertBlockTag(BlockTags.BUTTONS, $$0); ... ) -> "Expected button"); ... 230 BlockPos $$1 = this.absolutePos($$0); 246 BlockPos $$1 = this.absolutePos($$0); 231 BlockState $$2 = this.getLevel().getBlockState($$1); 247 BlockState $$2 = this.getLevel().getBlockState($$1); 232 ButtonBlock $$3 = (ButtonBlock)$$2.getBlock(); 248 ButtonBlock $$3 = (ButtonBlock)$$2.getBlock(); net/minecraft/gametest/framework/GameTestHelper.java --- 10/30 --- Java 358 374 359 public void assertBlockPresent(Block $$0, BlockPos $$1) { 375 public void assertBlockPresent(Block $$0, BlockPos $$1) { 360 BlockState $$2 = this.getBlockState($$1); 376 BlockState $$2 = this.getBlockState($$1); 361 this.assertBlock($$1, $$2x -> $$2.is($$0), "Expected " + $$0.get 377 this.assertBlock($$1, $$2x -> $$2.is($$0), $$1x -> Component.tra ... Name().getString() + ", got " + $$2.getBlock().getName().getString()); ... nslatable("test.error.expected_block", $$0.getName(), $$1x.getName())) ... ... ; 362 } 378 } 363 379 364 public void assertBlockNotPresent(Block $$0, int $$1, int $$2, int 380 public void assertBlockNotPresent(Block $$0, int $$1, int $$2, int ... $$3) { ... $$3) { 365 this.assertBlockNotPresent($$0, new BlockPos($$1, $$2, $$3)); 381 this.assertBlockNotPresent($$0, new BlockPos($$1, $$2, $$3)); 366 } 382 } 367 383 368 public void assertBlockNotPresent(Block $$0, BlockPos $$1) { 384 public void assertBlockNotPresent(Block $$0, BlockPos $$1) { 369 this.assertBlock($$1, $$2 -> !this.getBlockState($$1).is($$0), " 385 this.assertBlock($$1, $$2 -> !this.getBlockState($$1).is($$0), $ ... Did not expect " + $$0.getName().getString()); ... $1x -> Component.translatable("test.error.unexpected_block", $$0.getNa ... ... me())); 370 } 386 } ... 387 ... 388 public void assertBlockTag(TagKey<Block> $$0, BlockPos $$1) { ... 389 this.assertBlockState( ... 390 $$1, $$1x -> $$1x.is($$0), $$1x -> Component.translatable("te ... ... st.error.expected_block_tag", $$0.location(), $$1x.getBlock().getName( ... ... )) ... 391 ); ... 392 } 371 393 372 public void succeedWhenBlockPresent(Block $$0, int $$1, int $$2, in 394 public void succeedWhenBlockPresent(Block $$0, int $$1, int $$2, in ... t $$3) { ... t $$3) { 373 this.succeedWhenBlockPresent($$0, new BlockPos($$1, $$2, $$3)); 395 this.succeedWhenBlockPresent($$0, new BlockPos($$1, $$2, $$3)); net/minecraft/gametest/framework/GameTestHelper.java --- 11/30 --- Java 377 this.succeedWhen(() -> this.assertBlockPresent($$0, $$1)); 399 this.succeedWhen(() -> this.assertBlockPresent($$0, $$1)); 378 } 400 } 379 ... 380 public void assertBlock(BlockPos $$0, Predicate<Block> $$1, String ... ... $$2) { ... 381 this.assertBlock($$0, $$1, () -> $$2); ... 382 } ... 383 401 384 public void assertBlock(BlockPos $$0, Predicate<Block> $$1, Supplie 402 public void assertBlock(BlockPos $$0, Predicate<Block> $$1, Functio ... r<String> $$2) { ... n<Block, Component> $$2) { 385 this.assertBlockState($$0, $$1x -> $$1.test($$1x.getBlock()), $$ 403 this.assertBlockState($$0, $$1x -> $$1.test($$1x.getBlock()), $$ ... 2); ... 1x -> $$2.apply($$1x.getBlock())); 386 } 404 } 387 405 388 public <T extends Comparable<T>> void assertBlockProperty(BlockPos 406 public <T extends Comparable<T>> void assertBlockProperty(BlockPos ... $$0, Property<T> $$1, T $$2) { ... $$0, Property<T> $$1, T $$2) { 389 BlockState $$3 = this.getBlockState($$0); 407 BlockState $$3 = this.getBlockState($$0); 390 boolean $$4 = $$3.hasProperty($$1); 408 boolean $$4 = $$3.hasProperty($$1); 391 if (!$$4 || !$$3.<T>getValue($$1).equals($$2)) { 409 if (!$$4) { 392 String $$5 = $$4 ? "was " + $$3.getValue($$1) : "property " + 410 throw this.assertionException($$0, "test.error.block_property ... $$1.getName() + " is missing"; ... _missing", $$1.getName(), $$2); ... 411 } else if (!$$3.<T>getValue($$1).equals($$2)) { 393 String $$6 = String.format(Locale.ROOT, "Expected property %s 412 throw this.assertionException($$0, "test.error.block_property ... to be %s, %s", $$1.getName(), $$2, $$5); ... _mismatch", $$1.getName(), $$2, $$3.getValue($$1)); 394 throw new GameTestAssertPosException($$6, this.absolutePos($$ ... ... 0), $$0, this.testInfo.getTick()); ... 395 } 413 } 396 } 414 } 397 415 398 public <T extends Comparable<T>> void assertBlockProperty(BlockPos 416 public <T extends Comparable<T>> void assertBlockProperty(BlockPos ... $$0, Property<T> $$1, Predicate<T> $$2, String $$3) { ... $$0, Property<T> $$1, Predicate<T> $$2, Component $$3) { 399 this.assertBlockState($$0, $$2x -> { 417 this.assertBlockState($$0, $$2x -> { 400 if (!$$2x.hasProperty($$1)) { 418 if (!$$2x.hasProperty($$1)) { 401 return false; 419 return false; 402 } else { 420 } else { 403 T $$3x = $$2x.getValue($$1); 421 T $$3x = $$2x.getValue($$1); 404 return $$2.test($$3x); 422 return $$2.test($$3x); 405 } 423 } 406 }, () -> $$3); 424 }, $$1x -> $$3); 407 } 425 } ... 426 ... 427 public void assertBlockState(BlockPos $$0, BlockState $$1) { ... 428 BlockState $$2 = this.getBlockState($$0); ... 429 if (!$$2.equals($$1)) { ... 430 throw this.assertionException($$0, "test.error.state_not_equa ... ... l", $$1, $$2); ... 431 } ... 432 } 408 433 409 public void assertBlockState(BlockPos $$0, Predicate<BlockState> $$ 434 public void assertBlockState(BlockPos $$0, Predicate<BlockState> $$ ... 1, Supplier<String> $$2) { ... 1, Function<BlockState, Component> $$2) { 410 BlockState $$3 = this.getBlockState($$0); 435 BlockState $$3 = this.getBlockState($$0); 411 if (!$$1.test($$3)) { 436 if (!$$1.test($$3)) { 412 throw new GameTestAssertPosException($$2.get(), this.absolute 437 throw this.assertionException($$0, $$2.apply($$3)); ... Pos($$0), $$0, this.testInfo.getTick()); ... 413 } 438 } 414 } 439 } 415 440 416 public <T extends BlockEntity> void assertBlockEntityData(BlockPos 441 public <T extends BlockEntity> void assertBlockEntityData(BlockPos ... $$0, Predicate<T> $$1, Supplier<String> $$2) { ... $$0, Class<T> $$1, Predicate<T> $$2, Supplier<Component> $$3) { 417 T $$3 = this.getBlockEntity($$0); 442 T $$4 = this.getBlockEntity($$0, $$1); 418 if (!$$1.test($$3)) { 443 if (!$$2.test($$4)) { 419 throw new GameTestAssertPosException($$2.get(), this.absolute 444 throw this.assertionException($$0, $$3.get()); ... Pos($$0), $$0, this.testInfo.getTick()); ... 420 } 445 } 421 } 446 } 422 447 423 public void assertRedstoneSignal(BlockPos $$0, Direction $$1, IntPr 448 public void assertRedstoneSignal(BlockPos $$0, Direction $$1, IntPr ... edicate $$2, Supplier<String> $$3) { ... edicate $$2, Supplier<Component> $$3) { 424 BlockPos $$4 = this.absolutePos($$0); 449 BlockPos $$4 = this.absolutePos($$0); 425 ServerLevel $$5 = this.getLevel(); 450 ServerLevel $$5 = this.getLevel(); 426 BlockState $$6 = $$5.getBlockState($$4); 451 BlockState $$6 = $$5.getBlockState($$4); 427 int $$7 = $$6.getSignal($$5, $$4, $$1); 452 int $$7 = $$6.getSignal($$5, $$4, $$1); 428 if (!$$2.test($$7)) { 453 if (!$$2.test($$7)) { 429 throw new GameTestAssertPosException($$3.get(), $$4, $$0, thi 454 throw this.assertionException($$0, $$3.get()); ... s.testInfo.getTick()); ... 430 } 455 } 431 } 456 } 432 457 433 public void assertEntityPresent(EntityType<?> $$0) { 458 public void assertEntityPresent(EntityType<?> $$0) { 434 List<? extends Entity> $$1 = this.getLevel().getEntities($$0, th 459 List<? extends Entity> $$1 = this.getLevel().getEntities($$0, th ... is.getBounds(), Entity::isAlive); ... is.getBounds(), Entity::isAlive); 435 if ($$1.isEmpty()) { 460 if ($$1.isEmpty()) { 436 throw new GameTestAssertException("Expected " + $$0.toShortSt 461 throw this.assertionException("test.error.expected_entity_in_ ... ring() + " to exist"); ... test", $$0.getDescription()); 437 } 462 } 438 } 463 } 439 464 net/minecraft/gametest/framework/GameTestHelper.java --- 12/30 --- Java 445 BlockPos $$2 = this.absolutePos($$1); 470 BlockPos $$2 = this.absolutePos($$1); 446 List<? extends Entity> $$3 = this.getLevel().getEntities($$0, ne 471 List<? extends Entity> $$3 = this.getLevel().getEntities($$0, ne ... w AABB($$2), Entity::isAlive); ... w AABB($$2), Entity::isAlive); 447 if ($$3.isEmpty()) { 472 if ($$3.isEmpty()) { 448 throw new GameTestAssertPosException("Expected " + $$0.toShor 473 throw this.assertionException($$1, "test.error.expected_entit ... tString(), $$2, $$1, this.testInfo.getTick()); ... y", $$0.getDescription()); 449 } 474 } 450 } 475 } 451 476 452 public void assertEntityPresent(EntityType<?> $$0, AABB $$1) { 477 public void assertEntityPresent(EntityType<?> $$0, AABB $$1) { 453 AABB $$2 = this.absoluteAABB($$1); 478 AABB $$2 = this.absoluteAABB($$1); 454 List<? extends Entity> $$3 = this.getLevel().getEntities($$0, $$ 479 List<? extends Entity> $$3 = this.getLevel().getEntities($$0, $$ ... 2, Entity::isAlive); ... 2, Entity::isAlive); 455 if ($$3.isEmpty()) { 480 if ($$3.isEmpty()) { 456 throw new GameTestAssertPosException( 481 throw this.assertionException(BlockPos.containing($$1.getCent ... ... er()), "test.error.expected_entity", $$0.getDescription()); 457 "Expected " + $$0.toShortString(), BlockPos.containing($$2 ... ... .getCenter()), BlockPos.containing($$1.getCenter()), this.testInfo.get ... ... Tick() ... 458 ); ... 459 } 482 } 460 } 483 } 461 484 462 public void assertEntitiesPresent(EntityType<?> $$0, int $$1) { 485 public void assertEntitiesPresent(EntityType<?> $$0, int $$1) { 463 List<? extends Entity> $$2 = this.getLevel().getEntities($$0, th 486 List<? extends Entity> $$2 = this.getLevel().getEntities($$0, th ... is.getBounds(), Entity::isAlive); ... is.getBounds(), Entity::isAlive); 464 if ($$2.size() != $$1) { 487 if ($$2.size() != $$1) { 465 throw new GameTestAssertException("Expected " + $$1 + " of ty 488 throw this.assertionException("test.error.expected_entity_cou ... pe " + $$0.toShortString() + " to exist, found " + $$2.size()); ... nt", $$1, $$0.getDescription(), $$2.size()); 466 } 489 } 467 } 490 } 468 491 469 public void assertEntitiesPresent(EntityType<?> $$0, BlockPos $$1, 492 public void assertEntitiesPresent(EntityType<?> $$0, BlockPos $$1, ... int $$2, double $$3) { ... int $$2, double $$3) { 470 BlockPos $$4 = this.absolutePos($$1); 493 BlockPos $$4 = this.absolutePos($$1); 471 List<? extends Entity> $$5 = this.getEntities((EntityType<? exte 494 List<? extends Entity> $$5 = this.getEntities((EntityType<? exte ... nds Entity>)$$0, $$1, $$3); ... nds Entity>)$$0, $$1, $$3); 472 if ($$5.size() != $$2) { 495 if ($$5.size() != $$2) { 473 throw new GameTestAssertPosException( 496 throw this.assertionException($$1, "test.error.expected_entit ... ... y_count", $$2, $$0.getDescription(), $$5.size()); 474 "Expected " + $$2 + " entities of type " + $$0.toShortStri ... ... ng() + ", actual number of entities found=" + $$5.size(), ... 475 $$4, ... 476 $$1, ... 477 this.testInfo.getTick() ... 478 ); ... 479 } 497 } 480 } 498 } net/minecraft/gametest/framework/GameTestHelper.java --- 13/30 --- Java 483 List<? extends Entity> $$3 = this.getEntities((EntityType<? exte 501 List<? extends Entity> $$3 = this.getEntities((EntityType<? exte ... nds Entity>)$$0, $$1, $$2); ... nds Entity>)$$0, $$1, $$2); 484 if ($$3.isEmpty()) { 502 if ($$3.isEmpty()) { 485 BlockPos $$4 = this.absolutePos($$1); 503 BlockPos $$4 = this.absolutePos($$1); 486 throw new GameTestAssertPosException("Expected " + $$0.toShor 504 throw this.assertionException($$1, "test.error.expected_entit ... tString(), $$4, $$1, this.testInfo.getTick()); ... y", $$0.getDescription()); 487 } 505 } 488 } 506 } 489 507 net/minecraft/gametest/framework/GameTestHelper.java --- 14/30 --- Java 506 $$3.stream() 524 $$3.stream() 507 .filter($$1x -> $$1x == $$0) 525 .filter($$1x -> $$1x == $$0) 508 .findFirst() 526 .findFirst() 509 .orElseThrow(() -> new GameTestAssertPosException("Expected " 527 .orElseThrow(() -> this.assertionException($$1, "test.error.e ... + $$0.getType().toShortString(), $$2, $$1, this.testInfo.getTick())); ... xpected_entity", $$0.getType().getDescription())); 510 } 528 } 511 529 512 public void assertItemEntityCountIs(Item $$0, BlockPos $$1, double 530 public void assertItemEntityCountIs(Item $$0, BlockPos $$1, double $$2, int $$3) { $$2, int $$3) { net/minecraft/gametest/framework/GameTestHelper.java --- 15/30 --- Java 522 } 540 } 523 541 524 if ($$6 != $$3) { 542 if ($$6 != $$3) { 525 throw new GameTestAssertPosException( 543 throw this.assertionException($$1, "test.error.expected_items ... ... _count", $$3, $$0.getName(), $$6); 526 "Expected " + $$3 + " " + $$0.getName().getString() + " it ... ... ems to exist (found " + $$6 + ")", $$4, $$1, this.testInfo.getTick() ... 527 ); ... 528 } 544 } 529 } 545 } net/minecraft/gametest/framework/GameTestHelper.java --- 16/30 --- Java 538 } 554 } 539 } 555 } 540 556 541 throw new GameTestAssertPosException("Expected " + $$0.getName() 557 throw this.assertionException($$1, "test.error.expected_item", $ ... .getString() + " item", $$3, $$1, this.testInfo.getTick()); ... $0.getName()); 542 } 558 } 543 559 544 public void assertItemEntityNotPresent(Item $$0, BlockPos $$1, doub 560 public void assertItemEntityNotPresent(Item $$0, BlockPos $$1, doub le $$2) { le $$2) { net/minecraft/gametest/framework/GameTestHelper.java --- 17/30 --- Java 547 for (Entity $$5 : this.getLevel().getEntities(EntityType.ITEM, n 563 for (Entity $$5 : this.getLevel().getEntities(EntityType.ITEM, n ... ew AABB($$3).inflate($$2), Entity::isAlive)) { ... ew AABB($$3).inflate($$2), Entity::isAlive)) { 548 ItemEntity $$6 = (ItemEntity)$$5; 564 ItemEntity $$6 = (ItemEntity)$$5; 549 if ($$6.getItem().getItem().equals($$0)) { 565 if ($$6.getItem().getItem().equals($$0)) { 550 throw new GameTestAssertPosException("Did not expect " + $ 566 throw this.assertionException($$1, "test.error.unexpected_ ... $0.getName().getString() + " item", $$3, $$1, this.testInfo.getTick()) ... item", $$0.getName()); ... ; ... 551 } 567 } 552 } 568 } 553 } 569 } net/minecraft/gametest/framework/GameTestHelper.java --- 18/30 --- Java 560 } 576 } 561 } 577 } 562 578 563 throw new GameTestAssertException("Expected " + $$0.getName().ge 579 throw this.assertionException("test.error.expected_item", $$0.ge ... tString() + " item"); ... tName()); 564 } 580 } 565 581 566 public void assertItemEntityNotPresent(Item $$0) { 582 public void assertItemEntityNotPresent(Item $$0) { 567 for (Entity $$2 : this.getLevel().getEntities(EntityType.ITEM, t 583 for (Entity $$2 : this.getLevel().getEntities(EntityType.ITEM, t ... his.getBounds(), Entity::isAlive)) { ... his.getBounds(), Entity::isAlive)) { 568 ItemEntity $$3 = (ItemEntity)$$2; 584 ItemEntity $$3 = (ItemEntity)$$2; 569 if ($$3.getItem().getItem().equals($$0)) { 585 if ($$3.getItem().getItem().equals($$0)) { 570 throw new GameTestAssertException("Did not expect " + $$0. 586 throw this.assertionException("test.error.unexpected_item" ... getName().getString() + " item"); ... , $$0.getName()); 571 } 587 } 572 } 588 } 573 } 589 } 574 590 575 public void assertEntityNotPresent(EntityType<?> $$0) { 591 public void assertEntityNotPresent(EntityType<?> $$0) { 576 List<? extends Entity> $$1 = this.getLevel().getEntities($$0, th 592 List<? extends Entity> $$1 = this.getLevel().getEntities($$0, th ... is.getBounds(), Entity::isAlive); ... is.getBounds(), Entity::isAlive); 577 if (!$$1.isEmpty()) { 593 if (!$$1.isEmpty()) { 578 throw new GameTestAssertException("Did not expect " + $$0.toS 594 throw this.assertionException($$1.getFirst().blockPosition(), ... hortString() + " to exist"); ... "test.error.unexpected_entity", $$0.getDescription()); 579 } 595 } 580 } 596 } 581 597 net/minecraft/gametest/framework/GameTestHelper.java --- 19/30 --- Java 587 BlockPos $$2 = this.absolutePos($$1); 603 BlockPos $$2 = this.absolutePos($$1); 588 List<? extends Entity> $$3 = this.getLevel().getEntities($$0, ne 604 List<? extends Entity> $$3 = this.getLevel().getEntities($$0, ne ... w AABB($$2), Entity::isAlive); ... w AABB($$2), Entity::isAlive); 589 if (!$$3.isEmpty()) { 605 if (!$$3.isEmpty()) { 590 throw new GameTestAssertPosException("Did not expect " + $$0. 606 throw this.assertionException($$1, "test.error.unexpected_ent ... toShortString(), $$2, $$1, this.testInfo.getTick()); ... ity", $$0.getDescription()); 591 } 607 } 592 } 608 } 593 609 594 public void assertEntityNotPresent(EntityType<?> $$0, AABB $$1) { 610 public void assertEntityNotPresent(EntityType<?> $$0, AABB $$1) { 595 AABB $$2 = this.absoluteAABB($$1); 611 AABB $$2 = this.absoluteAABB($$1); 596 List<? extends Entity> $$3 = this.getLevel().getEntities($$0, $$ 612 List<? extends Entity> $$3 = this.getLevel().getEntities($$0, $$ ... 2, Entity::isAlive); ... 2, Entity::isAlive); 597 if (!$$3.isEmpty()) { 613 if (!$$3.isEmpty()) { 598 throw new GameTestAssertPosException( 614 throw this.assertionException($$3.getFirst().blockPosition(), ... ... "test.error.unexpected_entity", $$0.getDescription()); 599 "Did not expect " + $$0.toShortString(), BlockPos.containi ... ... ng($$2.getCenter()), BlockPos.containing($$1.getCenter()), this.testIn ... ... fo.getTick() ... 600 ); ... 601 } 615 } 602 } 616 } net/minecraft/gametest/framework/GameTestHelper.java --- 20/30 --- Java 607 Predicate<? super Entity> $$6 = $$1x -> $$1x.getBoundingBox().in 621 Predicate<? super Entity> $$6 = $$1x -> $$1x.getBoundingBox().in ... tersects($$5, $$5); ... tersects($$5, $$5); 608 List<? extends Entity> $$7 = this.getLevel().getEntities($$0, th 622 List<? extends Entity> $$7 = this.getLevel().getEntities($$0, th ... is.getBounds(), $$6); ... is.getBounds(), $$6); 609 if ($$7.isEmpty()) { 623 if ($$7.isEmpty()) { 610 throw new GameTestAssertException("Expected " + $$0.toShortSt 624 throw this.assertionException("test.error.expected_entity_tou ... ring() + " to touch " + $$5 + " (relative " + $$4 + ")"); ... ching", $$0.getDescription(), $$5.x(), $$5.y(), $$5.z(), $$1, $$2, $$3 ... ... ); 611 } 625 } 612 } 626 } 613 627 net/minecraft/gametest/framework/GameTestHelper.java --- 21/30 --- Java 617 Predicate<? super Entity> $$6 = $$1x -> !$$1x.getBoundingBox().i 631 Predicate<? super Entity> $$6 = $$1x -> !$$1x.getBoundingBox().i ... ntersects($$5, $$5); ... ntersects($$5, $$5); 618 List<? extends Entity> $$7 = this.getLevel().getEntities($$0, th 632 List<? extends Entity> $$7 = this.getLevel().getEntities($$0, th ... is.getBounds(), $$6); ... is.getBounds(), $$6); 619 if ($$7.isEmpty()) { 633 if ($$7.isEmpty()) { 620 throw new GameTestAssertException("Did not expect " + $$0.toS 634 throw this.assertionException("test.error.expected_entity_not ... hortString() + " to touch " + $$5 + " (relative " + $$4 + ")"); ... _touching", $$0.getDescription(), $$5.x(), $$5.y(), $$5.z(), $$1, $$2, ... ... $$3); 621 } 635 } 622 } 636 } 623 637 624 public <E extends Entity, T> void assertEntityData(BlockPos $$0, En 638 public <E extends Entity, T> void assertEntityData(BlockPos $$0, En ... tityType<E> $$1, Predicate<E> $$2) { ... tityType<E> $$1, Predicate<E> $$2) { 625 BlockPos $$3 = this.absolutePos($$0); 639 BlockPos $$3 = this.absolutePos($$0); 626 List<E> $$4 = this.getLevel().getEntities($$1, new AABB($$3), En 640 List<E> $$4 = this.getLevel().getEntities($$1, new AABB($$3), En ... tity::isAlive); ... tity::isAlive); 627 if ($$4.isEmpty()) { 641 if ($$4.isEmpty()) { 628 throw new GameTestAssertPosException("Expected " + $$1.toShor 642 throw this.assertionException($$0, "test.error.expected_entit ... tString(), $$3, $$0, this.testInfo.getTick()); ... y", $$1.getDescription()); 629 } else { 643 } else { 630 for (E $$5 : $$4) { 644 for (E $$5 : $$4) { 631 if (!$$2.test($$5)) { 645 if (!$$2.test($$5)) { 632 throw new GameTestAssertException("Test failed for enti 646 throw this.assertionException($$5.blockPosition(), "tes ... ty " + $$5); ... t.error.expected_entity_data_predicate", $$5.getName()); 633 } 647 } 634 } 648 } 635 } 649 } net/minecraft/gametest/framework/GameTestHelper.java --- 22/30 --- Java 639 BlockPos $$4 = this.absolutePos($$0); 653 BlockPos $$4 = this.absolutePos($$0); 640 List<E> $$5 = this.getLevel().getEntities($$1, new AABB($$4), En 654 List<E> $$5 = this.getLevel().getEntities($$1, new AABB($$4), En ... tity::isAlive); ... tity::isAlive); 641 if ($$5.isEmpty()) { 655 if ($$5.isEmpty()) { 642 throw new GameTestAssertPosException("Expected " + $$1.toShor 656 throw this.assertionException($$0, "test.error.expected_entit ... tString(), $$4, $$0, this.testInfo.getTick()); ... y", $$1.getDescription()); 643 } else { 657 } else { 644 for (E $$6 : $$5) { 658 for (E $$6 : $$5) { 645 T $$7 = $$2.apply($$6); 659 T $$7 = $$2.apply($$6); 646 if (!Objects.equals($$7, $$3)) { 660 if (!Objects.equals($$7, $$3)) { 647 throw new GameTestAssertException("Expected entity data 661 throw this.assertionException($$0, "test.error.expected ... to be: " + $$3 + ", but was: " + $$7); ... _entity_data", $$3, $$7); 648 } 662 } 649 } 663 } 650 } 664 } net/minecraft/gametest/framework/GameTestHelper.java --- 23/30 --- Java 654 BlockPos $$3 = this.absolutePos($$0); 668 BlockPos $$3 = this.absolutePos($$0); 655 List<E> $$4 = this.getLevel().getEntities($$1, new AABB($$3), En 669 List<E> $$4 = this.getLevel().getEntities($$1, new AABB($$3), En ... tity::isAlive); ... tity::isAlive); 656 if ($$4.isEmpty()) { 670 if ($$4.isEmpty()) { 657 throw new GameTestAssertPosException("Expected entity of type 671 throw this.assertionException($$0, "test.error.expected_entit ... : " + $$1, $$3, $$0, this.getTick()); ... y", $$1.getDescription()); 658 } else { 672 } else { 659 for (E $$5 : $$4) { 673 for (E $$5 : $$4) { 660 if ($$5.isHolding($$2)) { 674 if ($$5.isHolding($$2)) { 661 return; 675 return; 662 } 676 } 663 } 677 } 664 678 665 throw new GameTestAssertPosException("Entity should be holdin 679 throw this.assertionException($$0, "test.error.expected_entit ... g: " + $$2, $$3, $$0, this.getTick()); ... y_holding", $$2.getName()); 666 } 680 } 667 } 681 } 668 682 669 public <E extends Entity & InventoryCarrier> void assertEntityInven 683 public <E extends Entity & InventoryCarrier> void assertEntityInven ... toryContains(BlockPos $$0, EntityType<E> $$1, Item $$2) { ... toryContains(BlockPos $$0, EntityType<E> $$1, Item $$2) { 670 BlockPos $$3 = this.absolutePos($$0); 684 BlockPos $$3 = this.absolutePos($$0); 671 List<E> $$4 = this.getLevel().getEntities($$1, new AABB($$3), $$ 685 List<E> $$4 = this.getLevel().getEntities($$1, new AABB($$3), $$ ... 0x -> ((Entity)$$0x).isAlive()); ... 0x -> ((Entity)$$0x).isAlive()); 672 if ($$4.isEmpty()) { 686 if ($$4.isEmpty()) { 673 throw new GameTestAssertPosException("Expected " + $$1.toShor 687 throw this.assertionException($$0, "test.error.expected_entit ... tString() + " to exist", $$3, $$0, this.getTick()); ... y", $$1.getDescription()); 674 } else { 688 } else { 675 for (E $$5 : $$4) { 689 for (E $$5 : $$4) { 676 if ($$5.getInventory().hasAnyMatching($$1x -> $$1x.is($$2) 690 if ($$5.getInventory().hasAnyMatching($$1x -> $$1x.is($$2) ... )) { ... )) { 677 return; 691 return; 678 } 692 } 679 } 693 } 680 694 681 throw new GameTestAssertPosException("Entity inventory should 695 throw this.assertionException($$0, "test.error.expected_entit ... contain: " + $$2, $$3, $$0, this.getTick()); ... y_having", $$2.getName()); 682 } 696 } 683 } 697 } 684 698 685 public void assertContainerEmpty(BlockPos $$0) { 699 public void assertContainerEmpty(BlockPos $$0) { 686 BlockPos $$1 = this.absolutePos($$0); 700 BaseContainerBlockEntity $$1 = this.getBlockEntity($$0, BaseCont ... ... ainerBlockEntity.class); 687 BlockEntity $$2 = this.getLevel().getBlockEntity($$1); ... 688 if ($$2 instanceof BaseContainerBlockEntity && !((BaseContainerB 701 if (!$$1.isEmpty()) { ... lockEntity)$$2).isEmpty()) { ... 689 throw new GameTestAssertException("Container should be empty" 702 throw this.assertionException($$0, "test.error.expected_empty ... ); ... _container"); 690 } 703 } 691 } 704 } 692 705 693 public void assertContainerContains(BlockPos $$0, Item $$1) { 706 public void assertContainerContainsSingle(BlockPos $$0, Item $$1) { 694 BlockPos $$2 = this.absolutePos($$0); 707 BaseContainerBlockEntity $$2 = this.getBlockEntity($$0, BaseCont ... ... ainerBlockEntity.class); 695 BlockEntity $$3 = this.getLevel().getBlockEntity($$2); ... 696 if (!($$3 instanceof BaseContainerBlockEntity)) { 708 if ($$2.countItem($$1) != 1) { 697 ResourceLocation $$4 = $$3 != null ? BuiltInRegistries.BLOCK_ ... ... ENTITY_TYPE.getKey($$3.getType()) : null; ... 698 throw new GameTestAssertException("Expected a container at " ... ... + $$0 + ", found " + $$4); ... 699 } else if (((BaseContainerBlockEntity)$$3).countItem($$1) != 1) ... ... { ... 700 throw new GameTestAssertException("Container should contain: 709 throw this.assertionException($$0, "test.error.expected_conta ... " + $$1); ... iner_contents_single", $$1.getName()); 701 } 710 } 702 } 711 } ... 712 ... 713 public void assertContainerContains(BlockPos $$0, Item $$1) { ... 714 BaseContainerBlockEntity $$2 = this.getBlockEntity($$0, BaseCont ... ... ainerBlockEntity.class); ... 715 if ($$2.countItem($$1) == 0) { ... 716 throw this.assertionException($$0, "test.error.expected_conta ... ... iner_contents", $$1.getName()); ... 717 } ... 718 } 703 719 704 public void assertSameBlockStates(BoundingBox $$0, BlockPos $$1) { 720 public void assertSameBlockStates(BoundingBox $$0, BlockPos $$1) { 705 BlockPos.betweenClosedStream($$0).forEach($$2 -> { 721 BlockPos.betweenClosedStream($$0).forEach($$2 -> { net/minecraft/gametest/framework/GameTestHelper.java --- 24/30 --- Java 712 BlockState $$2 = this.getBlockState($$0); 728 BlockState $$2 = this.getBlockState($$0); 713 BlockState $$3 = this.getBlockState($$1); 729 BlockState $$3 = this.getBlockState($$1); 714 if ($$2 != $$3) { 730 if ($$2 != $$3) { 715 this.fail("Incorrect state. Expected " + $$3 + ", got " + $$2 731 throw this.assertionException($$0, "test.error.state_not_equa ... , $$0); ... l", $$3, $$2); 716 } 732 } 717 } 733 } 718 734 719 public void assertAtTickTimeContainerContains(long $$0, BlockPos $$ 735 public void assertAtTickTimeContainerContains(long $$0, BlockPos $$ ... 1, Item $$2) { ... 1, Item $$2) { 720 this.runAtTickTime($$0, () -> this.assertContainerContains($$1, 736 this.runAtTickTime($$0, () -> this.assertContainerContainsSingle ... $$2)); ... ($$1, $$2)); 721 } 737 } 722 738 723 public void assertAtTickTimeContainerEmpty(long $$0, BlockPos $$1) 739 public void assertAtTickTimeContainerEmpty(long $$0, BlockPos $$1) { { net/minecraft/gametest/framework/GameTestHelper.java --- 25/30 --- Java 728 this.succeedWhen(() -> this.assertEntityData($$0, $$1, $$2, $$3) 744 this.succeedWhen(() -> this.assertEntityData($$0, $$1, $$2, $$3) ... ); ... ); 729 } 745 } 730 746 731 public void assertEntityPosition(Entity $$0, AABB $$1, String $$2) 747 public void assertEntityPosition(Entity $$0, AABB $$1, Component $$ ... { ... 2) { 732 if (!$$1.contains(this.relativeVec($$0.position()))) { 748 if (!$$1.contains(this.relativeVec($$0.position()))) { 733 this.fail($$2); 749 throw this.assertionException($$2); 734 } 750 } 735 } 751 } 736 752 737 public <E extends Entity> void assertEntityProperty(E $$0, Predicat 753 public <E extends Entity> void assertEntityProperty(E $$0, Predicat ... e<E> $$1, String $$2) { ... e<E> $$1, Component $$2) { 738 if (!$$1.test($$0)) { 754 if (!$$1.test($$0)) { 739 throw new GameTestAssertException("Entity " + $$0 + " failed 755 throw this.assertionException($$0.blockPosition(), "test.erro ... " + $$2 + " test"); ... r.entity_property", $$0.getName(), $$2); 740 } 756 } 741 } 757 } 742 758 743 public <E extends Entity, T> void assertEntityProperty(E $$0, Funct 759 public <E extends Entity, T> void assertEntityProperty(E $$0, Funct ... ion<E, T> $$1, String $$2, T $$3) { ... ion<E, T> $$1, T $$2, Component $$3) { 744 T $$4 = $$1.apply($$0); 760 T $$4 = $$1.apply($$0); 745 if (!$$4.equals($$3)) { 761 if (!$$4.equals($$2)) { 746 throw new GameTestAssertException("Entity " + $$0 + " value " 762 throw this.assertionException($$0.blockPosition(), "test.erro ... + $$2 + "=" + $$4 + " is not equal to expected " + $$3); ... r.entity_property_details", $$0.getName(), $$3, $$4, $$2); 747 } 763 } 748 } 764 } 749 765 750 public void assertLivingEntityHasMobEffect(LivingEntity $$0, Holder 766 public void assertLivingEntityHasMobEffect(LivingEntity $$0, Holder ... <MobEffect> $$1, int $$2) { ... <MobEffect> $$1, int $$2) { 751 MobEffectInstance $$3 = $$0.getEffect($$1); 767 MobEffectInstance $$3 = $$0.getEffect($$1); 752 if ($$3 == null || $$3.getAmplifier() != $$2) { 768 if ($$3 == null || $$3.getAmplifier() != $$2) { 753 int $$4 = $$2 + 1; ... 754 throw new GameTestAssertException("Entity " + $$0 + " failed 769 throw this.assertionException("test.error.expected_entity_eff ... has " + $$1.value().getDescriptionId() + " x " + $$4 + " test"); ... ect", $$0.getName(), PotionContents.getPotionDescription($$1, $$2)); 755 } 770 } 756 } 771 } 757 772 net/minecraft/gametest/framework/GameTestHelper.java --- 26/30 --- Java 803 } 818 } 804 819 805 public void runAfterDelay(long $$0, Runnable $$1) { 820 public void runAfterDelay(long $$0, Runnable $$1) { 806 this.runAtTickTime(this.testInfo.getTick() + $$0, $$1); 821 this.runAtTickTime((long)this.testInfo.getTick() + $$0, $$1); 807 } 822 } 808 823 809 public void randomTick(BlockPos $$0) { 824 public void randomTick(BlockPos $$0) { net/minecraft/gametest/framework/GameTestHelper.java --- 27/30 --- Java 842 return this.relativePos(this.getLevel().getHeightmapPos($$0, $$3 857 return this.relativePos(this.getLevel().getHeightmapPos($$0, $$3 ... )).getY(); ... )).getY(); 843 } 858 } 844 859 845 public void fail(String $$0, BlockPos $$1) { 860 public void fail(Component $$0, BlockPos $$1) { 846 throw new GameTestAssertPosException($$0, this.absolutePos($$1), 861 throw this.assertionException($$1, $$0); ... $$1, this.getTick()); ... 847 } 862 } 848 863 849 public void fail(String $$0, Entity $$1) { 864 public void fail(Component $$0, Entity $$1) { 850 throw new GameTestAssertPosException($$0, $$1.blockPosition(), t 865 throw this.assertionException($$1.blockPosition(), $$0); ... his.relativePos($$1.blockPosition()), this.getTick()); ... 851 } 866 } 852 867 853 public void fail(String $$0) { 868 public void fail(Component $$0) { 854 throw new GameTestAssertException($$0); 869 throw this.assertionException($$0); 855 } 870 } 856 871 857 public void failIf(Runnable $$0) { 872 public void failIf(Runnable $$0) { 858 this.testInfo.createSequence().thenWaitUntil($$0).thenFail(() -> 873 this.testInfo.createSequence().thenWaitUntil($$0).thenFail(() -> ... new GameTestAssertException("Fail conditions met")); ... this.assertionException("test.error.fail")); 859 } 874 } 860 875 861 public void failIfEver(Runnable $$0) { 876 public void failIfEver(Runnable $$0) { 862 LongStream.range(this.testInfo.getTick(), (long)this.testInfo.ge 877 LongStream.range((long)this.testInfo.getTick(), (long)this.testI ... tTimeoutTicks()).forEach($$1 -> this.testInfo.setRunAtTickTime($$1, $$ ... nfo.getTimeoutTicks()).forEach($$1 -> this.testInfo.setRunAtTickTime($ ... 0::run)); ... $1, $$0::run)); 863 } 878 } 864 879 865 public GameTestSequence startSequence() { 880 public GameTestSequence startSequence() { net/minecraft/gametest/framework/GameTestHelper.java --- 28/30 --- Java 905 return this.testInfo.getRotation(); 920 return this.testInfo.getRotation(); 906 } 921 } 907 922 908 public void assertTrue(boolean $$0, String $$1) { 923 public void assertTrue(boolean $$0, Component $$1) { 909 if (!$$0) { 924 if (!$$0) { 910 throw new GameTestAssertException($$1); 925 throw this.assertionException($$1); 911 } 926 } 912 } 927 } 913 928 914 public <N> void assertValueEqual(N $$0, N $$1, String $$2) { 929 public <N> void assertValueEqual(N $$0, N $$1, Component $$2) { 915 if (!$$0.equals($$1)) { 930 if (!$$0.equals($$1)) { 916 throw new GameTestAssertException("Expected " + $$2 + " to be 931 throw this.assertionException("test.error.value_not_equal", $ ... " + $$1 + ", but was " + $$0); ... $2, $$0, $$1); 917 } 932 } 918 } 933 } 919 934 920 public void assertFalse(boolean $$0, String $$1) { 935 public void assertFalse(boolean $$0, Component $$1) { 921 if ($$0) { ... 922 throw new GameTestAssertException($$1); 936 this.assertTrue(!$$0, $$1); 923 } ... 924 } 937 } 925 938 926 public long getTick() { 939 public long getTick() { 927 return this.testInfo.getTick(); 940 return (long)this.testInfo.getTick(); 928 } 941 } 929 942 930 public AABB getBounds() { 943 public AABB getBounds() { net/minecraft/gametest/framework/GameTestHelper.java --- 29/30 --- Java 949 } 962 } 950 963 951 public void onEachTick(Runnable $$0) { 964 public void onEachTick(Runnable $$0) { 952 LongStream.range(this.testInfo.getTick(), (long)this.testInfo.ge 965 LongStream.range((long)this.testInfo.getTick(), (long)this.testI ... tTimeoutTicks()).forEach($$1 -> this.testInfo.setRunAtTickTime($$1, $$ ... nfo.getTimeoutTicks()).forEach($$1 -> this.testInfo.setRunAtTickTime($ ... 0::run)); ... $1, $$0::run)); 953 } 966 } 954 967 955 public void placeAt(Player $$0, ItemStack $$1, BlockPos $$2, Direct 968 public void placeAt(Player $$0, ItemStack $$1, BlockPos $$2, Direct ion $$3) { ion $$3) { net/minecraft/gametest/framework/GameTestHelper.java --- 30/30 --- Java 967 this.getLevel(), $$2, $$3, this.getLevel().registryAccess().l 980 this.getLevel(), $$2, $$3, this.getLevel().registryAccess().l ... ookupOrThrow(Registries.BIOME).getOrThrow($$0) ... ookupOrThrow(Registries.BIOME).getOrThrow($$0) 968 ); 981 ); 969 if ($$4.right().isPresent()) { 982 if ($$4.right().isPresent()) { 970 this.fail("Failed to set biome for test"); 983 throw this.assertionException("test.error.set_biome"); 971 } 984 } 972 } 985 } 973 } 986 } net/minecraft/world/entity/animal/Pig.java --- 1/8 --- Java 6 import net.minecraft.core.Direction; 6 import net.minecraft.core.Direction; 7 import net.minecraft.core.Holder; 7 import net.minecraft.core.Holder; 8 import net.minecraft.core.Registry; 8 import net.minecraft.core.Registry; . 9 import net.minecraft.core.component.DataComponentGetter; . 10 import net.minecraft.core.component.DataComponentType; . 11 import net.minecraft.core.component.DataComponents; 9 import net.minecraft.core.registries.Registries; 12 import net.minecraft.core.registries.Registries; 10 import net.minecraft.nbt.CompoundTag; 13 import net.minecraft.nbt.CompoundTag; 11 import net.minecraft.network.syncher.EntityDataAccessor; 14 import net.minecraft.network.syncher.EntityDataAccessor; net/minecraft/world/entity/animal/Pig.java --- 2/8 --- Java 16 import net.minecraft.server.level.ServerLevel; 19 import net.minecraft.server.level.ServerLevel; 17 import net.minecraft.sounds.SoundEvent; 20 import net.minecraft.sounds.SoundEvent; 18 import net.minecraft.sounds.SoundEvents; 21 import net.minecraft.sounds.SoundEvents; 19 import net.minecraft.sounds.SoundSource; .. 20 import net.minecraft.tags.ItemTags; 22 import net.minecraft.tags.ItemTags; 21 import net.minecraft.world.Difficulty; 23 import net.minecraft.world.Difficulty; 22 import net.minecraft.world.DifficultyInstance; 24 import net.minecraft.world.DifficultyInstance; net/minecraft/world/entity/animal/Pig.java --- 3/8 --- Java 33 import net.minecraft.world.entity.LightningBolt; 35 import net.minecraft.world.entity.LightningBolt; 34 import net.minecraft.world.entity.LivingEntity; 36 import net.minecraft.world.entity.LivingEntity; 35 import net.minecraft.world.entity.Pose; 37 import net.minecraft.world.entity.Pose; 36 import net.minecraft.world.entity.Saddleable; .. 37 import net.minecraft.world.entity.SpawnGroupData; 38 import net.minecraft.world.entity.SpawnGroupData; 38 import net.minecraft.world.entity.VariantHolder; .. 39 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 39 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 40 import net.minecraft.world.entity.ai.attributes.Attributes; 40 import net.minecraft.world.entity.ai.attributes.Attributes; 41 import net.minecraft.world.entity.ai.goal.BreedGoal; 41 import net.minecraft.world.entity.ai.goal.BreedGoal; net/minecraft/world/entity/animal/Pig.java --- 4/8 --- Java 51 import net.minecraft.world.entity.vehicle.DismountHelper; 51 import net.minecraft.world.entity.vehicle.DismountHelper; 52 import net.minecraft.world.item.ItemStack; 52 import net.minecraft.world.item.ItemStack; 53 import net.minecraft.world.item.Items; 53 import net.minecraft.world.item.Items; .. 54 import net.minecraft.world.item.equipment.Equippable; 54 import net.minecraft.world.level.Level; 55 import net.minecraft.world.level.Level; 55 import net.minecraft.world.level.ServerLevelAccessor; 56 import net.minecraft.world.level.ServerLevelAccessor; 56 import net.minecraft.world.level.biome.Biome; 57 import net.minecraft.world.level.biome.Biome; 57 import net.minecraft.world.level.block.state.BlockState; 58 import net.minecraft.world.level.block.state.BlockState; 58 import net.minecraft.world.phys.AABB; 59 import net.minecraft.world.phys.AABB; 59 import net.minecraft.world.phys.Vec3; 60 import net.minecraft.world.phys.Vec3; 60 61 61 public class Pig extends Animal implements ItemSteerable, Saddleable, V 62 public class Pig extends Animal implements ItemSteerable { .. ariantHolder<Holder<PigVariant>> { .. 62 private static final EntityDataAccessor<Boolean> DATA_SADDLE_ID = Sy .. .. nchedEntityData.defineId(Pig.class, EntityDataSerializers.BOOLEAN); .. 63 private static final EntityDataAccessor<Integer> DATA_BOOST_TIME = S 63 private static final EntityDataAccessor<Integer> DATA_BOOST_TIME = S .. ynchedEntityData.defineId(Pig.class, EntityDataSerializers.INT); .. ynchedEntityData.defineId(Pig.class, EntityDataSerializers.INT); 64 private static final EntityDataAccessor<Holder<PigVariant>> DATA_VAR 64 private static final EntityDataAccessor<Holder<PigVariant>> DATA_VAR .. IANT_ID = SynchedEntityData.defineId(Pig.class, EntityDataSerializers.P .. IANT_ID = SynchedEntityData.defineId(Pig.class, EntityDataSerializers.P .. IG_VARIANT); .. IG_VARIANT); 65 private final ItemBasedSteering steering = new ItemBasedSteering(thi 65 private final ItemBasedSteering steering = new ItemBasedSteering(thi .. s.entityData, DATA_BOOST_TIME, DATA_SADDLE_ID); .. s.entityData, DATA_BOOST_TIME); 66 66 67 public Pig(EntityType<? extends Pig> $$0, Level $$1) { 67 public Pig(EntityType<? extends Pig> $$0, Level $$1) { 68 super($$0, $$1); 68 super($$0, $$1); net/minecraft/world/entity/animal/Pig.java --- 5/8 --- Java 105 @Override 105 @Override 106 protected void defineSynchedData(SynchedEntityData.Builder $$0) { 106 protected void defineSynchedData(SynchedEntityData.Builder $$0) { 107 super.defineSynchedData($$0); 107 super.defineSynchedData($$0); 108 $$0.define(DATA_SADDLE_ID, false); ... 109 $$0.define(DATA_BOOST_TIME, 0); 108 $$0.define(DATA_BOOST_TIME, 0); 110 Registry<PigVariant> $$1 = this.registryAccess().lookupOrThrow(R 109 Registry<PigVariant> $$1 = this.registryAccess().lookupOrThrow(R ... egistries.PIG_VARIANT); ... egistries.PIG_VARIANT); 111 $$0.define(DATA_VARIANT_ID, $$1.get(PigVariants.DEFAULT).or($$1: 110 $$0.define(DATA_VARIANT_ID, $$1.get(PigVariants.DEFAULT).or($$1: :getAny).orElseThrow()); :getAny).orElseThrow()); net/minecraft/world/entity/animal/Pig.java --- 6/8 --- Java 115 public void addAdditionalSaveData(CompoundTag $$0) { 114 public void addAdditionalSaveData(CompoundTag $$0) { 116 super.addAdditionalSaveData($$0); 115 super.addAdditionalSaveData($$0); 117 this.getVariant().unwrapKey().ifPresent($$1 -> $$0.putString("va 116 this.getVariant().unwrapKey().ifPresent($$1 -> $$0.putString("va ... riant", $$1.location().toString())); ... riant", $$1.location().toString())); 118 this.steering.addAdditionalSaveData($$0); ... 119 } 117 } 120 118 121 @Override 119 @Override 122 public void readAdditionalSaveData(CompoundTag $$0) { 120 public void readAdditionalSaveData(CompoundTag $$0) { 123 super.readAdditionalSaveData($$0); 121 super.readAdditionalSaveData($$0); 124 this.steering.readAdditionalSaveData($$0); ... 125 Optional.ofNullable(ResourceLocation.tryParse($$0.getString("var 122 Optional.ofNullable(ResourceLocation.tryParse($$0.getString("var ... iant"))) ... iant"))) 126 .map($$0x -> ResourceKey.create(Registries.PIG_VARIANT, $$0x) 123 .map($$0x -> ResourceKey.create(Registries.PIG_VARIANT, $$0x) ... ) ... ) 127 .flatMap($$0x -> this.registryAccess().lookupOrThrow(Registri 124 .flatMap($$0x -> this.registryAccess().lookupOrThrow(Registri es.PIG_VARIANT).get($$0x)) es.PIG_VARIANT).get($$0x)) net/minecraft/world/entity/animal/Pig.java --- 7/8 --- Java 161 InteractionResult $$3 = super.mobInteract($$0, $$1); 158 InteractionResult $$3 = super.mobInteract($$0, $$1); 162 if (!$$3.consumesAction()) { 159 if (!$$3.consumesAction()) { 163 ItemStack $$4 = $$0.getItemInHand($$1); 160 ItemStack $$4 = $$0.getItemInHand($$1); 164 return (InteractionResult)($$4.is(Items.SADDLE) ? $$4.inte 161 return (InteractionResult)(this.isEquippableInSlot($$4, Eq ... ractLivingEntity($$0, this, $$1) : InteractionResult.PASS); ... uipmentSlot.SADDLE) ? $$4.interactLivingEntity($$0, this, $$1) : Inter ... ... actionResult.PASS); 165 } else { 162 } else { 166 return $$3; 163 return $$3; 167 } 164 } 168 } 165 } 169 } 166 } 170 167 171 @Override 168 @Override 172 public boolean isSaddleable() { 169 public boolean canUseSlot(EquipmentSlot $$0) { 173 return this.isAlive() && !this.isBaby(); 170 return $$0 != EquipmentSlot.SADDLE ? super.canUseSlot($$0) : thi ... ... s.isAlive() && !this.isBaby(); 174 } 171 } 175 172 176 @Override 173 @Override 177 protected void dropEquipment(ServerLevel $$0) { 174 protected boolean canDispenserEquipIntoSlot(EquipmentSlot $$0) { 178 super.dropEquipment($$0); 175 return $$0 == EquipmentSlot.SADDLE || super.canDispenserEquipInt ... ... oSlot($$0); 179 if (this.isSaddled()) { ... 180 this.spawnAtLocation($$0, Items.SADDLE); ... 181 } ... 182 } 176 } 183 177 184 @Override 178 @Override 185 public boolean isSaddled() { ... 186 return this.steering.hasSaddle(); ... 187 } ... 188 ... 189 @Override ... 190 public void equipSaddle(ItemStack $$0, @Nullable SoundSource $$1) { 179 protected Holder<SoundEvent> getEquipSound(EquipmentSlot $$0, ItemS ... ... tack $$1, Equippable $$2) { 191 this.steering.setSaddle(true); ... 192 if ($$1 != null) { 180 return (Holder<SoundEvent>)($$0 == EquipmentSlot.SADDLE ? SoundE ... ... vents.PIG_SADDLE : super.getEquipSound($$0, $$1, $$2)); 193 this.level().playSound(null, this, SoundEvents.PIG_SADDLE, $$ ... ... 1, 0.5F, 1.0F); ... 194 } ... 195 } 181 } 196 182 197 @Override 183 @Override net/minecraft/world/entity/animal/Pig.java --- 8/8 --- Java 285 return new Vec3(0.0, (double)(0.6F * this.getEyeHeight()), (doub 271 return new Vec3(0.0, (double)(0.6F * this.getEyeHeight()), (doub ... le)(this.getBbWidth() * 0.4F)); ... le)(this.getBbWidth() * 0.4F)); 286 } 272 } 287 273 288 public void setVariant(Holder<PigVariant> $$0) { 274 private void setVariant(Holder<PigVariant> $$0) { 289 this.entityData.set(DATA_VARIANT_ID, $$0); 275 this.entityData.set(DATA_VARIANT_ID, $$0); 290 } 276 } 291 277 292 public Holder<PigVariant> getVariant() { 278 public Holder<PigVariant> getVariant() { 293 return this.entityData.get(DATA_VARIANT_ID); 279 return this.entityData.get(DATA_VARIANT_ID); 294 } 280 } ... 281 ... 282 @Nullable ... 283 @Override ... 284 public <T> T get(DataComponentType<? extends T> $$0) { ... 285 return $$0 == DataComponents.PIG_VARIANT ? castComponentValue((D ... ... ataComponentType<T>)$$0, this.getVariant()) : super.get($$0); ... 286 } ... 287 ... 288 @Override ... 289 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 290 this.applyImplicitComponentIfPresent($$0, DataComponents.PIG_VAR ... ... IANT); ... 291 super.applyImplicitComponents($$0); ... 292 } ... 293 ... 294 @Override ... 295 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 296 if ($$0 == DataComponents.PIG_VARIANT) { ... 297 this.setVariant(castComponentValue(DataComponents.PIG_VARIANT ... ... , $$1)); ... 298 return true; ... 299 } else { ... 300 return super.applyImplicitComponent($$0, $$1); ... 301 } ... 302 } 295 303 296 @Override 304 @Override 297 public SpawnGroupData finalizeSpawn(ServerLevelAccessor $$0, Diffic 305 public SpawnGroupData finalizeSpawn(ServerLevelAccessor $$0, Diffic ultyInstance $$1, EntitySpawnReason $$2, @Nullable SpawnGroupData $$3) ultyInstance $$1, EntitySpawnReason $$2, @Nullable SpawnGroupData $$3) { { net/minecraft/world/entity/animal/MushroomCow.java --- 1/8 --- Java 1 package net.minecraft.world.entity.animal; 1 package net.minecraft.world.entity.animal; 2 2 . 3 import io.netty.buffer.ByteBuf; 3 import java.util.Optional; 4 import java.util.Optional; 4 import java.util.UUID; 5 import java.util.UUID; . 6 import java.util.function.IntFunction; 5 import javax.annotation.Nullable; 7 import javax.annotation.Nullable; 6 import net.minecraft.core.BlockPos; 8 import net.minecraft.core.BlockPos; . 9 import net.minecraft.core.component.DataComponentGetter; . 10 import net.minecraft.core.component.DataComponentType; 7 import net.minecraft.core.component.DataComponents; 11 import net.minecraft.core.component.DataComponents; 8 import net.minecraft.core.particles.ParticleTypes; 12 import net.minecraft.core.particles.ParticleTypes; 9 import net.minecraft.nbt.CompoundTag; 13 import net.minecraft.nbt.CompoundTag; 10 import net.minecraft.nbt.NbtOps; 14 import net.minecraft.nbt.NbtOps; .. 15 import net.minecraft.network.codec.ByteBufCodecs; .. 16 import net.minecraft.network.codec.StreamCodec; 11 import net.minecraft.network.syncher.EntityDataAccessor; 17 import net.minecraft.network.syncher.EntityDataAccessor; 12 import net.minecraft.network.syncher.EntityDataSerializers; 18 import net.minecraft.network.syncher.EntityDataSerializers; 13 import net.minecraft.network.syncher.SynchedEntityData; 19 import net.minecraft.network.syncher.SynchedEntityData; net/minecraft/world/entity/animal/MushroomCow.java --- 2/8 --- Java 16 import net.minecraft.sounds.SoundEvents; 22 import net.minecraft.sounds.SoundEvents; 17 import net.minecraft.sounds.SoundSource; 23 import net.minecraft.sounds.SoundSource; 18 import net.minecraft.tags.BlockTags; 24 import net.minecraft.tags.BlockTags; .. 25 import net.minecraft.util.ByIdMap; 19 import net.minecraft.util.RandomSource; 26 import net.minecraft.util.RandomSource; 20 import net.minecraft.util.StringRepresentable; 27 import net.minecraft.util.StringRepresentable; 21 import net.minecraft.world.InteractionHand; 28 import net.minecraft.world.InteractionHand; net/minecraft/world/entity/animal/MushroomCow.java --- 3/8 --- Java 26 import net.minecraft.world.entity.EntityType; 33 import net.minecraft.world.entity.EntityType; 27 import net.minecraft.world.entity.LightningBolt; 34 import net.minecraft.world.entity.LightningBolt; 28 import net.minecraft.world.entity.Shearable; 35 import net.minecraft.world.entity.Shearable; 29 import net.minecraft.world.entity.VariantHolder; .. 30 import net.minecraft.world.entity.item.ItemEntity; 36 import net.minecraft.world.entity.item.ItemEntity; 31 import net.minecraft.world.entity.player.Player; 37 import net.minecraft.world.entity.player.Player; 32 import net.minecraft.world.item.ItemStack; 38 import net.minecraft.world.item.ItemStack; net/minecraft/world/entity/animal/MushroomCow.java --- 4/8 --- Java 42 import net.minecraft.world.level.gameevent.GameEvent; 48 import net.minecraft.world.level.gameevent.GameEvent; 43 import net.minecraft.world.level.storage.loot.BuiltInLootTables; 49 import net.minecraft.world.level.storage.loot.BuiltInLootTables; 44 50 45 public class MushroomCow extends Cow implements Shearable, VariantHolde 51 public class MushroomCow extends Cow implements Shearable { .. r<MushroomCow.Variant> { .. 46 private static final EntityDataAccessor<String> DATA_TYPE = SynchedE 52 private static final EntityDataAccessor<Integer> DATA_TYPE = Synched .. ntityData.defineId(MushroomCow.class, EntityDataSerializers.STRING); .. EntityData.defineId(MushroomCow.class, EntityDataSerializers.INT); 47 private static final int MUTATE_CHANCE = 1024; 53 private static final int MUTATE_CHANCE = 1024; 48 private static final String TAG_STEW_EFFECTS = "stew_effects"; 54 private static final String TAG_STEW_EFFECTS = "stew_effects"; 49 @Nullable 55 @Nullable net/minecraft/world/entity/animal/MushroomCow.java --- 5/8 --- Java 77 @Override 83 @Override 78 protected void defineSynchedData(SynchedEntityData.Builder $$0) { 84 protected void defineSynchedData(SynchedEntityData.Builder $$0) { 79 super.defineSynchedData($$0); 85 super.defineSynchedData($$0); 80 $$0.define(DATA_TYPE, MushroomCow.Variant.RED.type); 86 $$0.define(DATA_TYPE, MushroomCow.Variant.RED.id); 81 } 87 } 82 88 83 @Override 89 @Override net/minecraft/world/entity/animal/MushroomCow.java --- 6/8 --- Java 200 return $$1 != null ? Optional.of($$1.getSuspiciousEffects()) : O 206 return $$1 != null ? Optional.of($$1.getSuspiciousEffects()) : O ... ptional.empty(); ... ptional.empty(); 201 } 207 } 202 208 203 public void setVariant(MushroomCow.Variant $$0) { 209 private void setVariant(MushroomCow.Variant $$0) { 204 this.entityData.set(DATA_TYPE, $$0.type); 210 this.entityData.set(DATA_TYPE, $$0.id); 205 } 211 } 206 212 207 public MushroomCow.Variant getVariant() { 213 public MushroomCow.Variant getVariant() { 208 return MushroomCow.Variant.byName(this.entityData.get(DATA_TYPE) 214 return MushroomCow.Variant.byId(this.entityData.get(DATA_TYPE)); ... ); ... 209 } 215 } ... 216 ... 217 @Nullable ... 218 @Override ... 219 public <T> T get(DataComponentType<? extends T> $$0) { ... 220 return $$0 == DataComponents.MOOSHROOM_VARIANT ? castComponentVa ... ... lue((DataComponentType<T>)$$0, this.getVariant()) : super.get($$0); ... 221 } ... 222 ... 223 @Override ... 224 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 225 this.applyImplicitComponentIfPresent($$0, DataComponents.MOOSHRO ... ... OM_VARIANT); ... 226 super.applyImplicitComponents($$0); ... 227 } ... 228 ... 229 @Override ... 230 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 231 if ($$0 == DataComponents.MOOSHROOM_VARIANT) { ... 232 this.setVariant(castComponentValue(DataComponents.MOOSHROOM_V ... ... ARIANT, $$1)); ... 233 return true; ... 234 } else { ... 235 return super.applyImplicitComponent($$0, $$1); ... 236 } ... 237 } 210 238 211 @Nullable 239 @Nullable 212 public MushroomCow getBreedOffspring(ServerLevel $$0, AgeableMob $$ 240 public MushroomCow getBreedOffspring(ServerLevel $$0, AgeableMob $$ 1) { 1) { net/minecraft/world/entity/animal/MushroomCow.java --- 7/8 --- Java 232 } 260 } 233 261 234 public static enum Variant implements StringRepresentable { 262 public static enum Variant implements StringRepresentable { 235 RED("red", Blocks.RED_MUSHROOM.defaultBlockState()), 263 RED("red", 0, Blocks.RED_MUSHROOM.defaultBlockState()), 236 BROWN("brown", Blocks.BROWN_MUSHROOM.defaultBlockState()); 264 BROWN("brown", 1, Blocks.BROWN_MUSHROOM.defaultBlockState()); 237 265 238 public static final StringRepresentable.EnumCodec<MushroomCow.Va 266 public static final StringRepresentable.EnumCodec<MushroomCow.Va ... riant> CODEC = StringRepresentable.fromEnum(MushroomCow.Variant::value ... riant> CODEC = StringRepresentable.fromEnum(MushroomCow.Variant::value ... s); ... s); ... 267 private static final IntFunction<MushroomCow.Variant> BY_ID = By ... ... IdMap.continuous(MushroomCow.Variant::id, values(), ByIdMap.OutOfBound ... ... sStrategy.CLAMP); ... 268 public static final StreamCodec<ByteBuf, MushroomCow.Variant> ST ... ... REAM_CODEC = ByteBufCodecs.idMapper(BY_ID, MushroomCow.Variant::id); 239 final String type; 269 private final String type; ... 270 final int id; 240 private final BlockState blockState; 271 private final BlockState blockState; 241 272 242 private Variant(final String $$0, final BlockState $$1) { 273 private Variant(final String $$0, final int $$1, final BlockStat ... ... e $$2) { 243 this.type = $$0; 274 this.type = $$0; ... 275 this.id = $$1; 244 this.blockState = $$1; 276 this.blockState = $$2; 245 } 277 } 246 278 247 public BlockState getBlockState() { 279 public BlockState getBlockState() { net/minecraft/world/entity/animal/MushroomCow.java --- 8/8 --- Java 253 return this.type; 285 return this.type; 254 } 286 } ... 287 ... 288 private int id() { ... 289 return this.id; ... 290 } 255 291 256 static MushroomCow.Variant byName(String $$0) { 292 static MushroomCow.Variant byName(String $$0) { 257 return CODEC.byName($$0, RED); 293 return CODEC.byName($$0, RED); 258 } 294 } ... 295 ... 296 static MushroomCow.Variant byId(int $$0) { ... 297 return BY_ID.apply($$0); ... 298 } 259 } 299 } 260 } 300 } net/minecraft/world/entity/animal/Rabbit.java --- 1/6 --- Java 1 package net.minecraft.world.entity.animal; 1 package net.minecraft.world.entity.animal; 2 2 3 import com.mojang.serialization.Codec; 3 import com.mojang.serialization.Codec; . 4 import io.netty.buffer.ByteBuf; 4 import java.util.function.IntFunction; 5 import java.util.function.IntFunction; 5 import javax.annotation.Nullable; 6 import javax.annotation.Nullable; 6 import net.minecraft.Util; 7 import net.minecraft.Util; 7 import net.minecraft.core.BlockPos; 8 import net.minecraft.core.BlockPos; 8 import net.minecraft.core.Holder; 9 import net.minecraft.core.Holder; . 10 import net.minecraft.core.component.DataComponentGetter; . 11 import net.minecraft.core.component.DataComponentType; . 12 import net.minecraft.core.component.DataComponents; 9 import net.minecraft.nbt.CompoundTag; 13 import net.minecraft.nbt.CompoundTag; 10 import net.minecraft.network.chat.Component; 14 import net.minecraft.network.chat.Component; .. 15 import net.minecraft.network.codec.ByteBufCodecs; .. 16 import net.minecraft.network.codec.StreamCodec; 11 import net.minecraft.network.syncher.EntityDataAccessor; 17 import net.minecraft.network.syncher.EntityDataAccessor; 12 import net.minecraft.network.syncher.EntityDataSerializers; 18 import net.minecraft.network.syncher.EntityDataSerializers; 13 import net.minecraft.network.syncher.SynchedEntityData; 19 import net.minecraft.network.syncher.SynchedEntityData; net/minecraft/world/entity/animal/Rabbit.java --- 2/6 --- Java 30 import net.minecraft.world.entity.EntityType; 36 import net.minecraft.world.entity.EntityType; 31 import net.minecraft.world.entity.LivingEntity; 37 import net.minecraft.world.entity.LivingEntity; 32 import net.minecraft.world.entity.SpawnGroupData; 38 import net.minecraft.world.entity.SpawnGroupData; 33 import net.minecraft.world.entity.VariantHolder; .. 34 import net.minecraft.world.entity.ai.attributes.AttributeModifier; 39 import net.minecraft.world.entity.ai.attributes.AttributeModifier; 35 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 40 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 36 import net.minecraft.world.entity.ai.attributes.Attributes; 41 import net.minecraft.world.entity.ai.attributes.Attributes; net/minecraft/world/entity/animal/Rabbit.java --- 3/6 --- Java 65 import net.minecraft.world.level.pathfinder.Path; 70 import net.minecraft.world.level.pathfinder.Path; 66 import net.minecraft.world.phys.Vec3; 71 import net.minecraft.world.phys.Vec3; 67 72 68 public class Rabbit extends Animal implements VariantHolder<Rabbit.Vari 73 public class Rabbit extends Animal { .. ant> { .. 69 public static final double STROLL_SPEED_MOD = 0.6; 74 public static final double STROLL_SPEED_MOD = 0.6; 70 public static final double BREED_SPEED_MOD = 0.8; 75 public static final double BREED_SPEED_MOD = 0.8; 71 public static final double FOLLOW_SPEED_MOD = 1.0; 76 public static final double FOLLOW_SPEED_MOD = 1.0; net/minecraft/world/entity/animal/Rabbit.java --- 4/6 --- Java 344 return Rabbit.Variant.byId(this.entityData.get(DATA_TYPE_ID)); 349 return Rabbit.Variant.byId(this.entityData.get(DATA_TYPE_ID)); 345 } 350 } 346 351 347 public void setVariant(Rabbit.Variant $$0) { 352 private void setVariant(Rabbit.Variant $$0) { 348 if ($$0 == Rabbit.Variant.EVIL) { 353 if ($$0 == Rabbit.Variant.EVIL) { 349 this.getAttribute(Attributes.ARMOR).setBaseValue(8.0); 354 this.getAttribute(Attributes.ARMOR).setBaseValue(8.0); 350 this.goalSelector.addGoal(4, new MeleeAttackGoal(this, 1.4, t 355 this.goalSelector.addGoal(4, new MeleeAttackGoal(this, 1.4, t rue)); rue)); net/minecraft/world/entity/animal/Rabbit.java --- 5/6 --- Java 363 this.entityData.set(DATA_TYPE_ID, $$0.id); 368 this.entityData.set(DATA_TYPE_ID, $$0.id); 364 } 369 } ... 370 ... 371 @Nullable ... 372 @Override ... 373 public <T> T get(DataComponentType<? extends T> $$0) { ... 374 return $$0 == DataComponents.RABBIT_VARIANT ? castComponentValue ... ... ((DataComponentType<T>)$$0, this.getVariant()) : super.get($$0); ... 375 } ... 376 ... 377 @Override ... 378 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 379 this.applyImplicitComponentIfPresent($$0, DataComponents.RABBIT_ ... ... VARIANT); ... 380 super.applyImplicitComponents($$0); ... 381 } ... 382 ... 383 @Override ... 384 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 385 if ($$0 == DataComponents.RABBIT_VARIANT) { ... 386 this.setVariant(castComponentValue(DataComponents.RABBIT_VARI ... ... ANT, $$1)); ... 387 return true; ... 388 } else { ... 389 return super.applyImplicitComponent($$0, $$1); ... 390 } ... 391 } 365 392 366 @Nullable 393 @Nullable 367 @Override 394 @Override net/minecraft/world/entity/animal/Rabbit.java --- 6/6 --- Java 605 632 606 private static final IntFunction<Rabbit.Variant> BY_ID = ByIdMap 633 private static final IntFunction<Rabbit.Variant> BY_ID = ByIdMap ... .sparse(Rabbit.Variant::id, values(), BROWN); ... .sparse(Rabbit.Variant::id, values(), BROWN); 607 public static final Codec<Rabbit.Variant> CODEC = StringRepresen 634 public static final Codec<Rabbit.Variant> CODEC = StringRepresen ... table.fromEnum(Rabbit.Variant::values); ... table.fromEnum(Rabbit.Variant::values); ... 635 public static final StreamCodec<ByteBuf, Rabbit.Variant> STREAM_ ... ... CODEC = ByteBufCodecs.idMapper(BY_ID, Rabbit.Variant::id); 608 final int id; 636 final int id; 609 private final String name; 637 private final String name; 610 638 net/minecraft/world/entity/animal/Parrot.java --- 1/6 --- Java 3 import com.google.common.collect.Lists; 3 import com.google.common.collect.Lists; 4 import com.google.common.collect.Maps; 4 import com.google.common.collect.Maps; 5 import com.mojang.serialization.Codec; 5 import com.mojang.serialization.Codec; . 6 import io.netty.buffer.ByteBuf; 6 import java.util.List; 7 import java.util.List; 7 import java.util.Map; 8 import java.util.Map; 8 import java.util.function.IntFunction; 9 import java.util.function.IntFunction; net/minecraft/world/entity/animal/Parrot.java --- 2/6 --- Java 11 import net.minecraft.Util; 12 import net.minecraft.Util; 12 import net.minecraft.core.BlockPos; 13 import net.minecraft.core.BlockPos; 13 import net.minecraft.core.Direction; 14 import net.minecraft.core.Direction; .. 15 import net.minecraft.core.component.DataComponentGetter; .. 16 import net.minecraft.core.component.DataComponentType; .. 17 import net.minecraft.core.component.DataComponents; 14 import net.minecraft.nbt.CompoundTag; 18 import net.minecraft.nbt.CompoundTag; .. 19 import net.minecraft.network.codec.ByteBufCodecs; .. 20 import net.minecraft.network.codec.StreamCodec; 15 import net.minecraft.network.syncher.EntityDataAccessor; 21 import net.minecraft.network.syncher.EntityDataAccessor; 16 import net.minecraft.network.syncher.EntityDataSerializers; 22 import net.minecraft.network.syncher.EntityDataSerializers; 17 import net.minecraft.network.syncher.SynchedEntityData; 23 import net.minecraft.network.syncher.SynchedEntityData; net/minecraft/world/entity/animal/Parrot.java --- 3/6 --- Java 40 import net.minecraft.world.entity.PathfinderMob; 46 import net.minecraft.world.entity.PathfinderMob; 41 import net.minecraft.world.entity.SpawnGroupData; 47 import net.minecraft.world.entity.SpawnGroupData; 42 import net.minecraft.world.entity.TamableAnimal; 48 import net.minecraft.world.entity.TamableAnimal; 43 import net.minecraft.world.entity.VariantHolder; .. 44 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 49 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 45 import net.minecraft.world.entity.ai.attributes.Attributes; 50 import net.minecraft.world.entity.ai.attributes.Attributes; 46 import net.minecraft.world.entity.ai.control.FlyingMoveControl; 51 import net.minecraft.world.entity.ai.control.FlyingMoveControl; net/minecraft/world/entity/animal/Parrot.java --- 4/6 --- Java 65 import net.minecraft.world.level.pathfinder.PathType; 70 import net.minecraft.world.level.pathfinder.PathType; 66 import net.minecraft.world.phys.Vec3; 71 import net.minecraft.world.phys.Vec3; 67 72 68 public class Parrot extends ShoulderRidingEntity implements VariantHold 73 public class Parrot extends ShoulderRidingEntity implements FlyingAnima .. er<Parrot.Variant>, FlyingAnimal { .. l { 69 private static final EntityDataAccessor<Integer> DATA_VARIANT_ID = S 74 private static final EntityDataAccessor<Integer> DATA_VARIANT_ID = S .. ynchedEntityData.defineId(Parrot.class, EntityDataSerializers.INT); .. ynchedEntityData.defineId(Parrot.class, EntityDataSerializers.INT); 70 private static final Predicate<Mob> NOT_PARROT_PREDICATE = new Predi 75 private static final Predicate<Mob> NOT_PARROT_PREDICATE = new Predi .. cate<Mob>() { .. cate<Mob>() { 71 public boolean test(@Nullable Mob $$0) { 76 public boolean test(@Nullable Mob $$0) { net/minecraft/world/entity/animal/Parrot.java --- 5/6 --- Java 393 return Parrot.Variant.byId(this.entityData.get(DATA_VARIANT_ID)) 398 return Parrot.Variant.byId(this.entityData.get(DATA_VARIANT_ID)) ... ; ... ; 394 } 399 } 395 400 396 public void setVariant(Parrot.Variant $$0) { 401 private void setVariant(Parrot.Variant $$0) { 397 this.entityData.set(DATA_VARIANT_ID, $$0.id); 402 this.entityData.set(DATA_VARIANT_ID, $$0.id); 398 } 403 } ... 404 ... 405 @Nullable ... 406 @Override ... 407 public <T> T get(DataComponentType<? extends T> $$0) { ... 408 return $$0 == DataComponents.PARROT_VARIANT ? castComponentValue ... ... ((DataComponentType<T>)$$0, this.getVariant()) : super.get($$0); ... 409 } ... 410 ... 411 @Override ... 412 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 413 this.applyImplicitComponentIfPresent($$0, DataComponents.PARROT_ ... ... VARIANT); ... 414 super.applyImplicitComponents($$0); ... 415 } ... 416 ... 417 @Override ... 418 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 419 if ($$0 == DataComponents.PARROT_VARIANT) { ... 420 this.setVariant(castComponentValue(DataComponents.PARROT_VARI ... ... ANT, $$1)); ... 421 return true; ... 422 } else { ... 423 return super.applyImplicitComponent($$0, $$1); ... 424 } ... 425 } 399 426 400 @Override 427 @Override 401 protected void defineSynchedData(SynchedEntityData.Builder $$0) { 428 protected void defineSynchedData(SynchedEntityData.Builder $$0) { net/minecraft/world/entity/animal/Parrot.java --- 6/6 --- Java 486 513 487 public static final Codec<Parrot.Variant> CODEC = StringRepresen 514 public static final Codec<Parrot.Variant> CODEC = StringRepresen ... table.fromEnum(Parrot.Variant::values); ... table.fromEnum(Parrot.Variant::values); 488 private static final IntFunction<Parrot.Variant> BY_ID = ByIdMap 515 private static final IntFunction<Parrot.Variant> BY_ID = ByIdMap ... .continuous(Parrot.Variant::getId, values(), ByIdMap.OutOfBoundsStrate ... .continuous(Parrot.Variant::getId, values(), ByIdMap.OutOfBoundsStrate ... gy.CLAMP); ... gy.CLAMP); ... 516 public static final StreamCodec<ByteBuf, Parrot.Variant> STREAM_ ... ... CODEC = ByteBufCodecs.idMapper(BY_ID, Parrot.Variant::getId); 489 final int id; 517 final int id; 490 private final String name; 518 private final String name; 491 519 net/minecraft/gametest/framework/TestCommand.java --- 1/2 --- Text (exceeded DFT_GRAPH_LIMIT) 5 import com.mojang.brigadier.arguments.IntegerArgumentType; 5 import com.mojang.brigadier.arguments.IntegerArgumentType; 6 import com.mojang.brigadier.arguments.StringArgumentType; 6 import com.mojang.brigadier.arguments.StringArgumentType; 7 import com.mojang.brigadier.builder.ArgumentBuilder; 7 import com.mojang.brigadier.builder.ArgumentBuilder; . 8 import com.mojang.brigadier.builder.LiteralArgumentBuilder; 8 import com.mojang.brigadier.context.CommandContext; 9 import com.mojang.brigadier.context.CommandContext; 9 import com.mojang.brigadier.exceptions.CommandSyntaxException; 10 import com.mojang.brigadier.exceptions.CommandSyntaxException; 10 import com.mojang.logging.LogUtils; 11 import com.mojang.brigadier.exceptions.Dynamic3CommandExceptionType; 11 import java.io.BufferedReader; .. 12 import java.io.IOException; 12 import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; 13 import java.io.OutputStream; .. 14 import java.nio.file.Files; 13 import com.mojang.brigadier.suggestion.Suggestions; 15 import java.nio.file.Path; .. 16 import java.nio.file.Paths; 14 import com.mojang.brigadier.suggestion.SuggestionsBuilder; 17 import java.util.ArrayList; 15 import java.util.ArrayList; 18 import java.util.Collection; 16 import java.util.Collection; .. 17 import java.util.Iterator; .. 18 import java.util.Locale; 19 import java.util.Optional; 19 import java.util.Optional; 20 import java.util.function.Consumer; 20 import java.util.concurrent.CompletableFuture; 21 import java.util.function.Function; 21 import java.util.function.Function; 22 import java.util.function.ToIntFunction; .. 23 import java.util.stream.Stream; 22 import java.util.stream.Stream; 24 import net.minecraft.ChatFormatting; 23 import net.minecraft.ChatFormatting; 25 import net.minecraft.FileUtil; 24 import net.minecraft.SharedConstants; .. 25 import net.minecraft.commands.CommandBuildContext; 26 import net.minecraft.commands.CommandSourceStack; 26 import net.minecraft.commands.CommandSourceStack; 27 import net.minecraft.commands.Commands; 27 import net.minecraft.commands.Commands; .. 28 import net.minecraft.commands.SharedSuggestionProvider; .. 29 import net.minecraft.commands.arguments.ResourceArgument; .. 30 import net.minecraft.commands.arguments.ResourceLocationArgument; .. 31 import net.minecraft.commands.arguments.ResourceSelectorArgument; 28 import net.minecraft.core.BlockPos; 32 import net.minecraft.core.BlockPos; 29 import net.minecraft.core.Direction; 33 import net.minecraft.core.Direction; .. 34 import net.minecraft.core.Holder; 30 import net.minecraft.core.Vec3i; 35 import net.minecraft.core.Vec3i; 31 import net.minecraft.data.CachedOutput; 36 import net.minecraft.core.registries.Registries; 32 import net.minecraft.data.structures.NbtToSnbt; .. 33 import net.minecraft.nbt.NbtIo; .. 34 import net.minecraft.nbt.NbtUtils; .. 35 import net.minecraft.network.chat.ClickEvent; 37 import net.minecraft.network.chat.ClickEvent; 36 import net.minecraft.network.chat.Component; 38 import net.minecraft.network.chat.Component; 37 import net.minecraft.network.chat.ComponentUtils; 39 import net.minecraft.network.chat.ComponentUtils; 38 import net.minecraft.network.chat.HoverEvent; 40 import net.minecraft.network.chat.HoverEvent; .. 41 import net.minecraft.network.chat.MutableComponent; 39 import net.minecraft.network.chat.Style; 42 import net.minecraft.network.chat.Style; 40 import net.minecraft.network.protocol.game.DebugPackets; 43 import net.minecraft.network.protocol.game.DebugPackets; 41 import net.minecraft.resources.ResourceLocation; 44 import net.minecraft.resources.ResourceLocation; .. 45 import net.minecraft.server.commands.InCommandFunction; 42 import net.minecraft.server.level.ServerLevel; 46 import net.minecraft.server.level.ServerLevel; 43 import net.minecraft.util.Mth; 47 import net.minecraft.util.Mth; 44 import net.minecraft.world.entity.Entity; .. 45 import net.minecraft.world.level.block.Blocks; 48 import net.minecraft.world.level.block.Blocks; 46 import net.minecraft.world.level.block.Rotation; 49 import net.minecraft.world.level.block.Rotation; 47 import net.minecraft.world.level.block.entity.StructureBlockEntity; 50 import net.minecraft.world.level.block.entity.TestInstanceBlockEntity; 48 import net.minecraft.world.level.levelgen.Heightmap; 51 import net.minecraft.world.level.levelgen.Heightmap; 49 import net.minecraft.world.level.levelgen.structure.BoundingBox; 52 import net.minecraft.world.level.levelgen.structure.BoundingBox; 50 import net.minecraft.world.phys.BlockHitResult; 53 import net.minecraft.world.phys.BlockHitResult; 51 import org.apache.commons.io.IOUtils; .. 52 import org.apache.commons.lang3.mutable.MutableBoolean; .. 53 import org.apache.commons.lang3.mutable.MutableInt; 54 import org.apache.commons.lang3.mutable.MutableInt; 54 import org.slf4j.Logger; .. 55 55 56 public class TestCommand { 56 public class TestCommand { 57 public static final int STRUCTURE_BLOCK_NEARBY_SEARCH_RADIUS = 15; 57 public static final int TEST_NEARBY_SEARCH_RADIUS = 15; 58 public static final int STRUCTURE_BLOCK_FULL_SEARCH_RADIUS = 200; 58 public static final int TEST_FULL_SEARCH_RADIUS = 200; 59 public static final int VERIFY_TEST_GRID_AXIS_SIZE = 10; 59 public static final int VERIFY_TEST_GRID_AXIS_SIZE = 10; 60 public static final int VERIFY_TEST_BATCH_SIZE = 100; 60 public static final int VERIFY_TEST_BATCH_SIZE = 100; 61 private static final Logger LOGGER = LogUtils.getLogger(); .. 62 private static final int DEFAULT_CLEAR_RADIUS = 200; 61 private static final int DEFAULT_CLEAR_RADIUS = 200; 63 private static final int MAX_CLEAR_RADIUS = 1024; 62 private static final int MAX_CLEAR_RADIUS = 1024; 64 private static final int TEST_POS_Z_OFFSET_FROM_PLAYER = 3; 63 private static final int TEST_POS_Z_OFFSET_FROM_PLAYER = 3; 65 private static final int SHOW_POS_DURATION_MS = 10000; 64 private static final int SHOW_POS_DURATION_MS = 10000; 66 private static final int DEFAULT_X_SIZE = 5; 65 private static final int DEFAULT_X_SIZE = 5; 67 private static final int DEFAULT_Y_SIZE = 5; 66 private static final int DEFAULT_Y_SIZE = 5; 68 private static final int DEFAULT_Z_SIZE = 5; 67 private static final int DEFAULT_Z_SIZE = 5; 69 private static final String STRUCTURE_BLOCK_ENTITY_COULD_NOT_BE_FOU 68 private static final SimpleCommandExceptionType CLEAR_NO_TESTS = ne .. ND = "Structure block entity could not be found"; .. w SimpleCommandExceptionType(Component.translatable("commands.test.cle .. .. ar.error.no_tests")); .. 69 private static final SimpleCommandExceptionType TEST_INSTANCE_COULD .. .. _NOT_BE_FOUND = new SimpleCommandExceptionType( .. 70 Component.translatable("commands.test.error.test_instance_not_fo .. .. und") .. 71 ); .. 72 private static final SimpleCommandExceptionType NO_STRUCTURES_TO_EX .. .. PORT = new SimpleCommandExceptionType( .. 73 Component.literal("Could not find any structures to export") .. 74 ); 70 private static final TestFinder.Builder<TestCommand.Runner> testFin 75 private static final SimpleCommandExceptionType NO_TEST_INSTANCES = .. der = new TestFinder.Builder<>(TestCommand.Runner::new); .. new SimpleCommandExceptionType( .. 76 Component.translatable("commands.test.error.no_test_instances") .. 77 ); .. 78 private static final Dynamic3CommandExceptionType NO_TEST_CONTAININ .. .. G = new Dynamic3CommandExceptionType( .. 79 ($$0, $$1, $$2) -> Component.translatableEscape("commands.test.e .. .. rror.no_test_containing_pos", $$0, $$1, $$2) .. 80 ); 71 81 .. 82 private static int reset(TestFinder $$0) { .. 83 stopTests(); .. 84 return toGameTestInfos($$0.source(), RetryOptions.noRetries(), $ .. .. $0).map($$1 -> resetGameTestInfo($$0.source(), $$1)).toList().isEmpty( .. .. ) ? 0 : 1; .. 85 } .. 86 .. 87 private static int clear(TestFinder $$0) throws CommandSyntaxExcept .. .. ion { .. 88 stopTests(); .. 89 CommandSourceStack $$1 = $$0.source(); .. 90 ServerLevel $$2 = $$1.getLevel(); .. 91 GameTestRunner.clearMarkers($$2); .. 92 Stream<BlockPos> $$3 = $$0.findTestPos(); .. 93 int $$4 = $$3.mapToInt($$1x -> { .. 94 if ($$2.getBlockEntity($$1x) instanceof TestInstanceBlockEnti .. .. ty $$3x) { .. 95 BoundingBox $$4x = $$3x.getStructureBoundingBox(); .. 96 StructureUtils.clearSpaceForStructure($$4x, $$2); .. 97 return 1; .. 98 } else { .. 99 return 0; .. 100 } .. 101 }).sum(); .. 102 if ($$4 == 0) { .. 103 throw CLEAR_NO_TESTS.create(); .. 104 } else { .. 105 $$1.sendSuccess(() -> Component.translatable("commands.test.c .. ... lear.success", $$4), true); .. 106 return 1; .. 107 } .. 108 } .. 109 .. 110 private static int export(TestFinder $$0) throws CommandSyntaxExcep .. ... tion { .. 111 CommandSourceStack $$1 = $$0.source(); .. 112 ServerLevel $$2 = $$1.getLevel(); .. 113 int $$3 = 0; .. 114 boolean $$4 = true; .. 115 .. 116 for (Iterator<BlockPos> $$5 = $$0.findTestPos().iterator(); $$5. .. ... hasNext(); $$3++) { .. 117 BlockPos $$6 = $$5.next(); .. 118 if (!($$2.getBlockEntity($$6) instanceof TestInstanceBlockEnt .. ... ity $$7)) { .. 119 throw TEST_INSTANCE_COULD_NOT_BE_FOUND.create(); .. 120 } .. 121 .. 122 if (!$$7.exportTest($$1::sendSystemMessage)) { .. 123 $$4 = false; .. 124 } .. 125 } .. 126 .. 127 if ($$3 == 0) { .. 128 throw NO_STRUCTURES_TO_EXPORT.create(); .. 129 } else { .. 130 String $$8 = "Exported " + $$3 + " structures"; .. 131 $$0.source().sendSuccess(() -> Component.literal($$8), true); .. 132 return $$4 ? 0 : 1; .. 133 } .. 134 } .. 135 .. 136 private static int verify(TestFinder $$0) { .. 137 stopTests(); .. 138 CommandSourceStack $$1 = $$0.source(); .. 139 ServerLevel $$2 = $$1.getLevel(); .. 140 BlockPos $$3 = createTestPositionAround($$1); .. 141 Collection<GameTestInfo> $$4 = Stream.concat(toGameTestInfos($$1 .. ... , RetryOptions.noRetries(), $$0), toGameTestInfo($$1, RetryOptions.noR .. ... etries(), $$0, 0)) .. 142 .toList(); .. 143 GameTestRunner.clearMarkers($$2); .. 144 FailedTestTracker.forgetFailedTests(); .. 145 Collection<GameTestBatch> $$5 = new ArrayList<>(); .. 146 .. 147 for (GameTestInfo $$6 : $$4) { .. 148 for (Rotation $$7 : Rotation.values()) { .. 149 Collection<GameTestInfo> $$8 = new ArrayList<>(); .. 150 .. 151 for (int $$9 = 0; $$9 < 100; $$9++) { .. 152 GameTestInfo $$10 = new GameTestInfo($$6.getTestHolder( .. ... ), $$7, $$2, new RetryOptions(1, true)); .. 153 $$10.setTestBlockPos($$6.getTestBlockPos()); .. 154 $$8.add($$10); .. 155 } .. 156 .. 157 GameTestBatch $$11 = GameTestBatchFactory.toGameTestBatch( .. ... $$8, $$6.getTest().batch(), $$7.ordinal()); .. 158 $$5.add($$11); .. 159 } .. 160 } .. 161 .. 162 StructureGridSpawner $$12 = new StructureGridSpawner($$3, 10, tr .. ... ue); .. 163 GameTestRunner $$13 = GameTestRunner.Builder.fromBatches($$5, $$ .. ... 2) .. 164 .batcher(GameTestBatchFactory.fromGameTestInfo(100)) .. 165 .newStructureSpawner($$12) .. 166 .existingStructureSpawner($$12) .. 167 .haltOnError(true) .. 168 .build(); .. 169 return trackAndStartRunner($$1, $$13); .. 170 } .. 171 .. 172 private static int run(TestFinder $$0, RetryOptions $$1, int $$2, i .. ... nt $$3) { .. 173 stopTests(); .. 174 CommandSourceStack $$4 = $$0.source(); .. 175 ServerLevel $$5 = $$4.getLevel(); .. 176 BlockPos $$6 = createTestPositionAround($$4); .. 177 Collection<GameTestInfo> $$7 = Stream.concat(toGameTestInfos($$4 .. ... , $$1, $$0), toGameTestInfo($$4, $$1, $$0, $$2)).toList(); .. 178 if ($$7.isEmpty()) { .. 179 $$4.sendSuccess(() -> Component.translatable("commands.test.n .. ... o_tests"), false); .. 180 return 0; .. 181 } else { .. 182 GameTestRunner.clearMarkers($$5); .. 183 FailedTestTracker.forgetFailedTests(); .. 184 $$4.sendSuccess(() -> Component.translatable("commands.test.r .. ... un.running", $$7.size()), false); .. 185 GameTestRunner $$8 = GameTestRunner.Builder.fromInfo($$7, $$5 .. ... ).newStructureSpawner(new StructureGridSpawner($$6, $$3, false)).build .. ... (); .. 186 return trackAndStartRunner($$4, $$8); .. 187 } .. 188 } .. 189 .. 190 private static int locate(TestFinder $$0) throws CommandSyntaxExcep .. ... tion { .. 191 $$0.source().sendSystemMessage(Component.translatable("commands. .. ... test.locate.started")); .. 192 MutableInt $$1 = new MutableInt(0); .. 193 BlockPos $$2 = BlockPos.containing($$0.source().getPosition()); .. 194 $$0.findTestPos() .. 195 .forEach( .. 196 $$3x -> { .. 197 if ($$0.source().getLevel().getBlockEntity($$3x) instan .. ... ceof TestInstanceBlockEntity $$5) { .. 198 Direction var13 = $$5.getRotation().rotate(Direction .. ... .NORTH); .. 199 BlockPos $$8 = $$5.getBlockPos().relative(var13, 2); .. 200 int $$9 = (int)var13.getOpposite().toYRot(); .. 201 String $$10 = String.format(Locale.ROOT, "/tp @s %d .. ... %d %d %d 0", $$8.getX(), $$8.getY(), $$8.getZ(), $$9); .. 202 int $$11 = $$2.getX() - $$3x.getX(); .. 203 int $$12 = $$2.getZ() - $$3x.getZ(); .. 204 int $$13 = Mth.floor(Mth.sqrt((float)($$11 * $$11 + .. ... $$12 * $$12))); .. 205 MutableComponent $$14 = ComponentUtils.wrapInSquareB .. ... rackets(Component.translatable("chat.coordinates", $$3x.getX(), $$3x.g .. ... etY(), $$3x.getZ())) .. 206 .withStyle( .. 207 $$1xx -> $$1xx.withColor(ChatFormatting.GREEN) .. 208 .withClickEvent(new ClickEvent.SuggestCo .. ... mmand($$10)) .. 209 .withHoverEvent(new HoverEvent.ShowText( .. ... Component.translatable("chat.coordinates.tooltip"))) .. 210 ); .. 211 $$0.source().sendSuccess(() -> Component.translatabl .. ... e("commands.test.locate.found", $$14, $$13), false); .. 212 $$1.increment(); .. 213 } .. 214 } .. 215 ); .. 216 int $$3 = $$1.intValue(); .. 217 if ($$3 == 0) { .. 218 throw NO_TEST_INSTANCES.create(); .. 219 } else { .. 220 $$0.source().sendSuccess(() -> Component.translatable("comman .. ... ds.test.locate.done", $$3), true); .. 221 return $$3; .. 222 } .. 223 } .. 224 72 private static ArgumentBuilder<CommandSourceStack, ?> runWithRetryO 225 private static ArgumentBuilder<CommandSourceStack, ?> runWithRetryO .. ptions( ... ptions( 73 ArgumentBuilder<CommandSourceStack, ?> $$0, 226 ArgumentBuilder<CommandSourceStack, ?> $$0, 74 Function<CommandContext<CommandSourceStack>, TestCommand.Runner> 227 InCommandFunction<CommandContext<CommandSourceStack>, TestFinder .. $$1, ... > $$1, 75 Function<ArgumentBuilder<CommandSourceStack, ?>, ArgumentBuilder 228 Function<ArgumentBuilder<CommandSourceStack, ?>, ArgumentBuilder .. <CommandSourceStack, ?>> $$2 ... <CommandSourceStack, ?>> $$2 76 ) { 229 ) { 77 return $$0.executes($$1x -> $$1.apply($$1x).run()) 230 return $$0.executes($$1x -> run($$1.apply($$1x), RetryOptions.no .. ... Retries(), 0, 8)) 78 .then( 231 .then( 79 Commands.argument("numberOfTimes", IntegerArgumentType.int 232 Commands.argument("numberOfTimes", IntegerArgumentType.int .. eger(0)) ... eger(0)) 80 .executes($$1x -> $$1.apply($$1x).run(new RetryOptions( 233 .executes($$1x -> run($$1.apply($$1x), new RetryOptions .. IntegerArgumentType.getInteger($$1x, "numberOfTimes"), false))) ... (IntegerArgumentType.getInteger($$1x, "numberOfTimes"), false), 0, 8)) 81 .then( 234 .then( 82 $$2.apply( 235 $$2.apply( 83 Commands.argument("untilFailed", BoolArgumentType 236 Commands.argument("untilFailed", BoolArgumentType .. .bool()) ... .bool()) 84 .executes( 237 .executes( 85 $$1x -> $$1.apply($$1x) 238 $$1x -> run( .. 239 $$1.apply($$1x), 86 .run(new RetryOptions(IntegerArgument 240 new RetryOptions(IntegerArgumentType. .. Type.getInteger($$1x, "numberOfTimes"), BoolArgumentType.getBool($$1x, ... getInteger($$1x, "numberOfTimes"), BoolArgumentType.getBool($$1x, "unt .. "untilFailed"))) ... ilFailed")), .. 241 0, .. 242 8 .. 243 ) 87 ) 244 ) 88 ) 245 ) 89 ) 246 ) 90 ); 247 ); 91 } 248 } 92 249 93 private static ArgumentBuilder<CommandSourceStack, ?> runWithRetryO 250 private static ArgumentBuilder<CommandSourceStack, ?> runWithRetryO .. ptions( ... ptions( 94 ArgumentBuilder<CommandSourceStack, ?> $$0, Function<CommandCont 251 ArgumentBuilder<CommandSourceStack, ?> $$0, InCommandFunction<Co .. ext<CommandSourceStack>, TestCommand.Runner> $$1 ... mmandContext<CommandSourceStack>, TestFinder> $$1 95 ) { 252 ) { 96 return runWithRetryOptions($$0, $$1, $$0x -> $$0x); 253 return runWithRetryOptions($$0, $$1, $$0x -> $$0x); 97 } 254 } 98 255 99 private static ArgumentBuilder<CommandSourceStack, ?> runWithRetryO 256 private static ArgumentBuilder<CommandSourceStack, ?> runWithRetryO .. ptionsAndBuildInfo( ... ptionsAndBuildInfo( 100 ArgumentBuilder<CommandSourceStack, ?> $$0, Function<CommandCont 257 ArgumentBuilder<CommandSourceStack, ?> $$0, InCommandFunction<Co ... ext<CommandSourceStack>, TestCommand.Runner> $$1 ... mmandContext<CommandSourceStack>, TestFinder> $$1 101 ) { 258 ) { 102 return runWithRetryOptions( 259 return runWithRetryOptions( 103 $$0, 260 $$0, 104 $$1, 261 $$1, 105 $$1x -> $$1x.then( 262 $$1x -> $$1x.then( 106 Commands.argument("rotationSteps", IntegerArgumentType. 263 Commands.argument("rotationSteps", IntegerArgumentType. ... integer()) ... integer()) 107 .executes( 264 .executes( 108 $$1xx -> $$1.apply($$1xx) 265 $$1xx -> run( 109 .run( 266 $$1.apply($$1xx), 110 new RetryOptions(IntegerArgumentType.get 267 new RetryOptions(IntegerArgumentType.getInt ... Integer($$1xx, "numberOfTimes"), BoolArgumentType.getBool($$1xx, "unti ... eger($$1xx, "numberOfTimes"), BoolArgumentType.getBool($$1xx, "untilFa ... lFailed")), ... iled")), 111 IntegerArgumentType.getInteger($$1xx, "r 268 IntegerArgumentType.getInteger($$1xx, "rota ... otationSteps") ... tionSteps"), 112 ) 269 8 ... 270 ) 113 ) 271 ) 114 .then( 272 .then( 115 Commands.argument("testsPerRow", IntegerArgumentT 273 Commands.argument("testsPerRow", IntegerArgumentT ... ype.integer()) ... ype.integer()) 116 .executes( 274 .executes( 117 $$1xx -> $$1.apply($$1xx) 275 $$1xx -> run( 118 .run( 276 $$1.apply($$1xx), 119 new RetryOptions(IntegerArgumentTy 277 new RetryOptions(IntegerArgumentType. ... pe.getInteger($$1xx, "numberOfTimes"), BoolArgumentType.getBool($$1xx, ... getInteger($$1xx, "numberOfTimes"), BoolArgumentType.getBool($$1xx, "u ... "untilFailed")), ... ntilFailed")), 120 IntegerArgumentType.getInteger($$1 278 IntegerArgumentType.getInteger($$1xx, ... xx, "rotationSteps"), ... "rotationSteps"), 121 IntegerArgumentType.getInteger($$1 279 IntegerArgumentType.getInteger($$1xx, ... xx, "testsPerRow") ... "testsPerRow") 122 ) 280 ) 123 ) 281 ) 124 ) 282 ) 125 ) 283 ) 126 ); 284 ); 127 } 285 } 128 286 129 public static void register(CommandDispatcher<CommandSourceStack> $ 287 public static void register(CommandDispatcher<CommandSourceStack> $ ... $0) { ... $0, CommandBuildContext $$1) { 130 ArgumentBuilder<CommandSourceStack, ?> $$1 = runWithRetryOptions 288 ArgumentBuilder<CommandSourceStack, ?> $$2 = runWithRetryOptions ... AndBuildInfo( ... AndBuildInfo( 131 Commands.argument("onlyRequiredTests", BoolArgumentType.bool( 289 Commands.argument("onlyRequiredTests", BoolArgumentType.bool( ... )), ... )), 132 $$0x -> testFinder.failedTests($$0x, BoolArgumentType.getBool 290 $$0x -> TestFinder.builder().failedTests($$0x, BoolArgumentTy ... ($$0x, "onlyRequiredTests")) ... pe.getBool($$0x, "onlyRequiredTests")) 133 ); 291 ); 134 ArgumentBuilder<CommandSourceStack, ?> $$2 = runWithRetryOptions 292 LiteralArgumentBuilder<CommandSourceStack> $$3 = Commands.litera ... AndBuildInfo( ... l("test") 135 Commands.argument("testClassName", TestClassNameArgument.test ... ... ClassName()), ... 136 $$0x -> testFinder.allTestsInClass($$0x, TestClassNameArgumen 293 .requires($$0x -> $$0x.hasPermission(2)) ... t.getTestClassName($$0x, "testClassName")) ... 137 ); 294 .then( 138 $$0.register( ... 139 Commands.literal("test") 295 Commands.literal("run") 140 .then( 296 .then( 141 Commands.literal("run") 297 runWithRetryOptionsAndBuildInfo( 142 .then( 298 Commands.argument("tests", ResourceSelectorArgume ... ... nt.resourceSelector($$1, Registries.TEST_INSTANCE)), 143 runWithRetryOptionsAndBuildInfo( 299 $$0x -> TestFinder.builder() 144 Commands.argument("testName", TestFunctionArgu 300 .byResourceSelection($$0x, ResourceSelector ... ment.testFunctionArgument()), $$0x -> testFinder.byArgument($$0x, "tes ... Argument.getSelectedResources($$0x, "tests", Registries.TEST_INSTANCE) ... tName") ... ) 145 ) ... 146 ) 301 ) 147 ) 302 ) 148 .then( 303 ) 149 Commands.literal("runmultiple") 304 .then( 150 .then( 305 Commands.literal("runmultiple") 151 Commands.argument("testName", TestFunctionArgumen 306 .then( ... t.testFunctionArgument()) ... 152 .executes($$0x -> testFinder.byArgument($$0x, 307 Commands.argument("tests", ResourceSelectorArgument. ... "testName").run()) ... resourceSelector($$1, Registries.TEST_INSTANCE)) 153 .then( 308 .executes( 154 Commands.argument("amount", IntegerArgument 309 $$0x -> run( ... Type.integer()) ... 155 .executes( 310 TestFinder.builder() 156 $$0x -> testFinder.createMultipleCopi 311 .byResourceSelection($$0x, ResourceSe ... es(IntegerArgumentType.getInteger($$0x, "amount")).byArgument($$0x, "t ... lectorArgument.getSelectedResources($$0x, "tests", Registries.TEST_INS ... estName").run() ... TANCE)), 157 ) 312 RetryOptions.noRetries(), 158 ) 313 0, 159 ) 314 8 160 ) 315 ) 161 .then(runWithRetryOptionsAndBuildInfo(Commands.literal("ru 316 ) ... nall").then($$2), testFinder::allTests)) ... 162 .then(runWithRetryOptions(Commands.literal("runthese"), te 317 .then( ... stFinder::allNearby)) ... 163 .then(runWithRetryOptions(Commands.literal("runclosest"), 318 Commands.argument("amount", IntegerArgumentTyp ... testFinder::nearest)) ... e.integer()) 164 .then(runWithRetryOptions(Commands.literal("runthat"), tes 319 .executes( ... tFinder::lookedAt)) ... 165 .then(runWithRetryOptionsAndBuildInfo(Commands.literal("ru 320 $$0x -> run( ... nfailed").then($$1), testFinder::failedTests)) ... 166 .then( 321 TestFinder.builder() 167 Commands.literal("verify") 322 .createMultipleCopies(IntegerAr ... ... gumentType.getInteger($$0x, "amount")) 168 .then( 323 .byResourceSelection($$0x, Reso ... ... urceSelectorArgument.getSelectedResources($$0x, "tests", Registries.TE ... ... ST_INSTANCE)), 169 Commands.argument("testName", TestFunctionArgumen 324 RetryOptions.noRetries(), ... t.testFunctionArgument()) ... 170 .executes($$0x -> testFinder.byArgument($$0x, 325 0, ... "testName").verify()) ... 171 ) 326 8 172 ) 327 ) 173 .then( 328 ) 174 Commands.literal("verifyclass") 329 ) 175 .then( 330 ) 176 Commands.argument("testClassName", TestClassNameA 331 ) ... rgument.testClassName()) ... 177 .executes($$0x -> testFinder.allTestsInClass($ 332 .then(runWithRetryOptions(Commands.literal("runthese"), TestF ... $0x, TestClassNameArgument.getTestClassName($$0x, "testClassName")).ve ... inder.builder()::allNearby)) ... rify()) ... 178 ) 333 .then(runWithRetryOptions(Commands.literal("runclosest"), Tes ... ... tFinder.builder()::nearest)) 179 ) 334 .then(runWithRetryOptions(Commands.literal("runthat"), TestFi ... ... nder.builder()::lookedAt)) 180 .then( 335 .then(runWithRetryOptionsAndBuildInfo(Commands.literal("runfa ... ... iled").then($$2), TestFinder.builder()::failedTests)) 181 Commands.literal("locate") 336 .then( 182 .then( 337 Commands.literal("verify") 183 Commands.argument("testName", TestFunctionArgumen 338 .then( ... t.testFunctionArgument()) ... 184 .executes( 339 Commands.argument("tests", ResourceSelectorArgument. ... ... resourceSelector($$1, Registries.TEST_INSTANCE)) 185 $$0x -> testFinder.locateByName($$0x, "mine 340 .executes( ... craft:" + TestFunctionArgument.getTestFunction($$0x, "testName").struc ... ... tureName()) ... 186 .locate() 341 $$0x -> verify( 187 ) 342 TestFinder.builder() 188 ) 343 .byResourceSelection($$0x, ResourceSe ... ... lectorArgument.getSelectedResources($$0x, "tests", Registries.TEST_INS ... ... TANCE)) 189 ) 344 ) 190 .then(Commands.literal("resetclosest").executes($$0x -> te 345 ) ... stFinder.nearest($$0x).reset())) ... 191 .then(Commands.literal("resetthese").executes($$0x -> test 346 ) ... Finder.allNearby($$0x).reset())) ... 192 .then(Commands.literal("resetthat").executes($$0x -> testF 347 ) ... inder.lookedAt($$0x).reset())) ... 193 .then( 348 .then( ... 349 Commands.literal("locate") ... 350 .then( ... 351 Commands.argument("tests", ResourceArgument.resource ... ... ($$1, Registries.TEST_INSTANCE)) ... 352 .executes( ... 353 $$0x -> locate( ... 354 TestFinder.builder() ... 355 .byResourceSelection($$0x, ResourceSe ... ... lectorArgument.getSelectedResources($$0x, "tests", Registries.TEST_INS ... ... TANCE)) ... 356 ) ... 357 ) ... 358 ) ... 359 ) ... 360 .then(Commands.literal("resetclosest").executes($$0x -> reset ... ... (TestFinder.builder().nearest($$0x)))) ... 361 .then(Commands.literal("resetthese").executes($$0x -> reset(T ... ... estFinder.builder().allNearby($$0x)))) ... 362 .then(Commands.literal("resetthat").executes($$0x -> reset(Te ... ... stFinder.builder().lookedAt($$0x)))) ... 363 .then(Commands.literal("clearthat").executes($$0x -> clear(Te ... ... stFinder.builder().lookedAt($$0x)))) ... 364 .then(Commands.literal("clearthese").executes($$0x -> clear(T ... ... estFinder.builder().allNearby($$0x)))) ... 365 .then( ... 366 Commands.literal("clearall") ... 367 .executes($$0x -> clear(TestFinder.builder().radius($$0 ... ... x, 200))) ... 368 .then( ... 369 Commands.argument("radius", IntegerArgumentType.inte ... ... ger()) ... 370 .executes($$0x -> clear(TestFinder.builder().radi ... ... us($$0x, Mth.clamp(IntegerArgumentType.getInteger($$0x, "radius"), 0, ... ... 1024)))) ... 371 ) ... 372 ) ... 373 .then(Commands.literal("stop").executes($$0x -> stopTests())) ... 374 .then( ... 375 Commands.literal("pos") ... 376 .executes($$0x -> showPos((CommandSourceStack)$$0x.getS ... ... ource(), "pos")) ... 377 .then( ... 378 Commands.argument("var", StringArgumentType.word()) ... 379 .executes($$0x -> showPos((CommandSourceStack)$$0 ... ... x.getSource(), StringArgumentType.getString($$0x, "var"))) ... 380 ) ... 381 ) ... 382 .then( ... 383 Commands.literal("create") ... 384 .then( ... 385 Commands.argument("id", ResourceLocationArgument.id( ... ... )) ... 386 .suggests(TestCommand::suggestTestFunction) ... 387 .executes($$0x -> createNewStructure((CommandSour ... ... ceStack)$$0x.getSource(), ResourceLocationArgument.getId($$0x, "id"), ... ... 5, 5, 5)) ... 388 .then( ... 389 Commands.argument("width", IntegerArgumentType ... ... .integer()) ... 390 .executes( ... 391 $$0x -> createNewStructure( ... 392 (CommandSourceStack)$$0x.getSource ... ... (), ... 393 ResourceLocationArgument.getId($$0 ... ... x, "id"), ... 394 IntegerArgumentType.getInteger($$0 ... ... x, "width"), ... 395 IntegerArgumentType.getInteger($$0 ... ... x, "width"), ... 396 IntegerArgumentType.getInteger($$0 ... ... x, "width") ... 397 ) ... 398 ) ... 399 .then( ... 400 Commands.argument("height", IntegerArgum ... ... entType.integer()) ... 401 .then( ... 402 Commands.argument("depth", Integer ... ... ArgumentType.integer()) ... 403 .executes( ... 404 $$0x -> createNewStructure( ... 405 (CommandSourceStack)$$ ... ... 0x.getSource(), ... 406 ResourceLocationArgume ... ... nt.getId($$0x, "id"), ... 407 IntegerArgumentType.ge ... ... tInteger($$0x, "width"), ... 408 IntegerArgumentType.ge ... ... tInteger($$0x, "height"), ... 409 IntegerArgumentType.ge ... ... tInteger($$0x, "depth") ... 410 ) ... 411 ) ... 412 ) ... 413 ) ... 414 ) ... 415 ) ... 416 ); ... 417 if (SharedConstants.IS_RUNNING_IN_IDE) { ... 418 $$3 = $$3.then( 194 Commands.literal("export") 419 Commands.literal("export") 195 .then( 420 .then( 196 Commands.argument("testName", StringArgumentType. 421 Commands.argument("test", ResourceArgument.resour ... word()) ... ce($$1, Registries.TEST_INSTANCE)) 197 .executes( 422 .executes( 198 $$0x -> exportTestStructure((CommandSourceS 423 $$0x -> exportTestStructure( ... tack)$$0x.getSource(), "minecraft:" + StringArgumentType.getString($$0 ... ... x, "testName")) ... 199 ) 424 (CommandSourceStack)$$0x.getSource(), ... ... ResourceArgument.getResource($$0x, "test", Registries.TEST_INSTANCE) 200 ) ... 201 ) ... 202 .then(Commands.literal("exportclosest").executes($$0x -> t ... ... estFinder.nearest($$0x).export())) ... 203 .then(Commands.literal("exportthese").executes($$0x -> tes ... ... tFinder.allNearby($$0x).export())) ... 204 .then(Commands.literal("exportthat").executes($$0x -> test ... ... Finder.lookedAt($$0x).export())) ... 205 .then(Commands.literal("clearthat").executes($$0x -> testF ... ... inder.lookedAt($$0x).clear())) ... 206 .then(Commands.literal("clearthese").executes($$0x -> test ... ... Finder.allNearby($$0x).clear())) ... 207 .then( ... 208 Commands.literal("clearall") ... 209 .executes($$0x -> testFinder.radius($$0x, 200).clear ... ... ()) ... 210 .then( ... 211 Commands.argument("radius", IntegerArgumentType.i ... ... nteger()) ... 212 .executes($$0x -> testFinder.radius($$0x, Mth. ... ... clamp(IntegerArgumentType.getInteger($$0x, "radius"), 0, 1024)).clear( ... ... )) ... 213 ) ... 214 ) ... 215 .then( ... 216 Commands.literal("import") ... 217 .then( ... 218 Commands.argument("testName", StringArgumentType. ... ... word()) ... 219 .executes($$0x -> importTestStructure((Command ... ... SourceStack)$$0x.getSource(), StringArgumentType.getString($$0x, "test ... ... Name"))) ... 220 ) ... 221 ) ... 222 .then(Commands.literal("stop").executes($$0x -> stopTests( ... ... ))) ... 223 .then( ... 224 Commands.literal("pos") ... 225 .executes($$0x -> showPos((CommandSourceStack)$$0x.g ... ... etSource(), "pos")) ... 226 .then( ... 227 Commands.argument("var", StringArgumentType.word( ... ... )) ... 228 .executes($$0x -> showPos((CommandSourceStack) ... ... $$0x.getSource(), StringArgumentType.getString($$0x, "var"))) ... 229 ) ... 230 ) ... 231 .then( ... 232 Commands.literal("create") ... 233 .then( ... 234 Commands.argument("testName", StringArgumentType. ... ... word()) ... 235 .suggests(TestFunctionArgument::suggestTestFun ... ... ction) ... 236 .executes($$0x -> createNewStructure((CommandS ... ... ourceStack)$$0x.getSource(), StringArgumentType.getString($$0x, "testN ... ... ame"), 5, 5, 5)) ... 237 .then( ... 238 Commands.argument("width", IntegerArgumentT ... ... ype.integer()) ... 239 .executes( ... 240 $$0x -> createNewStructure( ... 241 (CommandSourceStack)$$0x.getSou ... ... rce(), ... 242 StringArgumentType.getString($$ ... ... 0x, "testName"), ... 243 IntegerArgumentType.getInteger( ... ... $$0x, "width"), ... 244 IntegerArgumentType.getInteger( ... ... $$0x, "width"), ... 245 IntegerArgumentType.getInteger( ... ... $$0x, "width") ... 246 ) ... 247 ) 425 ) 248 .then( ... 249 Commands.argument("height", IntegerAr ... ... gumentType.integer()) ... 250 .then( ... 251 Commands.argument("depth", Inte ... ... gerArgumentType.integer()) ... 252 .executes( ... 253 $$0x -> createNewStructur ... ... e( ... 254 (CommandSourceStack ... ... )$$0x.getSource(), ... 255 StringArgumentType. ... ... getString($$0x, "testName"), ... 256 IntegerArgumentType ... ... .getInteger($$0x, "width"), ... 257 IntegerArgumentType ... ... .getInteger($$0x, "height"), ... 258 IntegerArgumentType ... ... .getInteger($$0x, "depth") ... 259 ) ... 260 ) ... 261 ) ... 262 ) ... 263 ) 426 ) 264 ) 427 ) 265 ) 428 ) 266 ); 429 .then(Commands.literal("exportclosest").executes($$0x -> e ... ... xport(TestFinder.builder().nearest($$0x)))) ... 430 .then(Commands.literal("exportthese").executes($$0x -> exp ... ... ort(TestFinder.builder().allNearby($$0x)))) ... 431 .then(Commands.literal("exportthat").executes($$0x -> expo ... ... rt(TestFinder.builder().lookedAt($$0x)))); ... 432 } ... 433 ... 434 $$0.register($$3); 267 } 435 } 268 436 269 private static int resetGameTestInfo(GameTestInfo $$0) { 437 public static CompletableFuture<Suggestions> suggestTestFunction(Co ... ... mmandContext<CommandSourceStack> $$0, SuggestionsBuilder $$1) { 270 $$0.getLevel().getEntities(null, $$0.getStructureBounds()).strea 438 Stream<String> $$2 = $$0.getSource().registryAccess().lookupOrTh ... m().forEach($$0x -> $$0x.remove(Entity.RemovalReason.DISCARDED)); ... row(Registries.TEST_FUNCTION).listElements().map(Holder::getRegistered ... ... Name); 271 $$0.getStructureBlockEntity().placeStructure($$0.getLevel()); 439 return SharedSuggestionProvider.suggest($$2, $$1); 272 StructureUtils.removeBarriers($$0.getStructureBounds(), $$0.getL 440 } ... evel()); ... ... 441 ... 442 private static int resetGameTestInfo(CommandSourceStack $$0, GameTe ... ... stInfo $$1) { 273 say($$0.getLevel(), "Reset succeded for: " + $$0.getTestName(), 443 TestInstanceBlockEntity $$2 = $$1.getTestInstanceBlockEntity(); ... ChatFormatting.GREEN); ... ... 444 $$2.resetTest($$0::sendSystemMessage); 274 return 1; 445 return 1; 275 } 446 } 276 447 277 static Stream<GameTestInfo> toGameTestInfos(CommandSourceStack $$0, 448 private static Stream<GameTestInfo> toGameTestInfos(CommandSourceSt ... RetryOptions $$1, StructureBlockPosFinder $$2) { ... ack $$0, RetryOptions $$1, TestPosFinder $$2) { 278 return $$2.findStructureBlockPos().map($$2x -> createGameTestInf 449 return $$2.findTestPos().map($$2x -> createGameTestInfo($$2x, $$ ... o($$2x, $$0.getLevel(), $$1)).flatMap(Optional::stream); ... 0, $$1)).flatMap(Optional::stream); 279 } 450 } 280 451 281 static Stream<GameTestInfo> toGameTestInfo(CommandSourceStack $$0, 452 private static Stream<GameTestInfo> toGameTestInfo(CommandSourceSta ... RetryOptions $$1, TestFunctionFinder $$2, int $$3) { ... ck $$0, RetryOptions $$1, TestInstanceFinder $$2, int $$3) { 282 return $$2.findTestFunctions() 453 return $$2.findTests() 283 .filter($$1x -> verifyStructureExists($$0.getLevel(), $$1x.st 454 .filter($$1x -> verifyStructureExists($$0, ((GameTestInstance ... ructureName())) ... )$$1x.value()).structure())) 284 .map($$3x -> new GameTestInfo($$3x, StructureUtils.getRotatio 455 .map($$3x -> new GameTestInfo($$3x, StructureUtils.getRotatio ... nForRotationSteps($$3), $$0.getLevel(), $$1)); ... nForRotationSteps($$3), $$0.getLevel(), $$1)); 285 } 456 } 286 457 287 private static Optional<GameTestInfo> createGameTestInfo(BlockPos $ 458 private static Optional<GameTestInfo> createGameTestInfo(BlockPos $ ... $0, ServerLevel $$1, RetryOptions $$2) { ... $0, CommandSourceStack $$1, RetryOptions $$2) { 288 StructureBlockEntity $$3 = (StructureBlockEntity)$$1.getBlockEnt 459 ServerLevel $$3 = $$1.getLevel(); ... ity($$0); ... 289 if ($$3 == null) { 460 if ($$3.getBlockEntity($$0) instanceof TestInstanceBlockEntity $ ... ... $4) { 290 say($$1, "Structure block entity could not be found", ChatFor ... ... matting.RED); ... 291 return Optional.empty(); ... 292 } else { ... 293 String $$4 = $$3.getMetaData(); 461 Optional<Holder.Reference<GameTestInstance>> $$6 = $$4.test() ... ... .flatMap($$1.registryAccess().lookupOrThrow(Registries.TEST_INSTANCE): ... ... :get); 294 Optional<TestFunction> $$5 = GameTestRegistry.findTestFunctio ... ... n($$4); ... 295 if ($$5.isEmpty()) { 462 if ($$6.isEmpty()) { 296 say($$1, "Test function for test " + $$4 + " could not be 463 $$1.sendFailure(Component.translatable("commands.test.erro ... found", ChatFormatting.RED); ... r.non_existant_test", $$4.getTestName())); 297 return Optional.empty(); 464 return Optional.empty(); 298 } else { 465 } else { 299 TestFunction $$6 = $$5.get(); 466 Holder.Reference<GameTestInstance> $$7 = $$6.get(); 300 GameTestInfo $$7 = new GameTestInfo($$6, $$3.getRotation() 467 GameTestInfo $$8 = new GameTestInfo($$7, $$4.getRotation() ... , $$1, $$2); ... , $$3, $$2); 301 $$7.setStructureBlockPos($$0); 468 $$8.setTestBlockPos($$0); 302 return !verifyStructureExists($$1, $$7.getStructureName()) 469 return !verifyStructureExists($$1, $$8.getStructure()) ? O ... ? Optional.empty() : Optional.of($$7); ... ptional.empty() : Optional.of($$8); 303 } 470 } ... 471 } else { ... 472 $$1.sendFailure(Component.translatable("commands.test.error.t ... ... est_instance_not_found.position", $$0.getX(), $$0.getY(), $$0.getZ())) ... ... ; ... 473 return Optional.empty(); 304 } 474 } 305 } 475 } 306 476 307 private static int createNewStructure(CommandSourceStack $$0, Strin 477 private static int createNewStructure(CommandSourceStack $$0, Resou ... g $$1, int $$2, int $$3, int $$4) { ... rceLocation $$1, int $$2, int $$3, int $$4) { 308 if ($$2 <= 48 && $$3 <= 48 && $$4 <= 48) { 478 if ($$2 <= 48 && $$3 <= 48 && $$4 <= 48) { 309 ServerLevel $$5 = $$0.getLevel(); 479 ServerLevel $$5 = $$0.getLevel(); 310 BlockPos $$6 = createTestPositionAround($$0).below(); 480 BlockPos $$6 = createTestPositionAround($$0); 311 StructureUtils.createNewEmptyStructureBlock($$1.toLowerCase() 481 TestInstanceBlockEntity $$7 = StructureUtils.createNewEmptyTe ... , $$6, new Vec3i($$2, $$3, $$4), Rotation.NONE, $$5); ... st($$1, $$6, new Vec3i($$2, $$3, $$4), Rotation.NONE, $$5); 312 BlockPos $$7 = $$6.above(); 482 BlockPos $$8 = $$7.getStructurePos(); 313 BlockPos $$8 = $$7.offset($$2 - 1, 0, $$4 - 1); 483 BlockPos $$9 = $$8.offset($$2 - 1, 0, $$4 - 1); 314 BlockPos.betweenClosedStream($$7, $$8).forEach($$1x -> $$5.se 484 BlockPos.betweenClosedStream($$8, $$9).forEach($$1x -> $$5.se ... tBlockAndUpdate($$1x, Blocks.BEDROCK.defaultBlockState())); ... tBlockAndUpdate($$1x, Blocks.BEDROCK.defaultBlockState())); 315 StructureUtils.addCommandBlockAndButtonToStartTest($$6, new B ... ... lockPos(1, 0, -1), Rotation.NONE, $$5); ... 316 return 0; 485 return 0; 317 } else { 486 } else { 318 throw new IllegalArgumentException("The structure must be les 487 throw new IllegalArgumentException("The structure must be les s than 48 blocks big in each axis"); s than 48 blocks big in each axis"); net/minecraft/gametest/framework/TestCommand.java --- 2/2 --- Text (exceeded DFT_GRAPH_LIMIT) 323 BlockHitResult $$2 = (BlockHitResult)$$0.getPlayerOrException(). 492 BlockHitResult $$2 = (BlockHitResult)$$0.getPlayerOrException(). ... pick(10.0, 1.0F, false); ... pick(10.0, 1.0F, false); 324 BlockPos $$3 = $$2.getBlockPos(); 493 BlockPos $$3 = $$2.getBlockPos(); 325 ServerLevel $$4 = $$0.getLevel(); 494 ServerLevel $$4 = $$0.getLevel(); 326 Optional<BlockPos> $$5 = StructureUtils.findStructureBlockContai 495 Optional<BlockPos> $$5 = StructureUtils.findTestContainingPos($$ ... ningPos($$3, 15, $$4); ... 3, 15, $$4); 327 if ($$5.isEmpty()) { 496 if ($$5.isEmpty()) { 328 $$5 = StructureUtils.findStructureBlockContainingPos($$3, 200 497 $$5 = StructureUtils.findTestContainingPos($$3, 200, $$4); ... , $$4); ... 329 } 498 } 330 499 331 if ($$5.isEmpty()) { 500 if ($$5.isEmpty()) { 332 $$0.sendFailure(Component.literal("Can't find a structure blo 501 throw NO_TEST_CONTAINING.create($$3.getX(), $$3.getY(), $$3.g ... ck that contains the targeted pos " + $$3)); ... etZ()); ... 502 } else if ($$4.getBlockEntity($$5.get()) instanceof TestInstance ... ... BlockEntity $$6) { ... 503 BlockPos $$8 = $$3.subtract($$5.get()); ... 504 String $$9 = $$8.getX() + ", " + $$8.getY() + ", " + $$8.getZ ... ... (); ... 505 String $$10 = $$6.getTestName().getString(); ... 506 MutableComponent $$11 = Component.translatable("commands.test ... ... .coordinates", $$8.getX(), $$8.getY(), $$8.getZ()) ... 507 .setStyle( ... 508 Style.EMPTY ... 509 .withBold(true) ... 510 .withColor(ChatFormatting.GREEN) ... 511 .withHoverEvent(new HoverEvent.ShowText(Component.tr ... ... anslatable("commands.test.coordinates.copy"))) ... 512 .withClickEvent(new ClickEvent.CopyToClipboard("fina ... ... l BlockPos " + $$1 + " = new BlockPos(" + $$9 + ");")) ... 513 ); ... 514 $$0.sendSuccess(() -> Component.translatable("commands.test.r ... ... elative_position", $$10, $$11), false); ... 515 DebugPackets.sendGameTestAddMarker($$4, new BlockPos($$3), $$ ... ... 9, -2147418368, 10000); 333 return 0; 516 return 1; 334 } else { 517 } else { 335 StructureBlockEntity $$6 = (StructureBlockEntity)$$4.getBlock 518 throw TEST_INSTANCE_COULD_NOT_BE_FOUND.create(); ... Entity($$5.get()); ... 336 if ($$6 == null) { ... 337 say($$4, "Structure block entity could not be found", Chat ... ... Formatting.RED); ... 338 return 0; ... 339 } else { ... 340 BlockPos $$7 = $$3.subtract($$5.get()); ... 341 String $$8 = $$7.getX() + ", " + $$7.getY() + ", " + $$7.g ... ... etZ(); ... 342 String $$9 = $$6.getMetaData(); ... 343 Component $$10 = Component.literal($$8) ... 344 .setStyle( ... 345 Style.EMPTY ... 346 .withBold(true) ... 347 .withColor(ChatFormatting.GREEN) ... 348 .withHoverEvent(new HoverEvent.ShowText(Component ... ... .literal("Click to copy to clipboard"))) ... 349 .withClickEvent(new ClickEvent.CopyToClipboard("f ... ... inal BlockPos " + $$1 + " = new BlockPos(" + $$8 + ");")) ... 350 ); ... 351 $$0.sendSuccess(() -> Component.literal("Position relative ... ... to " + $$9 + ": ").append($$10), false); ... 352 DebugPackets.sendGameTestAddMarker($$4, new BlockPos($$3), ... ... $$8, -2147418368, 10000); ... 353 return 1; ... 354 } ... 355 } 519 } 356 } 520 } 357 521 358 static int stopTests() { 522 private static int stopTests() { 359 GameTestTicker.SINGLETON.clear(); 523 GameTestTicker.SINGLETON.clear(); 360 return 1; 524 return 1; 361 } 525 } 362 526 363 static int trackAndStartRunner(CommandSourceStack $$0, ServerLevel 527 public static int trackAndStartRunner(CommandSourceStack $$0, GameT ... $$1, GameTestRunner $$2) { ... estRunner $$1) { 364 $$2.addListener(new TestCommand.TestBatchSummaryDisplayer($$0)); 528 $$1.addListener(new TestCommand.TestBatchSummaryDisplayer($$0)); 365 MultipleTestTracker $$3 = new MultipleTestTracker($$2.getTestInf 529 MultipleTestTracker $$2 = new MultipleTestTracker($$1.getTestInf ... os()); ... os()); 366 $$3.addListener(new TestCommand.TestSummaryDisplayer($$1, $$3)); 530 $$2.addListener(new TestCommand.TestSummaryDisplayer($$0, $$2)); 367 $$3.addFailureListener($$0x -> GameTestRegistry.rememberFailedTe 531 $$2.addFailureListener($$0x -> FailedTestTracker.rememberFailedT ... st($$0x.getTestFunction())); ... est($$0x.getTestHolder())); 368 $$2.start(); 532 $$1.start(); 369 return 1; 533 return 1; 370 } 534 } 371 535 372 static int saveAndExportTestStructure(CommandSourceStack $$0, Struc 536 private static int exportTestStructure(CommandSourceStack $$0, Hold ... tureBlockEntity $$1) { ... er<GameTestInstance> $$1) { 373 String $$2 = $$1.getStructureName(); 537 return !TestInstanceBlockEntity.export($$0.getLevel(), $$1.value ... ... ().structure(), $$0::sendSystemMessage) ? 0 : 1; 374 if (!$$1.saveStructure(true)) { ... 375 say($$0, "Failed to save structure " + $$2); ... 376 } ... 377 ... 378 return exportTestStructure($$0, $$2); ... 379 } 538 } 380 539 381 private static int exportTestStructure(CommandSourceStack $$0, Stri 540 private static boolean verifyStructureExists(CommandSourceStack $$0 ... ng $$1) { ... , ResourceLocation $$1) { 382 Path $$2 = Paths.get(StructureUtils.testStructuresDir); 541 if ($$0.getLevel().getStructureManager().get($$1).isEmpty()) { 383 ResourceLocation $$3 = ResourceLocation.parse($$1); ... 384 Path $$4 = $$0.getLevel().getStructureManager().createAndValidat ... ... ePathToGeneratedStructure($$3, ".nbt"); ... 385 Path $$5 = NbtToSnbt.convertStructure(CachedOutput.NO_CACHE, $$4 ... ... , $$3.getPath(), $$2); ... 386 if ($$5 == null) { ... 387 say($$0, "Failed to export " + $$4); 542 $$0.sendFailure(Component.translatable("commands.test.error.s ... ... tructure_not_found", Component.translationArg($$1))); 388 return 1; ... 389 } else { ... 390 try { ... 391 FileUtil.createDirectoriesSafe($$5.getParent()); ... 392 } catch (IOException var7) { ... 393 say($$0, "Could not create folder " + $$5.getParent()); ... 394 LOGGER.error("Could not create export folder", (Throwable) ... ... var7); ... 395 return 1; ... 396 } ... 397 ... 398 say($$0, "Exported " + $$1 + " to " + $$5.toAbsolutePath()); ... 399 return 0; ... 400 } ... 401 } ... 402 ... 403 private static boolean verifyStructureExists(ServerLevel $$0, Strin ... ... g $$1) { ... 404 if ($$0.getStructureManager().get(ResourceLocation.parse($$1)).i ... ... sEmpty()) { ... 405 say($$0, "Test structure " + $$1 + " could not be found", Cha ... ... tFormatting.RED); ... 406 return false; 543 return false; 407 } else { 544 } else { 408 return true; 545 return true; 409 } 546 } 410 } 547 } 411 548 412 static BlockPos createTestPositionAround(CommandSourceStack $$0) { 549 private static BlockPos createTestPositionAround(CommandSourceStack ... ... $$0) { 413 BlockPos $$1 = BlockPos.containing($$0.getPosition()); 550 BlockPos $$1 = BlockPos.containing($$0.getPosition()); 414 int $$2 = $$0.getLevel().getHeightmapPos(Heightmap.Types.WORLD_S 551 int $$2 = $$0.getLevel().getHeightmapPos(Heightmap.Types.WORLD_S ... URFACE, $$1).getY(); ... URFACE, $$1).getY(); 415 return new BlockPos($$1.getX(), $$2 + 1, $$1.getZ() + 3); 552 return new BlockPos($$1.getX(), $$2, $$1.getZ() + 3); 416 } ... 417 ... 418 static void say(CommandSourceStack $$0, String $$1) { ... 419 $$0.sendSuccess(() -> Component.literal($$1), false); ... 420 } ... 421 ... 422 private static int importTestStructure(CommandSourceStack $$0, Stri ... ... ng $$1) { ... 423 Path $$2 = Paths.get(StructureUtils.testStructuresDir, $$1 + ".s ... ... nbt"); ... 424 ResourceLocation $$3 = ResourceLocation.withDefaultNamespace($$1 ... ... ); ... 425 Path $$4 = $$0.getLevel().getStructureManager().createAndValidat ... ... ePathToGeneratedStructure($$3, ".nbt"); ... 426 ... 427 try { ... 428 BufferedReader $$5 = Files.newBufferedReader($$2); ... 429 String $$6 = IOUtils.toString($$5); ... 430 Files.createDirectories($$4.getParent()); ... 431 ... 432 try (OutputStream $$7 = Files.newOutputStream($$4)) { ... 433 NbtIo.writeCompressed(NbtUtils.snbtToStructure($$6), $$7); ... 434 } ... 435 ... 436 $$0.getLevel().getStructureManager().remove($$3); ... 437 say($$0, "Imported to " + $$4.toAbsolutePath()); ... 438 return 0; ... 439 } catch (CommandSyntaxException | IOException var12) { ... 440 LOGGER.error("Failed to load structure {}", $$1, var12); ... 441 return 1; ... 442 } ... 443 } ... 444 ... 445 static void say(ServerLevel $$0, String $$1, ChatFormatting $$2) { ... 446 $$0.getPlayers($$0x -> true).forEach($$2x -> $$2x.sendSystemMess ... ... age(Component.literal($$1).withStyle($$2))); ... 447 } ... 448 ... 449 public static class Runner { ... 450 private final TestFinder<TestCommand.Runner> finder; ... 451 ... 452 public Runner(TestFinder<TestCommand.Runner> $$0) { ... 453 this.finder = $$0; ... 454 } ... 455 ... 456 public int reset() { ... 457 TestCommand.stopTests(); ... 458 return TestCommand.toGameTestInfos(this.finder.source(), Retr ... ... yOptions.noRetries(), this.finder).map(TestCommand::resetGameTestInfo) ... ... .toList().isEmpty() ... 459 ? 0 ... 460 : 1; ... 461 } ... 462 ... 463 private <T> void logAndRun(Stream<T> $$0, ToIntFunction<T> $$1, ... ... Runnable $$2, Consumer<Integer> $$3) { ... 464 int $$4 = $$0.mapToInt($$1).sum(); ... 465 if ($$4 == 0) { ... 466 $$2.run(); ... 467 } else { ... 468 $$3.accept($$4); ... 469 } ... 470 } ... 471 ... 472 public int clear() { ... 473 TestCommand.stopTests(); ... 474 CommandSourceStack $$0 = this.finder.source(); ... 475 ServerLevel $$1 = $$0.getLevel(); ... 476 GameTestRunner.clearMarkers($$1); ... 477 this.logAndRun( ... 478 this.finder.findStructureBlockPos(), ... 479 $$1x -> { ... 480 StructureBlockEntity $$2 = (StructureBlockEntity)$$1.ge ... ... tBlockEntity($$1x); ... 481 if ($$2 == null) { ... 482 return 0; ... 483 } else { ... 484 BoundingBox $$3 = StructureUtils.getStructureBoundin ... ... gBox($$2); ... 485 StructureUtils.clearSpaceForStructure($$3, $$1); ... 486 return 1; ... 487 } ... 488 }, ... 489 () -> TestCommand.say($$1, "Could not find any structures ... ... to clear", ChatFormatting.RED), ... 490 $$1x -> TestCommand.say($$0, "Cleared " + $$1x + " structu ... ... res") ... 491 ); ... 492 return 1; ... 493 } ... 494 ... 495 public int export() { ... 496 MutableBoolean $$0 = new MutableBoolean(true); ... 497 CommandSourceStack $$1 = this.finder.source(); ... 498 ServerLevel $$2 = $$1.getLevel(); ... 499 this.logAndRun( ... 500 this.finder.findStructureBlockPos(), ... 501 $$3 -> { ... 502 StructureBlockEntity $$4 = (StructureBlockEntity)$$2.ge ... ... tBlockEntity($$3); ... 503 if ($$4 == null) { ... 504 TestCommand.say($$2, "Structure block entity could n ... ... ot be found", ChatFormatting.RED); ... 505 $$0.setFalse(); ... 506 return 0; ... 507 } else { ... 508 if (TestCommand.saveAndExportTestStructure($$1, $$4) ... ... != 0) { ... 509 $$0.setFalse(); ... 510 } ... 511 ... 512 return 1; ... 513 } ... 514 }, ... 515 () -> TestCommand.say($$2, "Could not find any structures ... ... to export", ChatFormatting.RED), ... 516 $$1x -> TestCommand.say($$1, "Exported " + $$1x + " struct ... ... ures") ... 517 ); ... 518 return $$0.getValue() ? 0 : 1; ... 519 } ... 520 ... 521 int verify() { ... 522 TestCommand.stopTests(); ... 523 CommandSourceStack $$0 = this.finder.source(); ... 524 ServerLevel $$1 = $$0.getLevel(); ... 525 BlockPos $$2 = TestCommand.createTestPositionAround($$0); ... 526 Collection<GameTestInfo> $$3 = Stream.concat( ... 527 TestCommand.toGameTestInfos($$0, RetryOptions.noRetries ... ... (), this.finder), ... 528 TestCommand.toGameTestInfo($$0, RetryOptions.noRetries( ... ... ), this.finder, 0) ... 529 ) ... 530 .toList(); ... 531 GameTestRunner.clearMarkers($$1); ... 532 GameTestRegistry.forgetFailedTests(); ... 533 Collection<GameTestBatch> $$4 = new ArrayList<>(); ... 534 ... 535 for (GameTestInfo $$5 : $$3) { ... 536 for (Rotation $$6 : Rotation.values()) { ... 537 Collection<GameTestInfo> $$7 = new ArrayList<>(); ... 538 ... 539 for (int $$8 = 0; $$8 < 100; $$8++) { ... 540 GameTestInfo $$9 = new GameTestInfo($$5.getTestFunct ... ... ion(), $$6, $$1, new RetryOptions(1, true)); ... 541 $$7.add($$9); ... 542 } ... 543 ... 544 GameTestBatch $$10 = GameTestBatchFactory.toGameTestBat ... ... ch($$7, $$5.getTestFunction().batchName(), (long)$$6.ordinal()); ... 545 $$4.add($$10); ... 546 } ... 547 } ... 548 ... 549 StructureGridSpawner $$11 = new StructureGridSpawner($$2, 10, ... ... true); ... 550 GameTestRunner $$12 = GameTestRunner.Builder.fromBatches($$4, ... ... $$1) ... 551 .batcher(GameTestBatchFactory.fromGameTestInfo(100)) ... 552 .newStructureSpawner($$11) ... 553 .existingStructureSpawner($$11) ... 554 .haltOnError(true) ... 555 .build(); ... 556 return TestCommand.trackAndStartRunner($$0, $$1, $$12); ... 557 } ... 558 ... 559 public int run(RetryOptions $$0, int $$1, int $$2) { ... 560 TestCommand.stopTests(); ... 561 CommandSourceStack $$3 = this.finder.source(); ... 562 ServerLevel $$4 = $$3.getLevel(); ... 563 BlockPos $$5 = TestCommand.createTestPositionAround($$3); ... 564 Collection<GameTestInfo> $$6 = Stream.concat( ... 565 TestCommand.toGameTestInfos($$3, $$0, this.finder), Tes ... ... tCommand.toGameTestInfo($$3, $$0, this.finder, $$1) ... 566 ) ... 567 .toList(); ... 568 if ($$6.isEmpty()) { ... 569 TestCommand.say($$3, "No tests found"); ... 570 return 0; ... 571 } else { ... 572 GameTestRunner.clearMarkers($$4); ... 573 GameTestRegistry.forgetFailedTests(); ... 574 TestCommand.say($$3, "Running " + $$6.size() + " tests..." ... ... ); ... 575 GameTestRunner $$7 = GameTestRunner.Builder.fromInfo($$6, ... ... $$4).newStructureSpawner(new StructureGridSpawner($$5, $$2, false)).bu ... ... ild(); ... 576 return TestCommand.trackAndStartRunner($$3, $$4, $$7); ... 577 } ... 578 } ... 579 ... 580 public int run(int $$0, int $$1) { ... 581 return this.run(RetryOptions.noRetries(), $$0, $$1); ... 582 } ... 583 ... 584 public int run(int $$0) { ... 585 return this.run(RetryOptions.noRetries(), $$0, 8); ... 586 } ... 587 ... 588 public int run(RetryOptions $$0, int $$1) { ... 589 return this.run($$0, $$1, 8); ... 590 } ... 591 ... 592 public int run(RetryOptions $$0) { ... 593 return this.run($$0, 0, 8); ... 594 } ... 595 ... 596 public int run() { ... 597 return this.run(RetryOptions.noRetries()); ... 598 } ... 599 ... 600 public int locate() { ... 601 TestCommand.say(this.finder.source(), "Started locating test ... ... structures, this might take a while.."); ... 602 MutableInt $$0 = new MutableInt(0); ... 603 BlockPos $$1 = BlockPos.containing(this.finder.source().getPo ... ... sition()); ... 604 this.finder ... 605 .findStructureBlockPos() ... 606 .forEach( ... 607 $$2x -> { ... 608 StructureBlockEntity $$3 = (StructureBlockEntity)thi ... ... s.finder.source().getLevel().getBlockEntity($$2x); ... 609 if ($$3 != null) { ... 610 Direction $$4 = $$3.getRotation().rotate(Directio ... ... n.NORTH); ... 611 BlockPos $$5 = $$3.getBlockPos().relative($$4, 2) ... ... ; ... 612 int $$6 = (int)$$4.getOpposite().toYRot(); ... 613 String $$7 = String.format("/tp @s %d %d %d %d 0" ... ... , $$5.getX(), $$5.getY(), $$5.getZ(), $$6); ... 614 int $$8 = $$1.getX() - $$2x.getX(); ... 615 int $$9 = $$1.getZ() - $$2x.getZ(); ... 616 int $$10 = Mth.floor(Mth.sqrt((float)($$8 * $$8 + ... ... $$9 * $$9))); ... 617 Component $$11 = ComponentUtils.wrapInSquareBrack ... ... ets(Component.translatable("chat.coordinates", $$2x.getX(), $$2x.getY( ... ... ), $$2x.getZ())) ... 618 .withStyle( ... 619 $$1xx -> $$1xx.withColor(ChatFormatting.GRE ... ... EN) ... 620 .withClickEvent(new ClickEvent.Sugges ... ... tCommand($$7)) ... 621 .withHoverEvent(new HoverEvent.ShowTe ... ... xt(Component.translatable("chat.coordinates.tooltip"))) ... 622 ); ... 623 Component $$12 = Component.literal("Found structu ... ... re at: ").append($$11).append(" (distance: " + $$10 + ")"); ... 624 this.finder.source().sendSuccess(() -> $$12, fals ... ... e); ... 625 $$0.increment(); ... 626 } ... 627 } ... 628 ); ... 629 int $$2 = $$0.intValue(); ... 630 if ($$2 == 0) { ... 631 TestCommand.say(this.finder.source().getLevel(), "No such ... ... test structure found", ChatFormatting.RED); ... 632 return 0; ... 633 } else { ... 634 TestCommand.say(this.finder.source().getLevel(), "Finished ... ... locating, found " + $$2 + " structure(s)", ChatFormatting.GREEN); ... 635 return 1; ... 636 } ... 637 } ... 638 } 553 } 639 554 640 static record TestBatchSummaryDisplayer(CommandSourceStack source) 555 static record TestBatchSummaryDisplayer(CommandSourceStack source) ... implements GameTestBatchListener { ... implements GameTestBatchListener { 641 @Override 556 @Override 642 public void testBatchStarting(GameTestBatch $$0) { 557 public void testBatchStarting(GameTestBatch $$0) { 643 TestCommand.say(this.source, "Starting batch: " + $$0.name()) 558 this.source.sendSuccess(() -> Component.translatable("command ... ; ... s.test.batch.starting", $$0.environment().getRegisteredName(), $$0.ind ... ... ex()), true); 644 } 559 } 645 560 646 @Override 561 @Override 647 public void testBatchFinished(GameTestBatch $$0) { 562 public void testBatchFinished(GameTestBatch $$0) { 648 } 563 } 649 } 564 } 650 565 651 public static record TestSummaryDisplayer(ServerLevel level, Multip 566 public static record TestSummaryDisplayer(CommandSourceStack source ... leTestTracker tracker) implements GameTestListener { ... , MultipleTestTracker tracker) implements GameTestListener { 652 @Override 567 @Override 653 public void testStructureLoaded(GameTestInfo $$0) { 568 public void testStructureLoaded(GameTestInfo $$0) { 654 } 569 } 655 570 656 @Override 571 @Override 657 public void testPassed(GameTestInfo $$0, GameTestRunner $$1) { 572 public void testPassed(GameTestInfo $$0, GameTestRunner $$1) { 658 showTestSummaryIfAllDone(this.level, this.tracker); 573 this.showTestSummaryIfAllDone(); 659 } 574 } 660 575 661 @Override 576 @Override 662 public void testFailed(GameTestInfo $$0, GameTestRunner $$1) { 577 public void testFailed(GameTestInfo $$0, GameTestRunner $$1) { 663 showTestSummaryIfAllDone(this.level, this.tracker); 578 this.showTestSummaryIfAllDone(); 664 } 579 } 665 580 666 @Override 581 @Override 667 public void testAddedForRerun(GameTestInfo $$0, GameTestInfo $$1 582 public void testAddedForRerun(GameTestInfo $$0, GameTestInfo $$1 ... , GameTestRunner $$2) { ... , GameTestRunner $$2) { 668 this.tracker.addTestToTrack($$1); 583 this.tracker.addTestToTrack($$1); 669 } 584 } 670 585 671 private static void showTestSummaryIfAllDone(ServerLevel $$0, Mu 586 private void showTestSummaryIfAllDone() { ... ltipleTestTracker $$1) { ... 672 if ($$1.isDone()) { 587 if (this.tracker.isDone()) { 673 TestCommand.say($$0, "GameTest done! " + $$1.getTotalCount 588 this.source.sendSuccess(() -> Component.translatable("comm ... () + " tests were run", ChatFormatting.WHITE); ... ands.test.summary", this.tracker.getTotalCount()).withStyle(ChatFormat ... ... ting.WHITE), true); 674 if ($$1.hasFailedRequired()) { 589 if (this.tracker.hasFailedRequired()) { 675 TestCommand.say($$0, $$1.getFailedRequiredCount() + " r 590 this.source.sendFailure(Component.translatable("command ... equired tests failed :(", ChatFormatting.RED); ... s.test.summary.failed", this.tracker.getFailedRequiredCount())); 676 } else { 591 } else { 677 TestCommand.say($$0, "All required tests passed :)", Ch 592 this.source.sendSuccess(() -> Component.translatable("c ... atFormatting.GREEN); ... ommands.test.summary.all_required_passed").withStyle(ChatFormatting.GR ... ... EEN), true); 678 } 593 } 679 594 680 if ($$1.hasFailedOptional()) { 595 if (this.tracker.hasFailedOptional()) { 681 TestCommand.say($$0, $$1.getFailedOptionalCount() + " o 596 this.source.sendSystemMessage(Component.translatable("c ... ptional tests failed", ChatFormatting.GRAY); ... ommands.test.summary.optional_failed", this.tracker.getFailedOptionalC ... ... ount())); 682 } 597 } 683 } 598 } 684 } 599 } net/minecraft/world/item/CreativeModeTabs.java --- 1/4 --- Text (exceeded DFT_GRAPH_LIMIT) 25 import net.minecraft.tags.InstrumentTags; 25 import net.minecraft.tags.InstrumentTags; 26 import net.minecraft.tags.PaintingVariantTags; 26 import net.minecraft.tags.PaintingVariantTags; 27 import net.minecraft.tags.TagKey; 27 import net.minecraft.tags.TagKey; 28 import net.minecraft.world.entity.decoration.Painting; .. 29 import net.minecraft.world.entity.decoration.PaintingVariant; 28 import net.minecraft.world.entity.decoration.PaintingVariant; 30 import net.minecraft.world.entity.raid.Raid; 29 import net.minecraft.world.entity.raid.Raid; 31 import net.minecraft.world.flag.FeatureFlagSet; 30 import net.minecraft.world.flag.FeatureFlagSet; 32 import net.minecraft.world.item.alchemy.Potion; 31 import net.minecraft.world.item.alchemy.Potion; 33 import net.minecraft.world.item.alchemy.PotionContents; 32 import net.minecraft.world.item.alchemy.PotionContents; 34 import net.minecraft.world.item.component.CustomData; .. 35 import net.minecraft.world.item.component.Fireworks; 33 import net.minecraft.world.item.component.Fireworks; 36 import net.minecraft.world.item.component.OminousBottleAmplifier; 34 import net.minecraft.world.item.component.OminousBottleAmplifier; 37 import net.minecraft.world.item.enchantment.Enchantment; 35 import net.minecraft.world.item.enchantment.Enchantment; net/minecraft/world/item/CreativeModeTabs.java --- 2/4 --- Text (exceeded DFT_GRAPH_LIMIT) 40 import net.minecraft.world.level.block.Blocks; 38 import net.minecraft.world.level.block.Blocks; 41 import net.minecraft.world.level.block.LightBlock; 39 import net.minecraft.world.level.block.LightBlock; 42 import net.minecraft.world.level.block.SuspiciousEffectHolder; 40 import net.minecraft.world.level.block.SuspiciousEffectHolder; .. 41 import net.minecraft.world.level.block.TestBlock; .. 42 import net.minecraft.world.level.block.state.properties.TestBlockMode; 43 43 44 public class CreativeModeTabs { 44 public class CreativeModeTabs { 45 private static final ResourceLocation INVENTORY_BACKGROUND = Creativ 45 private static final ResourceLocation INVENTORY_BACKGROUND = Creativ eModeTab.createTextureLocation("inventory"); eModeTab.createTextureLocation("inventory"); net/minecraft/world/item/CreativeModeTabs.java --- 3/4 --- Text (exceeded DFT_GRAPH_LIMIT) 1815 $$1.accept(Items.STRUCTURE_VOID); 1815 $$1.accept(Items.STRUCTURE_VOID); 1816 $$1.accept(Items.BARRIER); 1816 $$1.accept(Items.BARRIER); 1817 $$1.accept(Items.DEBUG_STICK); 1817 $$1.accept(Items.DEBUG_STICK); .... 1818 $$1.accept(Items.TEST_INSTANCE_BLOCK); 1818 1819 1819 for (int $$2 = 15; $$2 >= 0; $$2--) { 1820 for (TestBlockMode $$2 : TestBlockMode.values()) .... .... { 1820 $$1.accept(LightBlock.setLightOnStack(new Ite 1821 $$1.accept(TestBlock.setModeOnStack(new ItemS .... mStack(Items.LIGHT), $$2)); .... tack(Items.TEST_BLOCK), $$2)); 1821 } 1822 } 1822 1823 .... 1824 for (int $$3 = 15; $$3 >= 0; $$3--) { .... 1825 $$1.accept(LightBlock.setLightOnStack(new Ite .... .... mStack(Items.LIGHT), $$3)); .... 1826 } .... 1827 1823 $$0x.holders() 1828 $$0x.holders() 1824 .lookup(Registries.PAINTING_VARIANT) 1829 .lookup(Registries.PAINTING_VARIANT) 1825 .ifPresent( 1830 .ifPresent( net/minecraft/world/item/CreativeModeTabs.java --- 4/4 --- Text (exceeded DFT_GRAPH_LIMIT) 1935 CreativeModeTab.TabVisibility $$4 1940 CreativeModeTab.TabVisibility $$4 1936 ) { 1941 ) { 1937 RegistryOps<Tag> $$5 = $$1.createSerializationContext(NbtOps.IN 1942 RegistryOps<Tag> $$5 = $$1.createSerializationContext(NbtOps.IN .... STANCE); .... STANCE); 1938 $$2.listElements() 1943 $$2.listElements().filter($$3).sorted(PAINTING_COMPARATOR).forE .... .... ach($$2x -> { 1939 .filter($$3) .... 1940 .sorted(PAINTING_COMPARATOR) .... 1941 .forEach( .... 1942 $$3x -> { .... 1943 CustomData $$4x = CustomData.EMPTY 1944 ItemStack $$3x = new ItemStack(Items.PAINTING); 1944 .update($$5, Painting.VARIANT_MAP_CODEC, $$3x) .... 1945 .getOrThrow() .... 1946 .update($$0xx -> $$0xx.putString("id", "minecraft:p .... .... ainting")); .... 1947 ItemStack $$5x = new ItemStack(Items.PAINTING); .... 1948 $$5x.set(DataComponents.ENTITY_DATA, $$4x); 1945 $$3x.set(DataComponents.PAINTING_VARIANT, $$2x); 1949 $$0.accept($$5x, $$4); 1946 $$0.accept($$3x, $$4); 1950 } 1947 }); 1951 ); .... 1952 } 1948 } 1953 1949 1954 public static List<CreativeModeTab> tabs() { 1950 public static List<CreativeModeTab> tabs() { net/minecraft/world/entity/Entity.java --- 1/28 --- Text (exceeded DFT_GRAPH_LIMIT) 12 import it.unimi.dsi.fastutil.longs.LongSet; 12 import it.unimi.dsi.fastutil.longs.LongSet; 13 import it.unimi.dsi.fastutil.objects.Object2DoubleArrayMap; 13 import it.unimi.dsi.fastutil.objects.Object2DoubleArrayMap; 14 import it.unimi.dsi.fastutil.objects.Object2DoubleMap; 14 import it.unimi.dsi.fastutil.objects.Object2DoubleMap; 15 import it.unimi.dsi.fastutil.objects.ReferenceArrayList; .. 16 import java.util.ArrayList; 15 import java.util.ArrayList; 17 import java.util.Arrays; 16 import java.util.Arrays; 18 import java.util.HashSet; 17 import java.util.HashSet; net/minecraft/world/entity/Entity.java --- 2/28 --- Text (exceeded DFT_GRAPH_LIMIT) 41 import net.minecraft.core.Holder; 40 import net.minecraft.core.Holder; 42 import net.minecraft.core.RegistryAccess; 41 import net.minecraft.core.RegistryAccess; 43 import net.minecraft.core.SectionPos; 42 import net.minecraft.core.SectionPos; .. 43 import net.minecraft.core.component.DataComponentGetter; .. 44 import net.minecraft.core.component.DataComponentType; .. 45 import net.minecraft.core.component.DataComponents; 44 import net.minecraft.core.particles.BlockParticleOption; 46 import net.minecraft.core.particles.BlockParticleOption; 45 import net.minecraft.core.particles.ParticleTypes; 47 import net.minecraft.core.particles.ParticleTypes; 46 import net.minecraft.nbt.CompoundTag; 48 import net.minecraft.nbt.CompoundTag; net/minecraft/world/entity/Entity.java --- 3/28 --- Text (exceeded DFT_GRAPH_LIMIT) 136 import net.minecraft.world.scores.PlayerTeam; 138 import net.minecraft.world.scores.PlayerTeam; 137 import net.minecraft.world.scores.ScoreHolder; 139 import net.minecraft.world.scores.ScoreHolder; 138 import net.minecraft.world.scores.Team; 140 import net.minecraft.world.scores.Team; ... 141 import org.jetbrains.annotations.Contract; 139 import org.slf4j.Logger; 142 import org.slf4j.Logger; 140 143 141 public abstract class Entity implements SyncedDataHolder, Nameable, En 144 public abstract class Entity implements SyncedDataHolder, Nameable, En ... tityAccess, ScoreHolder { ... tityAccess, ScoreHolder, DataComponentGetter { 142 private static final Logger LOGGER = LogUtils.getLogger(); 145 private static final Logger LOGGER = LogUtils.getLogger(); 143 public static final String ID_TAG = "id"; 146 public static final String ID_TAG = "id"; 144 public static final String PASSENGERS_TAG = "Passengers"; 147 public static final String PASSENGERS_TAG = "Passengers"; net/minecraft/world/entity/Entity.java --- 4/28 --- Text (exceeded DFT_GRAPH_LIMIT) 192 public static final float DEFAULT_BB_HEIGHT = 1.8F; 195 public static final float DEFAULT_BB_HEIGHT = 1.8F; 193 public float moveDist; 196 public float moveDist; 194 public float flyDist; 197 public float flyDist; 195 public float fallDistance; 198 public double fallDistance; 196 private float nextStep = 1.0F; 199 private float nextStep = 1.0F; 197 public double xOld; 200 public double xOld; 198 public double yOld; 201 public double yOld; net/minecraft/world/entity/Entity.java --- 5/28 --- Text (exceeded DFT_GRAPH_LIMIT) 251 @Nullable 254 @Nullable 252 private BlockState inBlockState = null; 255 private BlockState inBlockState = null; 253 private final List<Entity.Movement> movementThisTick = new ArrayLis 256 private final List<Entity.Movement> movementThisTick = new ArrayLis ... t<>(); ... t<>(); 254 private final List<BlockState> blocksInside = new ReferenceArrayLis ... ... t<>(); ... 255 private final LongSet visitedBlocks = new LongOpenHashSet(); 257 private final LongSet visitedBlocks = new LongOpenHashSet(); ... 258 private final Entity.FireStateVisitor fireStateVisitor = new Entity ... ... .FireStateVisitor(); 256 259 257 public Entity(EntityType<?> $$0, Level $$1) { 260 public Entity(EntityType<?> $$0, Level $$1) { 258 this.type = $$0; 261 this.type = $$0; net/minecraft/world/entity/Entity.java --- 6/28 --- Text (exceeded DFT_GRAPH_LIMIT) 474 477 475 if (this.getTicksFrozen() > 0) { 478 if (this.getTicksFrozen() > 0) { 476 this.setTicksFrozen(0); 479 this.setTicksFrozen(0); 477 this.level().levelEvent(null, 1009, this.blockPosition, 480 this.playEntityOnFireExtinguishedSound(); ... 1); ... 478 } 481 } 479 } 482 } 480 } else { 483 } else { 481 this.clearFire(); 484 this.clearFire(); 482 } 485 } 483 486 484 if (this.isInLava()) { 487 if (this.isInLava()) { 485 this.lavaHurt(); 488 this.fallDistance *= 0.5; 486 this.fallDistance *= 0.5F; ... 487 } 489 } 488 490 489 this.checkBelowWorld(); 491 this.checkBelowWorld(); net/minecraft/world/entity/Entity.java --- 7/28 --- Text (exceeded DFT_GRAPH_LIMIT) 652 Vec3 $$3 = this.collide($$1); 654 Vec3 $$3 = this.collide($$1); 653 double $$4 = $$3.lengthSqr(); 655 double $$4 = $$3.lengthSqr(); 654 if ($$4 > 1.0E-7 || $$1.lengthSqr() - $$4 < 1.0E-7) { 656 if ($$4 > 1.0E-7 || $$1.lengthSqr() - $$4 < 1.0E-7) { 655 if (this.fallDistance != 0.0F && $$4 >= 1.0) { 657 if (this.fallDistance != 0.0 && $$4 >= 1.0) { 656 BlockHitResult $$5 = this.level() 658 BlockHitResult $$5 = this.level() 657 .clip(new ClipContext(this.position(), this.position 659 .clip(new ClipContext(this.position(), this.position ... ().add($$3), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid ... ().add($$3), ClipContext.Block.FALLDAMAGE_RESETTING, ClipContext.Fluid ... .WATER, this)); ... .WATER, this)); 658 if ($$5.getType() != HitResult.Type.MISS) { 660 if ($$5.getType() != HitResult.Type.MISS) { net/minecraft/world/entity/Entity.java --- 8/28 --- Text (exceeded DFT_GRAPH_LIMIT) 764 List<Entity.Movement> $$4 = List.copyOf(this.movementThisTick 766 List<Entity.Movement> $$4 = List.copyOf(this.movementThisTick ... ); ... ); 765 this.movementThisTick.clear(); 767 this.movementThisTick.clear(); 766 boolean $$5 = this.isOnFire(); 768 boolean $$5 = this.isOnFire(); 767 this.checkInsideBlocks($$4, this.blocksInside); 769 this.fireStateVisitor.reset($$5); 768 boolean $$6 = false; 770 this.checkInsideBlocks($$4, this.fireStateVisitor); 769 boolean $$7 = false; ... 770 ... 771 for (BlockState $$8 : this.blocksInside) { ... 772 if ($$8.is(Blocks.LAVA)) { ... 773 $$6 = true; ... 774 $$5 = true; ... 775 $$7 = false; ... 776 } else if ($$8.is(BlockTags.FIRE)) { ... 777 $$5 = true; ... 778 $$7 = false; 771 if (this.fireStateVisitor.touchedLava) { 779 } else if ($$5 && ($$8.is(Blocks.WATER) || $$8.is(Blocks.P ... ... OWDER_SNOW) || $$8.is(Blocks.BUBBLE_COLUMN))) { ... 780 $$5 = false; ... 781 $$7 = true; ... 782 } ... 783 } ... 784 ... 785 this.blocksInside.clear(); ... 786 if ($$6) { ... 787 this.lavaHurt(); 772 this.lavaHurt(); 788 } 773 } 789 774 790 if ($$7) { 775 if (!this.fireStateVisitor.isOnFire) { 791 if (!this.level.isClientSide()) { ... 792 this.playEntityOnFireExtinguishedSound(); ... 793 } ... 794 ... 795 this.clearFire(); 776 this.clearFire(); 796 } 777 } 797 778 798 if (!$$5 && this.remainingFireTicks <= 0) { 779 if ($$5 && !this.isOnFire()) { ... 780 this.playEntityOnFireExtinguishedSound(); ... 781 } ... 782 ... 783 if (!this.fireStateVisitor.isOnFire && this.remainingFireTick ... ... s <= 0) { 799 this.setRemainingFireTicks(-this.getFireImmuneTicks()); 784 this.setRemainingFireTicks(-this.getFireImmuneTicks()); 800 } 785 } 801 } 786 } net/minecraft/world/entity/Entity.java --- 9/28 --- Text (exceeded DFT_GRAPH_LIMIT) 835 } 820 } 836 821 837 protected void playEntityOnFireExtinguishedSound() { 822 protected void playEntityOnFireExtinguishedSound() { 838 this.playSound(SoundEvents.GENERIC_EXTINGUISH_FIRE, 0.7F, 1.6F + 823 if (!this.level.isClientSide()) { ... (this.random.nextFloat() - this.random.nextFloat()) * 0.4F); ... ... 824 this.level() ... 825 .playSound( ... 826 null, ... 827 this.getX(), ... 828 this.getY(), ... 829 this.getZ(), ... 830 SoundEvents.GENERIC_EXTINGUISH_FIRE, ... 831 this.getSoundSource(), ... 832 0.7F, ... 833 1.6F + (this.random.nextFloat() - this.random.nextFloat ... ... ()) * 0.4F ... 834 ); ... 835 } 839 } 836 } 840 837 841 public void extinguishFire() { 838 public void extinguishFire() { 842 if (!this.level().isClientSide && this.wasOnFire) { 839 if (this.isOnFire()) { 843 this.playEntityOnFireExtinguishedSound(); 840 this.playEntityOnFireExtinguishedSound(); 844 } 841 } 845 842 net/minecraft/world/entity/Entity.java --- 10/28 --- Text (exceeded DFT_GRAPH_LIMIT) 1070 this.movementThisTick.add(new Entity.Movement($$0, $$1)); 1067 this.movementThisTick.add(new Entity.Movement($$0, $$1)); 1071 } 1068 } 1072 1069 1073 private void checkInsideBlocks(List<Entity.Movement> $$0, List<Blo 1070 private void checkInsideBlocks(List<Entity.Movement> $$0, Entity.S .... ckState> $$1) { .... tateVisitor $$1) { 1074 if (this.isAffectedByBlocks()) { 1071 if (this.isAffectedByBlocks()) { 1075 LongSet $$2 = this.visitedBlocks; 1072 LongSet $$2 = this.visitedBlocks; 1076 1073 net/minecraft/world/entity/Entity.java --- 11/28 --- Text (exceeded DFT_GRAPH_LIMIT) 1086 1083 1087 BlockState $$8 = this.level().getBlockState($$7); 1084 BlockState $$8 = this.level().getBlockState($$7); 1088 if (!$$8.isAir() && $$2.add($$7.asLong())) { 1085 if (!$$8.isAir() && $$2.add($$7.asLong())) { 1089 try { 1086 VoxelShape $$9 = $$8.getEntityInsideCollisionShape( .... .... this.level(), $$7); 1090 VoxelShape $$9 = $$8.getEntityInsideCollisionSha 1087 boolean $$10 = $$9 == Shapes.block() || this.collid .... pe(this.level(), $$7); .... edWithShapeMovingFrom($$4, $$5, $$9.move(new Vec3($$7)).toAabbs()); .... 1088 if ($$10) { .... 1089 try { .... 1090 $$8.entityInside(this.level(), $$7, this); 1091 if ($$9 != Shapes.block() && !this.collidedWithS 1091 this.onInsideBlock($$8); .... hapeMovingFrom($$4, $$5, $$7, $$9)) { .... .... 1092 } catch (Throwable var18) { .... 1093 CrashReport $$12 = CrashReport.forThrowable(v .... .... ar18, "Colliding entity with block"); .... 1094 CrashReportCategory $$13 = $$12.addCategory(" .... .... Block being collided with"); .... 1095 CrashReportCategory.populateBlockDetails($$13 .... .... , this.level(), $$7, $$8); .... 1096 CrashReportCategory $$14 = $$12.addCategory(" .... .... Entity being checked for collision"); .... 1097 this.fillCrashReportCategory($$14); 1092 continue; 1098 throw new ReportedException($$12); 1093 } 1099 } 1094 .... 1095 $$8.entityInside(this.level(), $$7, this); .... 1096 this.onInsideBlock($$8); .... 1097 } catch (Throwable var16) { .... 1098 CrashReport $$11 = CrashReport.forThrowable(var1 .... .... 6, "Colliding entity with block"); .... 1099 CrashReportCategory $$12 = $$11.addCategory("Blo .... .... ck being collided with"); .... 1100 CrashReportCategory.populateBlockDetails($$12, t .... .... his.level(), $$7, $$8); .... 1101 CrashReportCategory $$13 = $$11.addCategory("Ent .... .... ity being checked for collision"); .... 1102 this.fillCrashReportCategory($$13); .... 1103 throw new ReportedException($$11); .... 1104 } 1100 } 1105 1101 1106 $$1.add($$8); 1102 boolean $$15 = this.collidedWithFluid($$8.getFluidS .... .... tate(), $$7, $$4, $$5); .... 1103 $$1.visit($$8, $$10, $$15); 1107 } 1104 } 1108 } 1105 } 1109 } 1106 } net/minecraft/world/entity/Entity.java --- 12/28 --- Text (exceeded DFT_GRAPH_LIMIT) 1112 } 1109 } 1113 } 1110 } 1114 1111 1115 private boolean collidedWithShapeMovingFrom(Vec3 $$0, Vec3 $$1, Bl 1112 private boolean collidedWithFluid(FluidState $$0, BlockPos $$1, Ve .... ockPos $$2, VoxelShape $$3) { .... c3 $$2, Vec3 $$3) { 1116 AABB $$4 = this.makeBoundingBox($$0); 1113 AABB $$4 = $$0.getAABB(this.level(), $$1); 1117 Vec3 $$5 = $$1.subtract($$0); .... 1118 return $$4.collidedAlongVector($$5, $$3.move(new Vec3($$2)).toA 1114 return $$4 != null && this.collidedWithShapeMovingFrom($$2, $$3 .... abbs()); .... , List.of($$4)); 1119 } 1115 } 1120 1116 .... 1117 private boolean collidedWithShapeMovingFrom(Vec3 $$0, Vec3 $$1, Li .... .... st<AABB> $$2) { .... 1118 AABB $$3 = this.makeBoundingBox($$0); .... 1119 Vec3 $$4 = $$1.subtract($$0); .... 1120 return $$3.collidedAlongVector($$4, $$2); .... 1121 } .... 1122 1121 protected void onInsideBlock(BlockState $$0) { 1123 protected void onInsideBlock(BlockState $$0) { 1122 } 1124 } 1123 1125 net/minecraft/world/entity/Entity.java --- 13/28 --- Text (exceeded DFT_GRAPH_LIMIT) 1259 1261 1260 protected void checkFallDamage(double $$0, boolean $$1, BlockState 1262 protected void checkFallDamage(double $$0, boolean $$1, BlockState .... $$2, BlockPos $$3) { .... $$2, BlockPos $$3) { 1261 if (!this.isInWater() && $$0 < 0.0) { 1263 if (!this.isInWater() && $$0 < 0.0) { 1262 this.fallDistance -= (float)$$0; 1264 this.fallDistance -= (double)((float)$$0); 1263 } 1265 } 1264 1266 1265 if ($$1) { 1267 if ($$1) { 1266 if (this.fallDistance > 0.0F) { 1268 if (this.fallDistance > 0.0) { 1267 $$2.getBlock().fallOn(this.level(), $$2, $$3, this, this. 1269 $$2.getBlock().fallOn(this.level(), $$2, $$3, this, this. .... fallDistance); .... fallDistance); 1268 this.level() 1270 this.level() 1269 .gameEvent( 1271 .gameEvent( net/minecraft/world/entity/Entity.java --- 14/28 --- Text (exceeded DFT_GRAPH_LIMIT) 1281 return this.getType().fireImmune(); 1283 return this.getType().fireImmune(); 1282 } 1284 } 1283 1285 1284 public boolean causeFallDamage(float $$0, float $$1, DamageSource 1286 public boolean causeFallDamage(double $$0, float $$1, DamageSource .... $$2) { .... $$2) { 1285 if (this.type.is(EntityTypeTags.FALL_DAMAGE_IMMUNE)) { 1287 if (this.type.is(EntityTypeTags.FALL_DAMAGE_IMMUNE)) { 1286 return false; 1288 return false; 1287 } else { 1289 } else { net/minecraft/world/entity/Entity.java --- 15/28 --- Text (exceeded DFT_GRAPH_LIMIT) 1299 return this.wasTouchingWater; 1301 return this.wasTouchingWater; 1300 } 1302 } 1301 1303 1302 private boolean isInRain() { 1304 boolean isInRain() { 1303 BlockPos $$0 = this.blockPosition(); 1305 BlockPos $$0 = this.blockPosition(); 1304 return this.level().isRainingAt($$0) || this.level().isRainingA 1306 return this.level().isRainingAt($$0) || this.level().isRainingA .... t(BlockPos.containing((double)$$0.getX(), this.getBoundingBox().maxY, .... t(BlockPos.containing((double)$$0.getX(), this.getBoundingBox().maxY, .... (double)$$0.getZ())); .... (double)$$0.getZ())); 1305 } 1307 } net/minecraft/world/entity/Entity.java --- 16/28 --- Text (exceeded DFT_GRAPH_LIMIT) 1347 1349 1348 this.resetFallDistance(); 1350 this.resetFallDistance(); 1349 this.wasTouchingWater = true; 1351 this.wasTouchingWater = true; 1350 this.clearFire(); .... 1351 } else { 1352 } else { 1352 this.wasTouchingWater = false; 1353 this.wasTouchingWater = false; 1353 } 1354 } net/minecraft/world/entity/Entity.java --- 17/28 --- Text (exceeded DFT_GRAPH_LIMIT) 1465 : 0.0F; 1466 : 0.0F; 1466 } 1467 } 1467 1468 1468 public void absMoveTo(double $$0, double $$1, double $$2, float $$ 1469 public void absSnapTo(double $$0, double $$1, double $$2, float $$ .... 3, float $$4) { .... 3, float $$4) { 1469 this.absMoveTo($$0, $$1, $$2); 1470 this.absSnapTo($$0, $$1, $$2); 1470 this.absRotateTo($$3, $$4); 1471 this.absSnapRotationTo($$3, $$4); 1471 } 1472 } 1472 1473 1473 public void absRotateTo(float $$0, float $$1) { 1474 public void absSnapRotationTo(float $$0, float $$1) { 1474 this.setYRot($$0 % 360.0F); 1475 this.setYRot($$0 % 360.0F); 1475 this.setXRot(Mth.clamp($$1, -90.0F, 90.0F) % 360.0F); 1476 this.setXRot(Mth.clamp($$1, -90.0F, 90.0F) % 360.0F); 1476 this.yRotO = this.getYRot(); 1477 this.yRotO = this.getYRot(); 1477 this.xRotO = this.getXRot(); 1478 this.xRotO = this.getXRot(); 1478 } 1479 } 1479 1480 1480 public void absMoveTo(double $$0, double $$1, double $$2) { 1481 public void absSnapTo(double $$0, double $$1, double $$2) { 1481 double $$3 = Mth.clamp($$0, -3.0E7, 3.0E7); 1482 double $$3 = Mth.clamp($$0, -3.0E7, 3.0E7); 1482 double $$4 = Mth.clamp($$2, -3.0E7, 3.0E7); 1483 double $$4 = Mth.clamp($$2, -3.0E7, 3.0E7); 1483 this.xo = $$3; 1484 this.xo = $$3; net/minecraft/world/entity/Entity.java --- 18/28 --- Text (exceeded DFT_GRAPH_LIMIT) 1486 this.setPos($$3, $$1, $$4); 1487 this.setPos($$3, $$1, $$4); 1487 } 1488 } 1488 1489 1489 public void moveTo(Vec3 $$0) { 1490 public void snapTo(Vec3 $$0) { 1490 this.moveTo($$0.x, $$0.y, $$0.z); 1491 this.snapTo($$0.x, $$0.y, $$0.z); 1491 } 1492 } 1492 1493 1493 public void moveTo(double $$0, double $$1, double $$2) { 1494 public void snapTo(double $$0, double $$1, double $$2) { 1494 this.moveTo($$0, $$1, $$2, this.getYRot(), this.getXRot()); 1495 this.snapTo($$0, $$1, $$2, this.getYRot(), this.getXRot()); 1495 } 1496 } 1496 1497 1497 public void moveTo(BlockPos $$0, float $$1, float $$2) { 1498 public void snapTo(BlockPos $$0, float $$1, float $$2) { 1498 this.moveTo($$0.getBottomCenter(), $$1, $$2); 1499 this.snapTo($$0.getBottomCenter(), $$1, $$2); 1499 } 1500 } 1500 1501 1501 public void moveTo(Vec3 $$0, float $$1, float $$2) { 1502 public void snapTo(Vec3 $$0, float $$1, float $$2) { 1502 this.moveTo($$0.x, $$0.y, $$0.z, $$1, $$2); 1503 this.snapTo($$0.x, $$0.y, $$0.z, $$1, $$2); 1503 } 1504 } 1504 1505 1505 public void moveTo(double $$0, double $$1, double $$2, float $$3, 1506 public void snapTo(double $$0, double $$1, double $$2, float $$3, .... float $$4) { .... float $$4) { 1506 this.setPosRaw($$0, $$1, $$2); 1507 this.setPosRaw($$0, $$1, $$2); 1507 this.setYRot($$3); 1508 this.setYRot($$3); 1508 this.setXRot($$4); 1509 this.setXRot($$4); net/minecraft/world/entity/Entity.java --- 19/28 --- Text (exceeded DFT_GRAPH_LIMIT) 1770 Vec3 $$1 = this.getDeltaMovement(); 1771 Vec3 $$1 = this.getDeltaMovement(); 1771 $$0.put("Motion", this.newDoubleList($$1.x, $$1.y, $$1.z)); 1772 $$0.put("Motion", this.newDoubleList($$1.x, $$1.y, $$1.z)); 1772 $$0.put("Rotation", this.newFloatList(this.getYRot(), this.g 1773 $$0.put("Rotation", this.newFloatList(this.getYRot(), this.g .... etXRot())); .... etXRot())); 1773 $$0.putFloat("FallDistance", this.fallDistance); 1774 $$0.putDouble("fall_distance", this.fallDistance); 1774 $$0.putShort("Fire", (short)this.remainingFireTicks); 1775 $$0.putShort("Fire", (short)this.remainingFireTicks); 1775 $$0.putShort("Air", (short)this.getAirSupply()); 1776 $$0.putShort("Air", (short)this.getAirSupply()); 1776 $$0.putBoolean("OnGround", this.onGround()); 1777 $$0.putBoolean("OnGround", this.onGround()); net/minecraft/world/entity/Entity.java --- 20/28 --- Text (exceeded DFT_GRAPH_LIMIT) 1864 this.setOldPosAndRot(); 1865 this.setOldPosAndRot(); 1865 this.setYHeadRot(this.getYRot()); 1866 this.setYHeadRot(this.getYRot()); 1866 this.setYBodyRot(this.getYRot()); 1867 this.setYBodyRot(this.getYRot()); 1867 this.fallDistance = $$0.getFloat("FallDistance"); 1868 this.fallDistance = $$0.getDouble("fall_distance"); 1868 this.remainingFireTicks = $$0.getShort("Fire"); 1869 this.remainingFireTicks = $$0.getShort("Fire"); 1869 if ($$0.contains("Air")) { 1870 if ($$0.contains("Air")) { 1870 this.setAirSupply($$0.getShort("Air")); 1871 this.setAirSupply($$0.getShort("Air")); net/minecraft/world/entity/Entity.java --- 21/28 --- Text (exceeded DFT_GRAPH_LIMIT) 2202 if ($$3 != null) { 2203 if ($$3 != null) { 2203 $$3.interpolateTo($$0, $$1, $$2); 2204 $$3.interpolateTo($$0, $$1, $$2); 2204 } else { 2205 } else { 2205 this.moveTo($$0, $$1, $$2); 2206 this.setPos($$0); .... 2207 this.setRot($$1, $$2); 2206 } 2208 } 2207 } 2209 } 2208 2210 net/minecraft/world/entity/Entity.java --- 22/28 --- Text (exceeded DFT_GRAPH_LIMIT) 2542 } 2544 } 2543 2545 2544 public void checkSlowFallDistance() { 2546 public void checkSlowFallDistance() { 2545 if (this.getDeltaMovement().y() > -0.5 && this.fallDistance > 1 2547 if (this.getDeltaMovement().y() > -0.5 && this.fallDistance > 1 .... .0F) { .... .0) { 2546 this.fallDistance = 1.0F; 2548 this.fallDistance = 1.0; 2547 } 2549 } 2548 } 2550 } 2549 2551 2550 public void resetFallDistance() { 2552 public void resetFallDistance() { 2551 this.fallDistance = 0.0F; 2553 this.fallDistance = 0.0; 2552 } 2554 } 2553 2555 2554 protected void moveTowardsClosestSpace(double $$0, double $$1, dou 2556 protected void moveTowardsClosestSpace(double $$0, double $$1, dou ble $$2) { ble $$2) { net/minecraft/world/entity/Entity.java --- 23/28 --- Text (exceeded DFT_GRAPH_LIMIT) 2674 } 2676 } 2675 2677 2676 public void copyPosition(Entity $$0) { 2678 public void copyPosition(Entity $$0) { 2677 this.moveTo($$0.getX(), $$0.getY(), $$0.getZ(), $$0.getYRot(), 2679 this.snapTo($$0.getX(), $$0.getY(), $$0.getZ(), $$0.getYRot(), .... $$0.getXRot()); .... $$0.getXRot()); 2678 } 2680 } 2679 2681 2680 public void restoreFrom(Entity $$0) { 2682 public void restoreFrom(Entity $$0) { net/minecraft/world/entity/Entity.java --- 24/28 --- Text (exceeded DFT_GRAPH_LIMIT) 2932 } 2934 } 2933 2935 2934 public boolean teleportTo(ServerLevel $$0, double $$1, double $$2, 2936 public boolean teleportTo(ServerLevel $$0, double $$1, double $$2, .... double $$3, Set<Relative> $$4, float $$5, float $$6, boolean $$7) { .... double $$3, Set<Relative> $$4, float $$5, float $$6, boolean $$7) { 2935 float $$8 = Mth.clamp($$6, -90.0F, 90.0F); 2937 Entity $$8 = this.teleport(new TeleportTransition($$0, new Vec3 .... .... ($$1, $$2, $$3), Vec3.ZERO, $$5, $$6, $$4, TeleportTransition.DO_NOTH .... .... ING)); 2936 Entity $$9 = this.teleport(new TeleportTransition($$0, new Vec3 .... .... ($$1, $$2, $$3), Vec3.ZERO, $$5, $$8, $$4, TeleportTransition.DO_NOTH .... .... ING)); .... 2937 return $$9 != null; 2938 return $$8 != null; 2938 } 2939 } 2939 2940 2940 public void dismountTo(double $$0, double $$1, double $$2) { 2941 public void dismountTo(double $$0, double $$1, double $$2) { net/minecraft/world/entity/Entity.java --- 25/28 --- Text (exceeded DFT_GRAPH_LIMIT) 2943 2944 2944 public void teleportTo(double $$0, double $$1, double $$2) { 2945 public void teleportTo(double $$0, double $$1, double $$2) { 2945 if (this.level() instanceof ServerLevel) { 2946 if (this.level() instanceof ServerLevel) { 2946 this.moveTo($$0, $$1, $$2, this.getYRot(), this.getXRot()); 2947 this.snapTo($$0, $$1, $$2, this.getYRot(), this.getXRot()); 2947 this.teleportPassengers(); 2948 this.teleportPassengers(); 2948 } 2949 } 2949 } 2950 } 2950 2951 2951 private void teleportPassengers() { 2952 private void teleportPassengers() { 2952 this.getSelfAndPassengers().forEach($$0 -> { 2953 this.getSelfAndPassengers().forEach($$0 -> { 2953 for (Entity $$1 : $$0.passengers) { 2954 for (Entity $$1 : $$0.passengers) { 2954 $$0.positionRider($$1, Entity::moveTo); 2955 $$0.positionRider($$1, Entity::snapTo); 2955 } 2956 } 2956 }); 2957 }); 2957 } 2958 } net/minecraft/world/entity/Entity.java --- 26/28 --- Text (exceeded DFT_GRAPH_LIMIT) 3511 double $$3 = $$0.getY(); 3512 double $$3 = $$0.getY(); 3512 double $$4 = $$0.getZ(); 3513 double $$4 = $$0.getZ(); 3513 this.syncPacketPositionCodec($$2, $$3, $$4); 3514 this.syncPacketPositionCodec($$2, $$3, $$4); 3514 this.moveTo($$2, $$3, $$4, $$0.getYRot(), $$0.getXRot()); 3515 this.snapTo($$2, $$3, $$4, $$0.getYRot(), $$0.getXRot()); 3515 this.setId($$1); 3516 this.setId($$1); 3516 this.setUUID($$0.getUUID()); 3517 this.setUUID($$0.getUUID()); 3517 Vec3 $$5 = new Vec3($$0.getXa(), $$0.getYa(), $$0.getZa()); 3518 Vec3 $$5 = new Vec3($$0.getXa(), $$0.getYa(), $$0.getZa()); net/minecraft/world/entity/Entity.java --- 27/28 --- Text (exceeded DFT_GRAPH_LIMIT) 3674 return this.type.getDefaultLootTable(); 3675 return this.type.getDefaultLootTable(); 3675 } 3676 } 3676 3677 .... 3678 protected void applyImplicitComponents(DataComponentGetter $$0) { .... 3679 this.applyImplicitComponentIfPresent($$0, DataComponents.CUSTOM .... .... _NAME); .... 3680 } .... 3681 .... 3682 public final void applyComponentsFromItemStack(ItemStack $$0) { .... 3683 this.applyImplicitComponents($$0.getComponents()); .... 3684 } .... 3685 .... 3686 @Nullable .... 3687 @Override .... 3688 public <T> T get(DataComponentType<? extends T> $$0) { .... 3689 return $$0 == DataComponents.CUSTOM_NAME ? castComponentValue(( .... .... DataComponentType<T>)$$0, this.getCustomName()) : null; .... 3690 } .... 3691 .... 3692 @Nullable .... 3693 @Contract("_,!null->!null;_,_->_") .... 3694 protected static <T> T castComponentValue(DataComponentType<T> $$0 .... .... , @Nullable Object $$1) { .... 3695 return (T)$$1; .... 3696 } .... 3697 .... 3698 public <T> void setComponent(DataComponentType<T> $$0, T $$1) { .... 3699 this.applyImplicitComponent($$0, $$1); .... 3700 } .... 3701 .... 3702 protected <T> boolean applyImplicitComponent(DataComponentType<T> .... .... $$0, T $$1) { .... 3703 if ($$0 == DataComponents.CUSTOM_NAME) { .... 3704 this.setCustomName(castComponentValue(DataComponents.CUSTOM_ .... .... NAME, $$1)); .... 3705 return true; .... 3706 } else { .... 3707 return false; .... 3708 } .... 3709 } .... 3710 .... 3711 protected <T> boolean applyImplicitComponentIfPresent(DataComponen .... .... tGetter $$0, DataComponentType<T> $$1) { .... 3712 T $$2 = $$0.get($$1); .... 3713 return $$2 != null ? this.applyImplicitComponent($$1, $$2) : fa .... .... lse; .... 3714 } .... 3715 .... 3716 static class FireStateVisitor implements Entity.StateVisitor { .... 3717 boolean isOnFire = false; .... 3718 boolean touchedLava = false; .... 3719 .... 3720 public void reset(boolean $$0) { .... 3721 this.isOnFire = $$0; .... 3722 this.touchedLava = false; .... 3723 } .... 3724 .... 3725 @Override .... 3726 public void visit(BlockState $$0, boolean $$1, boolean $$2) { .... 3727 boolean $$3 = $$1 && $$0.is(Blocks.POWDER_SNOW); .... 3728 boolean $$4 = $$1 && $$0.is(BlockTags.FIRE); .... 3729 boolean $$5 = $$2 && $$0.getFluidState().is(FluidTags.LAVA); .... 3730 boolean $$6 = $$2 && $$0.getFluidState().is(FluidTags.WATER) .... .... ; .... 3731 if ($$5) { .... 3732 this.touchedLava = true; .... 3733 this.isOnFire = true; .... 3734 } else if ($$4) { .... 3735 this.isOnFire = true; .... 3736 } else if (this.isOnFire && ($$3 || $$6)) { .... 3737 this.isOnFire = false; .... 3738 } .... 3739 } .... 3740 } .... 3741 3677 @FunctionalInterface 3742 @FunctionalInterface 3678 public interface MoveFunction { 3743 public interface MoveFunction { net/minecraft/world/entity/Entity.java --- 28/28 --- Text (exceeded DFT_GRAPH_LIMIT) 3731 public boolean shouldSave() { 3796 public boolean shouldSave() { 3732 return this.save; 3797 return this.save; 3733 } 3798 } .... 3799 } .... 3800 .... 3801 interface StateVisitor { .... 3802 void visit(BlockState var1, boolean var2, boolean var3); 3734 } 3803 } 3735 } 3804 } net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 1/15 --- Text (exceeded DFT_GRAPH_LIMIT) 17 import net.minecraft.server.level.ServerPlayer; 17 import net.minecraft.server.level.ServerPlayer; 18 import net.minecraft.sounds.SoundEvent; 18 import net.minecraft.sounds.SoundEvent; 19 import net.minecraft.sounds.SoundEvents; 19 import net.minecraft.sounds.SoundEvents; 20 import net.minecraft.sounds.SoundSource; .. 21 import net.minecraft.tags.ItemTags; 20 import net.minecraft.tags.ItemTags; 22 import net.minecraft.util.Mth; 21 import net.minecraft.util.Mth; 23 import net.minecraft.util.RandomSource; 22 import net.minecraft.util.RandomSource; 24 import net.minecraft.world.Container; 23 import net.minecraft.world.Container; 25 import net.minecraft.world.ContainerListener; .. 26 import net.minecraft.world.DifficultyInstance; 24 import net.minecraft.world.DifficultyInstance; 27 import net.minecraft.world.InteractionHand; 25 import net.minecraft.world.InteractionHand; 28 import net.minecraft.world.InteractionResult; 26 import net.minecraft.world.InteractionResult; net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 2/15 --- Text (exceeded DFT_GRAPH_LIMIT) 41 import net.minecraft.world.entity.OwnableEntity; 39 import net.minecraft.world.entity.OwnableEntity; 42 import net.minecraft.world.entity.PlayerRideableJumping; 40 import net.minecraft.world.entity.PlayerRideableJumping; 43 import net.minecraft.world.entity.Pose; 41 import net.minecraft.world.entity.Pose; 44 import net.minecraft.world.entity.Saddleable; .. 45 import net.minecraft.world.entity.SlotAccess; 42 import net.minecraft.world.entity.SlotAccess; 46 import net.minecraft.world.entity.SpawnGroupData; 43 import net.minecraft.world.entity.SpawnGroupData; 47 import net.minecraft.world.entity.ai.attributes.Attribute; 44 import net.minecraft.world.entity.ai.attributes.Attribute; net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 3/15 --- Text (exceeded DFT_GRAPH_LIMIT) 65 import net.minecraft.world.item.Items; 62 import net.minecraft.world.item.Items; 66 import net.minecraft.world.item.enchantment.EnchantmentEffectComponents 63 import net.minecraft.world.item.enchantment.EnchantmentEffectComponents .. ; .. ; 67 import net.minecraft.world.item.enchantment.EnchantmentHelper; 64 import net.minecraft.world.item.enchantment.EnchantmentHelper; .. 65 import net.minecraft.world.item.equipment.Equippable; 68 import net.minecraft.world.level.Level; 66 import net.minecraft.world.level.Level; 69 import net.minecraft.world.level.ServerLevelAccessor; 67 import net.minecraft.world.level.ServerLevelAccessor; 70 import net.minecraft.world.level.block.Blocks; 68 import net.minecraft.world.level.block.Blocks; net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 4/15 --- Text (exceeded DFT_GRAPH_LIMIT) 74 import net.minecraft.world.phys.AABB; 72 import net.minecraft.world.phys.AABB; 75 import net.minecraft.world.phys.Vec2; 73 import net.minecraft.world.phys.Vec2; 76 import net.minecraft.world.phys.Vec3; 74 import net.minecraft.world.phys.Vec3; 77 import net.minecraft.world.ticks.ContainerSingleItem; .. 78 75 79 public abstract class AbstractHorse extends Animal implements Container 76 public abstract class AbstractHorse extends Animal implements HasCustom .. Listener, HasCustomInventoryScreen, OwnableEntity, PlayerRideableJumpin .. InventoryScreen, OwnableEntity, PlayerRideableJumping { .. g, Saddleable { .. 80 public static final int EQUIPMENT_SLOT_OFFSET = 400; .. 81 public static final int CHEST_SLOT_OFFSET = 499; 77 public static final int CHEST_SLOT_OFFSET = 499; 82 public static final int INVENTORY_SLOT_OFFSET = 500; 78 public static final int INVENTORY_SLOT_OFFSET = 500; 83 public static final double BREEDING_CROSS_FACTOR = 0.15; 79 public static final double BREEDING_CROSS_FACTOR = 0.15; net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 5/15 --- Text (exceeded DFT_GRAPH_LIMIT) 102 .selector(PARENT_HORSE_SELECTOR); 98 .selector(PARENT_HORSE_SELECTOR); 103 private static final EntityDataAccessor<Byte> DATA_ID_FLAGS = Synch 99 private static final EntityDataAccessor<Byte> DATA_ID_FLAGS = Synch ... edEntityData.defineId(AbstractHorse.class, EntityDataSerializers.BYTE) .. edEntityData.defineId(AbstractHorse.class, EntityDataSerializers.BYTE) ... ; .. ; 104 private static final int FLAG_TAME = 2; 100 private static final int FLAG_TAME = 2; 105 private static final int FLAG_SADDLE = 4; ... 106 private static final int FLAG_BRED = 8; 101 private static final int FLAG_BRED = 8; 107 private static final int FLAG_EATING = 16; 102 private static final int FLAG_EATING = 16; 108 private static final int FLAG_STANDING = 32; 103 private static final int FLAG_STANDING = 32; 109 private static final int FLAG_OPEN_MOUTH = 64; 104 private static final int FLAG_OPEN_MOUTH = 64; 110 public static final int INV_SLOT_SADDLE = 0; ... 111 public static final int INV_BASE_COUNT = 1; ... 112 public static final int INVENTORY_ROWS = 3; 105 public static final int INVENTORY_ROWS = 3; 113 private int eatingCounter; 106 private int eatingCounter; 114 private int mouthCounter; 107 private int mouthCounter; net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 6/15 --- Text (exceeded DFT_GRAPH_LIMIT) 130 protected int gallopSoundCounter; 123 protected int gallopSoundCounter; 131 @Nullable 124 @Nullable 132 private EntityReference<LivingEntity> owner; 125 private EntityReference<LivingEntity> owner; 133 private final Container bodyArmorAccess = new ContainerSingleItem() ... ... { ... 134 @Override ... 135 public ItemStack getTheItem() { ... 136 return AbstractHorse.this.getBodyArmorItem(); ... 137 } ... 138 126 139 @Override ... 140 public void setTheItem(ItemStack $$0) { ... 141 AbstractHorse.this.setBodyArmorItem($$0); ... 142 } ... 143 ... 144 @Override ... 145 public void setChanged() { ... 146 } ... 147 ... 148 @Override ... 149 public boolean stillValid(Player $$0) { ... 150 return $$0.getVehicle() == AbstractHorse.this || $$0.canInter ... ... actWithEntity(AbstractHorse.this, 4.0); ... 151 } ... 152 }; ... 153 ... 154 protected AbstractHorse(EntityType<? extends AbstractHorse> $$0, Le 127 protected AbstractHorse(EntityType<? extends AbstractHorse> $$0, Le ... vel $$1) { ... vel $$1) { 155 super($$0, $$1); 128 super($$0, $$1); 156 this.createInventory(); 129 this.createInventory(); net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 7/15 --- Text (exceeded DFT_GRAPH_LIMIT) 248 } 221 } 249 222 250 @Override 223 @Override 251 public boolean isSaddleable() { 224 public boolean canUseSlot(EquipmentSlot $$0) { 252 return this.isAlive() && !this.isBaby() && this.isTamed(); 225 return $$0 != EquipmentSlot.SADDLE ? super.canUseSlot($$0) : thi ... ... s.isAlive() && !this.isBaby() && this.isTamed(); 253 } 226 } 254 227 255 @Override ... 256 public void equipSaddle(ItemStack $$0, @Nullable SoundSource $$1) { ... 257 this.inventory.setItem(0, $$0); ... 258 } ... 259 ... 260 public void equipBodyArmor(Player $$0, ItemStack $$1) { 228 public void equipBodyArmor(Player $$0, ItemStack $$1) { 261 if (this.isEquippableInSlot($$1, EquipmentSlot.BODY)) { 229 if (this.isEquippableInSlot($$1, EquipmentSlot.BODY)) { 262 this.setBodyArmorItem($$1.consumeAndReturn(1, $$0)); 230 this.setBodyArmorItem($$1.consumeAndReturn(1, $$0)); net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 8/15 --- Text (exceeded DFT_GRAPH_LIMIT) 265 233 266 @Override 234 @Override 267 protected boolean canDispenserEquipIntoSlot(EquipmentSlot $$0) { 235 protected boolean canDispenserEquipIntoSlot(EquipmentSlot $$0) { 268 return $$0 == EquipmentSlot.BODY && this.isTamed() || super.canD 236 return ($$0 == EquipmentSlot.BODY || $$0 == EquipmentSlot.SADDLE ... ispenserEquipIntoSlot($$0); ... ) && this.isTamed() || super.canDispenserEquipIntoSlot($$0); 269 } 237 } 270 238 271 @Override ... 272 public boolean isSaddled() { ... 273 return this.getFlag(4); ... 274 } ... 275 ... 276 public int getTemper() { 239 public int getTemper() { 277 return this.temper; 240 return this.temper; 278 } 241 } net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 9/15 --- Text (exceeded DFT_GRAPH_LIMIT) 313 } 276 } 314 277 315 @Override 278 @Override 316 public boolean causeFallDamage(float $$0, float $$1, DamageSource $ 279 public boolean causeFallDamage(double $$0, float $$1, DamageSource ... $2) { ... $$2) { 317 if ($$0 > 1.0F) { 280 if ($$0 > 1.0) { 318 this.playSound(SoundEvents.HORSE_LAND, 0.4F, 1.0F); 281 this.playSound(SoundEvents.HORSE_LAND, 0.4F, 1.0F); 319 } 282 } 320 283 net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 10/15 --- Text (exceeded DFT_GRAPH_LIMIT) 339 } 302 } 340 303 341 public static int getInventorySize(int $$0) { 304 public static int getInventorySize(int $$0) { 342 return $$0 * 3 + 1; 305 return $$0 * 3; 343 } 306 } 344 307 345 protected void createInventory() { 308 protected void createInventory() { 346 SimpleContainer $$0 = this.inventory; 309 SimpleContainer $$0 = this.inventory; 347 this.inventory = new SimpleContainer(this.getInventorySize()); 310 this.inventory = new SimpleContainer(this.getInventorySize()); 348 if ($$0 != null) { 311 if ($$0 != null) { 349 $$0.removeListener(this); ... 350 int $$1 = Math.min($$0.getContainerSize(), this.inventory.get 312 int $$1 = Math.min($$0.getContainerSize(), this.inventory.get ... ContainerSize()); ... ContainerSize()); 351 313 352 for (int $$2 = 0; $$2 < $$1; $$2++) { 314 for (int $$2 = 0; $$2 < $$1; $$2++) { net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 11/15 --- Text (exceeded DFT_GRAPH_LIMIT) 356 } 318 } 357 } 319 } 358 } 320 } 359 ... 360 this.inventory.addListener(this); ... 361 this.syncSaddleToClients(); ... 362 } 321 } 363 322 364 protected void syncSaddleToClients() { ... 365 if (!this.level().isClientSide) { ... 366 this.setFlag(4, !this.inventory.getItem(0).isEmpty()); ... 367 } ... 368 } ... 369 ... 370 @Override 323 @Override 371 public void containerChanged(Container $$0) { 324 protected Holder<SoundEvent> getEquipSound(EquipmentSlot $$0, ItemS ... ... tack $$1, Equippable $$2) { 372 boolean $$1 = this.isSaddled(); ... 373 this.syncSaddleToClients(); ... 374 if (this.tickCount > 20 && !$$1 && this.isSaddled()) { 325 return (Holder<SoundEvent>)($$0 == EquipmentSlot.SADDLE ? SoundE ... ... vents.HORSE_SADDLE : super.getEquipSound($$0, $$1, $$2)); 375 this.playSound(this.getSaddleSoundEvent(), 0.5F, 1.0F); ... 376 } ... 377 } 326 } 378 327 379 @Override 328 @Override net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 12/15 --- Text (exceeded DFT_GRAPH_LIMIT) 839 if (this.owner != null) { 788 if (this.owner != null) { 840 this.owner.store($$0, "Owner"); 789 this.owner.store($$0, "Owner"); 841 } 790 } 842 ... 843 if (!this.inventory.getItem(0).isEmpty()) { ... 844 $$0.put("SaddleItem", this.inventory.getItem(0).save(this.reg ... ... istryAccess())); ... 845 } ... 846 } 791 } 847 792 848 @Override 793 @Override net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 13/15 --- Text (exceeded DFT_GRAPH_LIMIT) 853 this.setTemper($$0.getInt("Temper")); 798 this.setTemper($$0.getInt("Temper")); 854 this.setTamed($$0.getBoolean("Tame")); 799 this.setTamed($$0.getBoolean("Tame")); 855 this.owner = EntityReference.readWithOldOwnerConversion($$0, "Ow 800 this.owner = EntityReference.readWithOldOwnerConversion($$0, "Ow ... ner", this.level()); ... ner", this.level()); 856 if ($$0.contains("SaddleItem", 10)) { ... 857 ItemStack $$1 = ItemStack.parse(this.registryAccess(), $$0.ge ... ... tCompound("SaddleItem")).orElse(ItemStack.EMPTY); ... 858 if ($$1.is(Items.SADDLE)) { ... 859 this.inventory.setItem(0, $$1); ... 860 } ... 861 } ... 862 ... 863 this.syncSaddleToClients(); ... 864 } 801 } 865 802 866 @Override 803 @Override net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 14/15 --- Text (exceeded DFT_GRAPH_LIMIT) 1007 944 1008 @Override 945 @Override 1009 public SlotAccess getSlot(int $$0) { 946 public SlotAccess getSlot(int $$0) { 1010 int $$1 = $$0 - 400; 947 int $$1 = $$0 - 500; 1011 if ($$1 == 0) { 948 return $$1 >= 0 && $$1 < this.inventory.getContainerSize() ? Sl .... ... otAccess.forContainer(this.inventory, $$1) : super.getSlot($$0); 1012 return new SlotAccess() { ... 1013 @Override ... 1014 public ItemStack get() { ... 1015 return AbstractHorse.this.inventory.getItem(0); ... 1016 } ... 1017 ... 1018 @Override ... 1019 public boolean set(ItemStack $$0) { ... 1020 if (!$$0.isEmpty() && !$$0.is(Items.SADDLE)) { ... 1021 return false; ... 1022 } else { ... 1023 AbstractHorse.this.inventory.setItem(0, $$0); ... 1024 AbstractHorse.this.syncSaddleToClients(); ... 1025 return true; ... 1026 } ... 1027 } ... 1028 }; ... 1029 } else { ... 1030 int $$2 = $$0 - 500 + 1; ... 1031 return $$2 >= 1 && $$2 < this.inventory.getContainerSize() ? ... .... SlotAccess.forContainer(this.inventory, $$2) : super.getSlot($$0); ... 1032 } ... 1033 } 949 } 1034 950 1035 @Nullable 951 @Nullable net/minecraft/world/entity/animal/horse/AbstractHorse.java --- 15/15 --- Text (exceeded DFT_GRAPH_LIMIT) 1124 new Vec3(0.0, 0.15 * (double)this.standAnimO * (double)$$ 1040 new Vec3(0.0, 0.15 * (double)this.standAnimO * (double)$$ .... 2, -0.7 * (double)this.standAnimO * (double)$$2) .... 2, -0.7 * (double)this.standAnimO * (double)$$2) 1125 .yRot(-this.getYRot() * (float) (Math.PI / 180.0)) 1041 .yRot(-this.getYRot() * (float) (Math.PI / 180.0)) 1126 ); 1042 ); 1127 } .... 1128 .... 1129 public final Container getBodyArmorAccess() { .... 1130 return this.bodyArmorAccess; .... 1131 } 1043 } 1132 1044 1133 public int getInventoryColumns() { 1045 public int getInventoryColumns() { net/minecraft/world/entity/animal/Fox.java --- 1/7 --- Java 1 package net.minecraft.world.entity.animal; 1 package net.minecraft.world.entity.animal; 2 2 . 3 import io.netty.buffer.ByteBuf; 3 import java.util.EnumSet; 4 import java.util.EnumSet; 4 import java.util.List; 5 import java.util.List; 5 import java.util.Optional; 6 import java.util.Optional; net/minecraft/world/entity/animal/Fox.java --- 2/7 --- Java 11 import net.minecraft.advancements.CriteriaTriggers; 12 import net.minecraft.advancements.CriteriaTriggers; 12 import net.minecraft.core.BlockPos; 13 import net.minecraft.core.BlockPos; 13 import net.minecraft.core.Holder; 14 import net.minecraft.core.Holder; .. 15 import net.minecraft.core.component.DataComponentGetter; .. 16 import net.minecraft.core.component.DataComponentType; 14 import net.minecraft.core.component.DataComponents; 17 import net.minecraft.core.component.DataComponents; 15 import net.minecraft.core.particles.ItemParticleOption; 18 import net.minecraft.core.particles.ItemParticleOption; 16 import net.minecraft.core.particles.ParticleTypes; 19 import net.minecraft.core.particles.ParticleTypes; 17 import net.minecraft.nbt.CompoundTag; 20 import net.minecraft.nbt.CompoundTag; 18 import net.minecraft.nbt.ListTag; 21 import net.minecraft.nbt.ListTag; 19 import net.minecraft.nbt.NbtUtils; 22 import net.minecraft.nbt.NbtUtils; 20 import net.minecraft.nbt.Tag; 23 import net.minecraft.nbt.Tag; .. 24 import net.minecraft.network.codec.ByteBufCodecs; .. 25 import net.minecraft.network.codec.StreamCodec; 21 import net.minecraft.network.syncher.EntityDataAccessor; 26 import net.minecraft.network.syncher.EntityDataAccessor; 22 import net.minecraft.network.syncher.EntityDataSerializers; 27 import net.minecraft.network.syncher.EntityDataSerializers; 23 import net.minecraft.network.syncher.SynchedEntityData; 28 import net.minecraft.network.syncher.SynchedEntityData; net/minecraft/world/entity/animal/Fox.java --- 3/7 --- Java 50 import net.minecraft.world.entity.Pose; 55 import net.minecraft.world.entity.Pose; 51 import net.minecraft.world.entity.SpawnGroupData; 56 import net.minecraft.world.entity.SpawnGroupData; 52 import net.minecraft.world.entity.TamableAnimal; 57 import net.minecraft.world.entity.TamableAnimal; 53 import net.minecraft.world.entity.VariantHolder; .. 54 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 58 import net.minecraft.world.entity.ai.attributes.AttributeSupplier; 55 import net.minecraft.world.entity.ai.attributes.Attributes; 59 import net.minecraft.world.entity.ai.attributes.Attributes; 56 import net.minecraft.world.entity.ai.control.LookControl; 60 import net.minecraft.world.entity.ai.control.LookControl; net/minecraft/world/entity/animal/Fox.java --- 4/7 --- Java 92 import net.minecraft.world.level.pathfinder.PathType; 96 import net.minecraft.world.level.pathfinder.PathType; 93 import net.minecraft.world.phys.Vec3; 97 import net.minecraft.world.phys.Vec3; 94 98 95 public class Fox extends Animal implements VariantHolder<Fox.Variant> { 99 public class Fox extends Animal { 96 private static final EntityDataAccessor<Integer> DATA_TYPE_ID = Sync 100 private static final EntityDataAccessor<Integer> DATA_TYPE_ID = Sync .. hedEntityData.defineId(Fox.class, EntityDataSerializers.INT); ... hedEntityData.defineId(Fox.class, EntityDataSerializers.INT); 97 private static final EntityDataAccessor<Byte> DATA_FLAGS_ID = Synche 101 private static final EntityDataAccessor<Byte> DATA_FLAGS_ID = Synche .. dEntityData.defineId(Fox.class, EntityDataSerializers.BYTE); ... dEntityData.defineId(Fox.class, EntityDataSerializers.BYTE); 98 private static final int FLAG_SITTING = 1; 102 private static final int FLAG_SITTING = 1; net/minecraft/world/entity/animal/Fox.java --- 5/7 --- Java 350 return Fox.Variant.byId(this.entityData.get(DATA_TYPE_ID)); 354 return Fox.Variant.byId(this.entityData.get(DATA_TYPE_ID)); 351 } 355 } 352 356 353 public void setVariant(Fox.Variant $$0) { 357 private void setVariant(Fox.Variant $$0) { 354 this.entityData.set(DATA_TYPE_ID, $$0.getId()); 358 this.entityData.set(DATA_TYPE_ID, $$0.getId()); 355 } 359 } ... 360 ... 361 @Nullable ... 362 @Override ... 363 public <T> T get(DataComponentType<? extends T> $$0) { ... 364 return $$0 == DataComponents.FOX_VARIANT ? castComponentValue((D ... ... ataComponentType<T>)$$0, this.getVariant()) : super.get($$0); ... 365 } ... 366 ... 367 @Override ... 368 protected void applyImplicitComponents(DataComponentGetter $$0) { ... 369 this.applyImplicitComponentIfPresent($$0, DataComponents.FOX_VAR ... ... IANT); ... 370 super.applyImplicitComponents($$0); ... 371 } ... 372 ... 373 @Override ... 374 protected <T> boolean applyImplicitComponent(DataComponentType<T> $ ... ... $0, T $$1) { ... 375 if ($$0 == DataComponents.FOX_VARIANT) { ... 376 this.setVariant(castComponentValue(DataComponents.FOX_VARIANT ... ... , $$1)); ... 377 return true; ... 378 } else { ... 379 return super.applyImplicitComponent($$0, $$1); ... 380 } ... 381 } 356 382 357 Stream<EntityReference<LivingEntity>> getTrustedEntities() { 383 Stream<EntityReference<LivingEntity>> getTrustedEntities() { 358 return Stream.concat(this.entityData.get(DATA_TRUSTED_ID_0).stre 384 return Stream.concat(this.entityData.get(DATA_TRUSTED_ID_0).stre am(), this.entityData.get(DATA_TRUSTED_ID_1).stream()); am(), this.entityData.get(DATA_TRUSTED_ID_1).stream()); net/minecraft/world/entity/animal/Fox.java --- 6/7 --- Java 841 this.animal.resetLove(); 867 this.animal.resetLove(); 842 this.partner.resetLove(); 868 this.partner.resetLove(); 843 $$1.setAge(-24000); 869 $$1.setAge(-24000); 844 $$1.moveTo(this.animal.getX(), this.animal.getY(), this.an 870 $$1.snapTo(this.animal.getX(), this.animal.getY(), this.an ... imal.getZ(), 0.0F, 0.0F); ... imal.getZ(), 0.0F, 0.0F); 845 $$0.addFreshEntityWithPassengers($$1); 871 $$0.addFreshEntityWithPassengers($$1); 846 this.level.broadcastEntityEvent(this.animal, (byte)18); 872 this.level.broadcastEntityEvent(this.animal, (byte)18); 847 if ($$0.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT 873 if ($$0.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT )) { )) { net/minecraft/world/entity/animal/Fox.java --- 7/7 --- Java 1442 1468 1443 public static final StringRepresentable.EnumCodec<Fox.Variant> 1469 public static final StringRepresentable.EnumCodec<Fox.Variant> .... CODEC = StringRepresentable.fromEnum(Fox.Variant::values); .... CODEC = StringRepresentable.fromEnum(Fox.Variant::values); 1444 private static final IntFunction<Fox.Variant> BY_ID = ByIdMap.c 1470 private static final IntFunction<Fox.Variant> BY_ID = ByIdMap.c .... ontinuous(Fox.Variant::getId, values(), ByIdMap.OutOfBoundsStrategy.Z .... ontinuous(Fox.Variant::getId, values(), ByIdMap.OutOfBoundsStrategy.Z .... ERO); .... ERO); .... 1471 public static final StreamCodec<ByteBuf, Fox.Variant> STREAM_CO .... .... DEC = ByteBufCodecs.idMapper(BY_ID, Fox.Variant::getId); 1445 private final int id; 1472 private final int id; 1446 private final String name; 1473 private final String name; 1447 1474