From 717abbc48ad332ee7b61a0ce835d1c9e41978a53 Mon Sep 17 00:00:00 2001 From: modmuss50 <modmuss50@gmail.com> Date: Wed, 6 Apr 2022 21:49:45 +0100 Subject: [PATCH] 22w14a --- ...abric-data-generation-api-v1.accesswidener | 4 +-- .../gametest/StructureTestUtilMixin.java | 9 +++-- .../fabric/mixin/item/ItemStackMixin.java | 4 +-- .../fabric/test/model/BakedModelRenderer.java | 5 ++- .../object/builder/TypeAwareTradeMixin.java | 6 ++-- .../object/builder/SimpleTradeFactory.java | 5 ++- .../object/builder/VillagerTypeTest1.java | 5 ++- .../particle/FabricSpriteProviderImpl.java | 4 +-- .../renderer/v1/model/FabricBakedModel.java | 12 +++---- .../v1/model/ForwardingBakedModel.java | 8 ++--- .../renderer/client/MixinBakedModel.java | 6 ++-- .../client/MixinMultipartBakedModel.java | 6 ++-- .../client/MixinWeightedBakedModel.java | 6 ++-- .../simple/client/FrameBakedModel.java | 8 ++--- .../renderer/render/BlockRenderContext.java | 12 +++---- .../renderer/render/BlockRenderInfo.java | 8 ++--- .../renderer/render/ItemRenderContext.java | 10 +++--- .../render/TerrainFallbackConsumer.java | 4 +-- .../renderer/MixinBlockModelRenderer.java | 6 ++-- .../renderer/MixinChunkRebuildTask.java | 10 +++--- .../NamespaceResourceManagerAccessor.java | 7 ---- .../loader/NamespaceResourceManagerMixin.java | 4 +-- .../fabric/test/screen/SoundButton.java | 7 ++-- .../mixin/transfer/DropperBlockMixin.java | 2 +- gradle.properties | 36 +++++++++---------- 25 files changed, 94 insertions(+), 100 deletions(-) diff --git a/fabric-data-generation-api-v1/src/main/resources/fabric-data-generation-api-v1.accesswidener b/fabric-data-generation-api-v1/src/main/resources/fabric-data-generation-api-v1.accesswidener index 120d02877..5dc1addf3 100644 --- a/fabric-data-generation-api-v1/src/main/resources/fabric-data-generation-api-v1.accesswidener +++ b/fabric-data-generation-api-v1/src/main/resources/fabric-data-generation-api-v1.accesswidener @@ -42,7 +42,7 @@ transitive-accessible method net/minecraft/data/server/RecipeProvider offerPlank transitive-accessible method net/minecraft/data/server/RecipeProvider offerPlanksRecipe (Ljava/util/function/Consumer;Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/tag/TagKey;)V transitive-accessible method net/minecraft/data/server/RecipeProvider offerBarkBlockRecipe (Ljava/util/function/Consumer;Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;)V transitive-accessible method net/minecraft/data/server/RecipeProvider offerBoatRecipe (Ljava/util/function/Consumer;Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;)V -transitive-accessible method net/minecraft/data/server/RecipeProvider method_42754 (Ljava/util/function/Consumer;Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;)V +transitive-accessible method net/minecraft/data/server/RecipeProvider offerChestBoatRecipe (Ljava/util/function/Consumer;Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/item/ItemConvertible;)V transitive-accessible method net/minecraft/data/server/RecipeProvider createTransmutationRecipe (Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/recipe/Ingredient;)Lnet/minecraft/data/server/recipe/CraftingRecipeJsonBuilder; transitive-accessible method net/minecraft/data/server/RecipeProvider createDoorRecipe (Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/recipe/Ingredient;)Lnet/minecraft/data/server/recipe/CraftingRecipeJsonBuilder; transitive-accessible method net/minecraft/data/server/RecipeProvider createFenceRecipe (Lnet/minecraft/item/ItemConvertible;Lnet/minecraft/recipe/Ingredient;)Lnet/minecraft/data/server/recipe/CraftingRecipeJsonBuilder; @@ -228,7 +228,7 @@ transitive-accessible method net/minecraft/data/server/BlockLootTableGenerator d transitive-accessible method net/minecraft/data/server/BlockLootTableGenerator glowLichenDrops (Lnet/minecraft/block/Block;)Lnet/minecraft/loot/LootTable$Builder; transitive-accessible method net/minecraft/data/server/BlockLootTableGenerator leavesDrop (Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;[F)Lnet/minecraft/loot/LootTable$Builder; transitive-accessible method net/minecraft/data/server/BlockLootTableGenerator oakLeavesDrop (Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;[F)Lnet/minecraft/loot/LootTable$Builder; -transitive-accessible method net/minecraft/data/server/BlockLootTableGenerator method_42752 (Lnet/minecraft/block/Block;)Lnet/minecraft/loot/LootTable$Builder; +transitive-accessible method net/minecraft/data/server/BlockLootTableGenerator mangroveLeavesDrop (Lnet/minecraft/block/Block;)Lnet/minecraft/loot/LootTable$Builder; transitive-accessible method net/minecraft/data/server/BlockLootTableGenerator cropDrops (Lnet/minecraft/block/Block;Lnet/minecraft/item/Item;Lnet/minecraft/item/Item;Lnet/minecraft/loot/condition/LootCondition$Builder;)Lnet/minecraft/loot/LootTable$Builder; transitive-accessible method net/minecraft/data/server/BlockLootTableGenerator seagrassDrops (Lnet/minecraft/block/Block;)Lnet/minecraft/loot/LootTable$Builder; transitive-accessible method net/minecraft/data/server/BlockLootTableGenerator tallGrassDrops (Lnet/minecraft/block/Block;Lnet/minecraft/block/Block;)Lnet/minecraft/loot/LootTable$Builder; diff --git a/fabric-gametest-api-v1/src/main/java/net/fabricmc/fabric/mixin/gametest/StructureTestUtilMixin.java b/fabric-gametest-api-v1/src/main/java/net/fabricmc/fabric/mixin/gametest/StructureTestUtilMixin.java index 04641a912..b214dba76 100644 --- a/fabric-gametest-api-v1/src/main/java/net/fabricmc/fabric/mixin/gametest/StructureTestUtilMixin.java +++ b/fabric-gametest-api-v1/src/main/java/net/fabricmc/fabric/mixin/gametest/StructureTestUtilMixin.java @@ -20,11 +20,11 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import com.mojang.brigadier.exceptions.CommandSyntaxException; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtHelper; @@ -45,7 +45,12 @@ public abstract class StructureTestUtilMixin { Identifier structureId = new Identifier(baseId.getNamespace(), GAMETEST_STRUCTURE_PATH + baseId.getPath() + ".snbt"); try { - Resource resource = world.getServer().getResourceManager().getResource(structureId); + Resource resource = world.getServer().getResourceManager().getResource(structureId).orElse(null); + + if (resource == null) { + throw new RuntimeException("Unable to get resource: " + structureId); + } + String snbt; try (InputStream inputStream = resource.getInputStream()) { diff --git a/fabric-item-api-v1/src/main/java/net/fabricmc/fabric/mixin/item/ItemStackMixin.java b/fabric-item-api-v1/src/main/java/net/fabricmc/fabric/mixin/item/ItemStackMixin.java index cd38ef4f8..7aa9a5c46 100644 --- a/fabric-item-api-v1/src/main/java/net/fabricmc/fabric/mixin/item/ItemStackMixin.java +++ b/fabric-item-api-v1/src/main/java/net/fabricmc/fabric/mixin/item/ItemStackMixin.java @@ -49,7 +49,7 @@ public abstract class ItemStackMixin { this.fabric_breakCallback = breakCallback; } - @ModifyArg(method = "damage(ILnet/minecraft/entity/LivingEntity;Ljava/util/function/Consumer;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;damage(ILjava/util/Random;Lnet/minecraft/server/network/ServerPlayerEntity;)Z"), index = 0) + @ModifyArg(method = "damage(ILnet/minecraft/entity/LivingEntity;Ljava/util/function/Consumer;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;damage(ILnet/minecraft/world/gen/random/AbstractRandom;Lnet/minecraft/server/network/ServerPlayerEntity;)Z"), index = 0) private int hookDamage(int amount) { CustomDamageHandler handler = ((ItemExtensions) getItem()).fabric_getCustomDamageHandler(); @@ -61,7 +61,7 @@ public abstract class ItemStackMixin { } @Inject(method = "damage(ILnet/minecraft/entity/LivingEntity;Ljava/util/function/Consumer;)V", at = @At("RETURN")) - private <T extends LivingEntity> void clearDamager(int amount, T entity, Consumer<T> breakCallback, CallbackInfo ci) { + private <T extends LivingEntity> void clearDamage(int amount, T entity, Consumer<T> breakCallback, CallbackInfo ci) { this.fabric_damagingEntity = null; this.fabric_breakCallback = null; } diff --git a/fabric-models-v0/src/testmod/java/net/fabricmc/fabric/test/model/BakedModelRenderer.java b/fabric-models-v0/src/testmod/java/net/fabricmc/fabric/test/model/BakedModelRenderer.java index 211d1db5e..6e1b7ebe0 100644 --- a/fabric-models-v0/src/testmod/java/net/fabricmc/fabric/test/model/BakedModelRenderer.java +++ b/fabric-models-v0/src/testmod/java/net/fabricmc/fabric/test/model/BakedModelRenderer.java @@ -16,8 +16,6 @@ package net.fabricmc.fabric.test.model; -import java.util.Random; - import org.apache.commons.lang3.ArrayUtils; import net.minecraft.client.render.OverlayTexture; @@ -26,10 +24,11 @@ import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.Direction; +import net.minecraft.world.gen.random.AbstractRandom; public class BakedModelRenderer { private static final Direction[] CULL_FACES = ArrayUtils.add(Direction.values(), null); - private static final Random RANDOM = new Random(); + private static final AbstractRandom RANDOM = AbstractRandom.method_43047(); public static void renderBakedModel(BakedModel model, VertexConsumer vertices, MatrixStack.Entry entry, int light) { for (Direction cullFace : CULL_FACES) { diff --git a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/TypeAwareTradeMixin.java b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/TypeAwareTradeMixin.java index 16ae21f8c..3ed3e733e 100644 --- a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/TypeAwareTradeMixin.java +++ b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/TypeAwareTradeMixin.java @@ -16,7 +16,6 @@ package net.fabricmc.fabric.mixin.object.builder; -import java.util.Random; import java.util.stream.Stream; import org.spongepowered.asm.mixin.Mixin; @@ -30,6 +29,7 @@ import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.registry.DefaultedRegistry; import net.minecraft.village.TradeOffer; +import net.minecraft.world.gen.random.AbstractRandom; @Mixin(targets = "net/minecraft/village/TradeOffers$TypeAwareBuyForOneEmeraldFactory") public abstract class TypeAwareTradeMixin { @@ -47,8 +47,8 @@ public abstract class TypeAwareTradeMixin { /** * To prevent "item" -> "air" trades, if the result of a type aware trade is air, make sure no offer is created. */ - @Inject(method = "create(Lnet/minecraft/entity/Entity;Ljava/util/Random;)Lnet/minecraft/village/TradeOffer;", at = @At(value = "NEW", target = "net/minecraft/village/TradeOffer"), locals = LocalCapture.CAPTURE_FAILEXCEPTION, cancellable = true) - private void failOnNullItem(Entity entity, Random random, CallbackInfoReturnable<TradeOffer> cir, ItemStack buyingItem) { + @Inject(method = "create", at = @At(value = "NEW", target = "net/minecraft/village/TradeOffer"), locals = LocalCapture.CAPTURE_FAILEXCEPTION, cancellable = true) + private void failOnNullItem(Entity entity, AbstractRandom random, CallbackInfoReturnable<TradeOffer> cir, ItemStack buyingItem) { if (buyingItem.isEmpty()) { // Will return true for an "empty" item stack that had null passed in the ctor cir.setReturnValue(null); // Return null to prevent creation of empty trades } diff --git a/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/SimpleTradeFactory.java b/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/SimpleTradeFactory.java index 96d27d4db..1ce7d9690 100644 --- a/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/SimpleTradeFactory.java +++ b/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/SimpleTradeFactory.java @@ -16,11 +16,10 @@ package net.fabricmc.fabric.test.object.builder; -import java.util.Random; - import net.minecraft.entity.Entity; import net.minecraft.village.TradeOffer; import net.minecraft.village.TradeOffers; +import net.minecraft.world.gen.random.AbstractRandom; class SimpleTradeFactory implements TradeOffers.Factory { private final TradeOffer offer; @@ -30,7 +29,7 @@ class SimpleTradeFactory implements TradeOffers.Factory { } @Override - public TradeOffer create(Entity entity, Random random) { + public TradeOffer create(Entity entity, AbstractRandom random) { // ALWAYS supply a copy of the offer. return new TradeOffer(this.offer.toNbt()); } diff --git a/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/VillagerTypeTest1.java b/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/VillagerTypeTest1.java index f2111161c..e07f3a013 100644 --- a/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/VillagerTypeTest1.java +++ b/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/VillagerTypeTest1.java @@ -21,8 +21,6 @@ import static net.minecraft.command.argument.EntityArgumentType.getEntity; import static net.minecraft.server.command.CommandManager.argument; import static net.minecraft.server.command.CommandManager.literal; -import java.util.Random; - import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; import net.minecraft.entity.Entity; @@ -33,6 +31,7 @@ import net.minecraft.text.LiteralText; import net.minecraft.village.TradeOffer; import net.minecraft.village.TradeOffers; import net.minecraft.village.VillagerProfession; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback; @@ -69,7 +68,7 @@ public class VillagerTypeTest1 implements ModInitializer { for (TradeOffers.Factory[] value : TradeOffers.WANDERING_TRADER_TRADES.values()) { for (TradeOffers.Factory factory : value) { - final TradeOffer result = factory.create(trader, new Random()); + final TradeOffer result = factory.create(trader, AbstractRandom.method_43047()); if (result == null) { continue; diff --git a/fabric-particles-v1/src/main/java/net/fabricmc/fabric/impl/client/particle/FabricSpriteProviderImpl.java b/fabric-particles-v1/src/main/java/net/fabricmc/fabric/impl/client/particle/FabricSpriteProviderImpl.java index a2b12a2a0..0efaec5d4 100644 --- a/fabric-particles-v1/src/main/java/net/fabricmc/fabric/impl/client/particle/FabricSpriteProviderImpl.java +++ b/fabric-particles-v1/src/main/java/net/fabricmc/fabric/impl/client/particle/FabricSpriteProviderImpl.java @@ -17,12 +17,12 @@ package net.fabricmc.fabric.impl.client.particle; import java.util.List; -import java.util.Random; import net.minecraft.client.particle.ParticleManager; import net.minecraft.client.particle.SpriteProvider; import net.minecraft.client.texture.Sprite; import net.minecraft.client.texture.SpriteAtlasTexture; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.client.particle.v1.FabricSpriteProvider; import net.fabricmc.fabric.mixin.client.particle.ParticleManagerAccessor; @@ -52,7 +52,7 @@ public class FabricSpriteProviderImpl implements FabricSpriteProvider { } @Override - public Sprite getSprite(Random random) { + public Sprite getSprite(AbstractRandom random) { return delegate.getSprite(random); } } diff --git a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/model/FabricBakedModel.java b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/model/FabricBakedModel.java index b6b00a692..7fd9138b9 100644 --- a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/model/FabricBakedModel.java +++ b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/model/FabricBakedModel.java @@ -16,7 +16,6 @@ package net.fabricmc.fabric.api.renderer.v1.model; -import java.util.Random; import java.util.function.Supplier; import net.minecraft.block.BlockState; @@ -27,6 +26,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockRenderView; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.Renderer; import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; @@ -42,7 +42,7 @@ import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; */ public interface FabricBakedModel { /** - * When true, signals renderer this producer is implemented through {@link BakedModel#getQuads(BlockState, net.minecraft.util.math.Direction, Random)}. + * When true, signals renderer this producer is implemented through {@link BakedModel#getQuads(BlockState, net.minecraft.util.math.Direction, AbstractRandom)}. * Also means the model does not rely on any non-vanilla features. * Allows the renderer to optimize or route vanilla models through the unmodified vanilla pipeline if desired. * @@ -64,7 +64,7 @@ public interface FabricBakedModel { * <p>Also called to render block models outside of chunk rebuild or block entity rendering. * Typically this happens when the block is being rendered as an entity, not as a block placed in the world. * Currently this happens for falling blocks and blocks being pushed by a piston, but renderers - * should invoke this for all calls to {@link BlockModelRenderer#render(BlockRenderView, BakedModel, BlockState, BlockPos, MatrixStack, VertexConsumer, boolean, Random, long, int)} + * should invoke this for all calls to {@link BlockModelRenderer#render(BlockRenderView, BakedModel, BlockState, BlockPos, MatrixStack, VertexConsumer, boolean, AbstractRandom, long, int)} * that occur outside of chunk rebuilds to allow for features added by mods, unless * {@link #isVanillaAdapter()} returns true. * @@ -78,7 +78,7 @@ public interface FabricBakedModel { * neighboring blocks (if appropriate). Models only need to consider "sides" to the * extent the model is driven by connection with neighbor blocks or other world state. * - * <p>Note: with {@link BakedModel#getQuads(BlockState, net.minecraft.util.math.Direction, Random)}, the random + * <p>Note: with {@link BakedModel#getQuads(BlockState, net.minecraft.util.math.Direction, AbstractRandom)}, the random * parameter is normally initialized with the same seed prior to each face layer. * Model authors should note this method is called only once per block, and call the provided * Random supplier multiple times if re-seeding is necessary. For wrapped vanilla baked models, @@ -94,7 +94,7 @@ public interface FabricBakedModel { * Will not be thread-safe. Do not cache or retain a reference. * @param context Accepts model output. */ - void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<Random> randomSupplier, RenderContext context); + void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<AbstractRandom> randomSupplier, RenderContext context); /** * This method will be called during item rendering to generate both the static and @@ -123,5 +123,5 @@ public interface FabricBakedModel { * logic here, instead of returning every possible shape from {@link BakedModel#getOverrides} * as vanilla baked models. */ - void emitItemQuads(ItemStack stack, Supplier<Random> randomSupplier, RenderContext context); + void emitItemQuads(ItemStack stack, Supplier<AbstractRandom> randomSupplier, RenderContext context); } diff --git a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/model/ForwardingBakedModel.java b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/model/ForwardingBakedModel.java index bc2df6e74..2c296e904 100644 --- a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/model/ForwardingBakedModel.java +++ b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/model/ForwardingBakedModel.java @@ -17,7 +17,6 @@ package net.fabricmc.fabric.api.renderer.v1.model; import java.util.List; -import java.util.Random; import java.util.function.Supplier; import net.minecraft.block.BlockState; @@ -30,6 +29,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockRenderView; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; @@ -42,7 +42,7 @@ public abstract class ForwardingBakedModel implements BakedModel, FabricBakedMod protected BakedModel wrapped; @Override - public void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<Random> randomSupplier, RenderContext context) { + public void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<AbstractRandom> randomSupplier, RenderContext context) { ((FabricBakedModel) wrapped).emitBlockQuads(blockView, state, pos, randomSupplier, context); } @@ -52,12 +52,12 @@ public abstract class ForwardingBakedModel implements BakedModel, FabricBakedMod } @Override - public void emitItemQuads(ItemStack stack, Supplier<Random> randomSupplier, RenderContext context) { + public void emitItemQuads(ItemStack stack, Supplier<AbstractRandom> randomSupplier, RenderContext context) { ((FabricBakedModel) wrapped).emitItemQuads(stack, randomSupplier, context); } @Override - public List<BakedQuad> getQuads(BlockState blockState, Direction face, Random rand) { + public List<BakedQuad> getQuads(BlockState blockState, Direction face, AbstractRandom rand) { return wrapped.getQuads(blockState, face, rand); } diff --git a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinBakedModel.java b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinBakedModel.java index d76678150..150d1bdbb 100644 --- a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinBakedModel.java +++ b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinBakedModel.java @@ -16,7 +16,6 @@ package net.fabricmc.fabric.mixin.renderer.client; -import java.util.Random; import java.util.function.Supplier; import org.spongepowered.asm.mixin.Mixin; @@ -26,6 +25,7 @@ import net.minecraft.client.render.model.BakedModel; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockRenderView; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel; import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; @@ -41,12 +41,12 @@ public interface MixinBakedModel extends FabricBakedModel { } @Override - default void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<Random> randomSupplier, RenderContext context) { + default void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<AbstractRandom> randomSupplier, RenderContext context) { context.fallbackConsumer().accept((BakedModel) this); } @Override - default void emitItemQuads(ItemStack stack, Supplier<Random> randomSupplier, RenderContext context) { + default void emitItemQuads(ItemStack stack, Supplier<AbstractRandom> randomSupplier, RenderContext context) { context.fallbackConsumer().accept((BakedModel) this); } } diff --git a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinMultipartBakedModel.java b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinMultipartBakedModel.java index 164916217..1ad32e027 100644 --- a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinMultipartBakedModel.java +++ b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinMultipartBakedModel.java @@ -19,7 +19,6 @@ package net.fabricmc.fabric.mixin.renderer.client; import java.util.BitSet; import java.util.List; import java.util.Map; -import java.util.Random; import java.util.function.Predicate; import java.util.function.Supplier; @@ -38,6 +37,7 @@ import net.minecraft.client.render.model.MultipartBakedModel; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockRenderView; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel; import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; @@ -71,7 +71,7 @@ public class MixinMultipartBakedModel implements FabricBakedModel { } @Override - public void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<Random> randomSupplier, RenderContext context) { + public void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<AbstractRandom> randomSupplier, RenderContext context) { BitSet bitSet = this.stateCache.get(state); if (bitSet == null) { @@ -95,7 +95,7 @@ public class MixinMultipartBakedModel implements FabricBakedModel { } @Override - public void emitItemQuads(ItemStack stack, Supplier<Random> randomSupplier, RenderContext context) { + public void emitItemQuads(ItemStack stack, Supplier<AbstractRandom> randomSupplier, RenderContext context) { // Vanilla doesn't use MultipartBakedModel for items. } } diff --git a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinWeightedBakedModel.java b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinWeightedBakedModel.java index 10b3569ac..454897ba3 100644 --- a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinWeightedBakedModel.java +++ b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/mixin/renderer/client/MixinWeightedBakedModel.java @@ -17,7 +17,6 @@ package net.fabricmc.fabric.mixin.renderer.client; import java.util.List; -import java.util.Random; import java.util.function.Supplier; import org.spongepowered.asm.mixin.Final; @@ -36,6 +35,7 @@ import net.minecraft.util.collection.Weighted; import net.minecraft.util.collection.Weighting; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockRenderView; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel; import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; @@ -67,7 +67,7 @@ public class MixinWeightedBakedModel implements FabricBakedModel { } @Override - public void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<Random> randomSupplier, RenderContext context) { + public void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<AbstractRandom> randomSupplier, RenderContext context) { Weighted.Present<BakedModel> selected = Weighting.getAt(this.models, Math.abs((int) randomSupplier.get().nextLong()) % this.totalWeight).orElse(null); if (selected != null) { @@ -76,7 +76,7 @@ public class MixinWeightedBakedModel implements FabricBakedModel { } @Override - public void emitItemQuads(ItemStack stack, Supplier<Random> randomSupplier, RenderContext context) { + public void emitItemQuads(ItemStack stack, Supplier<AbstractRandom> randomSupplier, RenderContext context) { Weighted.Present<BakedModel> selected = Weighting.getAt(this.models, Math.abs((int) randomSupplier.get().nextLong()) % this.totalWeight).orElse(null); if (selected != null) { diff --git a/fabric-renderer-api-v1/src/testmod/java/net/fabricmc/fabric/test/renderer/simple/client/FrameBakedModel.java b/fabric-renderer-api-v1/src/testmod/java/net/fabricmc/fabric/test/renderer/simple/client/FrameBakedModel.java index 1b994d15a..cce505d04 100644 --- a/fabric-renderer-api-v1/src/testmod/java/net/fabricmc/fabric/test/renderer/simple/client/FrameBakedModel.java +++ b/fabric-renderer-api-v1/src/testmod/java/net/fabricmc/fabric/test/renderer/simple/client/FrameBakedModel.java @@ -18,7 +18,6 @@ package net.fabricmc.fabric.test.renderer.simple.client; import java.util.Collections; import java.util.List; -import java.util.Random; import java.util.function.Supplier; import org.jetbrains.annotations.Nullable; @@ -35,6 +34,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockRenderView; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.mesh.Mesh; import net.fabricmc.fabric.api.renderer.v1.mesh.MutableQuadView; @@ -53,7 +53,7 @@ final class FrameBakedModel implements BakedModel, FabricBakedModel { } @Override - public List<BakedQuad> getQuads(@Nullable BlockState state, @Nullable Direction face, Random random) { + public List<BakedQuad> getQuads(@Nullable BlockState state, @Nullable Direction face, AbstractRandom random) { return Collections.emptyList(); // Renderer API makes this obsolete, so return no quads } @@ -98,7 +98,7 @@ final class FrameBakedModel implements BakedModel, FabricBakedModel { } @Override - public void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<Random> randomSupplier, RenderContext context) { + public void emitBlockQuads(BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<AbstractRandom> randomSupplier, RenderContext context) { // Emit our frame mesh context.meshConsumer().accept(this.frameMesh); @@ -131,7 +131,7 @@ final class FrameBakedModel implements BakedModel, FabricBakedModel { } @Override - public void emitItemQuads(ItemStack stack, Supplier<Random> randomSupplier, RenderContext context) { + public void emitItemQuads(ItemStack stack, Supplier<AbstractRandom> randomSupplier, RenderContext context) { // TODO: Implement an item test. // For now we will just leave this as I have not added a block item yet } diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderContext.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderContext.java index 4ddd3b3c7..1f36efd0c 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderContext.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderContext.java @@ -16,7 +16,6 @@ package net.fabricmc.fabric.impl.client.indigo.renderer.render; -import java.util.Random; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; @@ -26,11 +25,12 @@ import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.WorldRenderer; import net.minecraft.client.render.model.BakedModel; -import net.minecraft.util.math.Matrix4f; -import net.minecraft.util.math.Matrix3f; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Matrix3f; +import net.minecraft.util.math.Matrix4f; import net.minecraft.world.BlockRenderView; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.mesh.Mesh; import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter; @@ -50,9 +50,9 @@ public class BlockRenderContext extends AbstractRenderContext implements RenderC private boolean didOutput = false; // These are kept as fields to avoid avoid the heap allocation for a supplier. // BlockModelRenderer allows the caller to supply both the random object and seed. - private Random random; + private AbstractRandom random; private long seed; - private final Supplier<Random> randomSupplier = () -> { + private final Supplier<AbstractRandom> randomSupplier = () -> { random.setSeed(seed); return random; }; @@ -96,7 +96,7 @@ public class BlockRenderContext extends AbstractRenderContext implements RenderC return bufferBuilder; } - public boolean render(BlockRenderView blockView, BakedModel model, BlockState state, BlockPos pos, MatrixStack matrixStack, VertexConsumer buffer, Random random, long seed, int overlay) { + public boolean render(BlockRenderView blockView, BakedModel model, BlockState state, BlockPos pos, MatrixStack matrixStack, VertexConsumer buffer, AbstractRandom random, long seed, int overlay) { this.bufferBuilder = buffer; this.matrix = matrixStack.peek().getPositionMatrix(); this.normalMatrix = matrixStack.peek().getNormalMatrix(); diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderInfo.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderInfo.java index d99696f74..5a4f7eac6 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderInfo.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/BlockRenderInfo.java @@ -16,7 +16,6 @@ package net.fabricmc.fabric.impl.client.indigo.renderer.render; -import java.util.Random; import java.util.function.Supplier; import net.minecraft.block.BlockState; @@ -27,6 +26,7 @@ import net.minecraft.client.render.RenderLayers; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockRenderView; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.material.BlendMode; @@ -39,7 +39,7 @@ import net.fabricmc.fabric.api.renderer.v1.material.BlendMode; */ public class BlockRenderInfo { private final BlockColors blockColorMap = MinecraftClient.getInstance().getBlockColors(); - public final Random random = new Random(); + private final AbstractRandom random = AbstractRandom.method_43047(); public BlockRenderView blockView; public BlockPos blockPos; public BlockState blockState; @@ -47,8 +47,8 @@ public class BlockRenderInfo { boolean defaultAo; RenderLayer defaultLayer; - public final Supplier<Random> randomSupplier = () -> { - final Random result = random; + public final Supplier<AbstractRandom> randomSupplier = () -> { + final AbstractRandom result = random; long seed = this.seed; if (seed == -1L) { diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ItemRenderContext.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ItemRenderContext.java index c1fb12f9a..dbbbf9e82 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ItemRenderContext.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ItemRenderContext.java @@ -17,7 +17,6 @@ package net.fabricmc.fabric.impl.client.indigo.renderer.render; import java.util.List; -import java.util.Random; import java.util.function.Consumer; import java.util.function.Supplier; @@ -34,10 +33,11 @@ import net.minecraft.client.render.model.BakedQuad; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.render.model.json.ModelTransformation.Mode; import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.math.Vec3f; import net.minecraft.item.ItemStack; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Matrix4f; +import net.minecraft.util.math.Vec3f; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.material.BlendMode; import net.fabricmc.fabric.api.renderer.v1.mesh.Mesh; @@ -68,7 +68,7 @@ public class ItemRenderContext extends AbstractRenderContext implements RenderCo } private final ItemColors colorMap; - private final Random random = new Random(); + private final AbstractRandom random = AbstractRandom.method_43047(); private final Consumer<BakedModel> fallbackConsumer; private final Vec3f normalVec = new Vec3f(); @@ -84,8 +84,8 @@ public class ItemRenderContext extends AbstractRenderContext implements RenderCo private ItemStack itemStack; private VanillaQuadHandler vanillaHandler; - private final Supplier<Random> randomSupplier = () -> { - final Random result = random; + private final Supplier<AbstractRandom> randomSupplier = () -> { + final AbstractRandom result = random; result.setSeed(ITEM_RANDOM_SEED); return random; }; diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainFallbackConsumer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainFallbackConsumer.java index 8c39fed0f..8b010fb60 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainFallbackConsumer.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainFallbackConsumer.java @@ -17,7 +17,6 @@ package net.fabricmc.fabric.impl.client.indigo.renderer.render; import java.util.List; -import java.util.Random; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; @@ -28,6 +27,7 @@ import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.render.model.BakedQuad; import net.minecraft.util.math.Direction; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter; import net.fabricmc.fabric.api.renderer.v1.model.ModelHelper; @@ -82,7 +82,7 @@ public abstract class TerrainFallbackConsumer extends AbstractQuadRenderer imple @Override public void accept(BakedModel model) { - final Supplier<Random> random = blockInfo.randomSupplier; + final Supplier<AbstractRandom> random = blockInfo.randomSupplier; final Value defaultMaterial = blockInfo.defaultAo && model.useAmbientOcclusion() ? MATERIAL_SHADED : MATERIAL_FLAT; final BlockState blockState = blockInfo.blockState; diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinBlockModelRenderer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinBlockModelRenderer.java index 9b0891c5a..0db4d80a7 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinBlockModelRenderer.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinBlockModelRenderer.java @@ -17,7 +17,6 @@ package net.fabricmc.fabric.mixin.client.indigo.renderer; import java.util.BitSet; -import java.util.Random; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -34,6 +33,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockRenderView; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel; import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessBlockModelRenderer; @@ -47,8 +47,8 @@ public abstract class MixinBlockModelRenderer implements AccessBlockModelRendere private final ThreadLocal<BlockRenderContext> CONTEXTS = ThreadLocal.withInitial(BlockRenderContext::new); - @Inject(at = @At("HEAD"), method = "render(Lnet/minecraft/world/BlockRenderView;Lnet/minecraft/client/render/model/BakedModel;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;ZLjava/util/Random;JI)Z", cancellable = true) - private void hookRender(BlockRenderView blockView, BakedModel model, BlockState state, BlockPos pos, MatrixStack matrix, VertexConsumer buffer, boolean checkSides, Random rand, long seed, int overlay, CallbackInfoReturnable<Boolean> ci) { + @Inject(at = @At("HEAD"), method = "render(Lnet/minecraft/world/BlockRenderView;Lnet/minecraft/client/render/model/BakedModel;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;ZLnet/minecraft/world/gen/random/AbstractRandom;JI)Z", cancellable = true) + private void hookRender(BlockRenderView blockView, BakedModel model, BlockState state, BlockPos pos, MatrixStack matrix, VertexConsumer buffer, boolean checkSides, AbstractRandom rand, long seed, int overlay, CallbackInfoReturnable<Boolean> ci) { if (!((FabricBakedModel) model).isVanillaAdapter()) { BlockRenderContext context = CONTEXTS.get(); // Note that we do not support face-culling here (so checkSides is ignored) diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRebuildTask.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRebuildTask.java index d0554b337..28b65e033 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRebuildTask.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRebuildTask.java @@ -16,7 +16,6 @@ package net.fabricmc.fabric.mixin.client.indigo.renderer; -import java.util.Random; import java.util.Set; import org.spongepowered.asm.mixin.Mixin; @@ -41,6 +40,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; import net.minecraft.world.BlockRenderView; +import net.minecraft.world.gen.random.AbstractRandom; import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel; import net.fabricmc.fabric.impl.client.indigo.Indigo; @@ -85,21 +85,21 @@ public class MixinChunkRebuildTask { * This is the hook that actually implements the rendering API for terrain rendering. * * <p>It's unusual to have a @Redirect in a Fabric library, but in this case - * it is our explicit intention that {@link BlockRenderManager#tesselateBlock(BlockState, BlockPos, BlockRenderView, BufferBuilder, Random)} + * it is our explicit intention that {@link BlockRenderManager#tesselateBlock(BlockState, BlockPos, BlockRenderView, BufferBuilder, AbstractRandom)} * does not execute for models that will be rendered by our renderer. * * <p>Any mod that wants to redirect this specific call is likely also a renderer, in which case this * renderer should not be present, or the mod should probably instead be relying on the renderer API * which was specifically created to provide for enhanced terrain rendering. * - * <p>Note also that {@link BlockRenderManager#tesselateBlock(BlockState, BlockPos, BlockRenderView, BufferBuilder, Random)} + * <p>Note also that {@link BlockRenderManager#tesselateBlock(BlockState, BlockPos, BlockRenderView, BufferBuilder, AbstractRandom)} * IS called if the block render type is something other than {@link BlockRenderType#MODEL}. * Normally this does nothing but will allow mods to create rendering hooks that are * driven off of render type. (Not recommended or encouraged, but also not prevented.) */ @Redirect(method = "Lnet/minecraft/client/render/chunk/ChunkBuilder$BuiltChunk$RebuildTask;render(FFFLnet/minecraft/client/render/chunk/ChunkBuilder$ChunkData;Lnet/minecraft/client/render/chunk/BlockBufferBuilderStorage;)Ljava/util/Set;", require = 1, at = @At(value = "INVOKE", - target = "Lnet/minecraft/client/render/block/BlockRenderManager;renderBlock(Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/world/BlockRenderView;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;ZLjava/util/Random;)Z")) - private boolean hookChunkBuildTesselate(BlockRenderManager renderManager, BlockState blockState, BlockPos blockPos, BlockRenderView blockView, MatrixStack matrix, VertexConsumer bufferBuilder, boolean checkSides, Random random) { + target = "Lnet/minecraft/client/render/block/BlockRenderManager;renderBlock(Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/world/BlockRenderView;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;ZLnet/minecraft/world/gen/random/AbstractRandom;)Z")) + private boolean hookChunkBuildTesselate(BlockRenderManager renderManager, BlockState blockState, BlockPos blockPos, BlockRenderView blockView, MatrixStack matrix, VertexConsumer bufferBuilder, boolean checkSides, AbstractRandom random) { if (blockState.getRenderType() == BlockRenderType.MODEL) { final BakedModel model = renderManager.getModel(blockState); diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/NamespaceResourceManagerAccessor.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/NamespaceResourceManagerAccessor.java index 3b47d2b4a..6d28c33a9 100644 --- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/NamespaceResourceManagerAccessor.java +++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/NamespaceResourceManagerAccessor.java @@ -16,15 +16,11 @@ package net.fabricmc.fabric.mixin.resource.loader; -import java.io.IOException; -import java.io.InputStream; - import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; import net.minecraft.resource.NamespaceResourceManager; -import net.minecraft.resource.ResourcePack; import net.minecraft.resource.ResourceType; import net.minecraft.util.Identifier; @@ -33,9 +29,6 @@ public interface NamespaceResourceManagerAccessor { @Accessor("type") ResourceType getType(); - @Invoker("open") - InputStream fabric$accessor_open(Identifier id, ResourcePack pack) throws IOException; - @Invoker("getMetadataPath") static Identifier fabric$accessor_getMetadataPath(Identifier id) { throw new UnsupportedOperationException("Invoker injection failed."); diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/NamespaceResourceManagerMixin.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/NamespaceResourceManagerMixin.java index 57fc0f1c4..f74c62ee8 100644 --- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/NamespaceResourceManagerMixin.java +++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/mixin/resource/loader/NamespaceResourceManagerMixin.java @@ -26,8 +26,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import net.minecraft.resource.NamespaceResourceManager; +import net.minecraft.resource.Resource; import net.minecraft.resource.ResourcePack; -import net.minecraft.resource.ResourceRef; import net.minecraft.resource.ResourceType; import net.minecraft.util.Identifier; @@ -43,7 +43,7 @@ public class NamespaceResourceManagerMixin { @Inject(method = "getAllResources", at = @At(value = "INVOKE", target = "Lnet/minecraft/resource/NamespaceResourceManager;getMetadataPath(Lnet/minecraft/util/Identifier;)Lnet/minecraft/util/Identifier;"), locals = LocalCapture.CAPTURE_FAILHARD) - private void onGetAllResources(Identifier id, CallbackInfoReturnable<List<ResourceRef>> cir, List<NamespaceResourceManager.Entry> resources) { + private void onGetAllResources(Identifier id, CallbackInfoReturnable<List<Resource>> cir, List<NamespaceResourceManager.Entry> resources) { this.fabric$getAllResources$resources.set(resources); } diff --git a/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/SoundButton.java b/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/SoundButton.java index 13e83d610..f6cfcc68e 100644 --- a/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/SoundButton.java +++ b/fabric-screen-api-v1/src/testmod/java/net/fabricmc/fabric/test/screen/SoundButton.java @@ -16,9 +16,6 @@ package net.fabricmc.fabric.test.screen; -import java.util.Random; - -import net.minecraft.util.registry.RegistryEntry; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.gui.widget.PressableWidget; @@ -27,9 +24,11 @@ import net.minecraft.sound.SoundEvent; import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; import net.minecraft.util.registry.Registry; +import net.minecraft.util.registry.RegistryEntry; +import net.minecraft.world.gen.random.AbstractRandom; class SoundButton extends PressableWidget { - private static final Random RANDOM = new Random(); + private static final AbstractRandom RANDOM = AbstractRandom.method_43047(); SoundButton(int x, int y, int width, int height) { super(x, y, width, height, Text.of("Sound Button")); diff --git a/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/DropperBlockMixin.java b/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/DropperBlockMixin.java index 6a61dbad5..e04780c2d 100644 --- a/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/DropperBlockMixin.java +++ b/fabric-transfer-api-v1/src/main/java/net/fabricmc/fabric/mixin/transfer/DropperBlockMixin.java @@ -60,7 +60,7 @@ public class DropperBlockMixin { ci.cancel(); // We pick a non empty slot. It's not necessarily the same as the one vanilla picked, but that doesn't matter. - int slot = dispenser.chooseNonEmptySlot(); + int slot = dispenser.chooseNonEmptySlot(world.random); if (slot == -1) { TransferApiImpl.LOGGER.warn("Skipping dropper transfer because the empty slot is unexpectedly -1."); diff --git a/gradle.properties b/gradle.properties index 855fe902e..3ad78868d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ org.gradle.jvmargs=-Xmx2560M -version=0.49.5 -minecraft_version=22w13a -yarn_version=+build.1 +version=0.49.6 +minecraft_version=22w14a +yarn_version=+build.2 loader_version=0.13.3 prerelease=true @@ -15,39 +15,39 @@ fabric-blockrenderlayer-v1-version=1.1.12 fabric-command-api-v1-version=1.1.11 fabric-commands-v0-version=0.2.10 fabric-containers-v0-version=0.1.21 -fabric-content-registries-v0-version=3.0.6 +fabric-content-registries-v0-version=3.0.7 fabric-crash-report-info-v1-version=0.1.11 -fabric-data-generation-api-v1-version=2.0.9 +fabric-data-generation-api-v1-version=2.0.10 fabric-dimensions-v1-version=2.1.19 fabric-entity-events-v1-version=1.4.10 fabric-events-interaction-v0-version=0.4.21 -fabric-events-lifecycle-v0-version=0.2.13 +fabric-events-lifecycle-v0-version=0.2.14 fabric-game-rule-api-v1-version=1.0.13 -fabric-gametest-api-v1-version=1.0.19 -fabric-item-api-v1-version=1.3.3 -fabric-item-groups-v0-version=0.3.14 +fabric-gametest-api-v1-version=1.0.20 +fabric-item-api-v1-version=1.3.4 +fabric-item-groups-v0-version=0.3.15 fabric-key-binding-api-v1-version=1.0.12 fabric-keybindings-v0-version=0.2.10 fabric-lifecycle-events-v1-version=2.0.2 fabric-loot-tables-v1-version=1.0.11 -fabric-mining-level-api-v1-version=2.0.8 -fabric-models-v0-version=0.3.6 +fabric-mining-level-api-v1-version=2.0.9 +fabric-models-v0-version=0.3.7 fabric-networking-api-v1-version=1.0.21 fabric-networking-v0-version=0.3.8 -fabric-object-builder-api-v1-version=3.0.0 -fabric-particles-v1-version=0.2.12 +fabric-object-builder-api-v1-version=3.0.1 +fabric-particles-v1-version=1.0.0 fabric-registry-sync-v0-version=0.9.8 -fabric-renderer-api-v1-version=0.4.13 -fabric-renderer-indigo-version=0.4.17 +fabric-renderer-api-v1-version=1.0.0 +fabric-renderer-indigo-version=0.4.18 fabric-renderer-registries-v1-version=3.2.11 fabric-rendering-data-attachment-v1-version=0.3.7 fabric-rendering-fluids-v1-version=2.0.2 fabric-rendering-v0-version=1.1.13 fabric-rendering-v1-version=1.10.7 fabric-resource-conditions-api-v1-version=2.0.2 -fabric-resource-loader-v0-version=0.4.22 -fabric-screen-api-v1-version=1.0.14 +fabric-resource-loader-v0-version=0.4.23 +fabric-screen-api-v1-version=1.0.15 fabric-screen-handler-api-v1-version=1.1.14 fabric-textures-v0-version=1.0.12 -fabric-transfer-api-v1-version=1.5.15 +fabric-transfer-api-v1-version=1.5.16 fabric-transitive-access-wideners-v1-version=1.0.1