Skip to content

Releases: Emik03/KeepCoding

[Hotfix] Fixed NullRef caused by Sound

24 Jun 09:30
Compare
Choose a tag to compare

Merged EditorOnly functionality with main

17 Jun 11:21
Compare
Choose a tag to compare
  • Added Bomb and Modules property in ModuleScript.
  • Added ICloneable interface in BigInteger.
  • Added Manual property in TPScript.
  • Added right-to-left indexing in BigInteger
  • Added Split() with string overload in Helper.
  • Added SplitBy<T>() which splits an IEnumerator in two based on a Func<T, bool>.
  • Added Suppress<T>() in Helper, allowing you to suppress exceptions specified from a given Action and Func<T>.
  • Added unary operators +, -, ++, and -- in BigInteger.
  • Added Vanillas in Game.
  • Changed bomb and module hooks to be on Awake in ModuleScript.
  • Changed Call<T>() to use UnwrapToString() in Helper.
  • Changed dependency to game only being used in-game. It is now safe to call methods and properties from the game through this library within the Editor!
  • Changed OnSolvableSolved, OnNeedySolved, and OnModuleStrike in ModuleScript to pass in the module's name instead of the module's Id.
  • Changed IsInRange() to be called IsBetween() in BigInteger to remain consistent.
  • Changed LoadVideoClips() to be LoadAssets<T>(), removing the coroutine aspect which returns the assets directly, and giving it a wider purpose, in PathManager.
  • Fixed broken Equals() method on Sound.
  • Fixed module throwing exceptions when playing too many sounds due to a limitation with KMAudioRef-related play sound methods.
  • Removed EditorOnly build. The main dll uses quirky workarounds with dependencies to only use the game's code when it's run in-game, and return default values otherwise.
  • Removed IRCConnection class from PathManager.

[Hotfix] Changed LogMultiple to no longer use "in" keyword

01 Jun 17:26
Compare
Choose a tag to compare
Revert "Merge branch 'editoronly' into main"

This reverts commit 95576cbd03c9f8b9605f5ae0aa0c8aab4a55668c, reversing
changes made to a89063a170ef7a54486afb881744c36b8a55bde8.

Revamped Logging

01 Jun 13:08
Compare
Choose a tag to compare
  • Added AddStrikes, SetStrikes, and Timer in Game.
  • Added Assert(), Find(), and Stop() extension methods in Helper.
  • Added constructor overload with Component for ModuleContainer.
  • Added generic and type overloads of GetPath() in PathManager.
  • Added LastId in ModuleScript.
  • Added logging when calling methods in PathManager.
  • Added logging when ModuleScript's Awake() and OnDestroy() run.
  • Added new Logger class. Implemented by both ModuleScript and allows KeepCoding to log itself.
  • Added PlayStackable() in AudioScript.
  • Added ToLogger extension method in TypeHelper.
  • Changed default parameter priority in Play() of AudioScript to 128.
  • Changed HasStruck's setter from ModuleScript to be public.
  • Changed Relative to be public in AudioScript.
  • Fixed end of fade being absolute volume instead of relative in AudioScript.
  • Fixed ModuleScript subtracting strikes even when strikes weren't issued in the event of an exception.
  • Renamed DynamicAudio to AudioScript.
  • Renamed ModuleId to Id in ModuleScript.
  • Removed one of the Dump overloads in ModuleScript.
  • Removed serialization of Volume in AudioScript.

[Hotfix] Added generic and type overloads to GetPath() to PathManager

28 May 22:51
Compare
Choose a tag to compare
3.2.1

Merge branch 'main' of https://github.com/Emik03/KeepCoding into main

Fixed GetPath accessibility

28 May 20:15
Compare
Choose a tag to compare
  • Changed ModuleScript to solve the module instantly before calling the Twitch Plays autosolver, since an exception can be thrown with no way of handling it.
  • Fixed DynamicAudio receiving MissingComponentException on Editor.
  • Fixed GetPath() being inaccessible in PathManager.

Fixed AudioSource being inaccessible in DynamicAudio

28 May 03:40
Compare
Choose a tag to compare
  • Added property AudioSource for DynamicAudio that allows the field _audioSource to be accessed.
  • Changed DynamicAudio to only create the component when called, and if null.

Solve automatically on unhandled exception and removed ModBundle class

28 May 03:00
Compare
Choose a tag to compare
  • Added Assign() Action<KMSelectable> overload to EventHelper.
  • Added Bomb property in Game.
  • Added Call() overload which calls Debug.Log() by default in Helper.
  • Added generics and type overloads in GetModInfo(), LoadLibrary() and LoadVideoClips().
  • Added IsPlaying in DynamicAudio.
  • Added Logger() in Helper.
  • Added NameOfAssembly<T>() and NameOfAssembly() in PathManager.
  • Added null check in Sound constructors.
  • Added StartOrRestart() in Routine.
  • Changed DynamicAudio fields to all be private.
  • Changed GetAllValues() to be named ReflectAll() in Helper
  • Changed HasComponent to include an out parameter in Helper.
  • Changed ModuleContainer properties to have shorter names.
  • Changed ModuleScript to automatically solve the module when an exception is thrown.
  • Changed ModuleScript to log the KeepCoding version number.
  • Changed TPScript's TwitchHelpMessage to be private.
  • Fixed missing constants in ComponentPool.
  • Fixed non-generic Routine not having a default value in oneByOne.
  • Removed ModBundle. The assembly name is used instead.

Ready for Modkit

22 May 16:02
Compare
Choose a tag to compare

Version numbers will from now on follow semantic versioning.
This update irons out the last few things needed before this library is fully ready to be used in a modkit.

  • Added OnModuleStrike, OnRegularSolved, and OnNeedySolved to ModuleScript.
  • Added option to wait for other instances of itself on Routine.
  • Added IRCConnection subclass to Game, allowing you to send twitch messages in the chat.
  • Changed library to be C# 8. This is to help people compile it in operating systems other than Windows.
  • Removed interfaces IModule and ITP<T>. ITP will still remain.

Major bug fixes

22 May 03:04
Compare
Choose a tag to compare
Major bug fixes Pre-release
Pre-release
  • Added a way for ModuleScript to get the current TPScript with the property TP.
  • Added ComponentPool class.
  • Added GeneratorSetting class.
  • Added properties to wrap TP-reflected fields.
  • Added sealed modifier to ModBundle.
  • Changed Game's IsPacingEventsOn to IsPacingEvents.
  • Fixed major bug from Mission not getting localized strings before returning the string properties.
  • Fixed major bug from PathManager involving not including DirectoryNotFoundException in GetDisabledPath.