SOLVED 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

  • Moddeurs confirmés Modérateurs

    tu as une fonction dans World qui retourne le block visé il me semble


  • Tu saurais le nom ?

  • Administrateurs Rédacteurs Moddeurs confirmés

    ​    @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
            }
    
  • Moddeurs confirmés Modérateurs

    public MovingObjectPosition rayTraceBlocks

  • Moddeurs confirmés Modérateurs

    trop de réponse en même temps ^^