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

Minecraft forge未加载纹理

慕容越泽
2023-03-14

我正在尝试自学java语法,并将minecraft作为一个平台进行深入研究。但是我遇到了一个问题,因为没有加载我的纹理。就这点而言,我的本地化也是如此。这是我的代码块

package net.richbaird.testtutorial.blocks;

import cpw.mods.fml.common.registry.GameRegistry;
//import cpw.mods.fml.common.registry.LanguageRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.richbaird.testtutorial.lib.constants;

public class OrangeBlock extends Block {
    private String blockName = "orangeBlock";
    public OrangeBlock() {
        super(Material.rock);
        this.setBlockName(constants.MODID + "_" + blockName);
        this.setCreativeTab(CreativeTabs.tabBlock);
        GameRegistry.registerBlock(this,blockName);
        this.setBlockTextureName(constants.MODID + ":" + blockName);
        //LanguageRegistry.addName(this,"tutorial block");

    }

}

这是我的课程

package net.richbaird.testtutorial.lib;
public class constants {
  public static final String MODID = "testtutorial";
  public static final String MODNAME = "Test Tutorial";
  public static final String VERSION = "1.0";
}

我的纹理保存在

~/IdeaProjects/testmod/src/main/resources/assets/testtutorial/textures/blocks/orangeBlock.png

根据日志,它无法找到我的纹理。这是我得到的信息

[08:08:14] [Client thread/ERROR]: 
Using missing texture, unable to load 
testtutorial:textures/blocks/orangeBlock.png
java.io.FileNotFoundException: testtutorial:textures/blocks/orangeBlock.png

客户端加载并显示“我的项目”,但带有默认的黑色和紫色纹理。我做错了什么?我想这可能与我的命名约定有关,因为。lang文件也不会被读取,我给我的块起一个友好的名称的唯一方法是使用现在被贬低的LanguageRegistry。addName()方法

共有2个答案

陈高寒
2023-03-14

我最近在更新IntelliJ后遇到了这个bug,虽然richbai90的解决方案确实解决了眼前的问题,但它也破坏了将mod编译成jar的过程(资产文件夹包含了两次)。经过深入研究,我终于找到了问题的根源:IntelliJ将构建任务委托给Gradle,Gradle将资产和类放在不同的文件夹中,而Forge不知道它们属于同一个mod。对我来说,有效的解决方案是使用IDE构建和运行,IDE位于“构建、执行、部署|构建工具| Gradle”下的“设置”对话框中(帮助页面有更详细的说明)。在早期版本的IntelliJ上,这被称为“将IDE构建/运行操作委托给gradle”(请参阅帮助页)。

艾原
2023-03-14

对于那些好奇的人来说,这是一个英特尔14看起来像的错误。将此行添加到Forge附带的build.gradle底部

sourceSets {
    main { output.resourcesDir = output.classesDir }
}

并运行gradle-setupdecompospace-idea--刷新依赖项

解决了这个问题。

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

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

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

  • 在理想情况下,如果屏幕分辨率为1024x768,那么在给定时刻只需要786432 texel,2兆字节的内存就足够了。但在现实世界中,有管理成本,所以纹理需要更多的内存。 纹理流可以降低纹理的内存成本,也就是说,在给定时刻并不需要所有纹理的mipmap。纹理需要0级mipmap,因为它靠近相机,如果它离当前相机很远,5到11级mipmap可能就足够了。相机在场景中移动一段时间,一些mipmap可以

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

  • 我用这个答案将我的图像嵌入到。exe: 使用GCC在可执行文件中嵌入资源 以下是我代码的相关部分: 然而,纹理不加载,我只是得到一个白色的灰色表面。 编辑:我知道这不是我最初的问题,但是我在使用mipmaps时遇到了困难。我将loadTexture函数修改为:short loadTexture(char*imageData[],GLuint*texture,int width,int height