Nifty Gui is easy to understand, that is the good point.
You can find the .xml file for the AgentKeeper Gui when you check out the Sources here:
- {l Code}: {l Select All Code}
agentkeeper\assets\gui\DungeonHud.xml
You can just change the Layout, everything. Importand is that the ID from the Elements controlled by Code are the same like before.
As an Example, the Manastatus from the left top corner:
- {l Code}: {l Select All Code}
<panel id="mana" childLayout="vertical" width="70px">
<panel id="minusplus" align="left" childLayout="center" width="100%" valign="top">
<text id="claimedtiles" style="nifty-label" text="+000" color="#0f0f" align="left" valign="top" textHAlign="left" />
<text id="manacost" style="nifty-label" text="-000" color="#f00f" align="right" valign="top" textHAlign="right" />
</panel>
<text id="manastatus" style="nifty-arial-label" text="00000000" color="#0dff" valign="bottom" textHAlign="left" />
</panel>
So the ids "manastatus, claimedtiles, manacost and claimedtiles" should not changed. Because the Code use this ID´s to change the values.
But you can totally put this text on other Panels, rezize it, whatever. Doesent matter. Just the ID need to be the same.
For the Buttons that have functionality you can easily create Methods in the XML:
- {l Code}: {l Select All Code}
<control name="button" label="Grid" id="OptionsButton2" visibleToMouse="true" height="50%" valign="center" align="left">
<interact onClick="setGrid()" />
</control>
With this interact-tag. You can define them, doesent matter if they dont exist yet in the Code, and then tell the Coders you need a Method named for example "setGrid()". (In this case it already exists ^^)
You you want to know more about the Code you can find the implementations of the Methods triggered by the Gui here:
- {l Code}: {l Select All Code}
agentkeeper\src\main\java\jadex\agentkeeper\view\KeeperGuiController.java
Hope this Information will help you or anyone else who want to improve/change the GUI.