[MIRROR] Expands the SS13.lua module by adding loop helpers and functions to get the script runner. #186
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Mirrored on Skyrat: Skyrat-SS13/Skyrat-tg#24470
Original PR: tgstation/tgstation#79081
About The Pull Request
SS13.get_runner_client()
andSS13.get_runner_ckey
will return the client and the ckey respectively of the user who ran the lua script. Can be unreliable after the first sleep or yield.The SS13 module can now be made local as the tables that need to be accessed globally have been moved to their own global variables.
Added
SS13.start_loop(time, amount, func)
,SS13.end_loop(id)
,SS13.stop_all_loops()
that allow lua scripts to more easily make loops. Removed thetimer
parameter from these functions, which specified the timer subsystem to use.Documentation on all new added functions have been added in the lua/README.md
Why It's Good For The Game
Getting the client who ran the script and the ckey that ran the script is useful for self contained scripts that are looking for an entrypoint (e.g. location to spawn some item/mob/structure).
dm.usr
is a special variable used for other purposes and can be unreliable when used this way even if there haven't been any sleeps or yields yet, so having a dedicated variable and function to handle it makes things easier.Being able to make the SS13 module local allows for more self-contained scripts. Although this isn't super helpful because
require
will still load the same object for all lua scripts loaded on the same state.Basic looping helpers allow for lua scripts to more easily create loops without needing to recursively do a
set_timeout
or to do awhile(true) do SS13.wait(1) end
loop.Changelog
🆑 Watermelon914
admin: Added SS13.get_runner_ckey() and SS13.get_runner_client() which stores the ckey and returns the client of the user who ran the lua script. Can be unreliable if accessed after sleeping.
admin: Added timer loop helpers to the SS13.lua module, check the docs
admin: The SS13.lua module can now be made local without causing any errors.
/:cl: