我正在尝试制作一个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
不起作用。问题是什么?错误日志:http://pastebin.com/7nmk2tfr
最佳答案
您正在尝试添加形状的配方而不定义形状。您应该使用无形状的配方,或者使用1-3个字符串(每个字符串中包含1-3个字符)来设置配方形状(每行1个字符串,行中每个正方形1个字符)。
成型食谱的一些示例://diamond above beefGameRegistry.addShapedRecipe(DmdBeef, "D", "B", 'D', diamond, 'B', beef);
//diamond on the left of beefGameRegistry.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 itGameRegistry.addShapedRecipe(DmdBeef, "ADB", "AAA", "AAA", 'D', diamond, 'B', beef);
在伪造文档站点上,还有更多的教程和示例,minecraftforums和只是谷歌搜索将显示更多。
您使用的字符并不重要,例如,对于菱形,您可以使用“ @”。未指定的任何字符(例如上一个示例中的“ A”)都必须为空白。如果未指定所有9个字符,则可以将其以正确的格式放置在网格中的任何位置。
顺便说一句,标准的Java惯例是使变量以小写字母开头(DmdBeef
应该为dmdBeef
)。