• Bonjour je vien de import les code source de thirst mod dans mon mod forge je voudrait cree un bouteille d eau avec mes texture pas ce de thirst mod car ses les bouteille normal alor j ai cree un item drink mais je sais pas comment faire pour mettre un textrue

    code de la classe ItemDrink

    package com.thetorine.thirstmod.core.content;
    
    import java.util.List;
    import java.util.Random;
    
    import com.thetorine.thirstmod.core.client.player.ClientStats;
    import com.thetorine.thirstmod.core.main.ThirstMod;
    import com.thetorine.thirstmod.core.player.PlayerContainer;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.init.Items;
    import net.minecraft.item.EnumAction;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.potion.PotionEffect;
    import net.minecraft.util.IIcon;
    import net.minecraft.world.World;
    
    public class ItemDrink extends Item {
    public int itemColour;
    public int itemStackSize;
    public boolean specialEffect;
    public boolean alwaysDrinkable;
    public Item returnItem = Items.glass_bottle;
    public ItemStack recipeItem;
    
    private IIcon drinkable;
    private IIcon overlay;
    
    public int thirstHeal;
    public float saturationHeal;
    public float poisonChance;
    public boolean curesPotion;
    
    public int hungerHeal;
    public float hungerSatHeal;
    
    public int potionID;
    public int duration;
    
    public ItemDrink(int thirst, float saturation, int colour, int stacksize, boolean effect, boolean drinkable, String name) {
    this.thirstHeal = thirst;
    this.saturationHeal = saturation;
    this.itemColour = colour;
    this.specialEffect = effect; 
    this.alwaysDrinkable = drinkable;
    
    this.setUnlocalizedName(name);
    this.setCreativeTab(ThirstMod.thirstCreativeTab);
    this.setMaxStackSize(stacksize);
    }
    
    @Override
    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
    if(canDrink(player) || alwaysDrinkable || player.capabilities.isCreativeMode) {
    player.setItemInUse(stack, getMaxItemUseDuration(stack));
    }
    return stack;
    }
    
    @Override
    public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) {
    if(!world.isRemote) {
    stack.stackSize–;
    
    PlayerContainer playerContainer = PlayerContainer.getPlayer(player);
    playerContainer.addStats(thirstHeal, saturationHeal);
    if (poisonChance > 0 && ThirstMod.config.POISON_ON) {
    Random rand = new Random();
    if (rand.nextFloat() < poisonChance) {
    playerContainer.getStats().poisonLogic.poisonPlayer();
    }
    }
    if (curesPotion) {
    player.curePotionEffects(new ItemStack(Items.milk_bucket));
    }
    if (hungerHeal > 0 && hungerSatHeal > 0) {
    player.getFoodStats().addStats(hungerHeal, hungerSatHeal);
    }
    if (potionID > 0) {
    player.addPotionEffect(new PotionEffect(potionID, duration * 20, 1));
    }
    player.inventory.addItemStackToInventory(new ItemStack(returnItem));
    }
    return stack;
    }
    
    @SuppressWarnings({ "unchecked", "rawtypes" })
    @Override
    public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean advancedItemTooltip) {
    super.addInformation(stack, player, list, advancedItemTooltip);
    float f = Float.parseFloat(Integer.toString(thirstHeal)) / 2;
    String s2 = Float.toString(f);
    list.add("Heals " + (s2.endsWith(".0") ? s2.replace(".0", "") : s2) + " Droplets");
    if(recipeItem != null) {
    list.add("Ingredient: " + recipeItem.getDisplayName());
    }
    }
    
    @Override
    public boolean hasEffect(ItemStack par1ItemStack, int pass) {
    if(pass == 0) return specialEffect;
    return false;
    }
    
    @Override
    public EnumAction getItemUseAction(ItemStack itemstack) {
    return EnumAction.drink;
    }
    
    @Override
    public IIcon getIconFromDamageForRenderPass(int damageValue, int currentPass) {
    return currentPass == 0 ? this.overlay : this.drinkable;
    }
    
    @Override
    @SideOnly(Side.CLIENT)
    public boolean requiresMultipleRenderPasses() {
    return true;
    }
    
    @Override
    @SideOnly(Side.CLIENT)
    public int getColorFromItemStack(ItemStack stack, int currentPass) {
    return currentPass > 0 ? 16777215 : itemColour;
    }
    
    @SideOnly(Side.CLIENT)
    @Override
    public void registerIcons(IIconRegister par1IconRegister) {
    this.drinkable = par1IconRegister.registerIcon("potion_bottle_drinkable");
    this.overlay = par1IconRegister.registerIcon("potion_overlay");
    }
    
    @Override
    public int getMaxItemUseDuration(ItemStack stack) {
    return 32;
    }
    
    public ItemDrink setPotionEffect(int i, int j) {
    potionID = i;
    duration = j;
    return this;
    }
    
    public ItemDrink setPoisoningChance(float chance) {
    poisonChance = chance;
    return this;
    }
    
    public ItemDrink healFood(int level, float saturation) {
    hungerHeal = level;
    hungerSatHeal = saturation;
    return this;
    }
    
    public ItemDrink setReturn(Item item) {
    returnItem = item;
    return this;
    }
    
    public ItemDrink setCuresPotions(boolean b) {
    curesPotion = b;
    return this;
    }
    
    public ItemDrink setRecipeItem(Item i) {
    recipeItem = new ItemStack(i);
    return this;
    }
    
    public boolean canDrink(EntityPlayer player) {
    if(!player.worldObj.isRemote) {
    return PlayerContainer.getPlayer(player).getStats().thirstLevel < 20;
    } else {
    return ClientStats.getInstance().level < 20;
    }
    }
    }
    

    code de l item

            eaux = new ItemDrink(7, 2f, 0x11DEF5, Constants.DRINKS_STACKSIZE, false, false, "eaux");
    
    

  • Déja un truc : Tu peux faire une sorte de coremod pour thirst sans a import les sources tu passe ton mod dans BON je ne connais plus l'exact nom
    Et tu l'ajoute path et tu a juste a faire thirstmod…. .... ... et voila (je pense que ça peut marcher pas sur sur mais ça marche pour Arthania j'évite de passer des sources comme ça donc je passe le jar xD)
    [font=monospace  eaux ][font=monospace=] [font=monospacenew] [font=monospaceItemDrink][font=monospace(][font=monospace7][font=monospace,] [font=monospace2f][font=monospace,] [font=monospace0x11DEF5][font=monospace,] [font=monospaceConstants][font=monospace.][font=monospaceDRINKS_STACKSIZE][font=monospace,] [font=monospacefalse][font=monospace,] [font=monospacefalse][font=monospace,] [font=monospace"eaux"][font=monospace).settexturename("…") non ?
    J'ai rien dis :
    ]

    1. this.drinkable = par1IconRegister.registerIcon("potion_bottle_drinkable");
    2. this.overlay = par1IconRegister.registerIcon("potion_overlay");
      Voila la ligne je crois bien

  • oui mais meme si je rejoute .settexturename sa marche pas est avec les 2 ligne je fait quoi jer les edit en sa

    [font=Ubuntu, sans-serifthis][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifdrinkable ][font=Ubuntu, sans-serif=][font=Ubuntu, sans-serif par1IconRegister][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifregisterIcon][font=Ubuntu, sans-serif(][font=Ubuntu, sans-serif"havenrp:eaux]"[font=Ubuntu, sans-serif);]
    [font=Ubuntu, sans-serifthis][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifoverlay ][font=Ubuntu, sans-serif=][font=Ubuntu, sans-serif par1IconRegister][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifregisterIcon][font=Ubuntu, sans-serif(][font=Ubuntu, sans-serif"havenrp:eaux"][font=Ubuntu, sans-serif);]___up please

  • Moddeurs confirmés Rédacteurs

    Il faut 24h entre deux messages


  • ok mais il me faudrait de l aide a plus vite

  • Moddeurs confirmés Rédacteurs Administrateurs

    @'impuuu':

    oui mais meme si je rejoute .settexturename sa marche pas est avec les 2 ligne je fait quoi jer les edit en sa

    [font=Ubuntu, sans-serifthis][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifdrinkable ][font=Ubuntu, sans-serif=][font=Ubuntu, sans-serif par1IconRegister][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifregisterIcon][font=Ubuntu, sans-serif(][font=Ubuntu, sans-serif"havenrp:eaux]"[font=Ubuntu, sans-serif);]
    [font=Ubuntu, sans-serifthis][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifoverlay ][font=Ubuntu, sans-serif=][font=Ubuntu, sans-serif par1IconRegister][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifregisterIcon][font=Ubuntu, sans-serif(][font=Ubuntu, sans-serif"havenrp:eaux"][font=Ubuntu, sans-serif);]


    up please

    Et où est le problème ?


  • robin probléme je croit que que thirst mod prend le bottle de minecraft est le color est moi je veut que je puise mettre des texture

  • Moddeurs confirmés Rédacteurs Administrateurs

    @Override
    @SideOnly(Side.CLIENT)
    public int getColorFromItemStack(ItemStack stack, int currentPass) {
    return currentPass > 0 ? 16777215 : itemColour;
    }

    Tu as juste à enlever cette fonction si tu veux retirer l'effet de couleur.


  • oui  si je retire sa donc pour la texture j ai juste a mettre .settexturename puisque je veut mettre mes texture


  • alor je fait comment pour que il y a une texture est que sa garde pas celle de
    minecraft

  • Moddeurs confirmés Rédacteurs Administrateurs

    Tu changes les valeurs dans la fonction registerIcons


  • je mes sa

    [font=Ubuntu, sans-serif**this**][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifdrinkable ][font=Ubuntu, sans-serif=][font=Ubuntu, sans-serif par1IconRegister][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifregisterIcon][font=Ubuntu, sans-serif(][font=Ubuntu, sans-serif"havenrp:eaux"][font=Ubuntu, sans-serif);]
    
    [font=Ubuntu, sans-serif**this**][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifoverlay ][font=Ubuntu, sans-serif=][font=Ubuntu, sans-serif par1IconRegister][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifregisterIcon][font=Ubuntu, sans-serif(][font=Ubuntu, sans-serif"havenrp:eaux"][font=Ubuntu, sans-serif);]
    

  • Mais moi perso pour le String je pense que tu peut le faire différemment un petit conseil tu devrais crée une classe qui contient ton modid sa serais plus facile a gérée apres tes textures


  • exemple:

    
    1.  @SideOnly(Side.CLIENT)
    2.  @Override
    3.  **public** **void** registerIcons(IIconRegister par1IconRegister) {
    4.  **this**.drinkable = par1IconRegister.registerIcon(HavenRP.MODID+""+unlocalizedname);
    5.  **this**.overlay = par1IconRegister.registerIcon([color=#666600HavenRP.MODID+][font=monospace""+unlocalizedname]);
    6.  }
    
    
  • Moddeurs confirmés Rédacteurs Administrateurs

    @'impuuu':

    je mes sa

    [font=Ubuntu, sans-serif**this**][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifdrinkable ][font=Ubuntu, sans-serif=][font=Ubuntu, sans-serif par1IconRegister][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifregisterIcon][font=Ubuntu, sans-serif(][font=Ubuntu, sans-serif"havenrp:eaux"][font=Ubuntu, sans-serif);]
    
    [font=Ubuntu, sans-serif**this**][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifoverlay ][font=Ubuntu, sans-serif=][font=Ubuntu, sans-serif par1IconRegister][font=Ubuntu, sans-serif.][font=Ubuntu, sans-serifregisterIcon][font=Ubuntu, sans-serif(][font=Ubuntu, sans-serif"havenrp:eaux"][font=Ubuntu, sans-serif);]
    

    Oui.
    ça ne fonctionne pas ?


  • Oui mais je vais mettre le unlocalized name en gros je supprime l event que tu a donné avant puis changer les 2 this


  • @'impuuu':

    exemple:

    
    1.  @SideOnly(Side.CLIENT)
    2.  @Override
    3.  **public** **void** registerIcons(IIconRegister par1IconRegister) {
    4.  **this**.drinkable = par1IconRegister.registerIcon(HavenRP.MODID+""+unlocalizedname);
    5.  **this**.overlay = par1IconRegister.registerIcon([color=#666600HavenRP.MODID+][font=monospace""+unlocalizedname]);
    6.  }
    
    

    Non sa sera plutot sa

    1. @SideOnly(Side.CLIENT)
    2. @Override
    3. public void registerIcons(IIconRegister par1IconRegister) {
    4. this.drinkable = par1IconRegister.registerIcon(HavenRP.MODID + ":[color=#2a00ffnomdelatexture]");
    5. this.overlay = par1IconRegister.registerIcon([color=#666600HavenRP.MODID + ][font=monospace":nomdelatexture"]);
    6. }

  • oui mais je veut plusieur item pas que 1seul


  • Je ne comprends pas


  • en gros j ai pas que 1 seul bouteille j en ai une dizaine a fait donc si je mais comme tu fait voir sa me mettrait une texture pour tous