• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Problème Plantes Houblons et Cannabis [1.7.10]

    1.7.x
    1.7.10
    3
    31
    2099
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • AZ_the_froggie
      AZ_the_froggie dernière édition par

      Bonjour, jessaye de faire des plante de cannabis et houblons pour mon serveur MC, mais jarrive pas surtous sur le repeat quand je casse la plante, voila le Code :

      Base pour les plantes :

      package com.nostalgie.mod.nrpp.block;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import java.util.Random;
      import net.minecraft.block.Block;
      import net.minecraft.block.BlockBush;
      import net.minecraft.block.IGrowable;
      import net.minecraft.client.renderer.texture.IIconRegister;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.init.Blocks;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.IIcon;
      import net.minecraft.util.MathHelper;
      import net.minecraft.world.World;
      
      public class RecipeBlockCrops extends BlockBush implements IGrowable
      {
          protected int maxGrowthStage = 7;
          protected int repeat = 0;
          protected int repeatI = 0;
          protected String plant = ""; 
          protected Block canPlace;
          protected Item drop; 
          
          @SideOnly(Side.CLIENT)
          protected IIcon[] iIcon;
      
          public RecipeBlockCrops(String plantA, int repeatA, Block canPlaceA, Item dropA)
          {
           // Basic block setup
              setTickRandomly(true);
              float f = 0.5F;
              setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f);
              setCreativeTab((CreativeTabs)null);
              setHardness(0.0F);
              setStepSound(soundTypeGrass);
              disableStats();
              plant = plantA;
              repeat = repeatA;
              canPlace = canPlaceA;
              drop = dropA;        
          }
      
          /**
           * le block que vous voulez pouvoir le placer dessu, aka de l'herbe (grass)
           */
          @Override
          protected boolean canPlaceBlockOn(Block parBlock)
          {
              return parBlock == Blocks.grass;
          }
      
          public void incrementGrowStage(World parWorld, Random parRand, int parX, int parY, int parZ)
          {
              int growStage = parWorld.getBlockMetadata(parX, parY, parZ) + 
                    MathHelper.getRandomIntegerInRange(parRand, 2, 5);
      
              if (growStage > maxGrowthStage)
              {
               growStage = maxGrowthStage;
              }
      
              parWorld.setBlockMetadataWithNotify(parX, parY, parZ, growStage, 2);
          }
          
          @Override
          public Item getItemDropped(int p_149650_1_, Random parRand, int parFortune)
          {
              return Item.getItemFromBlock(this);
          }
      
          /**
           * comment vous voulez que il safiche
           */
          @Override
          public int getRenderType()
          {
              return 1; // croix comme une fleur
          }
          
          public void func_149674_a(World parWorld, int parX, int parY, int parZ, Random parRand)
          {
            if (repeatI == 0) {
              super.func_149674_a(parWorld, parX, parY, parZ, parRand);
              int growStage = parWorld.getBlockMetadata(parX, parY, parZ) + 1;
              
              if (growStage > 7)
              {
                growStage = 7;
              }
              
              parWorld.setBlockMetadataWithNotify(parX, parY, parZ, growStage, 2);
              repeatI = repeat;
            }
            else {
              repeatI -= 1;
            }
          }
          
          /**
           * Texture du block. Args: side, meta
           */
          @Override
          @SideOnly(Side.CLIENT)
          public IIcon getIcon(int parSide, int parGrowthStage)
          {
           return iIcon[parGrowthStage];
          }
         
          /*
           * Need to implement the IGrowable interface methods
           */
      
          /*
           * (non-Javadoc)
           * @see net.minecraft.block.IGrowable#func_149851_a(net.minecraft.world.World, 
           * int, int, int, boolean)
           */
          @Override
          // Verifie que ca a fini de pousser (Stage 7 es le stat final)
          public boolean func_149851_a(World parWorld, int parX, int parY, int parZ, 
                boolean p_149851_5_)
          {
              return parWorld.getBlockMetadata(parX, parY, parZ) != 7;
          }
      
          /*
           * (non-Javadoc)
           * @see net.minecraft.block.IGrowable#func_149852_a(net.minecraft.world.World, 
           * java.util.Random, int, int, int)
           */
          @Override
          public boolean func_149852_a(World p_149852_1_, Random parRand, int p_149852_3_, 
                int p_149852_4_, int p_149852_5_)
          {
              return true;
          }
      
          /*
           * (non-Javadoc)
           * @see net.minecraft.block.IGrowable#func_149853_b(net.minecraft.world.World, 
           * java.util.Random, int, int, int)
           */
          @Override
          public void func_149853_b(World parWorld, Random parRand, int parX, int parY, 
                int parZ)
          {
              incrementGrowStage(parWorld, parRand, parX, parY, parZ);
          }
      }
      

      Cannabis :

      package com.nostalgie.mod.nrpp.block;
      
      import java.util.Random;
      
      import com.nostalgie.mod.nrpp.init.ItemMod;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import net.minecraft.block.Block;
      import net.minecraft.block.BlockCrops;
      import net.minecraft.client.renderer.texture.IIconRegister;
      import net.minecraft.init.Blocks;
      import net.minecraft.init.Items;
      import net.minecraft.item.Item;
      import net.minecraft.util.IIcon;
      import net.minecraft.world.World;
      
      public class CannabisCrops extends RecipeBlockCrops
      {
      
          public CannabisCrops()
          {
              // Setup basique du block
              setBlockName("CannabisCrops");
              setBlockTextureName("nrpp:CannabisCrops_stage_0");
          }
      
          /**
           * les graine que ca vas drop
           */
          @Override
          public int quantityDropped(int parMetadata, int parFortune, Random parRand)
          {
              return (parMetadata/7);
          }
      
          @Override
          public Item getItemDropped(int parMetadata, Random parRand, int parFortune)  
          {
           // DEBUG
           System.out.println("CannabisCrops getItemDropped()");
              return (ItemMod.cannabis_leaf);
          }
          
          @Override
          public void updateTick(World parWorld, int parX, int parY, int parZ, Random parRand)
          {
              super.updateTick(parWorld, parX, parY, parZ, parRand);
              int growStage = parWorld.getBlockMetadata(parX, parY, parZ) + 1;
      
              if (growStage > 7)
              {
                  growStage = 7;
              }
      
              parWorld.setBlockMetadataWithNotify(parX, parY, parZ, growStage, 2);
          }
      
          
          @Override
          @SideOnly(Side.CLIENT)
          public void registerBlockIcons(IIconRegister parIIconRegister)
          {
                iIcon = new IIcon[maxGrowthStage+1];
                // les plante ont 8 etapes, donc tu peux repeter des etape comme 0, 0, 0, 1, 1, 1, 
                // pour donner l'impression que c'est plus lent
                iIcon[0] = parIIconRegister.registerIcon("nrpp:CannabisCrops_stage_0");
                iIcon[1] = parIIconRegister.registerIcon("nrpp:CannabisCrops_stage_1");
                iIcon[2] = parIIconRegister.registerIcon("nrpp:CannabisCrops_stage_2");
                iIcon[3] = parIIconRegister.registerIcon("nrpp:CannabisCrops_stage_3");
                iIcon[4] = parIIconRegister.registerIcon("nrpp:CannabisCrops_stage_4");
                iIcon[5] = parIIconRegister.registerIcon("nrpp:CannabisCrops_stage_5");
                iIcon[6] = parIIconRegister.registerIcon("nrpp:CannabisCrops_stage_6");
                iIcon[7] = parIIconRegister.registerIcon("nrpp:CannabisCrops_stage_7");
          }
      }
      

      Houblons :

      package com.nostalgie.mod.nrpp.block;
      
      import java.util.Random;
      
      import com.nostalgie.mod.nrpp.init.ItemMod;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import net.minecraft.block.Block;
      import net.minecraft.block.BlockCrops;
      import net.minecraft.client.renderer.texture.IIconRegister;
      import net.minecraft.init.Blocks;
      import net.minecraft.init.Items;
      import net.minecraft.item.Item;
      import net.minecraft.util.IIcon;
      import net.minecraft.world.World;
      
      public class HoublonsCrops extends RecipeBlockCrops
      {
      
          public HoublonsCrops()
          {
              // Setup basique du block
              setBlockName("HoublonsCrops");
              setBlockTextureName("nrpp:houblons_stage_0");
          }
      
          /**
           * a quelle etape ca vas drop l'item
           */
          @Override
          public int quantityDropped(int parMetadata, int parFortune, Random parRand)
          {
              return (parMetadata/7);
          }
      
          @Override
          public Item getItemDropped(int parMetadata, Random parRand, int parFortune)  
          {
           // DEBUG
           System.out.println("HoublonsCrops getItemDropped()");
              return (ItemMod.houblons_leaf);
          }
          
          @Override
          @SideOnly(Side.CLIENT)
          public void registerBlockIcons(IIconRegister parIIconRegister)
          {
                iIcon = new IIcon[maxGrowthStage+1];
                // les plante ont 8 etapes, donc tu peux repeter des etape comme 0, 0, 0, 1, 1, 1, 
                // pour donner l'impression que c'est plus lent
                iIcon[0] = parIIconRegister.registerIcon("nrpp:houblons_stage_0");
                iIcon[1] = parIIconRegister.registerIcon("nrpp:houblons_stage_1");
                iIcon[2] = parIIconRegister.registerIcon("nrpp:houblons_stage_2");
                iIcon[3] = parIIconRegister.registerIcon("nrpp:houblons_stage_3");
                iIcon[4] = parIIconRegister.registerIcon("nrpp:houblons_stage_5");
                iIcon[6] = parIIconRegister.registerIcon("nrpp:houblons_stage_6");
                iIcon[7] = parIIconRegister.registerIcon("nrpp:houblons_stage_7");
          }
      }
      

      jai aussi un probleme avec la texture de stage 5 de mon houblons, il se mes en texture noir et rose alors que ca texture es dans le dossier blocks

      (desoler si il y a des faute d’orthographe),

      AZ_The_Froggie

      1 réponse Dernière réponse Répondre Citer 0
      • AZ_the_froggie
        AZ_the_froggie dernière édition par

        ok, jai trouvee le debut du probleme qui ete de changer

        
            public void func_149674_a(World parWorld, int parX, int parY, int parZ, Random parRand)
            {
              if (repeatI == 0) {
                super.func_149674_a(parWorld, parX, parY, parZ, parRand);
                int growStage = parWorld.getBlockMetadata(parX, parY, parZ) + 1;
                
                if (growStage > 7)
                {
                  growStage = 7;
                }
                
                parWorld.setBlockMetadataWithNotify(parX, parY, parZ, growStage, 2);
                repeatI = repeat;
              }
              else {
                repeatI -= 1;
              }
            }
        

        Func_149674_a par updateTick
        mais mtn les crops de canna et houblons me dit :

        text alternatif

        AZ_the_froggie

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

          Ta classe hérite de quelle classe ?
          Car visiblement la classe parent a besoin d’un constructeur différent, il faut ajouter super(...); au début du constructeur.

          AZ_the_froggie 1 réponse Dernière réponse Répondre Citer 0
          • AZ_the_froggie
            AZ_the_froggie @robin4002 dernière édition par

            @robin4002 du constructeur de RecipeBlockCrops ?

            1 réponse Dernière réponse Répondre Citer 0
            • AZ_the_froggie
              AZ_the_froggie dernière édition par

              Ce message a été supprimé !
              1 réponse Dernière réponse Répondre Citer 0
              • AZ_the_froggie
                AZ_the_froggie dernière édition par

                c’est bon jai compris, il faut mettre par example :

                super("HoublonsCrops", 7, null, ItemMod.houblons_leaf);
                

                au debut de la classe cannabis ou houblons, mais ca ne fait pas se que je croyer que ca aller faire, si vous savez comment le faire, c’est quand le crop es dans un stage entre 0 et 7, quand tu le casse, si c’est stage entre 0 a 6 ca vas re mettre le stage 0 et si c’est stage 7, ca re mes au stage 0 en droppend l’item demander (encore deso pour les faute d’orthographe)

                1 réponse Dernière réponse Répondre Citer 0
                • AZ_the_froggie
                  AZ_the_froggie dernière édition par

                  Ce message a été supprimé !
                  1 réponse Dernière réponse Répondre Citer 0
                  • AZ_the_froggie
                    AZ_the_froggie dernière édition par

                    comme je sais pas si c comprehensible, voici un schema (a la rache) :
                    text alternatif

                    1 réponse Dernière réponse Répondre Citer 0
                    • robin4002
                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par robin4002

                      Il faut override la fonction onBlockDestroyed et replacer le bloc dans cette dernière (avec un world.setBlock)

                      1 réponse Dernière réponse Répondre Citer 0
                      • isador
                        isador Moddeurs confirmés Modérateurs dernière édition par

                        Tu ferais mieux d’en faire pousser dans ton jardin que sur Minecraft.

                        AZ_the_froggie 1 réponse Dernière réponse Répondre Citer 0
                        • AZ_the_froggie
                          AZ_the_froggie @isador dernière édition par

                          @isador34 au moin sur mc j’aurais pas de probleme :')

                          1 réponse Dernière réponse Répondre Citer 0
                          • AZ_the_froggie
                            AZ_the_froggie dernière édition par

                            @robin4002 donc il faut faire quel’que chose comme ca ?

                            @Override
                                public void onBlockDestroyed()
                                {
                                	world.setBlock HoublonsCrops;
                                }
                            

                            si c ca, il me donne une erreur sur le world, et jai mis ce morceaux de code dans le code du HoublonsCrops

                            1 réponse Dernière réponse Répondre Citer 0
                            • robin4002
                              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                              En effet comme cela ça ne risque pas de fonctionner …

                              Déjà pour override la méthode onBlockDestroyed il faut les bons arguments, donc commence par regarder dans la classe Block.java à quoi ressemble la fonction.

                              Et ensuite world.setBlock sans parenthèse après, ce n’est pas comme ça qu’on appelle une fonction en Java.

                              1 réponse Dernière réponse Répondre Citer 0
                              • AZ_the_froggie
                                AZ_the_froggie dernière édition par

                                Merci, jai chercher dqans le block.class et jai trouvee ca (modifier pour mes plante) :

                                @Override
                                    public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int p_149664_5_)
                                    {
                                    	world.setBlock(x, y, z, NostalgieRPPlants.CannabisCrops, 0, 2);
                                    }
                                

                                Mais la texture 5 de mon houblons ne veux pas safficher alors que il es bien mis dans le dossier blocks avec les texture du cannabis, si on peux m’aider, ca serrais la joie, vrm merci @robin4002 😄

                                1 réponse Dernière réponse Répondre Citer 0
                                • AZ_the_froggie
                                  AZ_the_froggie dernière édition par

                                  je cherche aussi pour change le temp de croissance des plante si vous savez .-.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • robin4002
                                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par robin4002

                                    La texture 5 ne s’affiche pas, c’est à dire ? Il y a un texture noir / violet ? Ou elle n’apparait juste jamais (et la plante reste sur la texture 4 pour toujours ?)

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • AZ_the_froggie
                                      AZ_the_froggie dernière édition par

                                      nan c’est bon jai regle ca, javais delete une etape et non, ca me donnait une texture noir et rose et apres ca changais quand ca grandissais, tous se que il me manque c’est le temp custom de croissance,

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • robin4002
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

                                        De mémoire il suffit de changer la méthode tickRate (ou un truc du genre)

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • AZ_the_froggie
                                          AZ_the_froggie dernière édition par

                                          donc il faudrais que je @Override le TickRate, je vais voir ca

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • AZ_the_froggie
                                            AZ_the_froggie dernière édition par

                                            je comprend pas le tickrate(); .-. sa se trouve c tous con mais voilah.

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB