Cascading Worldgen Lag



  • Bonjour,

    Dans mon mod, j'ai besoin que lorsque ma structure dans le village spawn, elle fasse une petite modification à toutes les autres structures. J'ai donc enregistré les autres structures à sa création :

    
        private final List <structurecomponent>pieces;
    
        public StructureStyxStart(StructureVillagePieces.Start start, List <structurecomponent>pieces, int type, Random rand, StructureBoundingBox sbb, EnumFacing facing) {
            super(start, type);
    
            this.setCoordBaseMode(facing);
            this.boundingBox = sbb;
            this.pieces = pieces;
        }
    
    

    Et lorsque je la construis, j'appelle une fonction anonyme pour modifier les autres structures (ici rajouter un block d'or dans chaque structure) :

    
    public boolean addComponentParts(World worldIn, Random randomIn, StructureBoundingBox sbbIn) {
    
            this.pieces.forEach(piece -> { 
                final StructureBoundingBox sbb = piece.getBoundingBox();
                final BlockPos posMin = new BlockPos(sbb.minX, sbb.minY, sbb.minZ);
    
                worldIn.setBlockState(posMin, Blocks.GOLD_BLOCK.getDefaultState());
            });
    
    

    Tout fonctionne, mais j'obtiens ce message d'erreur :

    [16:26:39] [Server thread/WARN] [FML]: Styx loaded a new chunk (53, 226  Dimension: 0) during chunk population, causing cascading worldgen lag. Please report this to the mod's issue tracker. This log can be disabled in the Forge config.
    [16:26:39] [Server thread/WARN] [FML]: Styx loaded a new chunk (53, 227  Dimension: 0) during chunk population, causing cascading worldgen lag. Please report this to the mod's issue tracker. This log can be disabled in the Forge config.
    [16:26:39] [Server thread/WARN] [FML]: Styx loaded a new chunk (52, 227  Dimension: 0) during chunk population, causing cascading worldgen lag. Please report this to the mod's issue tracker. This log can be disabled in the Forge config.
    [16:26:39] [Server thread/WARN] [FML]: Styx loaded a new chunk (53, 228  Dimension: 0) during chunk population, causing cascading worldgen lag. Please report this to the mod's issue tracker. This log can be disabled in the Forge config.

    Qu'est-ce qui s'est mal passé… ?</structurecomponent></structurecomponent>



  • Salut.
    Je pense que quand tu génère le bock sur les structures, celles-ci ne sont pas générés et même je pense le chunk n'est pas généré. Donc quand tu set le block, minecraft généré le chunk.
    Pour corriger ça il faut changer la manière dont tu ajouter le block : il faut que tu enregistre les structures qui on besoin de se block et en utilisant un évent qui s'exécute quand une structure est généré, tu regardes si la structure appartient à la list des structures enregistrés. Si c'est le cas, tu set le block.



  • @'LeBossMax2':

    Salut.
    Je pense que quand tu génère le bock sur les structures, celles-ci ne sont pas générés et même je pense le chunk n'est pas généré. Donc quand tu set le block, minecraft généré le chunk.
    Pour corriger ça il faut changer la manière dont tu ajouter le block : il faut que tu enregistre les structures qui on besoin de se block et en utilisant un évent qui s'exécute quand une structure est généré, tu regardes si la structure appartient à la list des structures enregistrés. Si c'est le cas, tu set le block.

    Cela correspond à toutes les structures du village de Minecraft, sinon peut-être que ce serait plus simple que je crée mon propre village custom parce que je modifie complètement les structures (le block était un éxemple)


    Bon, j'ai fait autrement, donc je mets ce post en résolu et je vais en poster un autre