- 69
- 0
Здравствуйте, это моя первая тема. Я новичок в моддинге, и во время создания мода у меня возник вопрос. Как сделать, что бы при нажатии ПКМ на блоке (при активации блока) с топором в руках с блока дропался определенный item?
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
/**
* Called upon block activation (right click on the block.)
*/
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
{
return false;
}
@Override
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
{
ItemStack currentItem = par5EntityPlayer.getCurrentEquippedItem();
if(currentItem.itemID == Item.axeIron.itemID) {
currentItem.setItemDamage(currentItem.getItemDamage() - 2);
par1World.spawnEntityInWorld(new EntityItem(par1World, par2, par3, par4, new ItemStack(Block.wood, MathHelper.getRandomIntegerInRange(new Random(), 8, 9))));
return true;
}
return false;
}
Потому чтоKuroi_Light написал(а):Почему при активации блока топор восполняет прочность?
currentItem.setItemDamage(currentItem.getItemDamage() - 2);
Во-первых, не стоит копипастить код) Во-вторых, объяснили тебе кривовато)Kuroi_Light написал(а):Собсна java я тоже пока знаю поверхностно, поэтому возникают еще вопросы. Почему при активации блока топор восполняет прочность?
И как поставить статичное количество выпадающей древесины? Ибо выпадает по 8-9 штук.
И плюс выпадают такие же 8-9 штук, но их нельзя подобрать.
@Override
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
{
ItemStack currentItem = par5EntityPlayer.getCurrentEquippedItem();//предмет,который выбрал игрок
if(currentItem.itemID == Item.axeIron.itemID) {//сравниваем его с железным топором(П.с. на 1.7 надо убрать айди)
currentItem.setItemDamage(currentItem.getItemDamage() + 2);//убавляем дамаг. Т.е. id:дамаг/ Чтобы использовать предмет надо его увеличивать -___-
par1World.spawnEntityInWorld(new EntityItem(par1World, par2, par3, par4, new ItemStack(Block.wood, MathHelper.getRandomIntegerInRange(new Random(), 8, 9))));// призываем предмет с колличеством целого числа в районе 8-9,чтобы было как ты хочешь просто замени MathHelper.getRandomIntegerInRange(new Random(), 8, 9) на обычное число
return true;
}
return false;
}
@Override
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
{
ItemStack currentItem = par5EntityPlayer.getCurrentEquippedItem();
if(currentItem.itemID == ToolList.testAxe.itemID) {
par1World.spawnEntityInWorld(new EntityItem(par1World, par2, par3, par4, new ItemStack(Block.wood, 1)));
return true;
}
return false;
}
Первое.Oldestkon написал(а):Грят же, добавь в самом начале метода проверку:
Код:if (world.isRemote) return false;
Ну или
Код:if (!world.isRemote) return false;
Я не помню уже, лел.
par1World.spawnEntityInWorld(new EntityItem(par1World, par2, par3, par4, new ItemStack(Block.wood, 1 < 0.25)));