Posted April 20, 201411 yr I have followed Vswe's summer courses, and tried to make a gui, however it doesn't open... The problem migth be some little thing I overlooked, thougth. Code: Forge block has this method: public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(!world.isRemote) FMLNetworkHandler.openGui(player, DarkSouls.instance, 0, world, x, y, z); //player.openGui(DarkSouls.instance, 0, world, x, y, z); return true; } Gui Handler: public class GuiHandler implements IGuiHandler { public GuiHandler(){ NetworkRegistry.INSTANCE.registerGuiHandler(DarkSouls.instance, this); } @Override public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case 0: TileEntity te = world.getTileEntity(x, y, z); if(te != null && te instanceof TileEntityForge){ return new ContainerForge(player.inventory, (TileEntityForge)te); } break; } return null; } @Override public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { switch (ID) { case 0: TileEntity te = world.getTileEntity(x, y, z); if(te != null && te instanceof TileEntityForge){ return new GuiForge(player.inventory, (TileEntityForge)te); } break; } return null; } } GuiForge: @SideOnly(Side.CLIENT) public class GuiForge extends GuiContainer { private static final ResourceLocation texture = new ResourceLocation("darksouls", "texture/gui/forge.png"); public GuiForge(InventoryPlayer invPlayer, TileEntityForge forge) { super(new ContainerForge(invPlayer, forge)); xSize = 176; ySize = 202; } @SideOnly(Side.CLIENT) protected void drawGuiContainerBackgroundLayer(float f, int x, int y) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); this.mc.getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); } } ContainerForge: public class ContainerForge extends Container{ TileEntityForge forge; public ContainerForge(InventoryPlayer invPlayer, TileEntityForge forge){ this.forge = forge; } @Override public boolean canInteractWith(EntityPlayer player) { return forge.isUseableByPlayer(player); } } All classes have propper imports, but just to save some space... I create a instance of the GuiHandler on load (new GuiHandler())
April 20, 201411 yr Author I know it's a bad modding practice to register blocks inside a static block, but when I tried to do it properly textures didn't work. Besides, it wasn't me who wrote this code. package com.echo.darksouls; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.EnumHelper; import net.minecraftforge.oredict.ShapedOreRecipe; import com.echo.darksouls.blocks.BlockBonfire; import com.echo.darksouls.blocks.BlockBrickPillar; import com.echo.darksouls.blocks.BlockDecayedBrickPillar; import com.echo.darksouls.blocks.BlockDecayedCarbedStoneBrick; import com.echo.darksouls.blocks.BlockDecayedCrackedStoneBrick; import com.echo.darksouls.blocks.BlockDecayedMossyStoneBrick; import com.echo.darksouls.blocks.BlockDecayedStoneBrick; import com.echo.darksouls.blocks.BlockDecayedVines; import com.echo.darksouls.blocks.BlockForge; import com.echo.darksouls.blocks.BlockTitaniteOre; import com.echo.darksouls.creativetab.DarkSoulsTab; import com.echo.darksouls.creativetabs.placeholder.DarkSoulsTabPlaceHolder; import com.echo.darksouls.gui.GuiHandler; import com.echo.darksouls.gui.GuiManaBar; import com.echo.darksouls.item.ItemBlockBonfire; import com.echo.darksouls.item.ItemBrokenSword; import com.echo.darksouls.item.ItemEskusSword; import com.echo.darksouls.item.ItemTitaniteShard; import com.echo.darksouls.proxy.CommonProxy; import com.echo.darksouls.tileentity.TileEntityBonfire; import com.echo.darksouls.tileentity.TileEntityForge; import cpw.mods.fml.common.FMLCommonHandler; 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.event.FMLServerStartingEvent; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; @Mod(modid = DarkSouls.MODID, version = DarkSouls.VERSION) public class DarkSouls { public static final String MODID = "The Official Dark Souls Mod"; public static final String VERSION = "Alpha 0.1"; @Instance(MODID) public static DarkSouls instance; @SidedProxy(clientSide = "com.echo.darksouls.proxy.ClientProxy", serverSide = "com.echo.darksouls.proxy.CommonProxy") public static CommonProxy proxy; @EventHandler public void preInit(FMLPreInitializationEvent event) { } @EventHandler public void load(FMLInitializationEvent event) { proxy.initRenderes(); proxy.initSounds(); new GuiHandler(); MinecraftForge.EVENT_BUS.register(new TutEventHandler()); FMLCommonHandler.instance().bus().register(new TutEventHandler()); } @EventHandler public void postInit(FMLPostInitializationEvent event) { if (FMLCommonHandler.instance().getEffectiveSide().isClient()) MinecraftForge.EVENT_BUS.register(new GuiManaBar(Minecraft .getMinecraft())); } //Register commands @EventHandler public void serverLoad(FMLServerStartingEvent event){ //Register model update command event.registerServerCommand(new CommandUpdate()); } // creative Tabs public static CreativeTabs DarkSoulsTab = new DarkSoulsTab( CreativeTabs.getNextID(), "DarkSoulsTab"); public static Item DarkSoulsTabPlaceHolder = new DarkSoulsTabPlaceHolder( 5501).setUnlocalizedName("DarkSoulsTabPlaceHolder").setTextureName( "DarkSouls:DarkSoulsTabPlaceHolder"); // tool Materials public static ToolMaterial Broken = EnumHelper.addToolMaterial("Broken", 5, 478, 2F, 1F, 35); public static ToolMaterial Eskus = EnumHelper.addToolMaterial("Eskus", 5, 1272, 3F, 3F, 25); // items and Blocks public static Item BrokenSword = new ItemBrokenSword(5500, Broken) .setUnlocalizedName("BrokenSword").setTextureName( "DarkSouls:BrokenSword"); public static Block TitaniteOre = new BlockTitaniteOre(5502, Material.rock) .setHardness(4F).setStepSound(Block.soundTypeStone) .setBlockName("TitaniteOre") .setBlockTextureName("DarkSouls:TitaniteOre"); public static Item EskusSword = new ItemEskusSword(5503, Eskus) .setUnlocalizedName("EskusSword").setTextureName( "DarkSouls:EskusSword"); public static Block Forge = new BlockForge(5504, Material.anvil) .setHardness(8F).setStepSound(Block.soundTypeAnvil) .setBlockName("Forge").setBlockTextureName("DarkSouls:Forge"); public static Item TitaniteShard = new ItemTitaniteShard(5505) .setUnlocalizedName("TitaniteShard").setTextureName( "DarkSouls:TitaniteShard"); public static Block BrickPillar = new BlockBrickPillar(5506, Material.rock) .setHardness(5F).setStepSound(Block.soundTypeStone) .setBlockName("BrickPillar") .setBlockTextureName("DarkSouls:BrickPillar"); public static Block DecayedVines = new BlockDecayedVines(5507, Material.vine).setHardness(1F).setStepSound(Block.soundTypeGrass) .setBlockName("DecayedVines") .setBlockTextureName("DarkSouls:DecayedVines"); public static Block DecayedStoneBrick = new BlockDecayedStoneBrick(5508, Material.iron).setHardness(8F).setStepSound(Block.soundTypeStone) .setBlockName("DecayedStoneBrick") .setBlockTextureName("DarkSouls:DecayedStoneBrick"); public static Block DecayedCrackedStoneBrick = new BlockDecayedCrackedStoneBrick( 5509, Material.iron).setHardness(6F) .setStepSound(Block.soundTypeStone) .setBlockName("DecayedCrackedStoneBrick") .setBlockTextureName("DarkSouls:DecayedCrackedStoneBrick"); public static Block DecayedMossyStoneBrick = new BlockDecayedMossyStoneBrick( 5510, Material.iron).setHardness(8.5F) .setStepSound(Block.soundTypeStone) .setBlockName("DecayedMossyStoneBrick") .setBlockTextureName("DarkSouls:DecayedMossyStoneBrick"); public static Block DecayedCarvedStoneBrick = new BlockDecayedCarbedStoneBrick( 5511, Material.iron).setHardness(8F) .setStepSound(Block.soundTypeStone) .setBlockName("DecayedCarvedStoneBrick") .setBlockTextureName("DarkSouls:DecayedCarvedStoneBrick"); public static Block DecayedBrickPillar = new BlockDecayedBrickPillar(5512, Material.iron).setHardness(8F).setStepSound(Block.soundTypeStone) .setBlockName("DecayedBrickPillar") .setBlockTextureName("DarkSouls:DecayedBrickPillar"); public static Block Bonfire = new BlockBonfire( Material.iron).setBlockUnbreakable().setStepSound(Block.soundTypeStone) .setBlockName("Bonfire"); { GameRegistry.registerBlock(DecayedBrickPillar, "Decayed Brick Pillar"); GameRegistry.registerBlock(DecayedVines, "Decayed Vines"); GameRegistry.registerItem(EskusSword, "Eskus Sword"); GameRegistry.registerBlock(TitaniteOre, "Titanite Ore"); GameRegistry.registerItem(BrokenSword, "Broken Sword"); GameRegistry.registerItem(DarkSoulsTabPlaceHolder, "DarkSoulsTabPlaceHolder"); GameRegistry.registerBlock(Forge, "Forge"); GameRegistry.registerTileEntity(TileEntityForge.class, "forgeTE"); GameRegistry.registerItem(TitaniteShard, "Titanite Shard"); GameRegistry.registerBlock(BrickPillar, "Brick Pillar"); GameRegistry.registerBlock(DecayedStoneBrick, "Decayed Stone Brick"); GameRegistry.registerBlock(DecayedCarvedStoneBrick, "Decayed Carved Stone Brick"); GameRegistry.registerBlock(DecayedMossyStoneBrick, "Decayed Mossy Stone Brick"); GameRegistry.registerBlock(DecayedCrackedStoneBrick, "Decayed Cracked Stone Brick"); GameRegistry.registerBlock(Bonfire, ItemBlockBonfire.class, "Bonfire"); GameRegistry.registerTileEntity(TileEntityBonfire.class, "bonfireTE"); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(DarkSouls.Forge), new Object[] { "WAW", "ILI", "OOO", 'A', Blocks.anvil, 'O', Blocks.obsidian, 'L', Items.lava_bucket, 'I', Blocks.iron_block, 'W', "logWood" // Blocks.log })); LanguageRegistry.addName(DecayedBrickPillar, "Decayed Brick Pillar"); LanguageRegistry.addName(DecayedVines, "Decayed Vines"); LanguageRegistry.addName(EskusSword, "Eskus Sword"); LanguageRegistry.addName(TitaniteOre, "Titanite Ore"); LanguageRegistry.addName(BrokenSword, "Broken Sword"); LanguageRegistry.addName(DarkSoulsTabPlaceHolder, "DarkSoulsTabPlaceHolder"); LanguageRegistry.addName(Forge, "Forge"); LanguageRegistry.addName(TitaniteShard, "Titanite Shard"); LanguageRegistry.addName(BrickPillar, "Brick Pillar"); LanguageRegistry.addName(DecayedStoneBrick, "Decayed Stone Brick"); LanguageRegistry.addName(DecayedCarvedStoneBrick, "Decayed Carved Stone Brick"); LanguageRegistry.addName(DecayedMossyStoneBrick, "Decayed Mossy Stone Brick"); LanguageRegistry.addName(DecayedCrackedStoneBrick, "Decayed Cracked Stone Brick"); LanguageRegistry.addName(Bonfire, "Bonfire"); } }
April 20, 201411 yr Author They are. Is there any known bug for this whit version .1047? [Edit]drawGuiContainerBackgroundLayer is not called
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.