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

Minecraft forge不加载物品纹理1.10.2

左丘阳晖
2023-03-14

我正在尝试添加一个纹理到一个我有的项目,但它没有载入我的Minecraft。下面是我的基本mod类:package com.gandiber.thegalaxymod;

import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.RenderItem;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.common.util.EnumHelper;

@Mod(modid = TheGalaxyMod.MODID, version = TheGalaxyMod.VERSION)
public class TheGalaxyMod {
    public static final String MODID = "gandiber_thegalaxymod";
    public static final String VERSION = "1.0";
    public static ItemSword GalaxiumSword;
    public static ToolMaterial galaxium = EnumHelper.addToolMaterial("galaxium", 3, 4000, 15F, 38.0F, 22);

    @SidedProxy(serverSide = "com.gandiber.thegalaxymod.CommonProxy", clientSide = "com.gandiber.thegalaxymod.ClientProxy")
    public static CommonProxy proxy;

    @EventHandler
    public void init(FMLInitializationEvent event) {
        //Weapons
            GameRegistry.register(GalaxiumSword = new ItemGalaxySword(galaxium, "diamondswordcompressed"));

        // some example code
    GameRegistry.addRecipe(new ItemStack(Items.DIAMOND),
            "XXX",
            "XXX",
            "XXX",
            'X', Items.GOLD_INGOT);
    }
}

我得通用代理类:

package com.gandiber.thegalaxymod;

import net.minecraft.item.Item;

public class CommonProxy {
    public void registerItemRenderer(Item item, int meta, String id) {

    }
}

我的客户端代理类:

package com.gandiber.thegalaxymod;

import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.client.model.ModelLoader;

public class ClientProxy extends CommonProxy {
    @Override
    public void registerItemRenderer(Item item, int meta, String id) {
        ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(TheGalaxyMod.MODID + ":" + id, "inventory"));
    }
}

下面是实际剑的物品类:

package com.gandiber.thegalaxymod;

import net.minecraft.item.Item;
import net.minecraft.item.ItemSword;
import net.minecraftforge.fml.common.registry.GameRegistry;
import thegalaxymod.tutorial.item.ItemModelProvider;

public class ItemGalaxySword extends ItemSword implements ItemModelProvider {
private String name;
    public ItemGalaxySword(ToolMaterial material, String name ) {
        super(material);
        setUnlocalizedName(name);
        setRegistryName(name);
    }

    @Override
    public void registerItemModel(Item item) {
        TheGalaxyMod.proxy.registerItemRenderer(this, 0, name);
    }
}

下面是项的json模型文件:

{
    "parent": "item/generated",
    "textures": {
        "layer0": "gandiber_thegalaxymod:items/diamondswordcompressed"
    },
  "display":{
      "thirdperson":{
          "rotation":[-90, 0, 0],
          "translation":[0, 1, -3],
          "scale":[0.55,0.55,0.55]
      },
      "firstperson":{
          "rotation":[0,-135,25],
          "translation":[0,4,2],
        "scale":[1.7,1.7,1.7]
      }
   }
}

下面是rendering class,它基本上什么也不做:

package thegalaxymod.tutorial.item;

import net.minecraft.item.Item;

public interface ItemModelProvider {
    void registerItemModel(Item item);
}

我的文件夹结构:

Json文件:C:\users\myusername\documents\mods\auto-bow\src\main\resources\assets\gandiber_thegalaxymod\model\item\diamondswordcompressed.Json

PNG文件:C:\users\myusername\documents\mods\auto-bow\src\main\resources\assets\gandiber_thegalaxymod\textures\items\diamondswordcompressed.json

我尝试过的事情:

  • 删除json文件的第二部分,以便仅存在“layer0”。
  • 正在删除setCustomModelResourceLocation方法中的“Inventory”参数。

另外,如果这对这里的任何人都有帮助的话,我的fml-client-latest.log文件是:(Pastebin)

共有1个答案

黄兴业
2023-03-14

ItemGalaxySword类中,从不设置实例变量Name。您应该将this.name=name添加到构造函数中。

 类似资料:
  • 嘿,我不能让我的纹理出现,我不知道怎么了。辅导没有帮助。这是我的代码: spriteX=0,spriteY=0,spriteW=400,spriteL=400,x=0,y=0 这是我得到的输出:输出窗口 正如你所见,黑色三角形显示得很好,但没有纹理

  • 我正在编码我的第一个《我的世界》mod,我可以让我的项目加载纹理。我对编码《我的世界》mod很不熟悉,我有点困惑。以下是基本项目的代码: 这是实际项目的代码:

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

  • 我一直试图让纹理在opengl 3.1下工作,在ubuntu 13.04上运行的intelHD图形2000/3000显卡上。我遇到的问题是纹理要么不加载,我试图纹理的基本三角形变成黑色,要么纹理中的一些颜色会加载,但不会加载整个图像。我使用原始图像文件作为源或使用libjpeg加载jpeg得到相同的结果。 我的着色器如下所示: 创建纹理glGenTexture(1, 还有渲染功能 几何和纹理坐标

  • 加载纹理贴图集 可以使用Pixi的loader来加载纹理贴图集。如果是用Texture Packer生成的JSON,loader会自动读取数据,并对每一个帧创建纹理。下面就是怎么用loader来加载treasureHunter.json。当它成功加载,setup方法将会执行。 loader .add("images/treasureHunter.json") .load(setup); 现

  • 下面是我用来创建块(yarriteore.java)的代码: 下面是mod.java文件,我在其中注册了游戏中的块: 我尝试将图标重命名为、和,但它们都不起作用!有人知道我做错了什么吗? 编辑:我也试过.png和.jpeg文件,但它们都不工作... 编辑:我有在src/main/resources/assets/nonameyetmod/textures/blocks文件夹中的项目。