Bloc drop redstone au minage



  • Bonjour, j'essaie de créer un bloc, mais quand je le mine, ce n'est pas la gemme qui est droppée, mais de la redstone…
    Comment faire pour que l'item droppé soit la gemme ?


  • Moddeurs confirmés Rédacteurs Administrateurs

    Salut, envoie le code de ton bloc.

    En passant je déplaces dans la bonne section.



  • ok merci 🙂

    Voici le code:

    import java.util.Random;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.enchantment.Enchantment;
    import net.minecraft.enchantment.EnchantmentLootBonus;
    import net.minecraft.enchantment.EnumEnchantmentType;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.world.IBlockAccess;
    import net.minecraft.world.World;
    import net.minecraftforge.common.ForgeDirection;
    
    public class AdamantineOre extends Block{
    
    public AdamantineOre(int par1, Material par2Material) {
    super(par1, par2Material);
    }
    public int idDropped(int metadata, Random Rand, int fortune)
    {
    return Item.redstone.itemID;
    }
    public void dropBlockAsItemWithChance(World par1World, int par2, int par3, int par4, int par5, float par6, int par7)
    {
    super.dropBlockAsItemWithChance(par1World, par2, par3, par4, par5, par6, par7);
    
    if (this.idDropped(par5, par1World.rand, par7) != this.blockID)
    {
    int j1 = 1 + par1World.rand.nextInt(5);
    this.dropXpOnBlockBreak(par1World, par2, par3, par4, j1);
    }
    }
    protected ItemStack createStackedBlock(int par1)
    {
    return new ItemStack(Block.oreRedstone);
    }
    public int getFlammability(IBlockAccess world, int x, int y, int z, int metadata, ForgeDirection face)
    {
    return 140;
    }
    
    }
    

  • Moddeurs confirmés Rédacteurs Administrateurs

    protected ItemStack createStackedBlock(int par1)
    {
    return new ItemStack(Block.oreRedstone);
    }
    

    Tu n'as pas besoin de cette fonction.

    Et remplace ça :

    public int idDropped(int metadata, Random Rand, int fortune)
    {
    return Item.redstone.itemID;
    }
    

    par :

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


  • En fait, c'est bon, je viens de régler le problème.

    Ha et… quand je mine le minerais avec un silktouch, ça me rend une redstone_ore...

    Par contre, pourriez-vous me dire comment faire pour que le block "ore", quand je le fait cuire dans un four, me donne une gemme ?

    Merci 🙂


  • Moddeurs confirmés Rédacteurs Administrateurs

    Ça vient sûrement de la fonction createStackedBlock, enlève-la elle, tu n'en as pas besoin.

    Pour qu'on puisse cuire le bloc, dans ta classe principale dans la fonction init ajoute ça :
    GameRegistry.addSmelting(tonBloc.blockID, new ItemStack(tonItem, quantité), 1.0F);



  • Impec, merci, tout fonctionne 😉


Log in to reply