[débutant]Détecter si un certain item entre en collision avec le bloc



  • Bonjour a tous 🙂
    J'ai un problème : je voudrais qu'un block éxécute une action si de l'obsidienne est droppé sur le block (je parle bien de l'entité de l'item)puis que l'item soit "consommé" , je voudrais savoir si il y a une condition pour sa , merci d'avance 🙂

    voici mon mod pour l'instant mais ce n'est pas trés utile : il n'y a rien de spécial .

    
    import cpw.mods.fml.client.*;
    
    import cpw.mods.fml.client.registry.*;
    import cpw.mods.fml.common.*;
    import cpw.mods.fml.common.asm.*;
    import cpw.mods.fml.common.asm.transformers.*;
    import cpw.mods.fml.common.discovery.*;
    import cpw.mods.fml.common.discovery.asm.*;
    import cpw.mods.fml.common.event.*;
    import cpw.mods.fml.common.functions.*;
    import cpw.mods.fml.common.network.*;
    import cpw.mods.fml.common.registry.*;
    import cpw.mods.fml.common.toposort.*;
    import cpw.mods.fml.common.versioning.*;
    import cpw.mods.fml.relauncher.*;
    import cpw.mods.fml.server.*;
    import net.minecraft.block.*;
    import net.minecraft.block.material.*;
    import net.minecraft.client.*;
    import net.minecraft.client.audio.*;
    import net.minecraft.client.entity.*;
    import net.minecraft.client.gui.*;
    import net.minecraft.client.gui.achievement.*;
    import net.minecraft.client.gui.inventory.*;
    import net.minecraft.client.model.*;
    import net.minecraft.client.multiplayer.*;
    import net.minecraft.client.particle.*;
    import net.minecraft.client.renderer.*;
    import net.minecraft.client.renderer.culling.*;
    import net.minecraft.client.renderer.entity.*;
    import net.minecraft.client.renderer.tileentity.*;
    import net.minecraft.client.settings.*;
    import net.minecraft.command.*;
    import net.minecraft.crash.*;
    import net.minecraft.creativetab.*;
    import net.minecraft.dispenser.*;
    import net.minecraft.enchantment.*;
    import net.minecraft.entity.*;
    import net.minecraft.entity.ai.*;
    import net.minecraft.entity.boss.*;
    import net.minecraft.entity.effect.*;
    import net.minecraft.entity.item.*;
    import net.minecraft.entity.monster.*;
    import net.minecraft.entity.passive.*;
    import net.minecraft.entity.player.*;
    import net.minecraft.entity.projectile.*;
    import net.minecraft.inventory.*;
    import net.minecraft.item.*;
    import net.minecraft.item.crafting.*;
    import net.minecraft.nbt.*;
    import net.minecraft.network.*;
    import net.minecraft.network.rcon.*;
    import net.minecraft.pathfinding.*;
    import net.minecraft.potion.*;
    import net.minecraft.profiler.*;
    import net.minecraft.server.*;
    import net.minecraft.server.dedicated.*;
    import net.minecraft.server.gui.*;
    import net.minecraft.server.integrated.*;
    import net.minecraft.server.management.*;
    import net.minecraft.src.*;
    import net.minecraft.stats.*;
    import net.minecraft.tileentity.*;
    import net.minecraft.util.*;
    import net.minecraft.village.*;
    import net.minecraft.world.*;
    import net.minecraft.world.biome.*;
    import net.minecraft.world.chunk.*;
    import net.minecraft.world.chunk.storage.*;
    import net.minecraft.world.demo.*;
    import net.minecraft.world.gen.*;
    import net.minecraft.world.gen.feature.*;
    import net.minecraft.world.gen.layer.*;
    import net.minecraft.world.gen.structure.*;
    import net.minecraft.world.storage.*;
    import net.minecraftforge.classloading.*;
    import net.minecraftforge.client.*;
    import net.minecraftforge.client.event.*;
    import net.minecraftforge.client.event.sound.*;
    import net.minecraftforge.common.*;
    import net.minecraftforge.event.*;
    import net.minecraftforge.event.entity.*;
    import net.minecraftforge.event.entity.item.*;
    import net.minecraftforge.event.entity.living.*;
    import net.minecraftforge.event.entity.minecart.*;
    import net.minecraftforge.event.entity.player.*;
    import net.minecraftforge.event.terraingen.*;
    import net.minecraftforge.event.world.*;
    import net.minecraftforge.oredict.*;
    import net.minecraftforge.transformers.*;
    import net.minecraft.init.*;
    import java.util.*;
    
    import net.minecraftforge.common.util.*;
    import net.minecraft.client.renderer.texture.*;
    import org.lwjgl.opengl.GL11;
    import org.lwjgl.opengl.GL12;
    public class mcreator_test3 {
    
    public mcreator_test3(){}
    
    public static BlockTest3 block;
    
    public static Object instance;public int addFuel(ItemStack fuel){return 0;}
    public void serverLoad(FMLServerStartingEvent event){}
    public void preInit(FMLPreInitializationEvent event){
    
    GameRegistry.registerBlock(block, "Test3");
    }
    public void registerRenderers(){}
    public void load(){
    }
    
    static{
    
    block = (BlockTest3)(new BlockTest3().setHardness(2.0F)
    .setResistance(10.0F)
    .setLightLevel(0.0F)
    .setBlockName("Test3")
    .setBlockTextureName("fcBlockCandle_c01")
    .setLightOpacity(0)
    .setStepSound(Block.soundTypeStone)
    .setCreativeTab(CreativeTabs.tabBlock)
    );block.setBlockBounds(0.0F,0.0F,0.0F,1.0F,1.0F,1.0F);
    Block.blockRegistry.addObject(191, "Test3", block);
    block.setHarvestLevel("pickaxe", 0);
    }
    
    public void generateSurface(World world, Random random, int chunkX, int chunkZ){}
    public void generateNether(World world, Random random, int chunkX, int chunkZ){}
    static class BlockTest3 extends Block
    {
    
    int a1 = 0,a2 = 0,a3 = 0,a4 = 0,a5 = 0,a6 = 0;
    
    IIcon gor = null, dol = null, st1 = null, st2 = null, st3 = null, st4 = null;
    
    boolean red = false;
    
    protected BlockTest3()
    {
           super(Material.ground);
    
    }
    
    public int isProvidingStrongPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5){
    return red?1:0;
    }
    @SideOnly(Side.CLIENT)
    @Override
    public IIcon getIcon(int i, int par2){
    
    if (i == 0)
    return gor;
    
    else if (i == 1)
    return dol;
    
    else if (i == 2)
    return st1;
    
    else if (i == 3)
    return st2;
    
    else if (i == 4)
    return st4;
    
    else if (i == 5)
    return st3;
    
    else
    return gor;
    
    }
    
    @SideOnly(Side.CLIENT)
    @Override
    public void registerBlockIcons(IIconRegister reg){
    this.gor = reg.registerIcon("fcBlockCandle_c01");
    this.dol = reg.registerIcon("fcBlockCandle_c01");
    this.st1 = reg.registerIcon("fcBlockCandle_c01");
    this.st2 = reg.registerIcon("fcBlockCandle_c01");
    this.st3 = reg.registerIcon("fcBlockCandle_c01");
    this.st4 = reg.registerIcon("fcBlockCandle_c01");
    }
    public int getRenderType(){
    return 0;
    }
    @Override
    public int tickRate(World world)
    {
       return 10;
    }
    
    public int quantityDropped(Random par1Random){
    return 1;
    }
    
    }
    }
    
    

    PS:  j'utilise Mcreator (un log qui aide au modding) du coup je ne code pas la majeur partie , je fais juste quelques ajout



  • fait un système comme le hopper



  • j'y ai pensé mais je trouve pas le code du hooper pour prendre exemple et je ne sais pas comment faire les tile entity



  • Déjà, ton code mets le entre balises [java] et non

    ! Ensuite, tile entity + méthode d'update
    ! Et pour finir : C'est quoi ça ?!
    ! Ton code est totalement raté, reprends les tutoriaux, car la tu définis une classe de block, et l'enregistrement de celui-ci dans sa propre classe, dans ce qui semble être la classe principale .-.



  • ok je vais revoir sa


  • Administrateurs

    En fait le mieux serait que tu désinstalles mcreator et que tu code toi même le mod, sinon il va y avoir une vague de suicide chez nous.

    Plus sérieusement, ce logiciel n'est pas bon du tout, il fait juste n'importe quoi.
    Le code n'est pas propre, il est illisible et pas du tout optimisé. Aucun logiciel ne peut faire mieux que du bon code fait à la main.



  • Je ne peux qu'approuver ce qu'a dis robin.

    Si tu as besoin d'aide on est la pour aider, mais par pitié, même pour aller plus vite, n'utilise pas ce genre de logiciels.

    Si tu veux ajouter ton propre code par dessus, ça deviens complètement n'importe quoi après. En plus, les imports, mon dieu, pourquoi autant d'imports.