Upgrading to API v2.1 series
Follow the compatibility notes when upgrading your mods to API v2.1 series
When upgrading your modification from the target of the later version of Nitrocid KS that declares itself to be from the API v2.1, you must make necessary changes to be able to use your mod in a Nitrocid KS version which you use to test your mod.
The following changes were listed sequentially as development went on.
From 0.0.23 to 0.0.24
This version was released to make groundbreaking additions and improvements.
v0.0.24.x seriesRemoved support for ICustomSaver
ICustomSaver<Obsolete("This custom screensaver interface is obsolete. Use IScreensaver and BaseScreensaver instead.")>
Public Interface ICustomSaverPublic Sub CompileCustom(file As String)Custom screensavers used to implement the ICustomSaver interface to implement the screensaver logic. Now, it has been removed in favor of the new screensaver class implementing the newer IScreensaver interface, BaseScreensaver.
This breaks all the existing screensavers that still use the old ICustomSaver interface. This has also resulted in the removal of the Custom() function and reimplementation as ParseCustomSaver.
Removed support for PerformCmd()
PerformCmd()Sub PerformCmd(Command As CommandInfo, Optional Args As String = "")CommandBase.Execute() was implemented to replace the above function, so we decided to remove the function as it only supported one command at a time, and you had to make a switch case statement for each command executed.
Restructured the filesystem API
Filesystem module was a god class, so we decided to consolidate it to their own separate files to accomodate with the upcoming changes. However, you need to use their own namespace (for example, if you want to copy a file, import KS.Files.Operations) to be able to use them.
Public Function SetSizeParseMode(Enable As Boolean) As BooleanWe have also removed SetSizeParseMode() as it's redundant and it was there for compatibility reasons.
Removed functions:
SetSizeParseMode()
New namespaces:
KS.Files.AttributesKS.Files.FoldersKS.Files.LineEndingsKS.Files.OperationsKS.Files.PathLookupKS.Files.PrintKS.Files.QueryingKS.Files.Read
Separated ConsoleColors enumeration
ConsoleColors enumerationPublic Enum ConsoleColors As IntegerThis enumeration used to hold all the 255 console colors and their names for easier selection. It was just separated from the Color255 module to put it directly to the KS.ConsoleBase namespace
Removed KS.Misc.Dictionary to substitute with Dictify
KS.Misc.Dictionary to substitute with DictifyPublic Function GetWordInfo(Word As String) As DictionaryWordPublic Class DictionaryWordAs Dictify got released, we decided to remove these functions and use them from the library.
Moved APIs to their own namespace
We have moved the below APIs to the below namespaces as they keep getting expanded:
Network transfer APIs ->
KS.Network.TransferColor console APIs ->
KS.ConsoleBase.ThemesInput console APIs ->
KS.ConsoleBase.Inputs
Removed the progress and its report positions from SplashInfo
SplashInfoPublic ReadOnly Property ProgressWritePositionX As Integer
Public ReadOnly Property ProgressWritePositionY As Integer
Public ReadOnly Property ProgressReportWritePositionX As Integer
Public ReadOnly Property ProgressReportWritePositionY As IntegerThese four progress position variables were used to indicate where the splash manager should write the progress percentage and progress report. Splashes are now responsible for these.
Replaced CommandPromptWrite()
CommandPromptWrite()Public Sub CommandPromptWrite()CommandPromptWrite() used to be the helper for UESH to write its own prompt, but it's eventually replaced by the more powerful WriteShellPrompt() to accommodate all possible cases, like custom variables, and so on.
Organized the ShellBase namespaces
ShellBase namespacesThe shell base has been divided to three types:
Aliases (namespace:
KS.Shell.ShellBase.Aliases)Commands (namespace:
KS.Shell.ShellBase.Commands)Shells (namespace:
KS.Shell.ShellBase.Shells)
Changed progress bar writer module name
Public Module ProgressColorWe didn't want to cause confusion between ProgressColor in the FancyWriters namespace and the actual ProgressColor in the ColorTools module, so we decided to extend the name of the progress bar writer module to ProgressBarColor.
Last updated