Texture a la c&# !
-
Y a des fois, allez savoir pourquoi, tous roule sans problème… et puis y a des jours, rien ne veux marchais
Aujourd’hui, j’enchaîne ^^’
Après avoir optimisé le code grâce a votre aide, je me suis attaqué a implémenter la partie pour utilisé des textures de block de Minecraft (en l’occurance, je souhaitai créer un block de flamme qui pop en l’air, puis s’écrase au sol).
J’adapte donc mon code, et j’obtient “minecraft:fire” comme ModelResourceLocation dans ma fonction “mesher.register”.
J’ai donc :
-> modid = minecraft
*> nom du fichier = fireJe me dis : “super ca vas marché sans problème cette fois !”
et la magnifique :[17:58:05] [Client thread/ERROR] [FML]: Model definition for location jodgelibrary:jfire#normal not found [17:58:05] [Client thread/ERROR] [FML]: Model definition for location jodgelibrary:jfire#inventory not found
Je vérifie donc que je passe les paramètres dans le bon ordre, et c’est correcte…
Ducoup je présume que l’erreur viens simplement du fait qu’il faut faire référence au .json de minecraft différemment, mais je ne sais pas comment (et apparemment google non plus)^^’
Ça aurai pus s’arrêter la, mais un peu maso, j’ai décidé de vérifier si le vieu block que j’avais créer pour tester la viabilité de ma classe JBlock fonctionnais (je l’avais jamais finis)
Je fais deux trois modif pour lui donner ces .json, et ca marché ! a moitie… Le block dans le monde s’affiche correctement, en revanche, dans la main, non.
J’ai dons relis le tuto sur les Block basique de ce forum, ainsi que celui de 2 autre forum (anglais) et… bha j’ai exactement ce qui est demandé ^^’ Je tente une ultime vérification avec les fichier de minecraft, et … J’ai toujours la même chose (adapter au niveau du nom et du modid).Vue que ça ne semble pas vouloir aujourd’hui, je demande l’aide d’un œil extérieure (d’autant plus que le problème est sans doute une connerie qui me saute tellement aux yeux que j’y fait pas gaffe) ^^’
Voila les classes évoqué (GitHub) :
Fonction pour référencer les textures : jodgeLibrary.proxy.ClientProxy
Racine du block chutant : jodgeLibrary.common.block.JFallingBlock
Block de flamme pouvant tomber : jodgeLibrary.common.block.JFireBlock
Classe contenant la fonction “commonInit” (appeler dans tout les constructeurs) : jodgeLibrary.common.function.JFunction
Racine d’un block basique : jodgeLibrary.common.block.JBlock
classe du copperOre (attention c’est très … vide X) ) : universalOres.common.CopperOre
classe ou st générer le copperOre : universalOres.common.Main
dossier des textures du 2nd block (y en a pas pour le premier, je veux utilisé celle de minecraft) : assets.universalores -
https://github.com/Jodge65/src/blob/master/main/java/fr/Jodge/jodgeLibrary/proxy/ClientProxy.java#L31
Tu appel cette fonction où ? -
@‘robin4002’:
https://github.com/Jodge65/src/blob/master/main/java/fr/Jodge/jodgeLibrary/proxy/ClientProxy.java#L31
Tu appel cette fonction où ?Cette fonction est appeler dans ce que tu m’as aidé a faire hier :
https://github.com/Jodge65/src/blob/master/main/java/fr/Jodge/jodgeLibrary/common/function/JFunction.java#L439Elle même appeler ici (fall fire) :
https://github.com/Jodge65/src/blob/master/main/java/fr/Jodge/jodgeLibrary/common/block/JFallingBlock.java#L45et ici (copperOre) :
https://github.com/Jodge65/src/blob/master/main/java/fr/Jodge/jodgeLibrary/common/block/JBlock.java#L51 -
Ce qui étrange c’est que tu as bien mit minecraft pour la texture et pourtant il le cherche quand même ici :
[17:58:05] [Client thread/ERROR] [FML]: Model definition for location jodgelibrary:jfire#normal not found
[17:58:05] [Client thread/ERROR] [FML]: Model definition for location jodgelibrary:jfire#inventory not foundAu pire copie le json du feu dans ton mod.
-
C’est ce que je pensais faire au début, puis je me suis dit que si je veux que mon bloque s’adapte parfaitement aux textures pack, le mieux serai d’avoir une référence directe au .json maître du feu dans minecraft.
Mais si je m’en retrouve forcé, je me plierai a cette solution au final ^^
En revanche, avant d’en arrivé a cette solution de fortune, je voudrai résoudre le 2nd problème, car je me demande si les deux problèmes ne sont pas étroitement lié (le fait que la texture dans l’inventaire de copperOre soit buguer mais pas dans le monde, et le fait que la texture minecraft ne puissent être atteinte)
-
https://github.com/Jodge65/src/blob/master/main/resources/assets/universalores/models/item/copperOre.json
Ce json est bien enregistré ? -
Si par enregistrer tu entend que le fichier existe, et n’est pas ouvert ailleurs, alors oui. Tu a sur GitHub mon dossier a tel qu’il est, directement importé depuis mon Disque Dur
-
Non, enregistrer je parle de la ligne avec l’itemMesher.
-
Hé bien…
CopperOre appelle le constructeur de JBlock, qui fait appelle a ma fonction commonInit, qui fait apelle à : Main.proxy.registerTexture(obj, textureName, modidTexture);
Les données qui arrive sont donc :
obj : copperOre (block)
textureName : copperOre
modidTexture : universalores
soit : mesher.register((Block) obj, 0, new ModelResourceLocation(modidTexture + “:” + textureName , “inventory”));donc j’enregistre avec ma fonction uniquement le fichier dans blockstate (tous comme c’est le cas dans tous les tuto que j’ai trouvé, y compris [celui-ci](http://www.minecraftforgefrance.fr/showthread.php?tid=1903#classe principale))
-
Non, le fichier dans blockstate est enregistré de base avec le GameRegistry.registerBlock.
La ligne mesher.register((Block) obj, 0, new ModelResourceLocation(modidTexture + “:” + textureName , “inventory”)); enregistre bien le fichier dans model/item
Dans ce cas je ne sais pas pourquoi il ne s’affiche pas -
what ?
GameRegistry.registerBlock permet aussi de géré le model ? Du coup ca explique le premier problème, mon fichier .json n’existe pas pour le feu ^^’Mais mon problème d’affichage persiste tous de même ^^’
-
Il y a des erreurs dans les logs ?
-
La seul et unique indication qui apparaît dans les log est :
[22:38:36] [Client thread/INFO]: Created: 512x512 textures-atlas [22:38:36] [Client thread/ERROR] [FML]: Model definition for location jodgelibrary:jfire#normal not found [22:38:36] [Client thread/ERROR] [FML]: Model definition for location jodgelibrary:jfire#inventory not found [22:39:05] [Server thread/INFO]: Starting integrated minecraft server version 1.8
le reste c’est du log normal
-
Rien dans les logs concernant ton copper ?
-
nada (a part l’information que j’affiche a savoir “[fr.Jodge.jodgeLibrary.common.function.JLog:write:11]: universalores:copperOre” pour voir si les nom corresponde)
EDIT : j’ai copier le copperOre de blockstate dans jodgeLibrary, je l’ai appeler jfire, et … Même problème, la version inventaire ne s’affiche pas, mais la version world oui