FoxCore Window System Discussion
This is a discussion post for suggestions and feature requests of a yet to be fully implemented addition to the FoxCore Plugin.
What is this system?
It is an advanced windowing/CUI system for Minecraft.
It was initially designed for FoxEdit, but has since been planned out in an abstract way in which any plugin/mod should be able to link to.
This is a short (and pretty terrible) video on a few of the current features:
Planned Features
- FoxLang Bindings
- Theme/Skin System
- Dynamic Plugin System
- Easy Window Builder (XML? JSON? Other?)
- Server & Client Support
- Rendering System
- In world 3D rendering (allows regions/areas to be highlighted or have walk up windows + much more)
Planned Window Components
- Labels
- Buttons
- Text Fields
- Passwords
- Number Fields
- Sliders
- Continuous
- Discrete
- Checkboxes
- Radio Buttons
- Panels
- Progress Bars
- Drop down menus
- Color Picker
- Groups (like with the border around them)
- Tree
- List
- Select list
- Scroll pane
- Canvas
- 2D
- 3D
- Image Pane
- File Selector
- Text Areas
This is a very crude example of the current setup to create a window with some text and a button that does stuffs.
this.window = new Window("World Start!")
.setPositionX(10)
.setPositionY(10)
.setWidth(160)
.setHeight(80)
.setPinned(true)
.setVisible(true);
this.labelComponent = new LabelComponent("Player Position: ")
.setPositionX(10)
.setPositionY(10);
final ButtonComponent buttonComponent = new ButtonComponent("Verify!")
.setPositionX(30)
.setPositionY(35)
.setClickHandler(integer -> {
try {
if (InetAddress.getByAddress(new byte[]{8, 8, 8, 8}).isReachable(250)) {
System.out.println("Verified!");
final Window notifWindow = new Window("Verified!")
.setPositionX(300)
.setPositionY(300)
.setWidth(160)
.setHeight(80)
.setVisible(true);
this.registerWindow(notifWindow);
}
} catch (IOException e) {
e.printStackTrace();
}
});
this.window.addComponent(this.labelComponent);
this.window.addComponent(buttonComponent);
this.registerWindow(this.window);
If you have any ideas or suggestions, please let me know.
I am curious to know if this is something that other people would actually want, so please let me know.
Snowie (d4rk)
FoxDenStudio