Chercher les textures de la BDD de minecraft


  • Bonjour a tous ! comme vous le savez , je vais créer un facecamo , (si vous savez pas ce que c’est , go Google ).
    J’ai déjà ma petite idée pour faire la texture changeante ( via variable + touche ).
    Mais le problème n’est pas la , je voudrais lier ma texture a un pseudo minecraft ( par exemple , la variable qui permet de changer la texture est sur trois , CAD moi ) : je veux que la texture prise ne soit pas dans mes dossiers , mais qu’il aille prendre la texture de dadax7684 ( moi ).
    Je sais que c’est pas trés clair , mais si vous avez compris , merci d’avance de vos réponses.

    PS : voila ma classe actuellement :

    package mods.nono.MGSmod.armures;
    
    import java.util.EnumSet;
    
    import mods.nono.MGSmod.common.D_Tabs;
    import net.minecraft.client.renderer.texture.IconRegister;
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.EnumArmorMaterial;
    import net.minecraft.item.ItemArmor;
    import net.minecraft.item.ItemStack;
    import net.minecraft.world.World;
    import cpw.mods.fml.common.TickType;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    
    public class Facecamo extends ItemArmor
    
    {
    public static int Camo;
    public static String No;
    
    public Facecamo(int par1, EnumArmorMaterial par2EnumArmorMaterial, int par3, int par4)
    {
    super(par1, par2EnumArmorMaterial, par3, par4);
    this.setCreativeTab(D_Tabs.MGSArm);
    }
    
    public String getArmorTexture(ItemStack stack, Entity entity, int slot, int layer)
    {
    //return "/mods/nono/MGSmod/textures/armors/octo_2.png";
    return No;
    }
    
    @SideOnly(Side.CLIENT)
    
    public void registerIcons(IconRegister par1IconRegister)
    {
    itemIcon = par1IconRegister.registerIcon("nono/MGSmod:"+getUnlocalizedName().substring(5));
    }
    
    public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack)
    {
    return true;
    }
    
    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
    {
    Camo +=1;
    return stack;
    
    }
    
    public void tickEnd(EnumSet <ticktype>type, Object… tickData)
    {
    // texture de base
    if (Camo == 0)
    {
    No = "/mods/nono/MGSmod/textures/armors/octo_1.png";
    }
    // solid snake
    if (Camo == 1)
    {
    No = "/mods/nono/MGSmod/textures/armors/solidsnake.png";
    }
    // naked snake
    if (Camo == 2)
    {
    No = "/mods/nono/MGSmod/textures/armors/nakedsnake.png";
    }
    // raiden
    if (Camo == 3)
    {
    No = "/mods/nono/MGSmod/textures/armors/Raiden.png";
    }
    //cyberraiden
    if (Camo == 4)
    {
    No = "/mods/nono/MGSmod/textures/armors/RaidenCyborg.png";
    }
    
    // retour a zero
    if (Camo >= 5)
    {
    Camo = 0;
    }
    
    }
    
    }
    ```</ticktype>
  • Administrateurs Rédacteurs Moddeurs confirmés

    J’ai pas très bien compris, tu veux appliqué une texture qui vient de là :
    http://skins.minecraft.net/MinecraftSkins/joueur.png à ton armure ?


  • Ouais , c’est ça

  • Administrateurs Rédacteurs Moddeurs confirmés

    Essaye de mettre un url dans le getArmor.
    Si c’est pas bon, il faudrait utiliser une autre méthode que getArmor, et ça risque d’être très compliqué :s


  • ça n’as pas marché … j’ai mis cette URL : http://skins.minecraft.net/MinecraftSkins/Cretindelacorse.png


  • Up
    Personne n’aurait la solution ?


  • nan désolé, je ne suis pas du tout calai sur les URL :(, sinon crois moi je t’aiderai.

  • Administrateurs Rédacteurs Moddeurs confirmés

    Regarde comment le jeu fait pour les skin de minecraft, mais je pense que ça va pas être facile comme la méthode getArmorTexture et un String, il faudrait limite refaire toute l’armure, je regarde ça cette après midi.


    Après avoir étudié le code de forge, c’est ce code qui donne la texture :

    this.loadTexture(ForgeHooksClient.getArmorTexture(par1EntityLiving, itemstack, "/armor/" + bipedArmorFilenamePrefix[itemarmor.renderIndex] + "_" + (par2 == 2 ? 2 : 1) + ".png", par2, 1));
    

    loadTexture ne supporte pas les url, mais il y a loadDownloadableImageTexture qui supporte les url. Le problème, c’est que ce code se trouve dans RenderBiped ou RenderPlayer, et je vois vraiment pas comment faire ce que tu veux sans modifier cette classe.