Un tileEntity pour Deux Block



  • Alors voila je ne sais pas trop comment expliquer mais j'ai un block qui a deux état activé et désactivé, quand il est activé celui ci doit s'allumer et pour sa qu'un seul moyen créer un autre block et remplacer le premier a l'image du furnace j'ai trouvé sa :

    
        /**
         * Update which block the furnace is using depending on whether or not it is burning
         */
        public static void updateFurnaceBlockState(boolean p_149931_0_, World p_149931_1_, int p_149931_2_, int p_149931_3_, int p_149931_4_)
        {
            int l = p_149931_1_.getBlockMetadata(p_149931_2_, p_149931_3_, p_149931_4_);
            TileEntity tileentity = p_149931_1_.getTileEntity(p_149931_2_, p_149931_3_, p_149931_4_);
            field_149934_M = true;
    
            if (p_149931_0_)
            {
                p_149931_1_.setBlock(p_149931_2_, p_149931_3_, p_149931_4_, Blocks.lit_furnace);
            }
            else
            {
                p_149931_1_.setBlock(p_149931_2_, p_149931_3_, p_149931_4_, Blocks.furnace);
            }
    
            field_149934_M = false;
            p_149931_1_.setBlockMetadataWithNotify(p_149931_2_, p_149931_3_, p_149931_4_, l, 2);
    
            if (tileentity != null)
            {
                tileentity.validate();
                p_149931_1_.setTileEntity(p_149931_2_, p_149931_3_, p_149931_4_, tileentity);
            }
        }
    

    Mais sa ne fonctionne pas…



  • C'est simple, dans la classe où tu déclares tes blocs, tu crées deux blocs, un pour éteint et un allumé, par exemple:

    ​public static Block lampOff;
    public static Block lampOn;
    

    puis tu adaptes la méthode que tu as mis au dessus avec tes noms de blocs.
    Autre chose, est-tu sûr d'avoir appelé cette méthode quelque part ? 😉



  • Nan mais je l'ai adapté j'ai mis ce code dans displayrandomtick mais sa bug alors que des base tout fonctionne.


  • Administrateurs

    Non, tu peux passer par la méthode getLightValue. Perso j'ai un four sur un seul bloc ce qui permet d'utiliser moins d'id : https://github.com/FFMT/Privatizer/blob/master/privatizer_src/fr/mcnanotech/privatizer/common/BlockPrivate.java#L486
    Le four est le bloc de metadata 3.



  • Ça fonctionne très bien merci ! Sujet résolut.