Aide pour un Block qui supprime les objets.

MajinGoku

Aventurier
21 Mars 2011
42
0
1
Voili voilou, je suis face à un petit problème et je cherche depuis quelque jours. Mon but est lors du clique sur le bloc, l'objet dans la main disparait (un seul à la fois si il y a un stack). J'avais alors penser à ça (un peu fouiner partout :hap:) :
Code:
public boolean blockActivated(World world, int i, int j, int k, EntityPlayer entityplayer)
{
    ItemStack.stackSize--;
    return ItemStack;
}

Mais ça marche pas :(

Merci de voter aide :ok:
 
Sinon tu peut faire pareil mais en partant de l'objet

public void onItemRightClick(je ne sais pa les variables, cherche dans block)
{
if(getBlockId(i, j, k) == mod_MonMod.MonBlock.BlockID)
{
itemstack.stacksize--
return itemstack
}
}

(il se peut que ce ne soit pas exactement l'orthographe car je ne suis pas sur l'ordi duquel je mod, dsl)
 
C'est bon j’ai trouvé :

public void onBlockClicked(World world, int i, int j, int k, EntityPlayer entityplayer)
{
entityplayer.inventory.mainInventory[entityplayer.inventory.currentItem].stackSize--;
}

PS : je ne sait pas pourquoi sa n'affecte pas les outils.
 
kifkif43 a dit:
C'est bon j’ai trouvé :

public void onBlockClicked(World world, int i, int j, int k, EntityPlayer entityplayer)
{
entityplayer.inventory.mainInventory[entityplayer.inventory.currentItem].stackSize--;
}

PS : je ne sait pas pourquoi sa n'affecte pas les outils.

Bien vu, par contre pour éviter des plantages dans certains cas et faire marcher les outils, je pencherais pour un :

Code:
public void onBlockClicked(World world, int i, int j, int k, EntityPlayer entityplayer)
    {
		int currentItem = entityplayer.inventory.currentItem;
		ItemStack[] inventory = entityplayer.inventory.mainInventory;
		if (inventory[currentItem] != null) {
			if (inventory[currentItem].stackSize > 1) {
				inventory[currentItem].stackSize--;
			}
			else {
				inventory[currentItem] = null;
			}
		}
    }

(à tester !)