Jump to content

[1.7.10] GUI trouble!


Fel486

Recommended Posts

Hello guys, I'm using Forge 1.7.10, and the problem has to do with GUI.

 

Well, there are a lot of tutorials I found, but most of them are for older versions, and the ones really to 1.7.10 I can't figure out what really I have to do.

 

GuiScreen? GuiContainer? GuiHandler? ClientProxy? ServerProxy? @NetworkMod? TileEntity?

 

 

Can anyone help me with a example that really works? ><"

 

:(

Link to comment
Share on other sites

Sorry, but that has nothing to do with my problem.

 

The question is about how to create a GUI (open a inventory or text field when right click on a block). Yes, that's related to BlockContainer, but I already used the method onBlockActivated, I just need now how to create a GUI, the one that uses "Player.openGui(...);" to open it.

 

Link to comment
Share on other sites

I think this is all of the relevant classes

 

https://github.com/Draco18s/Artifacts/blob/master/main/java/com/draco18s/artifacts/block/BlockPedestal.java#L126-138

https://github.com/Draco18s/Artifacts/blob/master/main/java/com/draco18s/artifacts/client/GuiContPedestal.java

https://github.com/Draco18s/Artifacts/blob/master/main/java/com/draco18s/artifacts/inventory/ContainerPedestal.java

 

There's also a custom slot class, but that's pretty secondary to making the GUI show up as it is just a filter on what items are valid to be inserted, as well as the TileEntity itself, which isn't needed, but if you want to reference it, its there.

 

If I did forget something though, the whole project is on GitHub.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

You need to handle your Gui, and return a Container object for the server element, and Gui Screen object for the client element.

 

You can define your own Gui ID constants in your mod class, and then use them to test the ID sent to the handler via player.openGui(MOD, GUI_ID).

 

This is the Forge tutorial on the wiki (I've done the Google cache link, because the Wiki was loading really slow for me):

http://webcache.googleusercontent.com/search?q=cache:5hpWm4A2w1MJ:www.minecraftforge.net/wiki/Containers_and_GUIs+&cd=1&hl=en&ct=clnk&gl=ca

Link to comment
Share on other sites

Thanks, that shows clearly the part about the GuiContainer and BlockContainer, but what about the @SidedProxy?

 

How do I do this? I saw your ClientProxy and CommonProxy, really can't understand what I really need...

 

Proxies are not involved in block GUIs.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Sure, but I'm lost, I've tried here.

 

Let's go, what really I need?

 

- On the main I register on NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler()); [OK]

 

- I make a new static variable called instance: @Instance("myModID")public static MainClass instance; [OK]

 

- a Block Container (which will be registered in the game and which I can activate with right button) [OK]

 

- a Class that will Extend to GuiContainer, sure? - There I put a STATIC FINAL int to define it's ID. [OK]

 

- On the Block Container's method called onBlockActivated, I do player.openGui(Main.instance, ID_I_DEFINED, world, x, y, z); [OK]

 

- And now, on GuiHandler, what do I do?

 

 

@Override
public Object getServerGuiElement(int arg0, EntityPlayer arg1, World arg2,
		int arg3, int arg4, int arg5) {

	if(arg0 == GUI.GUI_ID)
	{
		// what now?
	}

	return null;
}

 

Link to comment
Share on other sites

return new YourContainer(player.inventory, (TileEntityYourTE) tileEntity); //server

return new YourGuiContainer(player.inventory, (TileEntityYourTE) tileEntity); //client

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

You don't have a class that extends Container

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

YourContainer (InventoryPlayer inventoryPlayer, TileEntityYourTE te)

 

Again, look at this class:

https://github.com/Draco18s/Artifacts/blob/master/main/java/com/draco18s/artifacts/inventory/ContainerPedestal.java

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.