Génération d'items dans le coffre d'une structure



  • Bonjour !

    Je suis en train de créer un mod pour minecraft 1.7.10.
    Je me suis mis à la création d'une structure se présentant sous la forme d'un coffre seul a la surface.
    J'ai aussi créé un item mais lui marche sans problème.
    Le problème vient quand j'essaie de générer cette item dans le coffre via un

    WeightedRandomChestContent.generateChestContents();
    

    L'item est bien généré dans le coffre mais il y en à toujours d'autres qui sont générés à cotés du coffre comme cela :

    Ce qui est génant …

    Voici les classes utilisées si vous avez besoin de plus de renseignements n'hésitez pas !

    La première classe :

    package com.sigma_philein.sigma.init;
    
    import java.util.Random;
    
    import com.sigma_philein.sigma.structures.Treasure;
    
    import net.minecraft.item.ItemStack;
    import net.minecraft.util.WeightedRandomChestContent;
    import net.minecraft.world.World;
    
    public class StructureGen
    {
       public static final String treasure = "treasure";
    
       WeightedRandomChestContent[] hey = {new WeightedRandomChestContent(new ItemStack(itemMod.limber),1,2,1)};
    
       public boolean generate(String string, World world, Random random, int x, int y, int z)
       {
           switch(string)
           {
               case treasure:
                   Treasure.init(world, hey, random, x, y, z);
                   break;
    
           }
    
           return true;
       }
    }
    

    La seconde classe :

    package com.sigma_philein.sigma.structures;
    
    import java.util.Random;
    
    import net.minecraft.init.Blocks;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.tileentity.TileEntityChest;
    import net.minecraft.util.WeightedRandomChestContent;
    import net.minecraft.world.World;
    
    public class Treasure
    {  
    
       public static void init(World world,  WeightedRandomChestContent[] content,Random rand, int x, int y, int z)
       {  
    
           if(world.getBlock(x, y-1, z) == Blocks.grass && world.getBlock(x, y+7, z) == Blocks.air)
           {
    
               world.setBlock(x, y, z, Blocks.chest);
    
                       TileEntityChest chest = (TileEntityChest)world.getTileEntity(x, y, z);
    
                       if (chest != null)
                       {
                           WeightedRandomChestContent.generateChestContents(rand , content, chest, 1);
                       }
    
               }
    
        }
        //addDungeonLoot(new ItemStack(itemMod.limber), 100,1,2);
    }
    

    Merci

    Sigma



  • tu a d'autre mods dans t'es tests ?



  • @'Riizn':

    tu a d'autre mods dans t'es tests ?

    Absolument pas
    La solitude totale …

    Personne ?


  • Administrateurs

    Le coffre est-il plein d'item ?



  • @'robin4002':

    Le coffre est-il plein d'item ?

    Non il n'y en a qu'un ou deux par coffre comme prévu …


  • Administrateurs

    Étrange que ça en spawn en-dehors du coffre alors …
    Je ne sais pas trop d'où ça peut venir.



  • Tu a suivie le tuto sur le forum ou tu la fait de toi même ?



  • @'Riizn':

    Tu a suivie le tuto sur le forum ou tu la fait de toi même ?

    Je l'ai fait moi même mais en m'inspirant un peu de ce que j'ai trouvé sur internet mais pas sur ce forum …



  • @'robin4002':

    Étrange que ça en spawn en-dehors du coffre alors …
    Je ne sais pas trop d'où ça peut venir.

    Les items spawnent aussi dans le coffres mais il y en a 2 fois plus qui spawnent en dehors (genre un coffre avec 2 items aura 4 items qui lootent au sol)
    Oui c'est bizarre …



  • Bah regarde sur ce forum je croit qu'il y a un tutoriel.

    EDIT : https://www.minecraftforgefrance.fr/showthread.php?tid=2358
    Voilla je savait bien qu'il y en avait 1

    et puis on ne peux rien faire sans le code actuelle donc suis ce tuto.

    RE_EDIT: Je te prévient que les doubles postes sont interdit va lire les régles si tu ne la pas encore fait.



  • @'Riizn':

    Bah regarde sur ce forum je croit qu'il y a un tutoriel.

    J'ai cherché mais j'ai rien trouver …



  • Tu a vraiment chercher car j'ai pas l'impréssion car dans la page 1 j t'es donné le lien . . .



  • @'Riizn':

    Bah regarde sur ce forum je croit qu'il y a un tutoriel.

    EDIT : https://www.minecraftforgefrance.fr/showthread.php?tid=2358
    Voilla je savait bien qu'il y en avait 1

    et puis on ne peux rien faire sans le code actuelle donc suis ce tuto.

    RE_EDIT: Je te prévient que les doubles postes sont interdit va lire les régles si tu ne la pas encore fait.

    J'ai pas fait de double poste … 😕
    Et j'ai mis le code ...

    Merci quand même



  • Tu as donné le lien dans un edit, donc il l'avais pas vu. Et le tuto que t'as donné, c'est pas pour une structure personnalisée, c'est pour les structures vanilla.



  • @'AymericRed':

    Tu as donné le lien dans un edit, donc il l'avais pas vu. Et le tuto que t'as donné, c'est pas pour une structure personnalisée, c'est pour les structures vanilla.

    Oui c'est ce que j'allais dire moi je cherche pour une structure custom, j'avais vu ce tuto mais il ne correspond pas se que je cherche à faire en effet …
    Parce que j'ai réussi à modifier le ChestGenHook sans problème ...



  • Sa peux s'adapter pour sa structure



  • @'Riizn':

    Sa peux s'adapter pour sa structure

    Comment ??
    C'est les coffre des structures qui se génèrent de base (mineshaft, temple, stronghold) mais la je crée une structure avec un coffre tout seul et des items dedans … On peux pas générer de coffre avec un ChestGenHook dans une structure ...



  • Je ne le savait pas autans pour moi 😕 ^^'



  • @'Riizn':

    Je ne le savait pas autans pour moi 😕 ^^'

    Ah désolé …



  • @'Riizn':

    Je ne le savait pas autans pour moi 😕 ^^'

    Ah oui dsl …

    Personne ne sait du coup ?