Créer un item container (type backpack / sac à dos)
-
@‘ZephyrinGames’:
Bonjour, j’ai fait tout ce qui est dit dans ce tuto mais un problème persiste mon backpack n’apparait nulle part et sa commande pour me le give ne fonctionne pas aidez moi svp :‘( :’( :‘( :’( :‘( :’(
Tu la gameregistry?
-
@‘ZephyrinGames’:
Bonjour, j’ai fait tout ce qui est dit dans ce tuto mais un problème persiste mon backpack n’apparait nulle part et sa commande pour me le give ne fonctionne pas aidez moi svp :‘( :’( :‘( :’( :‘( :’(
Sans ton code, on ne peut rien faire.
-
Par contre comment on fait pour mettre que un certain item dans le backpack ?
-
Je crois que c’est spécifié à plusieurs endroits dans les commentaires : dans le container et dans le slot
-
ses possible de faire pour que un item ne soit pas posée dans le back pack ?
-
Oui, il suffit de modifier cette fonction :
@Override public boolean isItemValidForSlot(int index, ItemStack stack) { return !(stack.getItem() instanceof ItemBackPack); }↓↓
@Override public boolean isItemValidForSlot(int index, ItemStack stack) { return !(stack.getItem() instanceof ItemBackPack) && !(stack.getItem() == ClassePrincipale.item); } -
Salut !
J’ai crée plusieurs backpacks mais le problème c’est que quand je clique sur un item dans mon premier backpack ça marche, mais dans les autres l’item se drop
Une idée d’où cela pourrait venir ? -
Envoi tes classes
-
Comment on ajoute un craft ^^
-
GameRegistry.addRecipe dans ta méthode init
-
@‘Plaigon’:
GameRegistry.addRecipe dans ta méthode init
GameRegistry.addRecipe(new ItemStack(), new Object[]{“###”, “# #”, “###”, ‘#’, Items.leather});
Est faut que je mette quoi exactement a new ItemStack() stp ?
-
-
@‘robin4002’:
=> https://www.minecraftforgefrance.fr/showthread.php?tid=1436
Non mes je ces faire une recette mais pour le backpack je trouve pas
faut mettre sa ?
GameRegistry.addRecipe(new ItemStack(ItemBackPack.NAME), new Object[]{“###”, “# #”, “###”, ‘#’, Items.leather});
Je ces pas ces bizard
help plz -
Ce n’est pas différent pour le backpack …
ClassePrincipale.nomDeLaVariable ou ClasseItem.nomDeLaVariable (dépend de où tu as déclaré tes items). -
@‘robin4002’:
Ce n’est pas différent pour le backpack …
ClassePrincipale.nomDeLaVariable ou ClasseItem.nomDeLaVariable (dépend de où tu as déclaré tes items).Bh j’ai fait sa : GameRegistry.addRecipe(new ItemStack(ModItems.ITEM_BACKPACK), new Object[]{“###”, “# #”, “###”, ‘#’, Items.leather});
Mais quand je met la Leather bh mon jeu crash… -
File ta classe principale. Ta recette est sûrement enregistrée avant tes items, d’où une possible NPE.
-
package com.mod.exonia; import java.io.File; import org.lwjgl.opengl.Display; import com.google.common.base.Throwables; import com.mod.exonia.backpack.ItemBackPack; import com.mod.exonia.backpack.ModBlocks; import com.mod.exonia.backpack.ModItems; import com.mod.exonia.dynamite.EntityDynamite; import com.mod.exonia.gui.GuiCustomMainMenu; import com.mod.exonia.init.BlockMod; import com.mod.exonia.init.ItemMod; import com.mod.exonia.proxy.CommonProxy; import com.mod.exonia.world.WorldRegister; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiIngameMenu; import net.minecraft.client.gui.GuiMainMenu; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.client.event.GuiOpenEvent; import net.minecraftforge.client.event.GuiScreenEvent; @Mod(modid = Reference.MOD_NAME, version = Reference.VERSION) public class Exonia { @SidedProxy(clientSide = Reference.CLIENT_PROXY, serverSide = Reference.SERVER_PROXY) public static CommonProxy proxy; public static final String MODID = "Exonia"; @Mod.Instance(Exonia.MODID) public static Exonia instance; @EventHandler public void preInit(FMLPreInitializationEvent event) { BlockMod.init(); BlockMod.register(); ItemMod.init(); ItemMod.register(); WorldRegister.mainRegistry(); if(event.getSide().isClient()) { if(!Minecraft.getMinecraft().mcDataDir.getAbsolutePath().contains("Exonia") && !Minecraft.getMinecraft().mcDataDir.equals(new File("."))) { Throwables.propagate(new Exception("Launcher non autorisé")); } } } @SidedProxy(clientSide = "com.mod.exonia.proxy.ClientProxy", serverSide = "com.mod.exonia.proxy.CommonProxy") public static CommonProxy PROXY; @EventHandler public void Init(FMLInitializationEvent event) { proxy.registerRenders(); EntityRegistry.registerModEntity(EntityDynamite.class, "EntityDynamite", 420, Exonia.instance, 32, 20, false); ModItems.registerItemsCrafts(); ModBlocks.registerBlocksCrafts(); GameRegistry.addRecipe(new ItemStack(ModItems.ITEM_BACKPACK), new Object[]{"###", "# #", "###", '#', Items.leather}); NetworkRegistry.INSTANCE.registerGuiHandler(INSTANCE, PROXY); } @EventHandler public void postInit(FMLPostInitializationEvent event) { ModItems.registerItems(); ModBlocks.registerBlocks(); } @Instance(Reference.MOD_NAME) public static Object INSTANCE; }Jdois faire ccomment ?
-
c’est dans le preinit non ? que tu doit register ton craft
-
Non les crafts peuvent être mis dans l’init sans problème.
Par contre tu peux m’expliquer pourquoi tu as “BlockMod”, “ItemMod” ET “ModItems”, “ModBlocks” ?
Et tous cas ton problème vient du fait que t’enregistre des items et blocks dans le postInit, ce qu’il ne faut JAMAIS faire. -
@‘Yanis (MrLeBest)’:
c’est dans le preinit non ? que tu doit register ton craft
sa marche tjr pas
