Rendre la seconde main



  • Bonjour à tous.
    Pour mon mod j'aurais besoin d'avoir les deux mains rendues en même temps.
    Avez vous des pistes ou des aides pour cela ?

    EDIT :
    Dans la classe RenderPlayer.class, j'ai trouvé une méthode publique "renderRightArm" et une autre "renderLeftArm". Seulement, elles requiert un arguments de type AbstractClientPlayer. Quelqu'un sait si je dois mettre mon code dans les event, comment j'instanci RenderPlayer ainsi que comment je gère l'argument ?



  • Salut,
    je pense que tu peux placer ton code dans une méthode-event RenderHandEvent ou même RenderSpecificHandEvent. Pour l'instance de RenderPlayer, l'event te proposera peut-être un field renderer de type RenderPlayer, à toi de voir. Et pour l'instance de la classe AbstractClientPlayer, tu peux cast le field Minecraft.getMinecraft().thePlayer.



  • Rien à faire je ne trouve rien qui instancie RenderPlayer



  • Alors tu as une variable private de RenderPlayer dans la classe RenderManager, elle-même accessible via un getter dans la classe Minecraft.
    Du coup tu peux avec ObfuscationReflectionHelper#getPrivateValue, obtenir ton instance souhaitée.



  • Je ne comprends pas la dernière valeur a mettre dans le ObfuscationReflectionHelper#getPrivateValue



  • C'est l'index de la variable que tu souhaites accéder. Tu peux soit mettre un tableau de String qui contiendra en premier, le nom non-obfusqué de la variable, puis en second string, celui obfusqué (sers toi alors des mappings forge correspondant à ton build de forge). Ou tu peux mettre un int qui indique la place de ta variable en partant du haut de la classe, vers le bas. En gros si ta variable est la 5ème déclarée depuis le début ta classe, tu devras mettre 4 comme on commence à 0.



  • D'accord et je stocke où tout ça ?



  • Tu demandais ce qu'il fallait mettre dans le dernier paramètre nommé index, je t'ai répondu.