Craft Métadata

Tomikaddle

Apprenti Batcheur
7 Juin 2014
314
5
129
J'aimerais savoir comment mettre des metadatas dans les crafts de mon mod avec Forge.

Sachant que je fait mais crafts comme ce-ci, pourriez vous m'aider:

GameRegistry.addRecipe(new ItemStack(Items.blaze_rod, 1),
"x" +
"y", 'x', Items.lava_bucket, 'y', Items.stick);

Merci d'avance
 
Merci beaucoup mais je voudrais également apprendre à faire de nouveau combustible pour les fours.

Merci d'avance
 
Je n'en ai jamais fait, je pense que avec le ore dictionary tu peux, sinon il faut regarder le code de base, si forge a rien de prévue et que c'est défini dans le bloc de four alors il vas falloir passer par l'ASM. Je te laisse faire les recherches et me dire ^^.
 
Si, il y a une fonction pour. Je l'utilisais dans un vieux mods
*cherche*
*lance eclipse*
Dans la fonction init de ta classe principale :
GameRegistry.registerFuelHandler(new CustomFuelHandler());
Créé ensuite la classe CustomFuelHandler et mets dedans :
Code:
public class CustomFuelHandler implements IFuelHandler
{
    @Override
    public int getBurnTime(ItemStack fuel)
    {
        if(fuel.getItem() != null && fuel.getItem() == TaClassePrincipale.tonItem)
        {
            return 200; // 200 pour faire cuire un item il me semble
        }
        return 0;
    }
}
 
J'ai déclaré mon block ( C'est un bloc qui doit servir de combustible ) dans ma classe principale comme ceci:

public static Block Bloccharcoal = new Bloccharcoal (4, Material.rock);

GameRegistry.registerBlock(Bloccharcoal, "Bloccharcoal");
LanguageRegistry.addName(Bloccharcoal, "Bloc de Charbon de Bois");
GameRegistry.registerFuelHandler(new CustomFuelHandler());

Et comme c'est un bloc qu'on doit pouvoir poser et casser j'ai fait une classe "Bloccharcoal" dans mon package "Blocks" comme ça:

package com.buckzor.ArbreFruitier.blocks;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;

import com.buckzor.ArbreFruitier.lib.References;

public class Bloccharcoal extends Block
{

public Bloccharcoal (int i, Material rock)
{
super(rock);
this.setCreativeTab(CreativeTabs.tabBlock);
this.setHarvestLevel("pickaxe", 2);
this.setStepSound(soundTypeStone);
this.setHardness(2.0F);
this.setResistance(1.0F);
this.setLightLevel(0.0F);
this.setBlockName("Bloccharcoal");
this.setBlockTextureName(References.MODID + ":Bloccharcoal");
}

}
Mais dans ma classe "CustomFuelHandler" que j'ai mise dans le même package que ma classe principale ( Ma classe principale s'appelle "BuckzorMod" ) j'ai une petite erreur:

La classe se présente comme ça:

package com.buckzor.ArbreFruitier;

import net.minecraft.item.ItemStack;
import cpw.mods.fml.common.IFuelHandler;

public class CustomFuelHandler implements IFuelHandler
{
@Override
public int getBurnTime(ItemStack fuel)
{
if(fuel.getItem() != null && fuel.getItem() == BuckzorMod.Bloccharcoal) <--------------- Souligné avec des vagues
{
return 200; // 200 pour faire cuire un item il me semble
}
return 0;
}
}

I need to resolve this problem please ;)
 
Si, il y a une fonction pour. Je l'utilisais dans un vieux mods
*cherche*
*lance eclipse*
Dans la fonction init de ta classe principale :
GameRegistry.registerFuelHandler(new CustomFuelHandler());
Créé ensuite la classe CustomFuelHandler et mets dedans :
Code:
public class CustomFuelHandler implements IFuelHandler
{
    @Override
    public int getBurnTime(ItemStack fuel)
    {
        if(fuel.getItem() != null && fuel.getItem() == TaClassePrincipale.tonItem)
        {
            return 200; // 200 pour faire cuire un item il me semble
        }
        return 0;
    }
}
Ho cool, je le savais pas (jamais utiliser xD).