Centrifuge 2.0.0
This is a major update for Centrifuge.
Changes
▐ Logging system has been vastly improved. Breaking changes had to be introduced in order to make this happen.
▐ Unity log interceptor has been improved and displays its logs way better than before.
▐ Reactor.API got the new RuntimePatcher system. It allows mods and GSLs to easily run all the patches and GameCodeTranspiler classes without manually creating a new Harmony instance.
▐ GSLs are now able to get a reference to the IManager interface via Initialize(IManager) method, just like mods, it can be configured to run before or after the Awake method.
▐ Mod manifest now accepts the RequiredGSLs string array, allowing mod developers to specify hard dependencies against GSLs by providing the desired GSL IDs.
▐ A critical bug where Section and float types could not be loaded from the settings has been fixed.
▐ Many minor cosmetic and usability changes were introduced. See commit history for details on those.
Logging System - details on breaking changes
Initialization
// Before
public Log Log { get; } = new Log("mylogfile");
// After
public Log Log { get; } = LogManager.GetForCurrentAssembly();Exception logging
// Before
Log.Exception(e, true); // Silent
Log.Exception(e, false); // Verbose
// After
Log.Exception(e);Moreover, log configuration is now done at the time of initialization via call chaining. Visit docs on details for using the new Logging system.