java - 仅在库存中阻止纹理加载

标签 java minecraft minecraft-forge

我正在创建一个 mod,但 block 的纹理(唯一的一个)仅在库存中加载,当它被丢弃时,希望你能帮助我,我正在使用 1.8 MDK。

block 状态:

    {
    "variants"": {
        "normal": {"model": "horsenexus:horse_block"},
     }
}

模型, block :

{
    "parent": "block/cube_all",
    "textures": {
        "down": "horsenexus:blocks/horse_block_down",
        "up": "horsenexus:blocks/horse_block_top",
        "north": "horsenexus:blocks/horse_block_north",
        "east": "horsenexus:blocks/horse_block_east",
        "south": "horsenexus:blocks/horse_block_south",
        "west": "horsenexus:blocks/horse_block_west"
    }

}

型号、项目:

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

代码:

package com.crazyhoorse961.core.blocks;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge;

public class HorseBlock extends Block{

    public HorseBlock(Material materialIn) {
        super(materialIn);
        this.setHardness(5.6F);
        this.setResistance(56.34F);
        this.setStepSound(this.soundTypeSnow);
    }

}

最后一个:

package com.crazyhoorse961.core.init;

import com.crazyhoorse961.core.Reference;
import com.crazyhoorse961.core.blocks.HorseBlock;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class Horse_Block {
    public static Block horse_block;

    public static void init()
    {

        horse_block = new HorseBlock(Material.clay).setUnlocalizedName("horse_block");
    }

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

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

    public static void registerRender(Block block)
    {

        Item item = Item.getItemFromBlock(block);
        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));

        }
    }

感谢您尝试帮助我,祝您有美好的一天。

最佳答案

尝试更改“模型, block ”代码中的以下行

"parent": "block/cube_all",

进入:

"parent": "block/cube",

据我所知,仅当您对 block 的所有面使用相同的纹理时,才会使用“cube_all”。

关于java - 仅在库存中阻止纹理加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37731847/

相关文章:

java - 如何从 J2ME 应用程序访问通话记录?

java - 项目名称在自定义模组中无法正确显示

java - Minecraft 从自定义药水效果中添加新的药水效果

java - IntelliJ IDEA 中的 Gradle 支持 : empty tool window

java - 无法从maven中安装的jar加载类

java - Spring Data PageRequest 未返回指定计数

java - 在java泛型中创建子类元素列表

java - net.minecraft.util.Session.getToken() 和 net.minecraft.util.Session.getProfileID() 的奇怪返回值

java - 我在将 API 实现到 bukkit 插件中时遇到问题

java - JoinMessages 类型必须实现继承的抽象方法 CommandExecutor.onCommand(CommandSender, Command, String, String[])