Modifier code vanilla



  • Bonjours à tous !!

    J'aurai encore une fois besoin de votre aide (et oui, vous êtes des bons alors j'en profite ;))
    Voila, je suis en train de faire un mod, mais pour le continuer, j'ai besoin de modifier des classes de forge.

    Alors ce que je sais:

    • Ce n'est pas si facile à faire que ça, il ne suffit pas de modifier les classes puis de compiler le mod
    • J'ai appris que c’était possible avec des coreMods (tutos en anglais, je comprends rien :huh: )

    Ce que je ne sais pas:

    • Comment faire

    Serait-il possible de m'apporter quelques précisions ?

    Merci d'avance ! 😊

    Mugiwaxar


  • Administrateurs

    Tu cherche à modifier quoi exactement ? Car si ça se trouve ce que tu souhaites faire peut être fait avec les events.

    Et franchement, même moi j'ai pas compris comment fonctionne l'asm, ça passe par du byte code, c'est assez complexe. Il faudrait demander à TheCreeper999.



  • Alors pour l'instant ce que je voudrais faire est certainement possible sans modifier les sources vanilla, je voudrais ajouter de nouvelles canes à pêche, et modifier les poissons (ou objets) obtenue suivant la canne tenu en main

    Mais faire ça en utilisant l'asm serait un super entrainement donc je préférerais le faire de cette façon

    Edit: D'ailleur ça a l'air plus compliqué de faire sans


  • Modérateurs

    C'est pas vraiment plus compliqué de faire sans, copie/colle le code de la canne à pêche et modifie selon tes envies 🙂



  • Si jamais regarde ici:
    Item
    Entity


  • Administrateurs

    Créé une nouvelle canne à pèche n'est pas compliqué.



  • Merci pour votre aide !

    Par contre ce n'est malheureusement pas qu'une historie de canne a pêche, même si j'en créer une nouvelle; car ce n'est pas elle qui gère les poissons pêcher
    C'est la classe EntityFishHook (l'hameçon) qui gêre tout, l'objet canne à pêche n'est qu'un vulgaire item :), son code n'a rien de compliqué
    D’ailleurs, la classe EntityFishHook ne fonctionne que si c'est une canne à pêche vanilla qui est tenu en main, sinon l'hameçon ne se lance pas

    Je peut pas créer une nouvelle classe et faire un simple copier/coller de la classe EntityFishHook, la variable fishEntity contenue dans EntityPlayer n'accepte que des objets de type EntityFishHook ( variable utilisé dans la méthode onUpdate() )

    Et au final, je ne peux pas faire une nouvelle classe avec un extends d'EntityFishHook car la classe EntityFishHook est un extends de la classe Entity et appelle ses méthode à l'aide du mot clé "super", avec une sous classe d'EntityFishHook, je ne pourrais donc pas appeler ces méthode (principe de l'encapsulation)

    Donc c'est galêre :dodgy:


  • Administrateurs

    @'kevin_68':

    Si jamais regarde ici:
    Item
    Entity

    Regarde les deux liens que Kévin t'as envoyé.



  • J'avais pas fait gaffe !

    Cette ligne de code viens de répondre à ma question:

    
    super.onEntityUpdate();
    
    

    C'est tout ce qu'il me manquais ^^
    (Enfin j'espère du moin)

    Je vais tout de suite tester



  • Alors j'ai réussit à créer des loots modifié pour des canne à pêche créée, mais impossible pour l'original


  • Administrateurs

    L'originale ça ne va pas être possible sans ASM (il n'existe malheureusement pas d'event pour ça), et je ne peux pas t'aider pour l'asm.



  • Alors y a t'il un moyen de supprimer la recette de l'original ?

    Ou bien de la modifier pour qu'elle donne une des canne a pêche que j'ai créé


  • Administrateurs



  • Super Merci beaucoup 🙂

    Je termine mon mod et je met sujet résolut
    J'ai même réussit à faire un loot différent si on pêche dans la lave avec une canne à pêche spécifique 🆒 (les autre brûle :D)



  • Dernière petit question, comment je peu faire en sorte qu'une entité soit insensible à la lave ??

    J'ai tout essayer, sa marche pas


Log in to reply