blfngl Posted March 6, 2019 Posted March 6, 2019 (edited) Just as the title states, I'm having trouble opening a container-less gui. It's just a button with a background as of now. I'm unsure if I'm handling it correctly, so any insight would be appreciated. So, what's happening is that the gui itself is opening perfectly fine, the button and background are drawing and the button functions, the console prints my message, but my background png (simply the demobackground.png provided by Minecraft) isn't drawing. There isn't an error message when opening the gui as well. I think this is all the relevant code and I've attached an image of what the gui is displaying. If you need anything else from me please let me know, thanks! Gui: Spoiler public class GuiWorkshop extends GuiScreen { private static final ResourceLocation BACKGROUND = new ResourceLocation(Reference.MODID + ":textures/gui/gui_workshop.png"); private GuiButton buttonCraft; private int buttonId = 0; public GuiWorkshop() { } @Override public void initGui() { buttonList.clear(); Keyboard.enableRepeatEvents(true); buttonCraft = new GuiButton(buttonId++, width / 2 - 25, height / 2, 50, 20, "text"); buttonList.add(buttonCraft); } @Override public void updateScreen() { super.updateScreen(); } @Override public void drawScreen(int mouseX, int mouseY, float partialTicks) { this.drawDefaultBackground(); mc.getTextureManager().bindTexture(BACKGROUND); super.drawScreen(mouseX, mouseY, partialTicks); } @Override protected void mouseClickMove(int mouseX, int mouseY, int clickedMouseButton, long timeSinceLastClick) { } @Override protected void actionPerformed(GuiButton button) { if (button.equals(buttonCraft)) System.out.println("do something"); } @Override public void onGuiClosed() { } @Override public boolean doesGuiPauseGame() { return false; } } GuiHandler: Spoiler /** * This is for connecting a gui with its container * @author blfngl */ public class GuiHandler implements IGuiHandler { @Override public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { switch (id) { case Reference.GUI_WORKSHOP_ID: return new GuiWorkshop(); } return null; } @Override public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { switch (id) { } return null; } } Block: Spoiler public class BlockWorkshop extends BlockFallout { private static String name = "workshop"; private static Material material = Material.ROCK; public BlockWorkshop() { super(material, name); } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { player.openGui(Fallout.instance, Reference.GUI_WORKSHOP_ID, world, pos.getX(), pos.getY(), pos.getZ()); return true; } } Main: Spoiler @EventHandler public void preInit(FMLPreInitializationEvent event) { System.out.println("Blfngl's Fallout Mod loading..."); logger = event.getModLog(); proxy.preInit(event); proxy.registerGui(); proxy.registerRenders(); } ClientProxy: Spoiler public class ClientProxy extends CommonProxy { @Override public void registerItemRenderer(Item item, int meta, String id) { ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(Reference.MODID + ":" + id, "inventory")); } @Override public void registerRenders() { FalloutEntities.initModels(); } @Override public void registerGui() { NetworkRegistry.INSTANCE.registerGuiHandler(Fallout.instance, new GuiHandler()); } } Edited March 6, 2019 by blfngl Put solved in title Quote
simicats Posted March 6, 2019 Posted March 6, 2019 (edited) Hi there! Looks like you're not actually drawing your background anywhere, just binding the texture. Try calling Gui#drawTexturedModalRect(...) in the drawScreen method . Edited March 6, 2019 by simicats 1 Quote
Recommended Posts
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.