Résolu Afficher un message quand on vise un bloc
-
Yellow tout le monde !
Je cherche à afficher un message si je vise un bloc spécifique
Mais je ne sais pas comment faire, je sais qu’il doit y avoir l’utilisation de MovingObjectPosition et du MouseOver mais je ne sais trop comment procéder
Je pense qu’il faut que je passe par l’event **RenderGameOverlayEvent.Text **mais après pour organiser le code je ne sais pas comment faire
Merci de votre aide
-
tu as une fonction dans World qui retourne le block visé il me semble
-
Tu saurais le nom ?
-
@SubscribeEvent @SideOnly(Side.CLIENT) public void renderGameOverlay(RenderGameOverlayEvent.Text event) { EntityPlayer player = Minecraft.getMinecraft().thePlayer; MovingObjectPosition mov = player.rayTrace(4D, event.partialTicks); if(mov != null && mov.typeOfHit == MovingObjectType.BLOCK) { event.left.add(I18N.getString(player.worldObj.getBlock(mov.blockX, mov.blockY, mov.blockZ).getLocalizedName())); } }
(4D est la distance).
-
Sujet résolu, je viens de trouver comment faire !
Pour les petit intéressés,
if(this.mc.objectMouseOver != null && this.mc.objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { BlockPos blockpos = this.mc.objectMouseOver.getBlockPos(); Block block = this.mc.theWorld.getBlockState(blockpos).getBlock(); //Action à réaliser }
-
public MovingObjectPosition rayTraceBlocks
-
trop de réponse en même temps ^^