Computerdores-AdvancedTerminalAPI icon

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

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)