MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Transformer un item en un autre comme les fioles 2

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    7 Messages 3 Publieurs 1.4k Vues 1 Watching
    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.
    • EryahE Hors-ligne
      Eryah
      dernière édition par

      Dans un précédent topic, j’ai demander comment transformer un item en un autre comme les fioles ( Wauh , le titre… ). Mais je voudrait que le même item peut se transformer en différent, selon on rightclick sur différents bloc ( Pas français déso )
      pour l’instant, mon item se transforme en bouteille d’air quand on click dans le vide. J’aimerai que lorsque l’on clique sur de la lave, on obtient une bouteille de  lave. A l’avenir, je vodurais également crer uen bouteille de fumée obtenable en right click’ant surr un four Allumé

      Classe actuelle

      ​package eryah.usefulthings.init;
      
      import net.minecraft.block.material.Material;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.resources.model.ModelResourceLocation;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.init.Items;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.stats.StatList;
      import net.minecraft.util.BlockPos;
      import net.minecraft.util.MovingObjectPosition;
      import net.minecraft.world.World;
      import net.minecraftforge.fml.common.registry.GameRegistry;
      import eryah.usefulthings.Reference;
      import eryah.usefulthings.UsefulthingsMod;
      
      public class BottleHerm extends Item {
      
      public static Item bottleherm;
      
      public static void init(){
      bottleherm = new BottleHerm().setUnlocalizedName("bottleherm").setCreativeTab(UsefulthingsMod.UTTab);
      }
      
      public static void register()
      {
      GameRegistry.registerItem(bottleherm, bottleherm.getUnlocalizedName().substring(5));
      }
      
      public static void registerRenders()
      {
      registerRender(bottleherm);
      }
      
      public static void registerRender(Item item)
      {
      Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
      }
      
      @Override
      public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
          {
              MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(worldIn, playerIn, true);
      
                  if (movingobjectposition == null)
                  {
                          --itemStackIn.stackSize;
                          playerIn.triggerAchievement(StatList.objectUseStats[Item.getIdFromItem(this)]);
      
                          if (itemStackIn.stackSize <= 0)
                          {
                              return new ItemStack(AirBottle.air_bottle);
                          }
      
                          if (!playerIn.inventory.addItemStackToInventory(new ItemStack(AirBottle.air_bottle)))
                          {
                              playerIn.dropPlayerItemWithRandomChoice(new ItemStack(AirBottle.air_bottle, 1, 0), false);
                          }
                      }
      
                  return itemStackIn;
              }
          }
      
      

      Membre fantôme
      Je développe maintenant un jeu sur UnrealEngine4


      Contact :…

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

        public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn)
        {
        MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(worldIn, playerIn, true);
        
        if(movingobjectposition == null)
        {
        –itemStackIn.stackSize;
        playerIn.triggerAchievement(StatList.objectUseStats[Item.getIdFromItem(this)]);
        
        if(itemStackIn.stackSize <= 0)
        {
        return new ItemStack(AirBottle.air_bottle);
        }
        
        if(!playerIn.inventory.addItemStackToInventory(new ItemStack(AirBottle.air_bottle)))
        {
        playerIn.dropPlayerItemWithRandomChoice(new ItemStack(AirBottle.air_bottle, 1, 0), false);
        }
        }
        else if(movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK)
        {
        Block block = worldIn.getBlockState(movingobjectposition.getBlockPos()).getBlock();
        if(block == Blocks.lava || Blocks.flowing_lava) // retire || Blocks.flowing_lava si tu ne veux que prendre en compte les sources de lave
        {
        –itemStackIn.stackSize;
        playerIn.triggerAchievement(StatList.objectUseStats[Item.getIdFromItem(this)]);
        
        if(itemStackIn.stackSize <= 0)
        {
        return new ItemStack(item voulu);
        }
        
        if(!playerIn.inventory.addItemStackToInventory(new ItemStack(item voulu)))
        {
        playerIn.dropPlayerItemWithRandomChoice(new ItemStack(item voulu), false);
        }
        worldIn.setBlockToAir(movingobjectposition.getBlockPos()); // optionnel, remplace la lave par de l'air
        }
        else if(block == un autre bloc)
        {
        //une autre action
        }
        }
        
        return itemStackIn;
        }
        

        Rien de compliqué.

        1 réponse Dernière réponse Répondre Citer 0
        • EryahE Hors-ligne
          Eryah
          dernière édition par

          Ok merci beaucoup 🙂
          Je lance mon client


          Javais pas vu , je n’avais aps fais les import
          Mais j’ai une erreur après import sur
          block == Blocks.lava || Blocks.flowing_lava
          The operator || is undefined for the argument type(s) boolean, BlockDynamicLiquid
          Je ne pense pas que les barres verticales sont acceptés comme spérations

          Membre fantôme
          Je développe maintenant un jeu sur UnrealEngine4


          Contact :…

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

            Autant pour moi, la bonne syntaxe est :
            block == Blocks.lava || block == Blocks.flowing_lava

            Et || c’est ou, tu devrais le savoir …

            1 réponse Dernière réponse Répondre Citer 0
            • EryahE Hors-ligne
              Eryah
              dernière édition par

              je n’ai pas encore suivi de cours avancé sur java, juste les premiers. Je prend l’avion pendent 11h le 18, je vais faire presque que sa pendant le trajet ( Je vais essayer en tout cas )


              Resultats : Concluant
              Mais, même avec le Blocks.flowing_lava, impossible d’obtenir mon item en right click un bloc de lave ( non source )
              Mais ce n’est pas grave, avec les fioles de base, tu peut pas remplir la fiole avec de l’eau qui coule

              Membre fantôme
              Je développe maintenant un jeu sur UnrealEngine4


              Contact :…

              1 réponse Dernière réponse Répondre Citer 0
              • P Hors-ligne
                PlagueZ
                dernière édition par

                yop,

                parce que le block flowing lava n’est pas vraiment un block donc tu peut pas le right click il est “considéré comme de l’air” dans le jeu 😉

                “Imagination is more important than knowledge. For knowledge is limited to all we now know and understand, while imagination embraces the entire wo…

                1 réponse Dernière réponse Répondre Citer 0
                • EryahE Hors-ligne
                  Eryah
                  dernière édition par

                  Ok, THX pour le renseignement, je pensais que c’était un bloc avec énormément de metadata moi

                  Envoyé de mon SM-G357FZ en utilisant Tapatalk

                  Membre fantôme
                  Je développe maintenant un jeu sur UnrealEngine4


                  Contact :…

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

                  MINECRAFT FORGE FRANCE © 2024

                  Powered by NodeBB