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

块纹理和块名不加载minecraft forge

鲜于承基
2023-03-14

下面是我用来创建块(yarriteore.java)的代码

package com.NoNameYetMod.common;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;

public class YarriteOre extends Block{
    public YarriteOre(int id,Material mat) {
        super(mat);
        this.setCreativeTab(CreativeTabs.tabBlock);
    }

    @Override
    public void registerBlockIcons(IIconRegister p_149651_1_){
        this.blockIcon = p_149651_1_.registerIcon("NoNameYetMod:Yarrite Ore");
    }
}

下面是mod.java文件,我在其中注册了游戏中的块:

package com.NoNameYetMod.common;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Metadata;
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry;

@Mod(modid = "NoNameYetMod", name = "The \"No Name\" Yet Mod", version = "1.0.0 (Warning: Alpha!)")

public class NoNameYetMod{

    @Metadata
    public static ModMetadata meta;
    //Yarrite
    public static Block YarriteOre;
    int YarriteOreID = 1001;

    @EventHandler
    public void init(FMLPreInitializationEvent event){
        //Yarrit
        YarriteOre = new YarriteOre(YarriteOreID, Material.rock).setHardness(1.5F).setBlockName("Yarrite Ore");
    
}

我尝试将图标重命名为yarriteoreyarriteyarritore,但它们都不起作用!有人知道我做错了什么吗?

编辑:我也试过.png和.jpeg文件,但它们都不工作...

编辑:我有在src/main/resources/assets/nonameyetmod/textures/blocks文件夹中的项目。

共有1个答案

洪星文
2023-03-14

要修复名称,您需要在\main\resources\assets\mod_id\lang中创建一个名为en_us.lang的文件。该文件是一个基本的文本文件,记事本可以编辑它,你应该放入你看到的疯狂的名字,它的技术名称,然后是什么你想要它叫在游戏内的名字。这里有一个例子:

tile.Yarrite Ore.Name = Yarrite Ore

对items执行同样的操作,只需使用item.x而不是tile.x。

你使用的是1.7还是1.8的forge,纹理的加载方式在1.8中发生了很大的变化?对于1.7,你需要做的只是在super(mat)的行后面加上这个;

this.setBlockTextureName("MODID" + ":" + "yarriteOre");

将yarriteOre替换为映像名称。没有必要在行末加上.png,Minecraft在寻找图像时会这样做。对于基本的块纹理化,您不需要registerBlockIcons()方法。

这里是一些伟大的Minecraft moding教程的链接,1.3-1.8。我以前用过,这对我有很大的帮助。

链接

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

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

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

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

  • 为了显示这种关系,让我们开始定义一个简单的模块,作为我们的示例应用程序的根模块。 app/app.module.ts 到目前为止,这是一个非常常见的模块,依赖于,有一个路由机制和两个组件:AppComponent和EagerComponent。 现在,让我们专注于定义导航的应用程序(AppComponent)的根组件。 app/app.component.ts import { Component

  • 我安装php7.1使用和未链接的http pd24。我得到了工作版本的php7.1一起libphp7.so. php7.1运行 但是当我添加将其转换为httpd。conf文件,php文件停止工作。当我取消注释返回一切正常。有什么想法吗? PS.OS版本:10.12。2.