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

    Non résolu Problème de plantation [1.7.10]

    Sans suite
    1.7.10
    3
    6
    463
    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.
    • Xemnys
      Xemnys dernière édition par Xemnys

      Bonjour ou Bonsoir,

      Je vient vers vous car j’ai un petit soucis au niveau de ma plantation de mon mod.
      Voici le crash-report et les codes de ma plantation :

      import java.util.Random;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import fr.irisium.irisiummod.IrisiumMod;
      import net.minecraft.block.Block;
      import net.minecraft.block.BlockBush;
      import net.minecraft.block.IGrowable;
      import net.minecraft.init.Blocks;
      import net.minecraft.item.Item;
      import net.minecraft.util.IIcon;
      import net.minecraft.util.MathHelper;
      import net.minecraft.world.World;
      
      public class BlockSteeliteCropsMod extends BlockBush implements IGrowable
      {
      	protected int maxGrowthStage = 7;
      	
      	@SideOnly(Side.CLIENT)
          protected IIcon[] iIcon;
      
          public BlockSteeliteCropsMod()
          {
              setTickRandomly(true);
              float f = 0.5F;
              setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f);
              setCreativeTab(IrisiumMod.IrisiumMod);
              setHardness(0.0F);
              setStepSound(soundTypeGrass);
              disableStats();
          }
      
          @Override
          protected boolean canPlaceBlockOn(Block parBlock)
          {
              return parBlock == Blocks.farmland;
          }
      
          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);
          }
      
          @Override
          public int getRenderType()
          {
              return 1;
          }
          
          @Override
          @SideOnly(Side.CLIENT)
          public IIcon getIcon(int parSide, int parGrowthStage)
          {
           return iIcon [parGrowthStage];
          }
          
          public interface IGrowable
          {
              boolean func_149851_a(World p_149851_1_, int p_149851_2_, int p_149851_3_, int p_149851_4_, boolean p_149851_5_);
      
              boolean func_149852_a(World p_149852_1_, Random p_149852_2_, int p_149852_3_, int p_149852_4_, int p_149852_5_);
      
              void func_149853_b(World p_149853_1_, Random p_149853_2_, int p_149853_3_, int p_149853_4_, int p_149853_5_);
          }
      
          public boolean func_149851_a(World parWorld, int parX, int parY, int parZ, 
                boolean p_149851_5_)
          {
              return parWorld.getBlockMetadata(parX, parY, parZ) != 7;
          }
      
          @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;
          }
      
          @Override
          public void func_149853_b(World parWorld, Random parRand, int parX, int parY, 
                int parZ)
          {
              incrementGrowStage(parWorld, parRand, parX, parY, parZ);
          }
          
          @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);
          }
      }
      
      ---- Minecraft Crash Report ----
      // Would you like a cupcake?
      
      Time: 03/01/19 00:13
      Description: Rendering item
      
      java.lang.NullPointerException: Rendering item
      	at fr.irisium.irisiummod.block.crops.BlockSteeliteCropsMod.getIcon(BlockSteeliteCropsMod.java:68)
      	at net.minecraft.block.Block.getBlockTextureFromSide(Block.java:686)
      	at net.minecraft.item.ItemBlock.getIconFromDamage(ItemBlock.java:51)
      	at net.minecraft.item.Item.getIconIndex(Item.java:457)
      	at net.minecraft.item.ItemStack.getIconIndex(ItemStack.java:131)
      	at net.minecraft.client.renderer.entity.RenderItem.renderItemIntoGUI(RenderItem.java:420)
      	at net.minecraft.client.renderer.entity.RenderItem.renderItemAndEffectIntoGUI(RenderItem.java:585)
      	at net.minecraft.client.gui.inventory.GuiContainer.func_146977_a(GuiContainer.java:289)
      	at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:114)
      	at net.minecraft.client.renderer.InventoryEffectRenderer.drawScreen(InventoryEffectRenderer.java:44)
      	at net.minecraft.client.gui.inventory.GuiContainerCreative.drawScreen(GuiContainerCreative.java:673)
      	at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1137)
      	at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1067)
      	at net.minecraft.client.Minecraft.run(Minecraft.java:962)
      	at net.minecraft.client.main.Main.main(Main.java:164)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.lang.reflect.Method.invoke(Unknown Source)
      	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
      	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
      	at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
      	at GradleStart.main(Unknown Source)
      
      
      A detailed walkthrough of the error, its code path and all known details is as follows:
      ---------------------------------------------------------------------------------------
      
      -- Head --
      Stacktrace:
      	at fr.irisium.irisiummod.block.crops.BlockSteeliteCropsMod.getIcon(BlockSteeliteCropsMod.java:68)
      	at net.minecraft.block.Block.getBlockTextureFromSide(Block.java:686)
      	at net.minecraft.item.ItemBlock.getIconFromDamage(ItemBlock.java:51)
      	at net.minecraft.item.Item.getIconIndex(Item.java:457)
      	at net.minecraft.item.ItemStack.getIconIndex(ItemStack.java:131)
      	at net.minecraft.client.renderer.entity.RenderItem.renderItemIntoGUI(RenderItem.java:420)
      
      -- Item being rendered --
      Details:
      	Item Type: net.minecraft.item.ItemBlock@417df2ed
      	Item Aux: 0
      	Item NBT: null
      	Item Foil: false
      Stacktrace:
      	at net.minecraft.client.renderer.entity.RenderItem.renderItemAndEffectIntoGUI(RenderItem.java:585)
      	at net.minecraft.client.gui.inventory.GuiContainer.func_146977_a(GuiContainer.java:289)
      	at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:114)
      	at net.minecraft.client.renderer.InventoryEffectRenderer.drawScreen(InventoryEffectRenderer.java:44)
      	at net.minecraft.client.gui.inventory.GuiContainerCreative.drawScreen(GuiContainerCreative.java:673)
      
      -- Screen render details --
      Details:
      	Screen name: net.minecraft.client.gui.inventory.GuiContainerCreative
      	Mouse location: Scaled: (152, 44). Absolute: (305, 391)
      	Screen size: Scaled: (427, 240). Absolute: (854, 480). Scale factor of 2
      

      J’espère pouvoir trouver une solution à mon problème.
      Cordialement, Xemnys

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

        Courte réponse : 1.7.0 est le problème
        Vrai réponse: dans ta fonction getIcon() tu renvois l’icon venant du tableau iIcon avec l’index parGrowthStage cependant ton iIcon n’est jamais initialiser, ton tableau est null et donc quand t’essaye de get un élément dans un tableau null ça crash.

        Tu peut init le tableau dans le constructeur

        1 réponse Dernière réponse Répondre Citer 2
        • Xemnys
          Xemnys dernière édition par Xemnys

          Bonjour,
          Je ne comprend pas trop ou je doit placer le “init” dans le constructeur.

          Cordialement, Xemnys

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

            C’est bon problème résolu, il fallait mettre un

            return this.blockIcon;
            

            Cordialement, Xemnys

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

              Là tu n’as résolu du tout, tu as juste fait en sorte que la plante affiche toujours la même texture, peu importe son niveau de pousse …

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

                tu dois initialiser ton tableau dans ton constructeur

                    public BlockSteeliteCropsMod()
                
                    {
                        iIcon = new IIcon[] {}
                        setTickRandomly(true);
                        float f = 0.5F;
                        setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f);
                        setCreativeTab(IrisiumMod.IrisiumMod);
                        setHardness(0.0F);
                        setStepSound(soundTypeGrass);
                        disableStats();
                
                    }
                

                tu mes tes IIcon dans le tableau et tu return une icon en fonction du stage de la plante ave le parGrowthStage ou encore ton propre index en fonction du grow stage.
                Un conseille va apprendre les bases du java ça t’aidera beaucoup pour faire ton mod, 😄

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

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB