Résolu Probléme machine
-
Genre j’avais une machine j’en fait une deuxiéme et la les bug commence Ma premiere machine marche bien mais des que je met sa : NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandlerCraft()); on peux ouvrire la deuxiéme mais plus la premiére
-
Salut,
Un mod = un gui handler.
Tu dois mettre différente condition dans le gui handler en fonction du bloc. -
je fait sa comment sans créer une machine par mods
-
-
Sa marche pas voici mon guihandler :
package com.adamitemod.mod; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import cpw.mods.fml.common.network.IGuiHandler; public class GuiHandler implements IGuiHandler { public GuiHandler() { } public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileEntityMachine) return new ContainerMachine((TileEntityMachine)tile, player.inventory); else return null; } public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileEntityMachine) return new GuiMachine((TileEntityMachine)tile, player.inventory); else return null; } public Object getServerGuiElement1(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileEntityMachineCraft) return new ContainerMachineCraft((TileEntityMachineCraft)tile, player.inventory); else return null; } public Object getClientGuiElement1(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof TileEntityMachineCraft) return new GuiMachineCraft((TileEntityMachineCraft)tile, player.inventory); else return null; } }
ma class principale
package com.adamitemod.mod; import java.awt.Color; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiMainMenu; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.util.WeightedRandomChestContent; import net.minecraftforge.common.ChestGenHooks; import net.minecraftforge.common.MinecraftForge; import com.adamitemod.mod.Dynamite.EntityDynamite; import com.adamitemod.mod.blocks.BlockElevator; import com.adamitemod.mod.blocks.ElevatorEvent; import com.adamitemod.mod.blocks.GuiCustomMainMenu; import com.adamitemod.mod.init.BlocksMod; import com.adamitemod.mod.init.CraftsMod; import com.adamitemod.mod.init.ItemsMod; import com.adamitemod.mod.items.ItemDynamite; import com.adamitemod.mod.proxy.CommonProxy; import com.adamitemod.mod.world.WorldRegister; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Loader; 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.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; @Mod(modid = References.MOD_ID, name = References.MOD_NAME, version = References.VERSION) public class AdamiteMod { @Instance(References.MOD_ID) public static AdamiteMod instance; public static Item Dynamite; public static Block Machine; public static Block MachineCraft; @SidedProxy(clientSide = References.CLIENT_PROXY, serverSide = References.SERVER_PROXY) public static CommonProxy proxy; public static Block Elevator; public static CreativeTabs Ada = new CreativeTabs("Ada") { @SideOnly(Side.CLIENT) public Item getTabIconItem() { return ItemsMod.adamiteChestplate; } }; @EventHandler public void preInit(FMLPreInitializationEvent event) { BlocksMod.init(); Elevator = new BlockElevator().setBlockTextureName(References.MOD_ID + ":elevator").setHardness(3.5F).setBlockName("Elevator").setCreativeTab(AdamiteMod.Ada); GameRegistry.registerBlock(Elevator, "Elevator"); BlocksMod.register(); ItemsMod.init(); Machine = new Machine().setBlockName("machine"); MachineCraft = new MachineCraft().setBlockName("machineCraft"); ItemsMod.register(); Dynamite = new ItemDynamite(Dynamite).setUnlocalizedName("Dynamite").setCreativeTab(AdamiteMod.Ada).setTextureName(References.MOD_ID + ":dynamite"); GameRegistry.registerItem(Dynamite, "Dynamite"); GameRegistry.registerBlock(Machine, "Machine"); GameRegistry.registerBlock(MachineCraft, "MachineCraft"); CraftsMod.init(); WorldRegister.mainRegsitry(); proxy.registerRenders(); EntityRegistry.registerModEntity(EntityDynamite.class, "Dynamite", 7, this, 64, 20, true); } @EventHandler public void init(FMLInitializationEvent event) { proxy.registerRenders(); ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ItemsMod.adamite), 1, 2, 1)); ChestGenHooks.getInfo(ChestGenHooks.VILLAGE_BLACKSMITH).addItem(new WeightedRandomChestContent(new ItemStack(ItemsMod.adamite), 1, 2, 1)); ChestGenHooks.getInfo(ChestGenHooks.STRONGHOLD_CORRIDOR).addItem(new WeightedRandomChestContent(new ItemStack(ItemsMod.adamite), 1, 3, 1)); ChestGenHooks.getInfo(ChestGenHooks.STRONGHOLD_CROSSING).addItem(new WeightedRandomChestContent(new ItemStack(ItemsMod.adamite), 1, 3, 1)); ChestGenHooks.getInfo(ChestGenHooks.STRONGHOLD_LIBRARY).addItem(new WeightedRandomChestContent(new ItemStack(ItemsMod.adamite), 1, 3, 1)); ChestGenHooks.getInfo(ChestGenHooks.DUNGEON_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ItemsMod.fission), 1, 1, 1)); ChestGenHooks.getInfo(ChestGenHooks.VILLAGE_BLACKSMITH).addItem(new WeightedRandomChestContent(new ItemStack(ItemsMod.fission), 1, 1, 1)); ChestGenHooks.getInfo(ChestGenHooks.STRONGHOLD_CORRIDOR).addItem(new WeightedRandomChestContent(new ItemStack(ItemsMod.fission), 1, 2, 1)); ChestGenHooks.getInfo(ChestGenHooks.STRONGHOLD_CROSSING).addItem(new WeightedRandomChestContent(new ItemStack(ItemsMod.fission), 1, 2, 1)); ChestGenHooks.getInfo(ChestGenHooks.STRONGHOLD_LIBRARY).addItem(new WeightedRandomChestContent(new ItemStack(ItemsMod.fission), 1, 2, 1)); MinecraftForge.EVENT_BUS.register(new ElevatorEvent()); FMLCommonHandler.instance().bus().register(new ElevatorEvent()); NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler()); EntityRegistry.registerModEntity(EntityDynamite.class, "Dynamite", 7, this, 64, 20, true); GameRegistry.registerTileEntity(TileEntityMachine.class, References.MOD_ID + ":MachineTileEntity"); GameRegistry.registerTileEntity(TileEntityMachineCraft.class, References.MOD_ID + ":MachineTileEntityCraft"); } @EventHandler public void postInit(FMLPostInitializationEvent event) { if(Loader.instance().getModList().size() != 4) // à changer { FMLCommonHandler.instance().exitJava(1, true); } EntityRegistry.registerModEntity(EntityDynamite.class, "Dynamite", 7, this, 64, 20, true); } @SubscribeEvent @SideOnly(Side.CLIENT) public void onTick(TickEvent.ClientTickEvent event) { Minecraft mc = FMLClientHandler.instance().getClient(); if(mc.currentScreen != null && mc.currentScreen.getClass().equals(GuiMainMenu.class)) { mc.displayGuiScreen(new GuiCustomMainMenu()); } } }
-
voici mon GuiHandler
package com.adamitemod.mod; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import cpw.mods.fml.common.network.IGuiHandler; public class GuiHandler implements IGuiHandler { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity te = world.getTileEntity(x, y, z); if(ID == 0 && te instanceof TileEntityMachine) { return new ContainerMachine((TileEntityMachine)te, player.inventory); } else if(ID == 2 && te instanceof TileEntityMachineCraft) { return new ContainerMachineCraft((TileEntityMachineCraft)te, player.inventory); } return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity te = world.getTileEntity(x, y, z); if(ID == 0 && te instanceof TileEntityMachine) { return new GuiMachine((TileEntityMachine)te, player.inventory); } else if(ID == 2 && te instanceof TileEntityMachineCraft) { return new GuiMachineCraft((TileEntityMachineCraft)te, player.inventory); } return null; } }
Sa ne fonctionne toujour pas !___UP up up up !
-
@‘amigo127’:
UP up up up !
Je reguarde sa dés que je suis sur le pc
-
Voici toutes les class de ma deuxiéme machine
-
alors j’ai fait sa
public class GuiHandler implements IGuiHandler { @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof tonTileEntity) { return new TonContainer((tonTileEntity)tile, player.inventory); } return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof tonTileEntity) { return new TonGui((tonTileEntity)tile, player.inventory); } return null; } }
mais je suis pas sur que sa marche
-
ok je teste___Je vais me suicider
-
Quel est le problème ? Montre ton code.
Et si tu veux te suicider, pour éviter de le faire, tu peux faire un pause (mais assez longue), après tu reprends la tête reposée et tu peux mieux regarder ce qui ne va pas. -
Mon probléme genre je veux créer une deuxiéme machine mais j’en ai déja une je peux ouvrire le premiére mais pas le deuxieme voici les class de la deuxiéme :
http://download1594.mediafire.com/5mgct6nps2fg/2llw3daw4vsae1l/Src+deuxiéme+machine.rar
-
“player.openGui(AdamiteMod.instance, 0, world, x, y, z);” dans le onBlockActivated de ton MachineCraft, tu mets 0 en id, et dans ton GuiHandler, tu veux que l’id soit 2 (“if(ID == 2 && […])” donc si tu ne veux pas de mélanger, retire juste tous les “ID == quelquechose” de ton GuiHandler pour appliquer la méthode de leo avec les “instanceof”, ça suffit largement comme vérification.
-
conversion noob stp -_-
-
Dans ton GuiHandler, retire tous “les ID == unchiffre” et ça marchera. Le pb que t’a c’est que l’id que tu as mis ne correspond pas à ce que tu as mis dans ton Block.
-
Attention aux doubles posts. Et c’est 24h avant de up …
Il y en a qui dorment la nuit … -
merci je t’aime [size=smallAymericRed :p]___Ah ba non pk mon gui est en bas de mon écran ?
-
- De rien ^^ 2) En bas de l’écran ? Et attention aux double-post.
-
oui genre comme sa
http://www.mediafire.com/view/v0g9ure5f89yj35/2016-05-06.png
ne dites pas ses ton image qui est mal placer car si je centre avec le font l’in n’est plus dans le case du font
-
Tu peux envoyer le code de ton gui ?