[英]How to register a block on minecraft 1.11 forge
因此,我为名为“ BlockTest.java”的块创建了一个类,该类扩展了我的世界TNT块并仅覆盖了onBlockActivated函数。 问题是如何注册该块,我只能找到早期版本的教程。
我相信,对于每个块,您也都需要一个ItemBlock。 这是我目前尝试注册的内容:
//(this code is in my main class inside init)
public static Block oldTNT;
public static ItemBlock oldTNTIB;
oldTNT = new blockTest();
oldTNT.setRegistryName("oldTNT");
oldTNT.setUnlocalizedName(oldTNT.getRegistryName().toString());
GameRegistry.register(oldTNT);
oldTNTIB.setRegistryName("oldTNT");
oldTNTIB.setUnlocalizedName(oldTNTIB.getRegistryName().toString());
GameRegistry.register(oldTNTIB);
但是,这使游戏崩溃,并告诉我问题出在注册阶段。 这是否完全正确? 我还需要实例化itemBlock吗?
奖金问题,我假设在设置非本地化名称的地方完成了设置广告素材标签之类的工作?
敬请谅解,因为我是mod开发的新手,希望能对您有所帮助。
是的,您需要实例化ItemBlock。 这是一种方法:
oldTNTIB = new ItemBlock(oldTNT);
要设置广告素材标签,您可以使用:
oldTNT.setCreativeTab(<enter tab here>);
您将相同的注册表名称oldTNT
用于两个块( oldTNT
和oldTNTIB
),这将导致崩溃。
您需要将第二个块的注册表名称更改为与第一个块的注册表名称不同的名称。
此外,强烈建议您在1.11+中将所有小写字母用于注册表名称之类的内容。 这是因为在1.11+中,Minecraft的资源包系统会在ResourceLocation
上强制使用小写。 如果您在注册表名称之类的内容中使用大写字母,则稍后可能会造成混乱。
要设置广告素材标签,您只需使用适当的CreativeTabs
实例在块实例上调用setCreativeTab
(所有普通的Minecraft标签都在CreativeTabs
类中具有静态字段)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.