Détruire les entités d'item environnantes
-
Dès que suis sur mon PC, je te donne le code pour la 1.7
-
List <entityitem>entitythisList = player.worldObj.selectEntitiesWithinAABB(EntityItem.class, new AxisalignedBB(player.getPosition()).expand(3.D, 1.0D, 3.0D));
–->
List <entityitem>entitythisList = player.worldObj.selectEntitiesWithinAABB(EntityItem.class, player.getBoudingBox().expand(3.D, 1.0D, 3.0D));</entityitem></entityitem> -
List <entityitem>entitythisList = player.worldObj.selectEntitiesWithinAABB(EntityItem.class, player.getBoundingBox().expand(3.D, 1.0D, 3.0D)); for(EntityItem entity : entitythisList) { entity.setDead(); }Erreur sur “selectEntitiesWithinAABB” car il veut rajouter le paramètre IEntitySelector.
Ou bien changer par “getEntitiesWithinAABB”</entityitem> -
Remplace par getEntitiesWithinAABB dans ce cas
-
J’avais testé mais du coup ça me fait crash NPE sur la ligne
“List <entityitem>entitythisList = player.worldObj.getEntitiesWithinAABB(EntityItem.class, player.getBoundingBox().expand(3.D, 1.0D, 3.0D));”</entityitem> -
List <entityitem>entitythisList = player .worldObj .getEntitiesWithinAABB(EntityItem.class, player .getBoundingBox() .expand(3.D, 1.0D, 3.0D));Pour voir où est le NPE</entityitem>
-
Le NPE est sur l’expand
-
Parce que player.getBoundingBox retourne null (ctrl + clic)
List <entityitem>entities = player.worldObj.getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(player.posX - 3, player.posY, player.posZ - 3, player.posX + 3, player.posY + 2, player.posZ + 3)); for(EntityItem entity : entities) { entity.setDead(); } ```</entityitem> -
Ok c’est nice ça. Ce code est fonctionnel.
Du coup je me suis demandé comment rajouter un .class en plus comme argument, pour le moment la fonction que je voulais avoir est bien exécuté, mais bon ce principe de détecter ce qu’il y a dans une boundingBox d’un joueur ça offre pas mal de possibilités en fait.
J’ai tenté
[…].getEntitiesWithinAABB(EntityItem.class || EntityAutre.class , […]Mais la fonction n’est pas bonne.
Il faudrait refaire une liste à chaque fois? Ou ça rejoint le ISelector? -
Avec un ISelector ça devrait marcher (flemme de tester) mais surtout n’utilise pas player.getBoundingBox()
Dans le sélecteur tu vérifie si l’entité est soit un item, soit un zombie, soit un chat, etc … tout ce que tu veux. -
Ouki ça roule ^^
Merci pour le coup de main.