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

Minecraft锻造物品块渲染问题

谷泳
2023-03-14

我遇到了一个项目块渲染问题,因为当我放置块时,它会正确渲染,但当我拿着它时,它缺少纹理/模型。

我看到的图片在链接中:http://i.stack.imgur.com/atq1L.png

我已经检查了很多次,控制台中没有错误消息,JSON格式似乎没有任何问题,代码中似乎也没有问题。

*顺便说一下,block类的代码并不太重要,因为它只是一个扩展*block的类。类,然后给super添加材料。石

以下是我的blocks类的代码:

package com.kraftymods.luckyblocks.init;

import com.kraftymods.luckyblocks.blocks.LuckyBlock;
import com.kraftymods.luckyblocks.blocks.itemblocks.LuckyBlockItem;
import com.kraftymods.luckyblocks.main.Reference;

import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class Blocks {

    public static Block luckyblock;

    public static void init(){
        luckyblock = new LuckyBlock().setUnlocalizedName("luckyblock")[enter image description here][1].setCreativeTab(CreativeTabs.tabMisc);
    }

    public static void register(){
        GameRegistry.registerBlock(luckyblock, LuckyBlockItem.class, luckyblock.getUnlocalizedName().substring(5));
    }

    public static void registerRenders(){
        registerRender(luckyblock);
    }

    private static void registerRender(Block block){
        Item item = Item.getItemFromBlock(block);
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MODID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
    }

}

以下是我的JSON文件的代码:

区块数据:

{
    "variants": {
        "normal": { "model": "luckyblocks:luckyblock" }
    }
}

块模型:

{
    "parent": "block/cube_all",
    "textures": {
        "all": "luckyblocks:blocks/luckyblock"
    }
}

项目模型:

{
    "parent": "luckyblocks:block/luckyblock",
    "display": {
        "thirdperson": {
            "rotation": [ 10, -45, 170 ],
            "translation": [ 0, 1.5, -2.75 ],
            "scale": [ 0.375, 0.375, 0.375 ]
        }
    }
}

我很感激你花时间读这篇文章

共有1个答案

易星宇
2023-03-14

请为客户端注册渲染器的目的创建一个类

我举个例子:

public final class BlockRenderRegister {
    public static void registerBlockRenderer() {
        register(BlocksLibrary.blockDarkStone);
    }
    public static void register(Block block) {
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher()
                .register(Item.getItemFromBlock(block), 
                          0, 
                          new ModelResourceLocation(
                                ModHooks.MODID.toLowerCase() + ":" + BlocksLibrary.DARKSTONE, 
                                "inventory"
                                 )
                          );
    }
}

为了装载你的积木,我还建议使用一个单独的类(仅用于维护目的)

public class BlockLoader {
    /**
     * Loads all blocks into memory
     * and populates the BlocksLibary
     * with decent values.
     */
    public static void loadBlocks() {
        GameRegistry.registerBlock(
                BlocksLibrary.blockDarkStone = new BlockDarkStone(Material.rock),
                BlocksLibrary.DARKSTONE
                );
    }
}

我在PreInit事件中注册了积木,以便游戏知道我的积木。

@EventHandler
public void preInit(FMLPreInitializationEvent e) {
    BlockLoader.loadBlocks();
} 

我从主mod类中的FMLInitializationEvent调用它来注册渲染器。

@EventHandler
    public void init(FMLInitializationEvent event) {
        BlockRenderRegister.registerBlockRenderer();
    }
 类似资料:
  • 我正在创建一个带有自定义项目的mod,我想让该项目可穿戴,但我不知道如何。这是我的Mod项目代码。

  • 我在minecraft中创建了一个新块,但在1.12中,加载纹理时出现了一个新错误 我的资产{MODID}.blockstates 我的资产{MODID}.models.block 和我的资产{MODID}.models.item

  • 我正在为《我的世界》创建一个mod。最近,我试图制作一个自定义块,我有两个问题。 我的主要问题是块渲染不正确。我希望块的大小比完整的块小。我成功地用改变了块的边界,虽然这确实使块渲染得更小,并使用了更小的边界,但它导致了其他渲染问题。当我放置块时,下面的地板变得不可见,我可以透过它看到下面的洞穴,后面的块,或者如果那里什么都没有,就可以看到虚空。我如何修复不渲染的块?这里有一个截图: 此外,我的目

  • 由于锻造标准最近发生了变化,很难在这个网站上找到合适的帖子,所以我自己也发了一篇。我试图将纹理/模型添加到项目中,但在编译时,我看到以下情况: 我使用以下代码注册模型,在初始化阶段通过客户端代理调用: “项目”和“修改”在上述范围内有适当的定义。 这是我的标准项目模型,项目从它继承,位于src/main/Resources/资产/超多媒体/模型/项目: ... 和位于同一点的实际子模型: 该纹理是

  • 我根本无法从eclipse获得要运行的测试构建。我使用java openjdk版本“1.8.0_242”在windows 10上运行 我已经按照各种教程一步一步地,但不断得到这个错误。我还尝试运行一个我根本没有编辑过的新版本,它似乎会因为同一个问题而崩溃。 最新的事故日志。 我的build.gradle 非常感谢您的帮助

  • 问题内容: 在过去的六个月中,我一直在与Backbone合作。前两个月很混乱,学习并弄清楚我要如何围绕它构建代码。接下来的4个月,该公司推出了适合生产的应用程序。不要误会我的意思,Backbone使我摆脱了以前标准的成千上万行客户端代码的混乱,但是它使我能够在更短的时间内完成更多宏伟的事情,从而带来了一系列全新的问题。对于我在这里提出的所有问题,有一些简单的解决方案,感觉像是骇客或只是 错误 。我