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:
 
De mémoire, tu peux faire quelque chose du genre :

Code:
entityPlayer.inventory.setItemStack(null)

(pas sûr de la fonction)

Dans tous les cas ce que tu fais n'est pas logique au sens du Java, car en faisant "ItemStack.stackSize--" tu essaie de modifier la classe ItemStack et non pas un objet de cette classe! Tu devrais réviser un peu les notions de classes et d'instances ^^
 
Il ne se passe rien :S
Voici le code que j'ai :
Code:
package net.minecraft.src;
import java.util.Random;
public class BlockBin extends Block
{
public BlockBin(int i, int j)
{
super(i, j, Material.rock);
}
public void onBlockClicked(World world, int i, int j, int k, EntityPlayer entityplayer)
{
entityplayer.inventory.setItemStack(null);
}
public int idDropped(int i, Random random)
{
return mod_Bin.Bin.blockID;
}
}
 
La syntaxe me semble correcte, si ça fait rien c'est que c'est pas la bonne fonction. Essaie de fouiller un peu dans la classe InventoryPlayer pour chercher celle ce que tu veux ! Faut dire que pour modder sur Minecraft, au début 90% du temps est passé à fouiller, vu qu'y'a pas de documentation ni même de commentaires... Mais on fait avec =P
 
A la place de "entityplayer.inventory.setItemStack(null);", il faut mettre :
entityplayer.inventory.setCurrentItem(null)
Je ne suis pas sure de setCurrentItem comme orthographe, aissaye de retrouver la fonction dans InventoryPlayer.java
 
Ouais c'était la bonne orthagraphe sauf qu'il faut un int et un booléan. J'ai mit 1 et true pour voir. donc aucune erreur mais bon, il me faudrait, quelque chose pour supprimer l'item quoi. Donc j'ai testé -1 x). Sans succès.
 
Cela ne marche aps non plus :/. J'vous envoie tous les codes :
Code:
package net.minecraft.src;
import java.util.Random;
public class BlockBin extends Block
{
public BlockBin(int i, int j)
{
super(i, j, Material.rock);
}
public void onBlockClicked(World world, int i, int j, int k, EntityPlayer entityplayer)
{
entityplayer.inventory.setCurrentItem(0,true);
}
public int idDropped(int i, Random random)
{
return mod_Bin.Bin.blockID;
}
}

Code:
package net.minecraft.src;
public class mod_Bin extends BaseMod
{
    public mod_Bin()
    {
        ModLoader.AddName(Bin, "Bin");
        ModLoader.RegisterBlock(Bin);
        ModLoader.AddRecipe(new ItemStack(Bin, 1), new Object[]
    {"# #", "#X#", "###", Character.valueOf('#'), Block.stone, Character.valueOf('X'), Block.cactus});
        
    }
     
    public static final Block Bin = (new BlockBin(201,ModLoader.addOverride("/terrain.png", "/mod/Beton.png"))).setHardness(0.5F).setResistance(10F).setStepSound(Block.soundStoneFootstep).setBlockName("Bin");
    
    public String Version()   
    {
        return "1.7.2;
    }
    
}

Merci :hap: