我正在尝试制作一个mod,但我遇到了这个问题。当我尝试制作制作配方时,它会让我的游戏崩溃。我真的不确定为什么。我试过用
Items.COOKED_BEEF
也尝试Item.cooked_beef
。我导入了我需要的所有东西,但它仍然不起作用。
package Nedas60.TestMod.init;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class ModCrafting {
public static void register() {
ItemStack diamond = new ItemStack(Items.DIAMOND);
ItemStack beef = new ItemStack(Items.COOKED_BEEF);
ItemStack DmdBeef = new ItemStack(ModItems.DiamondBeef);
GameRegistry.addShapedRecipe(DmdBeef, diamond, beef);
}
}
Eclipse说这里的一切都很好。使用小写字母Items.cooked_beef
不起作用。有什么问题?
答案 0 :(得分:3)
您正在尝试添加形状配方而不定义形状。您应该使用无形配方,或者使用1-3个字符串设置配方形状,每个字符串包含1-3个字符(每行1个字符串,行中每个方块1个字符)。
成形食谱的一些例子:
//diamond above beef
GameRegistry.addShapedRecipe(DmdBeef, "D", "B", 'D', diamond, 'B', beef);
//diamond on the left of beef
GameRegistry.addShapedRecipe(DmdBeef, "DB", 'D', diamond, 'B', beef);
//diamond on the left of beef, with a blank space to the left, and 2 blank rows beneath it
GameRegistry.addShapedRecipe(DmdBeef, "ADB", "AAA", "AAA", 'D', diamond, 'B', beef);
在伪造文档网站上还有更多的教程和示例,我的论坛和谷歌搜索将会显示更多内容。
您使用的字符并不重要,您可以使用' @'例如钻石。未指定的任何字符(例如上一个示例中的' A')都必须为空。如果不是所有9个字符都被指定,则可以将这些字符放在网格中的任何位置。
除此之外,标准的java实践是让变量以小写字母开头(DmdBeef
应为dmdBeef
)。