Breaking changes in 0.7.0
ValidatedEnumMap
is removed- Removed all methods and properties marked as Deprecated and for removal 0.7.0
SmallSpriteDecoration#<init>
SpriteDecorated#textureSet
&textures
is now a required overrideSpriteDecoration#<init>
CustomButtonWidget#<init>
& builder is now only non-override method for adding custom button- Removed
ActiveButtonWidget
- Removed
TextlessActionWidget
DynamicListWidget.EntryPos
and implementations madeinternal
PopupWidget
position elements;LayoutWidget
no longer inherits from the PopupWidget variant- Removed deprecated overrides of
PopupController
fromPopupParentElement
SuggestionWindowListener
andSuggestionWindowProvider
moved out ofinternal
sub-package- Removed
ImmutableRelPos
RenderUtil#renderBlur
- Throughout FzzyConfig
Translatable.Result
has been replaced withTranslatable.ResultProvider
. This affectsEntrySearcher
as well asSearcher.SearchContent
Additions
- New
Translatable.Name
,Translatable.Desc
, andTranslatable.Prefix
annotations for data generation of lang files- Corresponding
ConfigApi.buildTranslations
andConfigApiJava.buildTranslations
methods for hooking a config into a data generator - Also created a simple registered objects translation builder at
ConfigApi.platform().buildRegistryTranslations
Used for eitherRegistrySupplier
objects built by aRegistrar
orIdentifier
used in a traditional registration system
- Corresponding
- Added
ConfigScreenProvider
, allowing for registering of custom screen implementations in place of the Fzzy Config built in- API Call
registerScreenProvider
added for registering your provider
- API Call
afterClose
event inPopupWidget
isPressed
method inRelevant
interface (which is used byFzzyKeybind
andValidatedKeybind
), which allows for assertive checking for a key state, above the existing reactive response methodrelevant
- Overhauled the error handling system in
ValidationResult
with a newErrorEntry
system and dramatically improved process flow for building complex errors and passing exceptions and other context information- Also introduced more functional methods like
inmap
,outmap
, andbimap
- Also introduced more functional methods like
Changes
- Upgraded
CustomMultilineTextWidget
to handle click and hover events, as well as now implementing a customMultilineText
implementation ValidatedField
bails out of deserialization only on critical errors, now letting correction take its course more often- The
Registrar
system is no longer marked as experimental. Any further changes to the system will follow the standard released content deprecation and update system - Methods using the old error handling system of string lists are marked for removal 0.8.0
- Slight improvements of overall memory footprint
Fixes
ConfigGroup.Pop
properly pops multiple times if attached to one setting multiple times- Clicking off of a context menu into a slider properly updates the slider value
- Search and Restore Defaults options in the context menu work again
ClickableTextWidget
andCustomMultilineTextWidget
now properly show hover events
Reminder of breaking changes in 0.6.x
ValidatedEntityAttribute
is removedCustom[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. Deprecations scheduled for removal 0.7.0- As of 0.6.3,
ActiveButtonWidget
is unused and deprecated, marked for removal by 0.7.0 - As of 0.6.3,
TextlessActionWidget
is unused and deprecated, marked for removal by 0.7.0 - Possibly more, I didn't take great notes
As of 0.6.0, 1.20.4 and 1.20.6 will no longer be receiving active updates.
Additions
- Improved average config load time by approx. 10%.
Changes
ValidatedKeybind
now stores the keycode in the output file based on a string key, rather than the raw int; but it will still accept the raw int for up-conversion purposes or if the key falls outside the typical set of GLFW keys.- The format for the key is the same as the minecraft one with the
key.[type]
prefix removed (except for mouse buttons, those start withmouse.
) - For example, page down is
page.down
versus the minecraftkey.keyboard.page.down
- And right click is
mouse.right
versuskey.mouse.right
- The format for the key is the same as the minecraft one with the
ValidatedTriState
will now accept boolean inputs from the file, if a user accidentally usestrue
orfalse
instead of the intended enum form"true"
or"false"
- "Excess" fields (fields that used to exist in a config but no longer do, for example) are now reported as deserialization errors and removed from the read file.
Fixes
- Integer-type text-box number validation no longer accepts decimal inputs, and the text-box in general no longer accepts any characters except numbers, the minus sign, and decimal if it is a floating-point number.
- Fixed the search passing text not dynamically updating based on current pass-fail state of the input test.
- Validated Any now properly translates basic settings (again, don't know when this broke)
- Fixed servers not properly parsing updates sent from the client, introduced in 0.6.7
- Config screen managers are now properly invalidated on joining a new world (with potentially new config values to care about)
- Narration of the search bar and search bar option buttons works better, and can recover better from being "interrupted"
- Deserialization fixes:
- Basic validation (plain fields) now properly report their errors, leading to a correction of the config file as needed.
ValidatedAny
is now robust against changing the number of fields in the wrapped object. Previously adding fields and then trying to read the pre-existing config file would result in total failure for the object, reverting to defaults.