当前位置: 首页 > 知识库问答 >
问题:

minecraft纹理1 11项(或子项)渲染

昝存
2023-03-14

我对Minecraft 1 11中的纹理有问题,我创建了一个带有子项的Hammer类:

public Hammer(Hammers hammers){
    this(hammers.name, hammers.size, hammers.material);
}
public Hammer(String name, Size range, Item.ToolMaterial material){
    super(name, material);
    this._range = range;
    this.name = name;
    setUnlocalizedName(name);
    setRegistryName(name);
    setCreativeTab(BookCraft.toolTab);
    hasSubtypes = true;
    this.efficiencyOnProperMaterial /= MathHelper.sqrt(_range.width*_range.height);
}
@Override
public void getSubItems(Item itemIn, CreativeTabs tab, NonNullList<ItemStack> subItems) {
    for (Hammers h : Hammers.values()){
        subItems.add(new ItemStack(new Hammer(h)));
    }
}
public static enum Hammers{
    BUILDER_HAMMER("BuilderHammer", new Size(2,1), ToolMaterial.STONE),
    LIGHT_HAMMER("LightHammer", new Size(2,2), ToolMaterial.IRON),
    MJÖLLNIR("Mjöllnir", new Size(3,2), ToolMaterial.DIAMOND),
    WAR_HAMMER("WarHammer", new Size(2,1), ToolMaterial.DIAMOND),
    LEGENDARY_HAMMER("LegendaryHammer", new Size(5,3), ToolMaterial.DIAMOND);

    public final String name;
    public final Size size;
    public final ToolMaterial material;
    public final float damage;

    Hammers(String name, Size size, ToolMaterial material){
        this.name = name;
        this.size = size;
        this.material = material;
        this.damage = material.getDamageVsEntity();
    }
}

这是ItemInit类,我用纹理注册项目:

//region Fields
public static Hammer hammes;
//public static Boers boer;
//public static BkAxe axe;
//endregion

//
public static void init(){

    hammes = register(new Hammer(Hammer.Hammers.BUILDER_HAMMER));
    //boer = register(new Boers("boer", new Size(5,3), Item.ToolMaterial.DIAMOND));
    //axe = register(new BkAxe("axe", Item.ToolMaterial.DIAMOND, 7, 7,1000,20));
}

//region Helping Method
private static <T extends Item> T register(T item) {
    GameRegistry.register(item);

    if (item instanceof IBkBase) {
        if (item.getHasSubtypes()){
            item = registerWithSubtypes(item);
        }
        else
            ((IBkBase) item).registerItemModel();
    }

    return item;
}

public static <T extends Item> T registerWithSubtypes(T item){

    NonNullList<ItemStack> items = NonNullList.create();
    item.getSubItems(item, item.getCreativeTab(), items);

    for (int i = 0; i < items.size(); i++){
        Item tempItem = items.get(i).getItem();
            String name = tempItem.getUnlocalizedName().substring(5);
            ModelLoader.setCustomModelResourceLocation(tempItem, i,
                    new ModelResourceLocation(BookCraft.MOD_ID + ":" + name, "inventory"));
        }
    return item;
}
//endregion

所有文件夹命名正确,全网搜索,找不到任何帮助

以下是一些屏幕截图:

所有三个*. json都有相同的文本:

{
  "parent": "item/handheld",
  "textures": {
    "layer0": "bk:items/Hammer1"
  }
}

你能提出什么解决办法吗?

共有1个答案

马天逸
2023-03-14

资源路径“bk:项目/Hammer1”与实际路径“bk/模型/项目/base Hammer”不匹配

项目
项目
项目
项目

此外,您的资源文件名需要全部小写(“hammer1”或“basehammer”),因为游戏将自动接受您提供的任何内容(例如“hammer1”)并调用。toLower(),如果找不到具有该确切名称的文件,则抛出一个错误(例如,“Hammer1.json”不匹配)。

您需要使用“bk:items/hammer1”,将“item”目录重命名为“items”,并将json文件重命名为“hammer1.json”或“builderhammer”(无论您在注册时实际给它起了什么名字)。

 类似资料:
  • 渲染纹理是一张在 GPU 上的纹理。通常我们会把它设置到相机的 目标纹理 上,使相机照射的内容通过离屏的 frambuffer 绘制到该纹理上。一般可用于制作汽车后视镜,动态阴影等功能。 使用 RenderTexture // 方法一:把 3D 相机照射的内容绘制到 UI 的精灵帧上 export class CaptureToWeb extends Component { @proper

  • 我正在尝试自学java语法,并将minecraft作为一个平台进行深入研究。但是我遇到了一个问题,因为没有加载我的纹理。就这点而言,我的本地化也是如此。这是我的代码块 这是我的课程 我的纹理保存在 根据日志,它无法找到我的纹理。这是我得到的信息 客户端加载并显示“我的项目”,但带有默认的黑色和紫色纹理。我做错了什么?我想这可能与我的命名约定有关,因为。lang文件也不会被读取,我给我的块起一个友好

  • 纹理根本不渲染,几何体都是黑色的。 截图:http://i.imgur.com/ypMdQY4.png 代码:http://pastebin.com/SvB8rxxt 我也会链接到我试图渲染的纹理和transformations.py模块,但是我没有被允许放置两个以上链接的声誉。谷歌搜索“现代opengl 02”会给你前者的教程,“转换py”会给你后者。 搜索“纹理材料开始”以查找纹理材料的设置位

  • 我试图弄清楚为什么我不能用LWJGL 3渲染任何纹理。我尝试了多种加载(PNGDecoder、STB、BufferedImage)和渲染纹理的方法。但结果总是一个白色的四边形。 主要类: 加载方法: 渲染方法: ModelTexture类只是存储一些现在不使用的信息,blue.png是16x16的png文件。 这是我在启动程序时得到的输出:

  • 方法 构造函数 参数 类型 名称 备注 width number 宽 height number 高 返回值: 类型 名称 备注 Object BK.RenderTexture对象 例子: var renderTexture = new BK.RenderTexture(BK.Director.screenPixelSize.width, BK.Director.screenPixelSize.h

  • 我刚刚开始学习Java,同时修改Minecraft。我已经看了一个关于使用Minecraft Forge API将块添加到游戏中的教程,但是我有一个问题。不再有“.setBlockTextureName()”方法,所以我不知道该怎么做。我有一个简单的块添加到我的游戏,但它没有纹理,我想添加一个纹理到它。我该如何为Minecraft 1.8做这件事呢? 附注:如果这是一个副本,我很抱歉,我只看到关于