package com.thebrokenrail.twine.client; import com.thebrokenrail.twine.Twine; import com.thebrokenrail.twine.item.BackpackItem; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; import net.fabricmc.fabric.api.client.screen.ScreenProviderRegistry; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ingame.GenericContainerScreen; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.DyeableItem; import net.minecraft.screen.GenericContainerScreenHandler; @Environment(EnvType.CLIENT) public class TwineClient implements ClientModInitializer { @Override public void onInitializeClient() { ScreenProviderRegistry.INSTANCE.registerFactory(Twine.BACKPACK_SCREEN, screenHandler -> { PlayerEntity player = MinecraftClient.getInstance().player; assert player != null; return new GenericContainerScreen((GenericContainerScreenHandler) screenHandler, player.inventory, ((BackpackItem.ItemInventory) ((GenericContainerScreenHandler) screenHandler).getInventory()).getHolder().getName()); }); ColorProviderRegistry.ITEM.register((stack, tintIndex) -> tintIndex > 0 ? -1 : ((DyeableItem) stack.getItem()).getColor(stack), Twine.SMALL_BACKPACK, Twine.LARGE_BACKPACK); } }