SamsDRGMods / DRGLib

A library for DRG modding
MIT License
17 stars 3 forks source link

4.0.0 #22

Closed samamstar closed 2 years ago

samamstar commented 2 years ago

Feature/broad changes:

Tags for comprehensive changelist: \ Changed in a non-compatibility breaking way \ Changed in a compatibility breaking way <-> Removed (Will obviously break compatibility) <+> Added

"Comprehensive" changelist: (Many changes were purely internal and should not have any relevance to anyone, or appreciably affect behavior. It's enough work doing this much :P)

  • \ LIB_F_DRG
    • Fixed bug where "GetLocalPlayerController" would get controller from previous scene
    • Switched test widget from "WidgetsAreReady"
  • \ LIB_DEB_O_ValueHolder
    • Switched RequestNewValue to stop using a pass-by-ref object
    • Prevents compile errors
  • \ LIB_W_DraggableWindow
    • Removed overlay button. Popup windows now use the focus path to determine when to self-close
    • This means that windows in the background should no longer require a second click for children to function
  • \ LIB_A_WindowManager
    • Keeps track of ModHub when determining input state on closing last window
    • Keeps LIB_A_WindowHolder non-hittestable unless actively dragging a window. This should prevent further issues with widgets underneath the window layer
    • Places LIB_A_WindowHolder on layer 10001 to make sure windows appear over modHub (Thanks Gold...)
    • Uses input mode UIOnly when first window is placed onscreen, instead of Game and UI
  • \ LIB_A_InputManager
    • No longer loads all saved custom inputs. Will only load after calling AddCustomAction in "LIB_F_Input"
    • This is to avoid a large list of inputs when mods not using them are disabled
    • Now stores a list of active custom inputs in self, instead of reading directly from save
  • \ LIB_F_Input
    • Updated implementation to work with new LIB_A_InputManager
  • \ LIB_O_InputSave
    • No longer saves full custom input, only saves name+override key
    • This is so that the modder can change overlap behavior at a later date and won't get stuck with weird input saves
  • \ LIB_E_LogSeverity
    • Added level "InfoNoPrint"
    • This is so that the print manager can log attempted prints without getting stuck in a loop
  • \ LIB_F_Main
    • Fixed bug where DateTimeToString would break when using milliseconds
  • \<+> LIB_I_DRGLib
    • currently includes single function; this function is called when DRGLib finishes setup
    • Due to current spawn logic, DRGLib is spawned before every other mod. The startup function is called after a 1 frame delay
    • If you require a spawn-frame usage of a DRGLib function (You probably don't), then call UpdateInformedActors on a LIB_A_Main reference
  • \<+> LIB_M_BasicActorMacros
    • Contains WaitForWidgetsReady, which requires an actor context for delays to work properly
  • \ LIB_A_ModInfo
    • Calls "UpdateInformedActors" on LIB_A_Main after spawning mods through failsafe, to ensure that DRGLib dependent mods work
  • \<-> LIB_W_ModInfoPage
  • \ LIB_A_PrintManager
    • When attempting to print before the widget is ready, will save failed attempt to log
  • \<-> LIB_A_SettingsManager
    • RIP all settings stuff. Use ModHub
  • \<-> LIB_E_ListObjectType
  • \<-> LIB_F_SettingsFunctions
  • \<-> LIB_I_SettingsPage
  • \<-> LIB_O_PageListViewDataHolder
  • \<-> LIB_O_SettingsManagerSave
  • \<-> LIB_W_LiterallyJustALeftAlignedImage
  • \<-> LIB_W_Notification
  • \<-> LIB_W_PageHost
  • \<-> LIB_W_PageList
  • \<-> LIB_W_UIMainSettingsPage
  • \ LIB_F_Sort
    • Fixed bug where CompareString prioritized capital letters
  • \ LIB_WT_Button
    • Rebased to LIB_WT_Base
    • \ Removed variable ButtonColor
    • \ Switched ButtonText to text instead of string
  • \ LIB_WT_CheckBox
    • Rebased to LIB_WT_Base
    • \ Removed variable CheckboxColor
  • \ LIB_WT_ColorPicker
    • Rebased to LIB_WT_Base
    • \ Renamed function "ChangeSelectedColor" to "SetSelectedColor"
    • \ Renamed function "UpdateColorPreview" to "UpdateDisplayedValue"
    • \<+> Added event dispatcher OnChangesConfirmed
  • \ LIB_WT_ComboBox
    • \ Removed variable ComboBoxColor
    • \ Switched DefaultOptions to being read only
    • Gave it a spit polish. Actually looks ok now
  • \<+> LIB_WT_ExpandableArea
    • It's pretty cool :)
  • \ LIB_WT_ImageButton
    • \ Switched variable "Image" from a Slate brush to a texture2D
  • \ LIB_WT_InputKeySelector
    • \ Removed variable KeySelectorColor
    • \<+> Added variable "DefaultAction"
    • The IKS will now automatically create a DRGLib managed input action if one is not found on initialization
  • \ LIB_WT_IntSlider
    • \ Removed variable SliderColor
    • Fixed bug where slider would call OnValueChanged every time mouse moved, instead of only when the value changed
    • \ Removed function UpdateSliderColor
  • \<+> LIB_W_WidgetTemplateBase
    • Of note is the function "UpdateWidgetStyle". Each widget template overrides this function to ensure a standardized method of updating. At a later date this may be expanded to UI-wide styles; I dunno
  • \ LIB_WT_Slider
    • \ Removed variable SliderColor
    • \ Renamed function SetFillPercent to SetPercent
  • \ LIB_WT_Spinbox
    • \ Removed variable SpinboxColor
    • \ Min and Max value are no longer read only
    • Now scales dragging based on how quickly your mouse is moving
  • \ LIB_WT_Textbox
    • \ Removed variable TextBoxColor
  • \ LIB_WT_TreeView

    • \ Removed UniqueWidget from AddItem
    • A custom widget is now generated for each list widget, not each inserted object

    whew, that was a lot. I should make more comprehensive commit messages so I don't gotta look through and remember what I did lol