亲爱的程序员,今天,我一直在看&阅读Minecraft modding教程。 它非常好,除了我的代码中的一个奇怪的错误。
我正在创建“翡翠工具”,它基本上是常规工具的重新纹理和OP:ed版本。
到目前为止,我已经学会了如何制作不同的工具集(Sword,Pickaxe,Axe,Shovel和Hoe),但每当我想在游戏中制作工具时,我都会得到意想不到的结果。举个例子,当我制作一把斧头时,它变成了一个镐头,看看我正在谈论的对冲,请查看我的源代码,如果你有ModLoader& MCP可用。
package net.minecraft.src;
import java.util.Random;
public class mod_minecraft extends BaseMod //Main modding file, extends BaseMod
{
public static final Item mew = new ItemMew(2085).setItemName("Mew"); //Mew, Item tutorial.
public static final Item EmeraldSword = new ItemSword(3077, EnumToolMaterial.MCM).setItemName("EmeraldSword"); //Emerald Sword, sword tutorial
public static final Item EmeraldPickaxe = new ItemPickaxe(2102, EnumToolMaterial.MCM).setItemName("EmeraldPickaxe"); //Emerald Pick
public static final Item EmeraldAxe = new ItemAxe(2096, EnumToolMaterial.MCM).setItemName("Emerald Axe");
public static final Item EmeraldShovel = new ItemSpade(2107, EnumToolMaterial.MCM).setItemName("Emerald Shovel");
public static final Item EmeraldHoe = new ItemHoe(2099, EnumToolMaterial.MCM).setItemName("Emerald Shovel");
public void load()
{
//Mew
mew.iconIndex = ModLoader.addOverride("/gui/items.png", "/items/151Mew.png");
ModLoader.addName(mew, "Mew");
//
//Emerald Sword
EmeraldSword.iconIndex = ModLoader.addOverride("/gui/items.png" , "/items/greensword.png");
ModLoader.addName(EmeraldSword, "Emerald Sword");
ModLoader.addRecipe(new ItemStack(EmeraldSword, 1), new Object[]
{
" * ", " * ", " X ",
'X', Item.stick, '*', Item.emerald
});
//
///Emerald pickaxe
EmeraldPickaxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/items/greenpick.png");
ModLoader.addName(EmeraldPickaxe, "Emerald Pickaxe");
ModLoader.addRecipe(new ItemStack(EmeraldPickaxe, 1), new Object[]
{
"***", " X ", " X ",
'X', Item.stick, '*', Item.emerald
});
//
//Emerald Axe
EmeraldAxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/items/greenaxe.png");
ModLoader.addName(EmeraldAxe, "Emerald Axe");
ModLoader.addRecipe(new ItemStack(EmeraldPickaxe, 1), new Object[]
{
"** ", "*X ", " X ",
'X', Item.stick, '*', Item.emerald
});
//
//Emerald Shovel
EmeraldShovel.iconIndex = ModLoader.addOverride("/gui/items.png", "/items/greenshovel.png");
ModLoader.addName(EmeraldShovel, "Emerald Shovel");
ModLoader.addRecipe(new ItemStack(EmeraldShovel, 1), new Object []
{
" * ", " X ", " X ",
'*', Item.emerald, 'X', Item.stick
});
//
//Emerald Hoe
EmeraldHoe.iconIndex = ModLoader.addOverride("/gui/items.png", "/items/greenhoe.png");
ModLoader.addName(EmeraldHoe, "Emerald Hoe");
ModLoader.addRecipe(new ItemStack(EmeraldHoe, 1), new Object []
{
"** ", " X ", " X ",
'X', Item.stick, '*', Item.emerald
});
//
}
public String getVersion()
{
return "3.14159265";
}
如果您想知道,我的第一个“测试”项目是Mew(传说中的口袋妖怪:D)的像素化版本,出于某种原因,我仍然在代码中实现它。
有什么问题?我能够正确构建的唯一工具是剑,所有其他工具都有不同的方法可以制作/没有办法。
如果你不理解下面的源代码并且你是一个不错的程序员,不要担心,这是Minecraft后缀,你显然没有尝试过。
我正在使用ModLoader和MCP(Minecraft Coder Pack。
如果您想知道,我能够编译代码,只是工艺表会产生意想不到的结果。
感谢所有答案。
答案 0 :(得分:3)
马上,你的 ax 制作配方是:
ModLoader.addRecipe(new ItemStack(EmeraldPickaxe, 1), new Object[]
{
"** ", "X ", " X ",
'X', Item.stick, '', Item.emerald
});
既然你说过Pickaxe,你就会遇到问题。我的猜测是,镐头及其后的一切都会受到这个错字的影响。