AdvancedTerminalAPI
A Mod to provide a more advanced API for the Terminal.
CHANGELOG
Changelog
5.1.0 (2024-04-19)
Features
- BuyCommand: Implement IPredictable (ab7917c)
- InfoCommand: Implement IPredictable (80709ec)
- ViewCommand: Implement IPredictable (c97742d)
5.0.0 (2024-04-17)
⚠ BREAKING CHANGES
- refactoring with renaming of API members
- InputFieldDriver: remove obsolete method
- IPredictable: pass an ITerminal instance when predicting to streamline predictors that require that
Features
- add Util method for predicting Items to buy (3baaa1f)
- BuyItemCommand: Implement IPredictable (a3ee9b7)
- BuyUnlockableCommand: Implement IPredictable (6836fbe)
- IPredictable: pass an ITerminal instance when predicting to streamline predictors that require that (87f5c62)
- RouteCommand: Implement IPredictable (6b092c6)
- RouteMoonCommand: Implement IPredictable (d891696)
Bug Fixes
- CommandResult.IGNORE_INPUT had
success == false
(27cd187) - EjectCommand: NullReferenceException in Execute (588dd85)
- EjectCommand: update Logic to use newer Util methods and fix a bug where you couldn't exit the command (8a1d3de)
- Implement IAliasable in RouteCommand instead of RouteMoonCommand (c5a8c3b)
- Improve PredictConfirmation by using VanillaStringMatch (ba4dd3f)
- InputFieldDriver: remove obsolete method (f7b09c7)
- refactoring with renaming of API members (93222c7)
- rename AdvancedTerminalAPI.cs to Plugin.cs (27fcfff)
- RouteMoonCommand: Improve code quality (896d82e)
- Use VanillaStringMatch for GetPlayerIndexByName (cb87b62)
- VanillaStringMatch now behaves closer to the base game (d9a7dae)
4.1.0 (2024-04-15)
Features
- TerminalWrapper: add field TerminalInUse (8beb653)
- TerminalWrapper: add OnExitTerminal Event (2e91ff6)
Bug Fixes
- Mark InputFieldDriver.OnEnterTerminal as obsolete and update internal usages (262e3b0)
4.0.0 (2024-04-14)
⚠ BREAKING CHANGES
- VanillinTerminal: allow for certain methods to be overridden
Features
- VanillinTerminal: allow for certain methods to be overridden (86ae7cf)
3.0.0 (2024-04-14)
⚠ BREAKING CHANGES
- make Util.TextPostProcess an extension method of TerminalNode
- make most private members of VanillinTerminal protected instead
Bug Fixes
- make most private members of VanillinTerminal protected instead (af764e2)
- make Util.TextPostProcess an extension method of TerminalNode (962ffcc)
2.0.9 (2024-04-14)
Bug Fixes
- ci: I give up, no fancy GITHUB_TOKEN just use a generated PAT and be fucking done with it (98a9558)
2.0.8 (2024-04-14)
Bug Fixes
- ci: add continue on error to thunderstore publish (627bc4d)
2.0.7 (2024-04-14)
Bug Fixes
- ci: stop using
${{ github.repository_owner }}
in hopes of getting it working (747e7f5)
2.0.6 (2024-04-14)
Bug Fixes
- another attempt to fix the ci (76d8da8)
2.0.5 (2024-04-14)
Bug Fixes
- ci/cd pipeline should work now (fa8d3ec)
2.0.4 (2024-04-14)
Bug Fixes
- remove unnecessary C# project (a429909)
2.0.3 (2024-04-14)
Bug Fixes
- correct category name in thunderstore.toml to fix thunderstore upload (635096a)
2.0.2 (2024-04-14)
Bug Fixes
- add category "client-side" for Thunderstore upload (d545879)
- move code from namespace 'Computerdores' to 'Computerdores.AdvancedTerminalAPI' (9c8d88e)
2.0.1 (2024-04-12)
Bug Fixes
- update icon (538709c)
2.0.0 (2024-04-12)
⚠ BREAKING CHANGES
- Overhaul API for loading Nodes by adding a Wrapper Class
Features
- add IDescribable Interface and implement it in Vanillin Commands (aadfb1a)
- ITerminals now need to implement GetCommands (dafadf4)
- OtherCommand: rework to show commands that use the IDescribable Interface (c9a0826)
- Overhaul API for loading Nodes by adding a Wrapper Class (27fedeb)
Bug Fixes
- AdvancedTerminalAPI: Fix NullReferenceException (67747e7)
- InputFieldDriver: remove unnecessary types (a60cd58)
- remove 'test' command (2ddbee9)
- VanillinTerminal: GetCommands now puts built-ins before other commands (bba6dd1)
1.0.0 (2024-04-10)
⚠ BREAKING CHANGES
- Change naming in IPredictable API to clearly convey that not just arguments but also Input should be predicted
- InputFieldDriver: Change DisplayText to offer clearing the Screen instead of the input
- InputFieldDriver: add OnInputChange Event
- Move ICommand.PredictArguments to a seperate interface (IPredictable)
- Changes to API and Vanillin Shell to allow for commands to accept input
Features
- add a generic wrapper for vanilla load methods (01ef577)
- Add help command (baf4e8b)
- Add IAliasable for e.g. commands which can be shortened by leaving out the name (c93dcf1)
- BuyCommand: now implements IAliasable (78f078c)
- Changes to API and Vanillin Shell to allow for commands to accept input (dbe84a0)
- Implement 'bestiary' command (9597e8c)
- Implement 'buy' command and accompanying commands for individual items (d73af78)
- Implement 'decor' & 'upgrades' commands (d0732e5)
- Implement 'eject' command (67ab2ac)
- Implement 'flash' command (eaad100)
- Implement 'info' command (1a0db30)
- Implement 'moons' command (7a1966f)
- Implement 'other' command (76d6953)
- Implement 'ping' command (cc01794)
- Implement 'route' command and accompanying commands for individual moons (c5e361e)
- Implement 'scan' command (3a0180d)
- Implement 'sigurd' command (d814913)
- Implement 'storage' command (bb73821)
- Implement 'store' command (90ab1a9)
- Implement 'transmit' command (1676cc9)
- Implement command for terminal accessible objects (doors, turrets, etc.) (7b2df24)
- implement SpecialNodeCommand and replace WelcomeCommand and HelpCommand with it (52362d5)
- implement switch command (83aeb1c)
- InfoCommand: now implements IAliasable (930e9af)
- InputFieldDriver: add OnInputChange Event (cd4955b)
- InputFieldDriver: Change DisplayText to offer clearing the Screen instead of the input (7547e90)
- InputFieldDriver: expose MaxInputLength on the public API (d8ceb51)
- Major API rework for better replacing of the Terminal and adding of commands (0d04e5a)
- Plugin Builds and Shows awake message (165f1bb)
- RouteMoonCommand: now implements IAliasable (ad480da)
- sigurd log entries are now accessible without 'view' (17d6c29)
- TerminalPatch: add LoadNewNode and LoadNewNodeIfAffordable (a0de98b)
- TerminalPath: add pre and post events for awake, start and update (74accae)
- VanillinTerminal: Publicly expose IEnumerable of all Builtin Commands (72a754e)
- view command now working (b64e9a5)
- ViewCommand: now implements IAliasable (f13344a)
Bug Fixes
- accidental bypass of Unity.Object Lifetime check (38e7de2)
- Adapt ICommand.Execute Signature to better suit future needs (018be78)
- add debug log for terminal nodes and keywords (c865e37)
- add version.txt (d73335b)
- BuyCommand: you can now actually buy all items (c78cbf6)
- BuyUnlockableCommand: now clones the correctly (a5b7249)
- Change naming in IPredictable API to clearly convey that not just arguments but also Input should be predicted (ab52e49)
- change SwitchCommand implementation to be closer to the vanilla one (8da9f5d)
- CommandResult: add constants (technically static readonlys) for a generic error and for ignoring the given input (2cacc35)
- CommandResult: add default values for clearScreen and success (d3dc6a0)
- CommandResult: Correctly apply default values (f28499a)
- EjectCommand: adhere closer to the vanilla command (5b9d3fb)
- EjectCommand: Clone now works correctly (39138ea)
- HelpCommand: use the vanilla string formatting (35bb444)
- InfoCommand: you can now leave out the info keyword (f44d5b3)
- InfoThingCommand: Creature file now get loaded correctly (cc51e76)
- InputFieldDriver: DisplayText now ACTUALLY follows intended behaviour when text is null (e6003fb)
- InputFieldDriver: DisplayText now follows intended behaviour when text is null (431c4ef)
- ITerminal now exposes the InputFieldDriver Instance (9151779)
- ITerminal: remove unused methods (a8eca58)
- Move ASimpleCommand to a more appropriate namespace (1d8b342)
- move default commands and terminal to a common namespace (77d47cc)
- Move ICommand.PredictArguments to a seperate interface (IPredictable) (f14575e)
- move static methods to a common Util class (cb6030c)
- prevent Vanillin Commands from being copied to other terminals when it is replaced (a4dd8c8)
- remove unused private method (25d2af3)
- rename ASimpleCommand to SimpleCommand in order to adhere to dotnet naming conventions (7b2adb0)
- shift responsibility for enumerating all AccessibleObjectCommands to AccessibleObjectCommand (7eb42f3)
- shift responsibility for enumerating all SimpleCommands to SimpleCommand (a0fc8bf)
- SwitchCommand now pulls special string from the game in case it changes (2d17e62)
- TerminalPatch: use nameof instead of hardcoded strings (3530537)
- update InputFieldDriver API to somewhat future proof it (f11f64d)
- Util: FindTerminalOption now uses the correct specificity (efbf5b9)
- Util: move Util to more appropriate namespace (d2fae97)
- VanillinTerminal now pulls special strings from the game in case they change (78a3388)
- VanillinTerminal now pulls the list of terminal accessible objects from the game (c92c121)
- VanillinTerminal: allow for custom error messages (1c048c0)
- VanillinTerminal: Execution of a command will now be terminated if execution fails instead of forcing the player to reopen the terminal. (24dc0f5)
- VanillinTerminal: fix a bug where a command would not be found because more than 1 command matched the input (e053c0c)
- VanillinTerminal: prevent empty input from triggering a command not found message (ba50015)
- VanillinTerminal: respect clearScreen even when success == false (6437fbc)
- VanillinTerminal: use vanilla string matching (4137a3b)
- ViewCommand: ignore case (bd2484c)
- ViewThingCommand: Log Files now get loaded correctly (cea2f8e)
- WelcomeCommand now pulls special string from the game in case it changes (2917f8f)
- WelcomeCommand: use the vanilla string formatting (5d502dc)