2017-03-16 30 views
0

所以我创建了一个名为'BlockTest.java'的区块,它扩展了我的世界的TNT区块,并重写了onBlockActivated函数。问题是如何注册该块,我可以找到的唯一教程是早期版本。如何注册我的世界上的一个区块1.11锻造

我相信你也需要一个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开发新手,任何帮助都是有帮助的。

回答

2

是的,你需要实例化ItemBlock。这是一个办法:

oldTNTIB = new ItemBlock(oldTNT); 

用于设置创意的标签,你可以使用:

oldTNT.setCreativeTab(<enter tab here>); 
0

您使用的是相同的注册表名称oldTNT两个街区(oldTNToldTNTIB),这将导致崩溃。

您需要将第二个块的注册表名称更改为与第一个块的注册表名称不同的内容。

此外,强烈建议在1.11+中使用所有小写字母来表示注册表名称等内容。这是因为在1.11+ Minecraft的资源包系统中,部署在ResourceLocation s上的压缩。如果您在注册表名称等内容中使用大写字母,则可能会在稍后导致混淆。

用于设置创意选项卡,您只需拨打setCreativeTab您块实例与适当CreativeTabs实例(所有的香草的Minecraft标签必须在CreativeTabs类的静态字段)。