Its been a quiet few weeks now. Iโ€™m mostly been taking some time to organise some bits in Notion and take some time away from game dev in the evenings to take a break. Iโ€™m still taking it easy for now but I did want to get this update out which was mostly complete before I took the break. I do have other bits planned including major updates to the Save Manager etc. But these may be delayed a bit longer due to the update needing to be a major one due to incompatibility with the save structure in 2.x. Iโ€™d expect some progress there in the autumn or winter if I were to guess. Though it maybe as far as next year.

Update notes

Changes


  • Log system rework
    • Categories for filtering which logs are shown.
    • Updated flow to allow for sub-type on a category for extra context of the class the log is firing from in the message.
    • You can make additional categories by making classes that inherit from the CartLogCategory class.
    • Categories can now be toggled from the settings provider for the library.
// A log category definition.
public sealed class LogCategoryCore : CartLogCategory { }
  • Improved module management flow and GUI
    • New install & uninstall flow setup which should error less often.
    • Updated GUI look for the setup.
    • Several modules updated to function with the new updates.
    • New editors for data assets related to the system.
  • Data module
    • The module is now in the core library.
    • Removed the cart internal asset setup for simplicity (was a clone of data for internal use in earlier versions).
    • Dependency for Notion Data module to need data module removed.
  • Panels system update
    • New custom editors for all elements.
    • Transitions are now separated from the panel class.
    • Added toggle button for panels in editor.
    • Renamed the PanelE class to be clearer as to what it is.
  • Time format setup
    • Format timespans/int/float/double easily to a nice string format for readability.
    • You can make your own by implementing the ITimeFormatter component on a class (non-Monobehaviour).
// Example time formatter implementation.    
public class TimeFormatterDayHourMinSecDetailed : ITimeFormatter
{
    public string Format(TimeSpan timeSpan)
    {
        // Your logic here...
    }
}
  • Some general clean up in places, but a fair bit more to do in future updates.

Fixes

  • Fixed modules installing in the wrong location when the asset wasnโ€™t in the base install location.
  • Fixed a few edge case issues with module flows. Of which there were many.
  • Settings provider no longer shows the modules section if none with settings providers are installed.
  • Fixed menu item structure to be ordered correctly.
  • Added missing header comments on some scripts and ensured all new ones also have the header.

A fairly chunky update with a lot of content, but I do need to go through an finish commenting up bits and start working on some docs for all these systems before I go and add any more large systems to the library. So 0.7.0 updates will all be docs, bug fixes and minor updates to existing code. I do have some decent updates planned for future releases, such as remote config, google sheets data and more.

That’s all for now

J,