Drop quand bloc cassé


  • Moddeurs confirmés Modérateurs

    Salut les amis, vous vous rappelez de mon bloc de minerai de cuivre (sous techne)? bha voila quand on le casse, looter le minerai c'est pas cool.

    que mettre dans la fonction ```java
    idDropped



  • Tu regarde dans une classe block existante.

    
    public int idDropped(int par1, Random par2Random, int par3)
    {
    return TONBLOC.blockID;
    }
    
    
    
    public int idDropped(int par1, Random par2Random, int par3)
    {
    return TONITEM.itemID;
    }
    
    

    Et pour la quantité tu a

    
    public int quantityDropped(Random par1Random)
    {
    return QUANTITEE;
    }
    
    

  • Moddeurs confirmés Modérateurs

    ok merci

    EDIT: j'ai bien mis les deux donction mais quand je casse le bloc cela ne drop rien.
    un truc a ajouter dans la classe de l'item a par public static int idDropped;



  • Ouai, item…

    donc .itemID a la place de idDropped


  • Moddeurs confirmés Modérateurs

    cela ne fait rien:

    public class coppermineralitem extends Item{
    
    public static int idDropped;
    public static int itemID;
    
    public coppermineralitem(int id){
    super(id);
    this.setCreativeTab(CreativeTabs.tabMaterials);
    setMaxStackSize(64);
    }
    }
    

  • Moddeurs confirmés Rédacteurs Modérateurs Administrateurs

    Ta class coppermineralitem devrais ressemblé à ça:

    public class coppermineralitem extends Item{
    
    public coppermineralitem(int id){
    super(id);
    this.setCreativeTab(CreativeTabs.tabMaterials);
    setMaxStackSize(64);
    }
    
    public int idDropped(int par1, Random par2Random, int par3)
    {
    return this.itemID;
    }
    
    public int quantityDropped(Random par1Random)
    {
    return 1;
    }
    }
    

  • Moddeurs confirmés Modérateurs

    heu ca ne marche pas


  • Moddeurs confirmés


    Un item ne drop rien, il ne peut pas être miné.
    Ces méthodes sont a mettre dans la classe du bloc.


  • Moddeurs confirmés Modérateurs

    blocks:

    
    package Mineralherb.Blocks;
    
    import java.util.Random;
    
    import Mineralherb.ClientProxy;
    import Mineralherb.Items.coppermineralitem;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.block.Block;
    import net.minecraft.block.BlockContainer;
    import net.minecraft.block.material.Material;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.world.World;
    
    public class coppermineral extends BlockContainer
    {
    
    public coppermineral(int id)
    {
    super(id, Material.rock);
    this.setCreativeTab(CreativeTabs.tabBlock);
    
    }
    public TileEntity createTileEntity(World world, int metadata)
    {
    return new TileEntityCopper();
    }
    
    public boolean hasTileEntity(int metadata)
    {
    return true;
    }
    
    public boolean renderAsNormalBlock()
    {
    return false;
    }
    
    public boolean isOpaqueCube()
    {
    return false;
    }
    
    public int idDropped(int par1, Random par2Random, int par3)
    {
    return coppermineralitem.idDropped;
    }
    public int quantityDropped(Random par1Random)
    {
    return 2;
    }
    
    @SideOnly(Side.CLIENT)
    public int getRenderType()
    {
    return ClientProxy.renderInventoryTESRId;
    }
    
    @Override
    public TileEntity createNewTileEntity(World world) {
    // TODO Auto-generated method stub
    return new TileEntityCopper();
    }
    }
    
    

    item:

    
    package Mineralherb.Items;
    
    import java.util.Random;
    
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.item.Item;
    
    public class coppermineralitem extends Item{
    
    public static int idDropped;
    public static int itemID;
    
    public coppermineralitem(int id){
    super(id);
    this.setCreativeTab(CreativeTabs.tabMaterials);
    setMaxStackSize(64);
    }
    }
    
    

    voila mes deux classes, qu'est ce qui cloche?


  • Moddeurs confirmés Rédacteurs Administrateurs

    public int idDropped(int metadata, Random rand, int fortune)
    {
    return TaClassePrincipale.coppermineralitem.itemID;
    }
    

  • Moddeurs confirmés Modérateurs

    TaClassePrincipale: Mineralherbmain ?


  • Moddeurs confirmés Rédacteurs Administrateurs

    Non, tu remplace par le nom de la classe principale.tu mets le nom de l'objet de l'item qui doit être dropé.itemID
    C'est pas compliqué.


  • Moddeurs confirmés Modérateurs

    EDIT: résolue: une génération random et voila:
    int randomloot;
    int lower = 1;
    int higher = 6;

    int random = (int)(Math.random() * (higher-lower)) + lower;
    return this.blockID == MineralherbMain.coppermineralitem.itemID ? 6 + par1Random.nextInt(2) : random;


Log in to reply