Grief et setblocktoair
-
@‘floriangabet’:
Ok d’acc pour le second , mais le premier je vais essayer si je coince je reviens vers vous merci

edit:
j’ai réussis pour le grief merci!
Par contre l’event que quand on pose un bloc j’ai pas trouvé.BlockEvent.PlaceEvent
-
Merci,
Alors j’ai fais ça j’ai oublier pas mal de chose je sais pas comment savoir si mon entity est a côté et faire le timer dans la class event.
J’ai un problème aussi avec le setblocktoair pour les coords je fais comment je serrai dans le onplaceblock j’aurai fait event.x , event.y … mais dans living je procède comment merci.@SubscribeEvent public void onPlaceBlock(BlockEvent.PlaceEvent event){ EntityLivingBase target = event.player.getAITarget(); World world = event.world; if(event.placedBlock == Blocks.glass && ?)//entity à côté comment faire ?? && [font=Ubuntu, sans-serifd'autres aux alentours ont été posés ? -> je vois pas trop comment peut-etre avec le boundsblock] { System.out.println("bloc de verre placer"); } } @SubscribeEvent public void onLiving(LivingUpdateEvent event){ EntityLivingBase target = event.entityLiving; World world = target.worldObj; if(timer) // ?? world.setBlockToAir(p_147468_1_, p_147468_2_, p_147468_3_); }En tout cas merci

-
J’ai pas compris ce que tu voulais faire
-
Pour le timer il faut pas faire comme ça, regarde par ici : https://github.com/MFFbrokenSwing/FactionMod/blob/master/src/main/java/fr/mff/facmod/core/Homes.java#L110
Tu ne peux pas faire de copier/coller, essai de comprendre -
Ah oui mais je viens d’y penser, je pense qu’utiliser l’event BlockEvent.PlaceEvent ne conviendra pas car il est fired uniquement lorsqu’il s’agit d’un joueur qui place le block. Seulement là on place les blocks grâce à du World#setBlock pas grâce au clic droit qu’aurait fait un joueur. Donc essaie de voir mais je pense que l’event n’est pas déclenché…
Ensuite pour get ton entity à partir des coord’s de ta “prison de blocks de verre”, t’aurais pu te servir des AABB avec la méthode World#getEntitiesWithinAABB, qui t’aurais retourné une liste des entity se trouvant dans ta prison, mais comme logiquement il n’y en aurait qu’une seule, une boucle for ne t’aurait pas servi (un simple taList.get(0) aurait suffi).
Sinon encore une autre alternative aurait été de parcourir la liste World#loadedEntityList, afin de voir si à chaque tour l’entity a pour même coords que celle de ta prison. -
Non il se déclenche pas… pas bien grave j’ai une idée c’est possible de faire en sorte que l’osque le monde “serveur” démarre tout les bloc de vitre du la map soit remplacer par des blocs d’air ?
Logiquement oui mais pour get tout les blocs en verre je fais comment ? -
@‘floriangabet’:
démarre** tout les bloc de vitre** du la map
Sa c’est juste impossible à faire. Le seul moyen aurait été d’avoir accès au constructeur de la classe du block de vitre, et qu’à chaque nouvelle instance, on l’ajoute à une liste, qu’on aurait ensuite parcouru pour ce que tu souhaites faire, mais comme on peut pas modif les .class…
-
@‘Plaigon’:
@‘floriangabet’:
démarre** tout les bloc de vitre** du la map
Sa c’est juste impossible à faire. Le seul moyen aurait été d’avoir accès au constructeur de la classe du block de vitre, et qu’à chaque nouvelle instance, on l’ajoute à une liste, qu’on aurait ensuite parcouru pour ce que tu souhaites faire, mais comme on peut pas modif les .class…
Je me suis tromper je voulais dire block d’air c’est quand même impossible ?
-
Sa ne change pas grand chose, même problème.
Après je n’ai pas pris le temps de chercher dans ma workspace 1.7x, mais de toutes manières je pense que c’est difficilement réalisable sans utiliser la réflexion, ou sans avoir à portée de main un PC gamer à 2000 balles
-
Et en les changeant au fûr et à mesure du chargement des chunks, ça ne le ferai pas ?
Avec l’event ChunkEvent.Load (je crois) tu parcours les blocs du chunk (16 x 16 x 256) et si un bloc est une vitre, on le remplace par le l’air -
@‘BrokenSwing’:
Et en les changeant au fûr et à mesure du chargement des chunks, ça ne le ferai pas ?
Avec l’event ChunkEvent.Load (je crois) tu parcours les blocs du chunk (16 x 16 x 256) et si un bloc est une vitre, on le remplace par le l’airAu pire c’est bon vous inquiétez pas je vais changer de sort pour mon mod merci en tout cas les copains
