Block Anti-Piston & Anti-TNT



  • Bonjour je voudrais empêcher qu'un bloc soit poussable avec la piston et qu'il résiste à la TNT et aux creepers, comment faire ceci ?
    J'ai vu le code du piston :

    public int getMobilityFlag(){ return 2; }
    

    Mais il ne marche pas


  • Administrateurs

    Suffit de lire la java doc …

    /**
    * Returns the mobility information of the block, 0 = free, 1 = can't push but can move over, 2 = total immobility
    * and stop pistons
    */
    public int getMobilityFlag()
    {
        return 2;
    }
    

    Donc si, il faut bien mettre cette fonction dans la classe de ton bloc pour qu'il ne puisse pas être posé par un piston.

    Et pour la résistance au explosion, dans le constructeur du bloc ajoutes : this.setResistance(6000000.0F);



  • J'ai mis :

    public class FactionBlock extends Block
    {
    
        private Object mobilityFlag;
    
        protected FactionBlock()
        {
            super(Material.iron);
            this.setCreativeTab(CreativeTabs.tabBlock);
            this.setHardness(50.0F);
            this.setHarvestLevel("pickaxe", 3);
            this.setResistance(6000000.0F);
            this.setStepSound(Block.soundTypeStone);
            this.setBlockName("factionblock");
        }
    
        public int getMobilityFlag()
        {
            return 2;
        }
    }
    

    Et ça ne marche pas, le bloc se fait pousser par les pistons et explose à la TNT



  • le set Résistance est a mettre dans la déclaration du block



  • Pour l'anti TNT c'est bon, mais comment faire pour le Anti-Piston ?


  • Administrateurs

    Envoie ta classe principale ?

    Ah et enlève ça : private Object mobilityFlag;
    ça ne sert à rien.



  • Résolu, ça marchais bien mais je m'était tromper dans la classe principale, j'avais charger une autre class..

    Merci de votre aide et de robin pour m'avoir dit de regarder 🙂