Fzzy Config

Fzzy Config

Mod

Config API with automatic GUIs, powerful validation options, server-client sync, and more!

Client and server Game MechanicsLibraryManagementUtility

1.12M downloads
224 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

fzzy_config-0.6.0+1.20.1+forge

Changelog

Version 0.6.0 implements several breaking changes, please update implementations as needed, and feel free to reach out to discuss issues that come up.

  • ValidatedEntityAttribute is removed
  • Custom[Widgets] are moved from the internal widget package to the custom package
  • Several widgets and other classes have been deleted
  • PopupWidget has many deprecations, and probably at least one breaking change despite my best efforts
  • Possibly more, I didn't take great notes

Registrar is still marked experimental with anticipated stability by 0.7.0

As of 0.6.0, 1.20.4 and 1.20.6 will no longer be receiving active updates.


Additions

  • Created a ground-up list widget system with CustomListWidget and the built-in implementation DynamicListWidget. This new list is more powerful than the vanilla lists, allowing for varying heights for each element, hiding/unhiding individual entries, built in searching of entries, and more.
  • Created Searcher system for building simple search implementations from a collection of elements.
  • ValidatedPair and corresponding method ValidatedPair.pairWith. This new validation joins two settings into one, and displays their widgets side-by-side. This is convenient for number ranges and so on.
  • Validated numbers now have a third widget type, TEXTBOX_WITH_BUTTONS. The standard entrybox also has a small up and down button with this layout.
  • Added custom ScreenNarrator implementation for config screens with several improvements and bug fixes over the vanilla narrator.

Translatable Updates

  • Translatable now includes a prefix element. Add a lang key for a setting, section, or config to add inline "prefix text" that appears above the setting or at the top of the setting list, respectively. This pairs well with the next addition
  • For implementations of Translatable, be sure to override hasPrefix, prefix, and prefixKey as needed.

Config Groups

  • Added new Config Group system. Groups are inline, collapsible collections of settings. Groups are an excellent place to add a prefix, to provide a general description of what the settings inside the group do.
  • Groups can be nested, though this is probably not needed in most circumstances

Screen Anchors

  • Configs, Sections, and Groups are now Anchors, much like anchors in a web page.
  • A new go-to menu in the bottom left (accessible by pressing Ctrl + E also) allows you to quickly navigate between all the anchors of the current config namespace.

Context Action System

  • Created new keybind-like ContextAction system that allows for powerful handling of context actions and key presses.
  • Automatically builds context menus as applicable to the right-clicked element.
  • Handles complex keybinds like ctrl-shift-C, etc.
  • Handles inputs in a layered manner, allowing each layer to only capture the inputs it cares about, passing the input
  • Added several new keybinds
    • F1: Opens info screen
    • Ctrl + E: Opens goto menu
    • Backspace: Return to the previous config screen
    • Home: Scrolls to the top of the config list
    • End: Scrolls to the bottom of the config list
    • (Context menu): You can now fully clear collection settings with the Clear command.

EntryCreator

  • New system for creating list entries in an orderly manner
  • ValidatedField now has several helper methods for easily creating custom entries without needing to fully re-implement the base design.

LayoutWidget

  • LayoutWidget added, a generalization and improvement of the system in PopupWidget. This widget can be used to create automatically laid out collections of widgets using a DOM-like layout model.
  • Entry creators and several other systems in FC now use these layouts.

Changes

  • The Result Provider API is promoted to stable
  • The Pos system now implements Supplier
  • Overhauled the Decoration system, now Decorated, a simple Drawable-like interface that allows passing of different types of icons to various FC systems, dynamically rendered, animated, etc.
  • Most custom widget implementations now use a TextureSet system for defining textures to use in various hovered and focused states

Fixes

  • Fix apparent concurrent modification problem with screen scope registration.
  • Moved catalogue compat back to somewhere that Catalogue can actually find it.
  • Fix crash on suggestion windows trying to substring empty suggestions.
  • Fix config objects that don't implement equals not mapping properly between de/serializations, which improperly caused resets of data.
  • Fixed bug with update de/serialization not working properly on nested config sections

Files

fzzy_config-0.6.0+1.20.1+forge.jar(1.78 MiB) Primary Download
fzzy_config-0.6.0+1.20.1+forge-sources.jar(538.69 KiB) Download

Project members

fzzyhmstrs

Member

Details

Licensed TDL M
Published 9 months ago
Updated 2 days ago