“Identifier(java.lang.String, java.lang.String)”在“net.minecraft.util.Identifier”中具有私有访问权限

问题描述 投票:0回答:1

我在注册纹理时遇到以下错误: 'Identifier(java.lang.String, java.lang.String)' 在 'net.minecraft.util.Identifier' 中具有私有访问权限

第18行发生错误

private static final Identifier GLOW_TEXTURE = new Identifier(Mod.MOD_ID,"textures/misc/item_overlay.png");

在注册“ItemRenderer”类的 mixin 中使用的纹理标识符时,代码无法编译。 (部分部分因个人原因会进行修改)

请注意,代码必须在本文发布的最新版本 1.21.4 上运行

package com.example.mod.mixin;

import com.example.mod.Mod;
import com.example.mod.item.ModItems;
import com.mojang.blaze3d.systems.RenderSystem;
import net.minecraft.client.render.*;
import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;

@Mixin(ItemRenderer.class)
public abstract class ItemRendererMixin {

    private static final Identifier GLOW_TEXTURE = new Identifier(Mod.MOD_ID,"textures/misc/item_overlay.png");

    @Inject(method = "renderItem", at = @At("TAIL"))
    public void renderGlowingOutline(ItemStack stack, MatrixStack matrices, VertexConsumerProvider vertexConsumers) {
        if (stack.getItem() == ModItems.Item_Example) {
            RenderSystem.disableDepthTest();
            RenderSystem.enableBlend();
            RenderSystem.defaultBlendFunc();

            VertexConsumer vertexConsumer = vertexConsumers.getBuffer(RenderLayer.getEntityTranslucent(GLOW_TEXTURE));
            matrices.push();
            matrices.pop();
            RenderSystem.disableBlend();
            RenderSystem.enableDepthTest();
        }
    }
}
intellij-idea minecraft minecraft-fabric
1个回答
0
投票

Minecraft 处理标识符的方式发生了新的变化,您现在需要将

new Identifier(...)
替换为
Identifier.of(...)

© www.soinside.com 2019 - 2024. All rights reserved.