Faire spawn un mob avec l'event TickEvent.WorldTickEvent


  • Correcteurs

    Bonjour,

    J'aimerais faire spawn un mob à certaines coordonnées à un certain moment de la journée. (Plusieurs coordonnées possibles donc un random)

    Mon soucis c'est qu'une entité semble bien créée mais pas à l'endroit voulu.

    (Il y a un rendu random sur le skin du mob et ça change le skin de tous les mobs de ce type là en même temps si un nouveau apparait avec une nouvelle texture, or quand la fonction est appelée c'est le cas)

    Voyez vous où j'ai mal fais svp?

    public class ServerEvents
    {
        private boolean done = false;
    
        @SubscribeEvent
        public void tileFourgonSpawnEvent(TickEvent.WorldTickEvent event)
        {
            Calendar calendar = Calendar.getInstance();
            Random rand = new Random();
            if(calendar.get(Calendar.HOUR_OF_DAY) == 16 && calendar.get(Calendar.MINUTE) == 32 && calendar.get(Calendar.SECOND) == 0)
            {
                if(!done)
                {
                    done = true;
    
                    int randInt = rand.nextInt(3);
                    EntityBoss1 entity = new EntityBoss1(event.world);
                    if(!event.world.isRemote)
                    {
                        if(randInt == 0)
                        {
                            entity.setPosition(-430, 8, 360);
                            event.world.spawnEntityInWorld(entity);
                        }
                        if(randInt == 1)
                        {
                            entity.setPosition(-430, 9, 360);
                            event.world.spawnEntityInWorld(entity);
                        }
                        if(randInt == 2)
                        {
                            // event.world.setBlock(-430, 10, 360, Blocks.obsidian);
                            entity.setPosition(-430, 10, 360);
                            event.world.spawnEntityInWorld(entity);
                        }
                    }
                }
            }
            else
            {
                done = false;
            }
        }
    }
    

  • Administrateurs

    Salut,
    Il faut que les chunks en question soit chargés au moment du spawn.


  • Correcteurs

    Bah sachant que je suis à l'emplacement du spawn sur Eclipse afin de tester le code, je pense que le chunk est loadé ^^'


  • Administrateurs

    En effet.
    Le setBlock que tu as commenté fonctionne-t-il ?


  • Correcteurs

    Oui, à la base je voulais faire spawn un bloc puis je suis parti sur l'idée d'une entité.

    J'avais essayé avec une autre de mes entités (entends entitiyHorse) et ça avait fonctionné, mais là avec un mob ça ne veut tout simplement pas
    Et j'ai enlevé la condition du Side serveur


  • Administrateurs

    Avec un œuf tu arrives à le faire spawn ? Tu as une erreur dans les logs ?


  • Correcteurs

    Il spawn très bien avec l'oeuf. Pas d'erreur à déplorer de ce côté là