Releases: Emik03/KeepCoding
Releases · Emik03/KeepCoding
Fix Mono crash
This is NOT an April Fools update. It just happened to be this way.
I wasn't expecting to be making another release, however as many modules depend on this library, I have decided to fix a long-standing issue so that you aren't required to rewrite code. For this repository's future, I will continue to fix bugs. However, new modules should use wawa still, as this API is completely frozen. I will not accept any feature or enhancement here.
[Hotfix] Fixed severe NullOrEmptyCheck error
13.0.2 Version bump
[Hotfix] Fixed uploaded incorrect version of KeepCoding
Turns out I somehow uploaded an experimental build of KeepCoding that caused many problems. Sorry about that!
PATCH
Changes
- Changed
Helper.GetModules()into an extension method.
Fixes
- Uploaded correct build of
KeepCoding.
Marking deprecated methods as Obsolete
MAJOR
Deprecated code
- Marked some methods as
Obsolete, particularly inHelperandKeyHelper. This library will from now on be fully backwards-compatible, that a module made in a previous version will work identically/better in the future. This decision isn't necessarily final and may change in the future, but is my intended vision ofKeepCodinggoing forward.KeepCodingLitewill continue to remove deprecated methods and as such continue to introduce breaking changes.
Removals
- Removed
Externalclass, moving its functionality inModuleContainerandHelper. This changes nothing unless you are using those methods directly as oppose to indirectly fromModuleScript. - Removed Unity Message interfaces in
KeepCodingLite.
MINOR
Additions
- Added
OnExceptioninModuleScript.
Improvements
- Improved
ReflectionScript's inspector significantly.
PATCH
Improvements
- Correctly disposed local variables in a few
Helpermethods.
Prevented ModConfig from crashing in Editor
12.0.1 Version bump
Fixed TPScript + Changed Helper.Flatten except argument
12 Version bump
Fixed TPScript's string-building methods
11.0.1 Assembly: Version bump
New Lite version + ModuleContainer rewrite
MAJOR
ModuleContainer rewrite
- Rewrote
ModuleContainer, now supports vanillas. Refer to the exhaustive documentation for more details.
Additions
- Added
Externalclass which includesGetIgnoredModules()andGetRuleSeedId(). - Added
KeepCodingLite, which removes a lot of code already filled by other libraries, or isn't needed with the latest versions of C#. - Added
ModuleEventclass as part ofModuleContainer. - Added
RecordandStrictRecordclass. - Added tuple sizes 5 through 9.
Changes
- Changed
ModuleScriptvirtualmethods to include vanilla modules. - Changed
ModuleScript.Modulesto the typeReadOnlyCollection<ModuleContainer>fromModuleContainer[]. - Changed
ModuleScript.Soundsto the typeList<Sound>fromSound[], increasing performance. - Changed return values of
TPScript'sIEnumeratormethods toIEnumerable<T>. They will still work like normal.
Renames
- Renamed
EventHelper.StopSound()toEventHelper.StopSounds(). - Renamed
TupleBasetoTuple.
Removals
- Removed
ArrayHelper.ForEach()due to conflicts. - Removed
ModuleScript.GetIgnoredModules(), which now exists inExternal.
MINOR
Additions
- Added ability to yield return
IEnumerablecorrectly inTPScript. - Added and implemented Unity MonoBehaviour Message interfaces,
IAwake,IFixedUpdate,ILateUpdate,IReset,IStart, andIUpdate. - Added
HashCodepolyfill class. - Added
Helper.Assert()which throws an exception if the given condition is false. - Added
ImmutableExceptionfor exceptions relating to the transmutation of immutable objects. - Added
ModuleContainer.Append()andModuleScript.Append()which append events instead of overriding them. - Added
ModuleScript.ModulesOfBomb()which allows you to get all the modules of a given bomb and cache it automatically. - Added module-grab caching which significantly increases the startup performance.
PATCH
Fixes
- Fixed
Helper.ImplementsMethodto work correctly. - Fixed TP solver buttons being runnable outside of play mode.
Improvements
- Improved performance of
Helper.GetValues(). - Improved performance of
Helper.ToNumber(). - Significant performance improvements to
ModuleScript's initialization as a whole.
Mutable AudioScript._isSFX
-
Added the property
IsSFXinAudioScripttoget/setthe value of_isSFX, which is a serialized private field normally only settable in the Unity Inspector. -
Fixed typo in one of
ClipMax's arguments inUtilityHelper.
Added ModConfig and MonoRandom
MAJOR
Additions
- Added
ModConfigclass. - Added
MonoRandomclass.
Changes
- Changed
AudioScriptto beabstractrather thansealed, for more information on this change, look at Setting up AudioScript. - Changed
ColorblindInfoconstructor to disallowmoduleIdto be null. - Changed library to be mostly CLS-Compliant, and added attributes accordingly. Theoretically, this library should be good to go for other languages like Visual Basic.
- Changed
ModuleScript.IsVRto only check forControlType.Motionbecause this is the only one that changes the behaviour ofKMSelectables.
Removals
- Removed
Foroverloads. Now it only has 1 definition which iterates until it reaches the number passed in.
MINOR
Additions
- Added
AudioScript.OnAwake()andAudioScript.OnUpdate()for consistency. - Added
Helper.Rev<T>()overload to partially reverse a list. - Added
Helper.Range<T>()overload which allows you to generate numbers 0-x without specifying 0. - Added
Helper.Repeat<T>()overload which allows you to pass in a method instead of a variable. This allows you to re-evaluate a value as oppose to evaluating it once and cloning it for the entire iterator. - Added
ILogtoColorblindInfo. - Added
KeyHelper.AsStruct<T>()which allows you to apply anasoperator on a nullable struct. - Added
KeyHelper.Catch<T>()andKeyHelper.If<T>(), andKeyHelper.Using<T>()overloads. - Added
KeyHelper.Conditional<T>(),KeyHelper.Cast<T>(),KeyHelper.Default<T>(),KeyHelper.Is<T>(),KeyHelper.New<T>(),KeyHelper.Or<T>(), andKeyHelper.TypeOf<T>(). - Added many
KeyHelper.ForEachoverloads, which will now return itself instead ofIEnumerable<T>, also allowing you to pass in indexes, and separate key-value pairs into 2 variables for anything inheritingIDictionary. - Added
ModuleScript.RuleSeedandModuleScript.GetRuleSeedId(). - Added
readonlykeyword toNumberandQuotientRemainderstructs.
PATCH
Additions
- Added
KeyHelper.WorkBasedeconstructor to abort the thread.
Changes
- Changed
ColorblindInfoto inheritModConfig. - Changed return value of
Assignto be the iterator itself.
Fixes
- Fixed
Game.Mission.GeneratorSettingfrom casting the incorrect type. - Fixed
PathManager.LoadAssets<T>()returning incorrect values.