Comment créer une Energie ?



  • Bonjour, je voudrais ajouter a mon mod des machines qui fonctionnent avec de l’énergie(genre vapeur et Electricité) mais je voie pas trop comment faire 
    Quelqu'un peut-il me renseigner ?
    A ce que je sais il n'y a pas de tuto pour ça sur le forum



  • Il n'y a pas de tutoriels car c'est assez compliqué et long à faire et qu'il y a plein de choses auxquelles penser.
    Il y a déjà des API sur Internet, il suffit de les chercher. Sinon je suis actuellement en train de faire une API pour ça qui permet d'ajouter ses propres fluides customs mais il me reste à tester, et pourquoi pas, voir si je peux optimiser des choses avec d'autres personnes qui s'y connaissent (même si j'ai fait le code le plus propre possible).



  • Oui je voie mais moi je voudrais en créer une pour que mon mod reste indépendant


  • Rédacteurs

    Bah du coup tu n'as pas d'autre moyen que tu débrouiller même si on peut t'aider si tu bloques. Une énergie ça peut être n'importe quoi, c'est juste un chiffre dans le code il te faut définir certaines choses :

    • Moyen de production
    • Stockage
    • Transport
    • Qu'est ce qui peux consommer l'énergie

    J'ai sûrement oublié des trucs mais fait déjà ça



  • Je te conseille de voir les sources de mods comme Ender Io ou Thermal Expension pour savoir comment ils ont cree leur energies et leur fonctionement



  • Personnellement un totu de se style serait cool car c'est bien bete que MFF n'en fasse pas alors que la plupart des mods passe via energie =p


  • Rédacteurs

    Oui mais pour créer une énergie il n'y a pas 1, ni 2, ni 3 façons de faire, il y en a beaucoup plus, c'est vraiment selon les préférences du dev



  • Moi je te conseille de faire comme dans mon mod : tu extrais l'API de CoFH comme ça ton mod est indépendant et compatible avec les autres mods



  • ok je prend notes mais comment je met ca en sous forme de class c'est la soucis ?

    Pour moi le transport ce ferait pas des blocks(type "cables"), le stockage un peut dans les machines et dans un block specifique ainsi que la consomation sera le travail des diverses machines de mon mod

    EDIT : c'est pas un mauvaise idée SCAREX mais je préférerai en coder une pour pouvoir y mettre ce que je veut et puis en plus j'aime pas tellement cette API de CoFH j'en n'ai de très mauvais souvenirs



  • Après tu peux utiliser n'importe laquelle mais je te conseille de mettre l'API dans le jar de ton mod comme ça ton mod sera indépendant. En revanche c'est assez compliqué de créer des cables etc.



  • Le truc avec COFH c'est qu'il n'y a pas les sources du système de distribution, et si tu fais ta propre API, je te conseillerais d'ajouter une compatibilité avec d'autres systèmes d'énergie pour pouvoir ajouter ton mod à des modpacks.



  • @'AymericRed':

    Le truc avec COFH c'est qu'il n'y a pas les sources, et si tu fais ta propre API, je te conseillerais d'ajouter une compatibilité avec d'autres systèmes d'énergie pour pouvoir ajouter ton mod à des modpacks.

    Absolument pas, le CoFHCore et le CoFHLib ainsi que la CoFH API est totalement open source



  • d'accord mais comment je suis sensé creer une api



  • @SCAREX J'ai oublié de préciser "du système de distribution".

    Tu dois faire ce qu'a dit BrokenSwing, mais il y a plein de manières de procéder.



  • D'accord mais je fait comment pour faire ça dans la class ?
    J'ai aucune idée de comment mettre ça sous forme de code



  • Alors tous d’abord, créer une API d'énergie c'est fortement déconseillé : C'est long, c'est compliqué, et ce sera incompatible avec les autres. Ton mod sera donc inutilisé puisque les gens cherche de plus des mod qui fonctionnent ensemble. Tu as 3 API existences (RF, MJ, UE), les 2 premiers sont totalement compatibles entre elle, la 3eme tombe dans l'oublie parce que seul Industrial Craft l'utilise, et elle n'est pas compatible (sauf par l'intermédiaire de Mékanism). Le mieux est donc d'utilisé une des 2 premiers API (tu as en plus beaucoup d'exemple sur Internet).

    Si vraiment tu tien à créer ta propre API, pour commencé, sache qu'il te faudra de très solide base en Java. Une API n'as rien a voir avec du modding Forge. Il faut certes assurer l’inter-compatibilité (en utilisant des class Minecraft & Forge), mais tu ne pourra pas simplement ajouté "deux trois ligne de code" dans les class d'objet.

    Il faut dans un tous premier temps que tu mette au point une class indépendante capable d'enregistrer (de quelque façon que ce soit & persistant à la sauvegarde) le contenu actuel en énergie d'un block/item.
    Il faut aussi que tu créer une class capable de gérer le déplacement d'énergie (il faut donc des algorythme capable de transfert l'energie, comme la redstone, mais en plus compliqué puisqu'il faut aussi gérée la valeur total du circuit. Il ne faut pas modifier le total du circuit)
    Bien évidemment, une fois le transfert assurer, il faut une class capable de gérer l'ajout d'énergie dans un circuit, et la soustraction. Ça à l'air simple au premier abord, un simple plus ou moins, mais ce n'es pas le cas. L'énergie ajouté/enlever doit être gérer sur l'ensemble du circuit (une machine en bout de câble ne pourra pas recevoir autant d'énergie que celle en début de câble, tous comme le générateur ne pourra pas ajoutez plus que la limitation des cables).
    Une fois les 3 gros morceaux fait, il faut que tu mettent en place un système d’interconnexion (généralement, on utilisé les InterfaceJava).
    Il faut aussi que tu créer plusieurs class pour "adapter" et/ou rajouter des crafts (ex : adapté les craft du four au four éléctrique)
    L'ensemble des fonctionnalités situé dessus doit pouvoir fonctionner SANS aucun aucune dépendance.

    6eme étape, lorsque tous est prêt, tu peu enfin créer ton mod. Tu peu alors utilisé ton (ou tes) InterfaceJava pour rajouter les fonctionnalités nécessaire, et effectuer les branchements correctes avec tes blocks.

    Lorsque toute les ces étapes sont finis, tu as une API fonctionnel. J'insiste sur fonctionnel car il reste une étape très compliqué, et presque indispensable maintenant : gérer la compatibilité avec les autres API. Il faut donc reprendre les 3 premiers étapes et adapter pour chaque type d’énergie en entrée et sortie (branché tes câble sur une machine EnderIO devrai pouvoir fonctionné, il faut donc fournir l’énergie d'EnderIO au block et/ou récupérer l’énergie.).

    Après ce n'est ici qu'une méthode bateau. Il est évidant que certaine chose peuvent changé selon le fonctionnement souhaité.



  • Ok bah en fait comme je suis pas le meilleur du meilleur en java (et que ça a l'aire EXTREMENT COMPLIQUER) je vais peut-etre utiliser cofh.
    Mais je dois mit prendre comment pour utiliser un api ?



  • Je ne crois pas avoir vue de tuto français sur ça… Après j'ai pas fait énormément de recherche, j'ai juste ce lien que j'avais perdu dans mes favoris ^^'



  • ok mais ca me dit pas comment faire



  • @'SpyMan':

    ok mais ca me dit pas comment faire

    Je comptais réaliser un tuto sur comment utiliser l'api de CoFH lorsqu'elle allait sortir en 1.10, malheureusement vu qu'elle n'est pas encore sortie marque ce dont tu as besoin ici et je t'expliquerai comment t'y prendre, en revanche tu dois bien connaître le java ainsi que la programmation sous forge, car c'est assez compliqué (pour te dire j'ai passé ma journée d'hier à expliquer à mosca comment faire un pulvériseur). Donc ne t'attends pas à ce que j'explique les bases