Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
library:inventorygui:usage [2020/11/27 12:41] – [Dynamic Element] Add viewer phoenix616 | library:inventorygui:usage [2021/05/11 11:36] (current) – [Dynamic Element] Add per player info phoenix616 | ||
---|---|---|---|
Line 81: | Line 81: | ||
and automatically changes the ItemStack icon. | and automatically changes the ItemStack icon. | ||
```java | ```java | ||
- | gui.addElement(new GuiStateElement(' | + | GuiStateElement element = new GuiStateElement(' |
new GuiStateElement.State( | new GuiStateElement.State( | ||
change -> { | change -> { | ||
Line 102: | Line 102: | ||
"By clicking here you will stop flying" | "By clicking here you will stop flying" | ||
) | ) | ||
- | )); | + | ); |
+ | |||
+ | # Set the current state | ||
+ | if (player.isFlying()) { | ||
+ | element.setState(" | ||
+ | } else { | ||
+ | element.setState(" | ||
+ | } | ||
+ | |||
+ | gui.addElement(element); | ||
``` | ``` | ||
- | ... you can define as many states as you want, they will cycle through on each click | + | You can define as many states as you want, they will cycle through on each click. |
- | you can also set the state directly via `GuiStateElement# | + | You can also set the state directly via `GuiStateElement# |
+ | before you show the GUI or re-draw it. | ||
### Dynamic Element | ### Dynamic Element | ||
- | You can also dynamically load elements each time the GUI is re-drawn. E.g. when you want to cache GUIs but not the | + | You can also dynamically load elements each time the GUI is re-drawn |
- | text of some buttons or dynamically change them while they are open without closing and reopening them. | + | |
Dynamic elements just return one of the other elements that should be displayed each time `InventoryGui# | Dynamic elements just return one of the other elements that should be displayed each time `InventoryGui# |