From 12515ed9ee4a46f74bf3b5711e9bd92c9992ed73 Mon Sep 17 00:00:00 2001 From: modmuss50 <modmuss50@gmail.com> Date: Thu, 7 Nov 2019 20:35:26 +0000 Subject: [PATCH] 19w45a --- build.gradle | 6 +-- fabric-blockrenderlayer-v1/build.gradle | 2 +- .../BlockRenderLayerMapImpl.java | 5 +- .../MixinBlockRenderLayer.java | 3 +- fabric-events-interaction-v0/build.gradle | 2 +- .../interaction/MixinMinecraftClient.java | 12 ++--- fabric-networking-v0/build.gradle | 2 +- .../fabric/api/network/PacketContext.java | 2 +- .../MixinClientPlayNetworkHandler.java | 2 +- .../MixinServerPlayNetworkHandler.java | 2 +- fabric-registry-sync-v0/build.gradle | 2 +- .../registry/sync/RegistrySyncManager.java | 2 +- fabric-renderer-api-v1/build.gradle | 2 +- .../fabric/api/renderer/v1/mesh/QuadView.java | 2 +- fabric-renderer-indigo/build.gradle | 2 +- .../client/indigo/renderer/aocalc/AoFace.java | 4 +- .../indigo/renderer/mesh/EncodingFormat.java | 2 +- .../renderer/render/AbstractQuadRenderer.java | 5 +- .../renderer/render/BlockRenderContext.java | 9 ++-- .../renderer/render/BlockRenderInfo.java | 2 +- .../renderer/render/ChunkRenderInfo.java | 15 +++--- .../renderer/render/ItemRenderContext.java | 4 +- .../renderer/render/TerrainRenderContext.java | 12 ++--- .../MixinAmbientOcclusionCalculator.java | 8 ++-- .../renderer/MixinBlockModelRenderer.java | 6 +-- .../renderer/MixinChunkRebuildTask.java | 12 ++--- .../indigo/renderer/MixinChunkRenderData.java | 4 +- .../indigo/renderer/MixinChunkRenderer.java | 4 +- fabric-rendering-fluids-v1/build.gradle | 2 +- .../rendering/fluid/MixinFluidRenderer.java | 10 ++-- fabric-resource-loader-v0/build.gradle | 2 +- .../resource/loader/ModNioResourcePack.java | 48 +++++++++---------- 32 files changed, 100 insertions(+), 97 deletions(-) diff --git a/build.gradle b/build.gradle index 932eba9df..ff60ba655 100644 --- a/build.gradle +++ b/build.gradle @@ -12,9 +12,9 @@ plugins { def ENV = System.getenv() class Globals { - static def baseVersion = "0.4.9" - static def mcVersion = "19w44a" - static def yarnVersion = "+build.2" + static def baseVersion = "0.4.10" + static def mcVersion = "19w45a" + static def yarnVersion = "+build.1" } import org.apache.commons.codec.digest.DigestUtils diff --git a/fabric-blockrenderlayer-v1/build.gradle b/fabric-blockrenderlayer-v1/build.gradle index bfcafca0f..65d43cd13 100644 --- a/fabric-blockrenderlayer-v1/build.gradle +++ b/fabric-blockrenderlayer-v1/build.gradle @@ -1,5 +1,5 @@ archivesBaseName = "fabric-blockrenderlayer-v1" -version = getSubprojectVersion(project, "1.1.2") +version = getSubprojectVersion(project, "1.1.3") dependencies { compile project(path: ':fabric-api-base', configuration: 'dev') diff --git a/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/impl/blockrenderlayer/BlockRenderLayerMapImpl.java b/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/impl/blockrenderlayer/BlockRenderLayerMapImpl.java index 65da1d043..c5868d0a1 100644 --- a/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/impl/blockrenderlayer/BlockRenderLayerMapImpl.java +++ b/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/impl/blockrenderlayer/BlockRenderLayerMapImpl.java @@ -65,7 +65,10 @@ public class BlockRenderLayerMapImpl implements BlockRenderLayerMap { private static BiConsumer<Item, RenderLayer> itemHandler = (i, l) -> itemRenderLayerMap.put(i, l); private static BiConsumer<Fluid, RenderLayer> fluidHandler = (f, b) -> fluidRenderLayerMap.put(f, b); - public static void initialize(BiConsumer<Block, RenderLayer> blockHandlerIn, BiConsumer<Item, RenderLayer> itemHandlerIn, BiConsumer<Fluid, RenderLayer> fluidHandlerIn) { + public static void initialize(BiConsumer<Block, RenderLayer> blockHandlerIn, BiConsumer<Fluid, RenderLayer> fluidHandlerIn) { + //Done to handle backwards compat, in previous snapshots Items had their own map for render layers, now the BlockItem is used. + BiConsumer<Item, RenderLayer> itemHandlerIn = (item, renderLayer) -> blockHandlerIn.accept(Block.getBlockFromItem(item), renderLayer); + //Add all the pre existing render layers blockRenderLayerMap.forEach(blockHandlerIn); itemRenderLayerMap.forEach(itemHandlerIn); diff --git a/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/mixin/blockrenderlayer/MixinBlockRenderLayer.java b/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/mixin/blockrenderlayer/MixinBlockRenderLayer.java index d84a669ae..69da68708 100644 --- a/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/mixin/blockrenderlayer/MixinBlockRenderLayer.java +++ b/fabric-blockrenderlayer-v1/src/main/java/net/fabricmc/fabric/mixin/blockrenderlayer/MixinBlockRenderLayer.java @@ -35,11 +35,10 @@ import net.fabricmc.fabric.impl.blockrenderlayer.BlockRenderLayerMapImpl; @Mixin(RenderLayers.class) public class MixinBlockRenderLayer { @Shadow private static Map<Block, RenderLayer> BLOCKS; - @Shadow private static Map<Item, RenderLayer> ITEMS; @Shadow private static Map<Fluid, RenderLayer> FLUIDS; @Inject(method = "<clinit>*", at = @At("RETURN")) private static void onInitialize(CallbackInfo info) { - BlockRenderLayerMapImpl.initialize(BLOCKS::put, ITEMS::put, FLUIDS::put); + BlockRenderLayerMapImpl.initialize(BLOCKS::put, FLUIDS::put); } } diff --git a/fabric-events-interaction-v0/build.gradle b/fabric-events-interaction-v0/build.gradle index eb45e033d..df9d6c28c 100644 --- a/fabric-events-interaction-v0/build.gradle +++ b/fabric-events-interaction-v0/build.gradle @@ -1,5 +1,5 @@ archivesBaseName = "fabric-events-interaction-v0" -version = getSubprojectVersion(project, "0.2.5") +version = getSubprojectVersion(project, "0.2.6") dependencies { compile project(path: ':fabric-api-base', configuration: 'dev') diff --git a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinMinecraftClient.java b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinMinecraftClient.java index f5d8cce9b..b12129b01 100644 --- a/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinMinecraftClient.java +++ b/fabric-events-interaction-v0/src/main/java/net/fabricmc/fabric/mixin/event/interaction/MixinMinecraftClient.java @@ -44,7 +44,7 @@ public abstract class MixinMinecraftClient { private ItemStack fabric_emulateOldPick() { MinecraftClient client = (MinecraftClient) (Object) this; ClientPickBlockCallback.Container ctr = new ClientPickBlockCallback.Container(ItemStack.EMPTY); - ClientPickBlockCallback.EVENT.invoker().pick(client.player, client.hitResult, ctr); + ClientPickBlockCallback.EVENT.invoker().pick(client.player, client.crosshairTarget, ctr); return ctr.getStack(); } @@ -53,7 +53,7 @@ public abstract class MixinMinecraftClient { MinecraftClient client = (MinecraftClient) (Object) this; // Do a "best effort" emulation of the old events. - ItemStack stack = ClientPickBlockGatherCallback.EVENT.invoker().pick(client.player, client.hitResult); + ItemStack stack = ClientPickBlockGatherCallback.EVENT.invoker().pick(client.player, client.crosshairTarget); // TODO: Remove in 0.3.0 if (stack.isEmpty()) { @@ -68,15 +68,15 @@ public abstract class MixinMinecraftClient { // I don't like that we clone vanilla logic here, but it's our best bet for now. PlayerInventory playerInventory = client.player.inventory; - if (client.player.abilities.creativeMode && Screen.hasControlDown() && client.hitResult.getType() == HitResult.Type.BLOCK) { - BlockEntity be = client.world.getBlockEntity(((BlockHitResult) client.hitResult).getBlockPos()); + if (client.player.abilities.creativeMode && Screen.hasControlDown() && client.crosshairTarget.getType() == HitResult.Type.BLOCK) { + BlockEntity be = client.world.getBlockEntity(((BlockHitResult) client.crosshairTarget).getBlockPos()); if (be != null) { stack = addBlockEntityNbt(stack, be); } } - stack = ClientPickBlockApplyCallback.EVENT.invoker().pick(client.player, client.hitResult, stack); + stack = ClientPickBlockApplyCallback.EVENT.invoker().pick(client.player, client.crosshairTarget, stack); if (stack.isEmpty()) { return; @@ -108,7 +108,7 @@ public abstract class MixinMinecraftClient { @ModifyVariable(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerInventory;getSlotWithStack(Lnet/minecraft/item/ItemStack;)I"), method = "doItemPick", ordinal = 0) public ItemStack modifyItemPick(ItemStack stack) { MinecraftClient client = (MinecraftClient) (Object) this; - ItemStack result = ClientPickBlockApplyCallback.EVENT.invoker().pick(client.player, client.hitResult, stack); + ItemStack result = ClientPickBlockApplyCallback.EVENT.invoker().pick(client.player, client.crosshairTarget, stack); fabric_itemPickCancelled = result.isEmpty(); return result; } diff --git a/fabric-networking-v0/build.gradle b/fabric-networking-v0/build.gradle index e98fce69e..af3d31c63 100644 --- a/fabric-networking-v0/build.gradle +++ b/fabric-networking-v0/build.gradle @@ -1,5 +1,5 @@ archivesBaseName = "fabric-networking-v0" -version = getSubprojectVersion(project, "0.1.6") +version = getSubprojectVersion(project, "0.1.7") dependencies { compile project(path: ':fabric-api-base', configuration: 'dev') diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/PacketContext.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/PacketContext.java index 782045a42..0c75fab37 100644 --- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/PacketContext.java +++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/api/network/PacketContext.java @@ -17,7 +17,7 @@ package net.fabricmc.fabric.api.network; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.ThreadExecutor; +import net.minecraft.util.thread.ThreadExecutor; import net.fabricmc.api.EnvType; diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinClientPlayNetworkHandler.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinClientPlayNetworkHandler.java index e0d193ea2..42a702184 100644 --- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinClientPlayNetworkHandler.java +++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinClientPlayNetworkHandler.java @@ -33,7 +33,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.network.Packet; import net.minecraft.util.Identifier; import net.minecraft.util.PacketByteBuf; -import net.minecraft.util.ThreadExecutor; +import net.minecraft.util.thread.ThreadExecutor; import net.fabricmc.api.EnvType; import net.fabricmc.fabric.api.network.ClientSidePacketRegistry; diff --git a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinServerPlayNetworkHandler.java b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinServerPlayNetworkHandler.java index 04f57411b..1f7e52c13 100644 --- a/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinServerPlayNetworkHandler.java +++ b/fabric-networking-v0/src/main/java/net/fabricmc/fabric/mixin/networking/MixinServerPlayNetworkHandler.java @@ -28,7 +28,7 @@ import net.minecraft.server.network.ServerPlayNetworkHandler; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.network.packet.CustomPayloadC2SPacket; import net.minecraft.util.Identifier; -import net.minecraft.util.ThreadExecutor; +import net.minecraft.util.thread.ThreadExecutor; import net.fabricmc.api.EnvType; import net.fabricmc.fabric.api.network.PacketContext; diff --git a/fabric-registry-sync-v0/build.gradle b/fabric-registry-sync-v0/build.gradle index db37b9837..030696cea 100644 --- a/fabric-registry-sync-v0/build.gradle +++ b/fabric-registry-sync-v0/build.gradle @@ -1,5 +1,5 @@ archivesBaseName = "fabric-registry-sync-v0" -version = getSubprojectVersion(project, "0.2.4") +version = getSubprojectVersion(project, "0.2.5") dependencies { compile project(path: ':fabric-api-base', configuration: 'dev') diff --git a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RegistrySyncManager.java b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RegistrySyncManager.java index b2302eb9a..51118eef8 100644 --- a/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RegistrySyncManager.java +++ b/fabric-registry-sync-v0/src/main/java/net/fabricmc/fabric/impl/registry/sync/RegistrySyncManager.java @@ -69,7 +69,7 @@ public final class RegistrySyncManager { if (accept) { try { - context.getTaskQueue().supply(() -> { + context.getTaskQueue().submit(() -> { if (compound == null) { errorHandler.accept(new RemapException("Received null compound tag in sync packet!")); return null; diff --git a/fabric-renderer-api-v1/build.gradle b/fabric-renderer-api-v1/build.gradle index 27a31d12f..75fcb5171 100644 --- a/fabric-renderer-api-v1/build.gradle +++ b/fabric-renderer-api-v1/build.gradle @@ -1,5 +1,5 @@ archivesBaseName = "fabric-renderer-api-v1" -version = getSubprojectVersion(project, "0.2.5") +version = getSubprojectVersion(project, "0.2.6") dependencies { compile project(path: ':fabric-api-base', configuration: 'dev') diff --git a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/mesh/QuadView.java b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/mesh/QuadView.java index 3ec71df8a..f55c95056 100644 --- a/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/mesh/QuadView.java +++ b/fabric-renderer-api-v1/src/main/java/net/fabricmc/fabric/api/renderer/v1/mesh/QuadView.java @@ -33,7 +33,7 @@ import net.fabricmc.fabric.api.renderer.v1.material.RenderMaterial; */ public interface QuadView { /** Count of integers in a conventional (un-modded) block or item vertex. */ - int VANILLA_VERTEX_STRIDE = VertexFormats.POSITION_COLOR_UV_NORMAL.getVertexSizeInteger(); + int VANILLA_VERTEX_STRIDE = VertexFormats.POSITION_COLOR_TEXTURE_LIGHT_NORMAL.getVertexSizeInteger(); /** Count of integers in a conventional (un-modded) block or item quad. */ int VANILLA_QUAD_STRIDE = VANILLA_VERTEX_STRIDE * 4; diff --git a/fabric-renderer-indigo/build.gradle b/fabric-renderer-indigo/build.gradle index 7807013dd..b22e18769 100644 --- a/fabric-renderer-indigo/build.gradle +++ b/fabric-renderer-indigo/build.gradle @@ -1,5 +1,5 @@ archivesBaseName = "fabric-renderer-indigo" -version = getSubprojectVersion(project, "0.2.10") +version = getSubprojectVersion(project, "0.2.11") dependencies { compile project(path: ':fabric-api-base', configuration: 'dev') diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoFace.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoFace.java index b99f63c99..a7a3ede2a 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoFace.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/aocalc/AoFace.java @@ -24,7 +24,7 @@ import static net.minecraft.util.math.Direction.SOUTH; import static net.minecraft.util.math.Direction.UP; import static net.minecraft.util.math.Direction.WEST; -import net.minecraft.util.SystemUtil; +import net.minecraft.util.Util; import net.minecraft.util.math.Direction; import net.fabricmc.api.EnvType; @@ -95,7 +95,7 @@ enum AoFace { this.weightFunc = weightFunc; } - private static final AoFace[] values = SystemUtil.consume(new AoFace[6], (neighborData) -> { + private static final AoFace[] values = Util.create(new AoFace[6], (neighborData) -> { neighborData[DOWN.getId()] = AOF_DOWN; neighborData[UP.getId()] = AOF_UP; neighborData[NORTH.getId()] = AOF_NORTH; diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/EncodingFormat.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/EncodingFormat.java index a29245ded..fd2f71ed4 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/EncodingFormat.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/mesh/EncodingFormat.java @@ -56,7 +56,7 @@ public abstract class EncodingFormat { public static final int TOTAL_STRIDE; static { - final VertexFormat format = VertexFormats.POSITION_COLOR_UV_NORMAL; + final VertexFormat format = VertexFormats.POSITION_COLOR_TEXTURE_LIGHT_NORMAL; VERTEX_X = HEADER_STRIDE + 0; VERTEX_Y = HEADER_STRIDE + 1; VERTEX_Z = HEADER_STRIDE + 2; diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractQuadRenderer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractQuadRenderer.java index 34a30396a..34793d2d5 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractQuadRenderer.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractQuadRenderer.java @@ -24,6 +24,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.WorldRenderer; import net.minecraft.client.util.math.Matrix4f; import net.minecraft.client.util.math.Vector3f; import net.minecraft.util.math.BlockPos; @@ -96,7 +97,7 @@ public abstract class AbstractQuadRenderer { final int color = quad.spriteColor(i, 0); buff.color(color & 0xFF, (color >> 8) & 0xFF, (color >> 16) & 0xFF, (color >> 24) & 0xFF); buff.texture(quad.spriteU(i, 0), quad.spriteV(i, 0)); - buff.defaultOverlay(overlay); + buff.overlay(overlay); buff.light(quad.lightmap(i)); if (useNormals) { @@ -172,6 +173,6 @@ public abstract class AbstractQuadRenderer { } // Unfortunately cannot use brightness cache here unless we implement one specifically for flat lighting. See #329 - return blockInfo.blockView.getLightmapCoordinates(blockState, mpos); + return WorldRenderer.method_23793(blockInfo.blockView, blockState, mpos); } } 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 7ff7dfce4..77b4509a8 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 @@ -23,6 +23,7 @@ import java.util.function.Function; import net.minecraft.block.BlockState; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.WorldRenderer; import net.minecraft.client.render.block.BlockModelRenderer; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.util.math.Matrix4f; @@ -62,7 +63,7 @@ public class BlockRenderContext extends AbstractRenderContext implements RenderC return 15 << 20 | 15 << 4; } - return blockInfo.blockView.getLightmapCoordinates(blockInfo.blockView.getBlockState(pos), pos); + return WorldRenderer.method_23793(blockInfo.blockView, blockInfo.blockView.getBlockState(pos), pos); } private float aoLevel(BlockPos pos) { @@ -79,8 +80,8 @@ public class BlockRenderContext extends AbstractRenderContext implements RenderC this.vanillaRenderer = vanillaRenderer; this.bufferBuilder = buffer; this.matrixStack = matrixStack; - this.matrix = matrixStack.peek(); - this.normalMatrix = matrixStack.peekNormal(); + this.matrix = matrixStack.method_23760().method_23761(); + this.normalMatrix = matrixStack.method_23760().method_23762(); this.seed = seed; this.overlay = overlay; @@ -100,7 +101,7 @@ public class BlockRenderContext extends AbstractRenderContext implements RenderC protected void acceptVanillaModel(BakedModel model) { isCallingVanilla = true; - didOutput = didOutput && vanillaRenderer.tesselate(blockInfo.blockView, model, blockInfo.blockState, blockInfo.blockPos, matrixStack, bufferBuilder, false, random, seed, overlay); + didOutput = didOutput && vanillaRenderer.render(blockInfo.blockView, model, blockInfo.blockState, blockInfo.blockPos, matrixStack, bufferBuilder, false, random, seed, overlay); isCallingVanilla = false; } 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 090a74ff2..864c0c1a6 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 @@ -80,7 +80,7 @@ public class BlockRenderInfo { } int blockColor(int colorIndex) { - return 0xFF000000 | blockColorMap.getColorMultiplier(blockState, blockView, blockPos, colorIndex); + return 0xFF000000 | blockColorMap.getColor(blockState, blockView, blockPos, colorIndex); } boolean shouldDrawFace(Direction face) { diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ChunkRenderInfo.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ChunkRenderInfo.java index 1a5d0abbd..4f8be212d 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ChunkRenderInfo.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ChunkRenderInfo.java @@ -23,9 +23,10 @@ import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.minecraft.block.BlockState; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.chunk.BlockLayeredBufferBuilderStorage; -import net.minecraft.client.render.chunk.ChunkBatcher.ChunkRenderData; -import net.minecraft.client.render.chunk.ChunkBatcher.ChunkRenderer; +import net.minecraft.client.render.WorldRenderer; +import net.minecraft.client.render.chunk.BlockBufferBuilderStorage; +import net.minecraft.client.render.chunk.ChunkBuilder.ChunkData; +import net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk; import net.minecraft.client.render.chunk.ChunkRendererRegion; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockRenderView; @@ -69,8 +70,8 @@ public class ChunkRenderInfo { private final BlockPos.Mutable chunkOrigin = new BlockPos.Mutable(); AccessChunkRendererData chunkData; - ChunkRenderer chunkRenderer; - BlockLayeredBufferBuilderStorage builders; + BuiltChunk chunkRenderer; + BlockBufferBuilderStorage builders; BlockRenderView blockView; private final Object2ObjectOpenHashMap<RenderLayer, BufferBuilder> buffers = new Object2ObjectOpenHashMap<>(); @@ -82,7 +83,7 @@ public class ChunkRenderInfo { aoLevelCache.defaultReturnValue(Float.MAX_VALUE); } - void prepare(ChunkRendererRegion blockView, ChunkRenderer chunkRenderer, ChunkRenderData chunkData, BlockLayeredBufferBuilderStorage builders) { + void prepare(ChunkRendererRegion blockView, BuiltChunk chunkRenderer, ChunkData chunkData, BlockBufferBuilderStorage builders) { this.blockView = blockView; this.chunkOrigin.set(chunkRenderer.getOrigin()); this.chunkData = (AccessChunkRendererData) chunkData; @@ -126,7 +127,7 @@ public class ChunkRenderInfo { int result = brightnessCache.get(key); if (result == Integer.MAX_VALUE) { - result = blockView.getLightmapCoordinates(blockView.getBlockState(pos), pos); + result = WorldRenderer.method_23793(blockView, blockView.getBlockState(pos), pos); brightnessCache.put(key, result); } 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 55b15c3be..f63477e91 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 @@ -90,8 +90,8 @@ public class ItemRenderContext extends AbstractRenderContext implements RenderCo this.itemStack = stack; this.bufferBuilder = buffer; this.matrixStack = matrixStack; - this.matrix = matrixStack.peek(); - this.normalMatrix = matrixStack.peekNormal(); + this.matrix = matrixStack.method_23760().method_23761(); + this.normalMatrix = matrixStack.method_23760().method_23762(); this.overlay = overlay; this.vanillaHandler = vanillaHandler; diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainRenderContext.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainRenderContext.java index 0fb561fc3..ae06c4e39 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainRenderContext.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/TerrainRenderContext.java @@ -19,9 +19,9 @@ package net.fabricmc.fabric.impl.client.indigo.renderer.render; import java.util.function.Consumer; import net.minecraft.block.BlockState; -import net.minecraft.client.render.chunk.BlockLayeredBufferBuilderStorage; -import net.minecraft.client.render.chunk.ChunkBatcher.ChunkRenderData; -import net.minecraft.client.render.chunk.ChunkBatcher.ChunkRenderer; +import net.minecraft.client.render.chunk.BlockBufferBuilderStorage; +import net.minecraft.client.render.chunk.ChunkBuilder.ChunkData; +import net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk; import net.minecraft.client.render.chunk.ChunkRendererRegion; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.util.math.Matrix4f; @@ -83,7 +83,7 @@ public class TerrainRenderContext extends AbstractRenderContext implements Rende } }; - public TerrainRenderContext prepare(ChunkRendererRegion blockView, ChunkRenderer chunkRenderer, ChunkRenderData chunkData, BlockLayeredBufferBuilderStorage builders) { + public TerrainRenderContext prepare(ChunkRendererRegion blockView, BuiltChunk chunkRenderer, ChunkData chunkData, BlockBufferBuilderStorage builders) { blockInfo.setBlockView(blockView); chunkInfo.prepare(blockView, chunkRenderer, chunkData, builders); return this; @@ -96,8 +96,8 @@ public class TerrainRenderContext extends AbstractRenderContext implements Rende /** Called from chunk renderer hook. */ public boolean tesselateBlock(BlockState blockState, BlockPos blockPos, final BakedModel model, MatrixStack matrixStack) { - this.matrix = matrixStack.peek(); - this.normalMatrix = matrixStack.peekNormal(); + this.matrix = matrixStack.method_23760().method_23761(); + this.normalMatrix = matrixStack.method_23760().method_23762(); try { aoCalc.clear(); diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinAmbientOcclusionCalculator.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinAmbientOcclusionCalculator.java index 3a3ef9b67..24d28ed71 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinAmbientOcclusionCalculator.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinAmbientOcclusionCalculator.java @@ -30,20 +30,20 @@ import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessAmbientOcc @Mixin(targets = "net.minecraft.client.render.block.BlockModelRenderer$AmbientOcclusionCalculator") public abstract class MixinAmbientOcclusionCalculator implements AccessAmbientOcclusionCalculator { - @Shadow private float[] colorMultiplier; - @Shadow private int[] brightness; + @Shadow private float[] brightness; + @Shadow private int[] light; @Shadow public abstract void apply(BlockRenderView blockRenderView, BlockState blockState, BlockPos pos, Direction face, float[] aoData, BitSet controlBits); @Override public float[] fabric_colorMultiplier() { - return colorMultiplier; + return brightness; } @Override public int[] fabric_brightness() { - return brightness; + return light; } @Override 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 8ff986b12..a44ac5881 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 @@ -47,11 +47,11 @@ public abstract class MixinBlockModelRenderer implements AccessBlockModelRendere protected BlockColors colorMap; @Shadow - protected abstract void updateShape(BlockRenderView blockView, BlockState blockState, BlockPos blockPos, int[] vertexData, Direction face, float[] aoData, BitSet controlBits); + protected abstract void getQuadDimensions(BlockRenderView blockView, BlockState blockState, BlockPos blockPos, int[] vertexData, Direction face, float[] aoData, BitSet controlBits); private final ThreadLocal<BlockRenderContext> CONTEXTS = ThreadLocal.withInitial(BlockRenderContext::new); - @Inject(at = @At("HEAD"), method = "tesselate", cancellable = true) + @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 hookTesselate(BlockRenderView blockView, BakedModel model, BlockState state, BlockPos pos, MatrixStack matrix, VertexConsumer buffer, boolean checkSides, Random rand, long seed, int overlay, CallbackInfoReturnable<Boolean> ci) { if (!((FabricBakedModel) model).isVanillaAdapter()) { BlockRenderContext context = CONTEXTS.get(); @@ -69,6 +69,6 @@ public abstract class MixinBlockModelRenderer implements AccessBlockModelRendere @Override public void fabric_updateShape(BlockRenderView blockView, BlockState blockState, BlockPos pos, int[] vertexData, Direction face, float[] aoData, BitSet controlBits) { - updateShape(blockView, blockState, pos, vertexData, face, aoData, controlBits); + getQuadDimensions(blockView, blockState, pos, vertexData, face, aoData, controlBits); } } 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 a5420a0cd..eb56df6c6 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 @@ -32,9 +32,9 @@ import net.minecraft.block.entity.BlockEntity; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.block.BlockRenderManager; -import net.minecraft.client.render.chunk.BlockLayeredBufferBuilderStorage; -import net.minecraft.client.render.chunk.ChunkBatcher; -import net.minecraft.client.render.chunk.ChunkBatcher.ChunkRenderer; +import net.minecraft.client.render.chunk.BlockBufferBuilderStorage; +import net.minecraft.client.render.chunk.ChunkBuilder; +import net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk; import net.minecraft.client.render.chunk.ChunkRendererRegion; import net.minecraft.client.render.model.BakedModel; import net.minecraft.client.util.math.MatrixStack; @@ -67,10 +67,10 @@ public class MixinChunkRebuildTask { @Shadow protected ChunkRendererRegion field_20838; @Shadow - protected ChunkRenderer field_20839; + protected BuiltChunk field_20839; @Inject(at = @At("HEAD"), method = "method_22785") - private void hookChunkBuild(float float_1, float float_2, float float_3, ChunkBatcher.ChunkRenderData renderData, BlockLayeredBufferBuilderStorage builder, CallbackInfoReturnable<Set<BlockEntity>> ci) { + private void hookChunkBuild(float float_1, float float_2, float float_3, ChunkBuilder.ChunkData renderData, BlockBufferBuilderStorage builder, CallbackInfoReturnable<Set<BlockEntity>> ci) { if (field_20838 != null) { TerrainRenderContext renderer = TerrainRenderContext.POOL.get(); renderer.prepare(field_20838, field_20839, renderData, builder); @@ -105,7 +105,7 @@ public class MixinChunkRebuildTask { } } - return renderManager.tesselateBlock(blockState, blockPos, blockView, matrix, bufferBuilder, checkSides, random); + return renderManager.renderBlock(blockState, blockPos, blockView, matrix, bufferBuilder, checkSides, random); } /** diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderData.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderData.java index b185f3e8d..164326391 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderData.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderData.java @@ -22,11 +22,11 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.chunk.ChunkBatcher.ChunkRenderData; +import net.minecraft.client.render.chunk.ChunkBuilder.ChunkData; import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessChunkRendererData; -@Mixin(ChunkRenderData.class) +@Mixin(ChunkData.class) public class MixinChunkRenderData implements AccessChunkRendererData { @Shadow private Set<RenderLayer> initialized; diff --git a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderer.java b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderer.java index 720e256af..c15b80268 100644 --- a/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderer.java +++ b/fabric-renderer-indigo/src/main/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinChunkRenderer.java @@ -20,11 +20,11 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import net.minecraft.client.render.BufferBuilder; -import net.minecraft.client.render.chunk.ChunkBatcher.ChunkRenderer; +import net.minecraft.client.render.chunk.ChunkBuilder.BuiltChunk; import net.fabricmc.fabric.impl.client.indigo.renderer.accessor.AccessChunkRenderer; -@Mixin(ChunkRenderer.class) +@Mixin(BuiltChunk.class) public abstract class MixinChunkRenderer implements AccessChunkRenderer { @Shadow abstract void beginBufferBuilding(BufferBuilder builder); diff --git a/fabric-rendering-fluids-v1/build.gradle b/fabric-rendering-fluids-v1/build.gradle index 7af5b0698..d50d1497c 100644 --- a/fabric-rendering-fluids-v1/build.gradle +++ b/fabric-rendering-fluids-v1/build.gradle @@ -1,5 +1,5 @@ archivesBaseName = "fabric-rendering-fluids-v1" -version = getSubprojectVersion(project, "0.1.5") +version = getSubprojectVersion(project, "0.1.6") dependencies { compile project(path: ':fabric-api-base', configuration: 'dev') diff --git a/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendering/fluid/MixinFluidRenderer.java b/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendering/fluid/MixinFluidRenderer.java index cb1167ac1..b3285efbc 100644 --- a/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendering/fluid/MixinFluidRenderer.java +++ b/fabric-rendering-fluids-v1/src/main/java/net/fabricmc/fabric/mixin/client/rendering/fluid/MixinFluidRenderer.java @@ -50,7 +50,7 @@ public class MixinFluidRenderer { FluidRenderHandlerRegistryImpl.INSTANCE.onFluidRendererReload(waterSprites, lavaSprites); } - @Inject(at = @At("HEAD"), method = "tesselate", cancellable = true) + @Inject(at = @At("HEAD"), method = "render", cancellable = true) public void tesselate(BlockRenderView view, BlockPos pos, VertexConsumer vertexConsumer, FluidState state, CallbackInfoReturnable<Boolean> info) { FluidRendererHookContainer ctr = fabric_renderHandler.get(); FluidRenderHandler handler = FluidRenderHandlerRegistryImpl.INSTANCE.getOverride(state.getFluid()); @@ -72,12 +72,12 @@ public class MixinFluidRenderer { } */ } - @Inject(at = @At("RETURN"), method = "tesselate") + @Inject(at = @At("RETURN"), method = "render") public void tesselateReturn(BlockRenderView view, BlockPos pos, VertexConsumer vertexConsumer, FluidState state, CallbackInfoReturnable<Boolean> info) { fabric_renderHandler.get().clear(); } - @ModifyVariable(at = @At(value = "INVOKE", target = "net/minecraft/client/render/block/FluidRenderer.isSameFluid(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;Lnet/minecraft/fluid/FluidState;)Z"), method = "tesselate", ordinal = 0) + @ModifyVariable(at = @At(value = "INVOKE", target = "net/minecraft/client/render/block/FluidRenderer.isSameFluid(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;Lnet/minecraft/fluid/FluidState;)Z"), method = "render", ordinal = 0) public boolean modLavaCheck(boolean chk) { // First boolean local is set by vanilla according to 'matches lava' // but uses the negation consistent with 'matches water' @@ -88,13 +88,13 @@ public class MixinFluidRenderer { return chk || !ctr.state.matches(FluidTags.WATER); } - @ModifyVariable(at = @At(value = "INVOKE", target = "net/minecraft/client/render/block/FluidRenderer.isSameFluid(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;Lnet/minecraft/fluid/FluidState;)Z"), method = "tesselate", ordinal = 0) + @ModifyVariable(at = @At(value = "INVOKE", target = "net/minecraft/client/render/block/FluidRenderer.isSameFluid(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/Direction;Lnet/minecraft/fluid/FluidState;)Z"), method = "render", ordinal = 0) public Sprite[] modSpriteArray(Sprite[] chk) { FluidRendererHookContainer ctr = fabric_renderHandler.get(); return ctr.handler != null ? ctr.handler.getFluidSprites(ctr.view, ctr.pos, ctr.state) : chk; } - @ModifyVariable(at = @At(value = "CONSTANT", args = "intValue=16", ordinal = 0, shift = At.Shift.BEFORE), method = "tesselate", ordinal = 0) + @ModifyVariable(at = @At(value = "CONSTANT", args = "intValue=16", ordinal = 0, shift = At.Shift.BEFORE), method = "render", ordinal = 0) public int modTintColor(int chk) { FluidRendererHookContainer ctr = fabric_renderHandler.get(); return ctr.handler != null ? ctr.handler.getFluidColor(ctr.view, ctr.pos, ctr.state) : chk; diff --git a/fabric-resource-loader-v0/build.gradle b/fabric-resource-loader-v0/build.gradle index d0eaaebfd..581d20cb5 100644 --- a/fabric-resource-loader-v0/build.gradle +++ b/fabric-resource-loader-v0/build.gradle @@ -1,2 +1,2 @@ archivesBaseName = "fabric-resource-loader-v0" -version = getSubprojectVersion(project, "0.1.7") +version = getSubprojectVersion(project, "0.1.8") diff --git a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModNioResourcePack.java b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModNioResourcePack.java index 5deb2a379..59ff54a86 100644 --- a/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModNioResourcePack.java +++ b/fabric-resource-loader-v0/src/main/java/net/fabricmc/fabric/impl/resource/loader/ModNioResourcePack.java @@ -128,36 +128,34 @@ public class ModNioResourcePack extends AbstractFileResourcePack implements ModR } @Override - public Collection<Identifier> findResources(ResourceType type, String path, int depth, Predicate<String> predicate) { + public Collection<Identifier> findResources(ResourceType type, String namespace, String path, int depth, Predicate<String> predicate) { List<Identifier> ids = new ArrayList<>(); String nioPath = path.replace("/", separator); - for (String namespace : getNamespaces(type)) { - Path namespacePath = getPath(type.getDirectory() + "/" + namespace); + Path namespacePath = getPath(type.getDirectory() + "/" + namespace); - if (namespacePath != null) { - Path searchPath = namespacePath.resolve(nioPath).toAbsolutePath().normalize(); + if (namespacePath != null) { + Path searchPath = namespacePath.resolve(nioPath).toAbsolutePath().normalize(); - if (Files.exists(searchPath)) { - try { - Files.walk(searchPath, depth) - .filter(Files::isRegularFile) - .filter((p) -> { - String filename = p.getFileName().toString(); - return !filename.endsWith(".mcmeta") && predicate.test(filename); - }) - .map(namespacePath::relativize) - .map((p) -> p.toString().replace(separator, "/")) - .forEach((s) -> { - try { - ids.add(new Identifier(namespace, s)); - } catch (InvalidIdentifierException e) { - LOGGER.error(e.getMessage()); - } - }); - } catch (IOException e) { - LOGGER.warn("findResources at " + path + " in namespace " + namespace + ", mod " + modInfo.getId() + " failed!", e); - } + if (Files.exists(searchPath)) { + try { + Files.walk(searchPath, depth) + .filter(Files::isRegularFile) + .filter((p) -> { + String filename = p.getFileName().toString(); + return !filename.endsWith(".mcmeta") && predicate.test(filename); + }) + .map(namespacePath::relativize) + .map((p) -> p.toString().replace(separator, "/")) + .forEach((s) -> { + try { + ids.add(new Identifier(namespace, s)); + } catch (InvalidIdentifierException e) { + LOGGER.error(e.getMessage()); + } + }); + } catch (IOException e) { + LOGGER.warn("findResources at " + path + " in namespace " + namespace + ", mod " + modInfo.getId() + " failed!", e); } } }