Récupération lien texture



  • Bonjour/Bonsoir,
    Je cherche absolument a trouver un lien viable vers la texture de terre (par exemple), soit dirt.png qui est actuellement chargé par le jeu (donc que ce soit celle de base ou celle d'un resourcepack).
    J'ai déjà essayé de nombreux lien: 
    Par exemple:

    
    File texturedirt = new File("texture:dirt.png");
    File texturedirt = new File("assets/textures/blocks/dirt.png");
    File texturedirt = new File("texture:blocks/dirt.png");
    
    

    Voila 😕 Si vous avez des idées je suis preneur 😄

    Merci d'avance, Pierre



  • tu cherche la texture de la dirt en fichier.png sur ton pc? car j'ai pas très bien compris ta reqête



  • Normalement ça devrait être sa:
    File texturedirt = new File(MODID + ":textures/blocks/dirt.png");
    ou
    [size=smallFile texturedirt = new File("minecraft:textures/blocks/dirt.png");]
    pour la texture de minecraft directement


  • Administrateurs

    Il faut passer par la classe RessourceLocation et non par la classe File.



  • Merci c'est exactement ce que je cherchais, comment ai-je pu être aussi stupide 😄


    Et donc si je veux imaginons copier ce fichier qui est la texture de la terre, et que je ne peut utiliser que la resourcelocation, comment est ce que je peux procéder?



  • Tu peux récupérer le FileInputStream d'un ResourceLocation, de mémoire, et donc ensuite avec un FileWriter en récrire une copie.



  • Ok, mais je suis vraiment pas bon pour ça 😕
    J'ai fait cela:

    
    BufferedReader readIn = new BufferedReader(new InputStreamReader(getClass().getClassLoader()
         .getResourceAsStream("minecraft:textures/blocks/dirt.png"), "UTF-8"));
    
    @SuppressWarnings("resource")
    FileWriter fw = new FileWriter(Minecraft.getMinecraft().mcDataDir + "/Flan/dirt.png");
    
    

    Mais ça ne marche pas 😕



  • Commence par écouter mes conseils, à savoir faire le lien entre un InputStream puis un ResourceLocation, je n'ai à aucun moment mentionner le BufferedReader.
    Une piste:
    Minecraft.getMinecraft().getResourceManager().getResource(location).getInputStream()



  • Merci pour cette réponse Plaigon,
    J'ai donc réussi à réaliser ce que je souhaitais, je me permet de mettre mon code pour que ceux qui chercheraient une solution soient servi 😄

    A déclarer avant le void

    
    private static final ResourceLocation dirt = new ResourceLocation("minecraft:textures/blocks/dirt.png");
    
    

    Dans la fonction
    (A choisir)

    
    File destination = new File(Minecraft.getMinecraft().mcDataDir + "/textures/terre.png");
    
    

    Puis la récupération de la texture:

    
    FileUtils.copyInputStreamToFile(Minecraft.getMinecraft().getResourceManager().getResource(dirt).getInputStream(), destination );
    
    

  • Administrateurs

    Tu n'as pas besoin de mettre minecraft: quand tu veux avoir une texture de Minecraft.