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);
 				}
 			}
 		}