Commit Graph

27 Commits

Author SHA1 Message Date
Fikou bb004c87e3 sdql wrapper for generators and getting list output from generators (#91954) 2025-07-04 20:47:24 -04:00
Lucy 3f0de76f76 adds some more SDQL2/Lua wrappers (#91950)
## About The Pull Request

This adds ~~3~~ 8 wrappers for SDQL2/Lua: `_floor(x)`, `_ceil(x)` (we
already had `_round(a, b = 1)`), and `_typesof(a, subtypes_only)`

`_typesof` has a second argument, `subtypes_only` (default false), which
makes it act like `subtypesof` instead, to save from having to manually
remove the base type (especially since removing by value is kind of
annoying in Lua)

the Lua SS13 library has had a `SS13.typesof` function added, which does
exactly what it says on the tin (also with the second `subtypes_only`
argument)

also added `_uppertext`, `_html_encode`, `_html_decode`, `_url_encode`,
and `_url_decode`. these should all be selfexplanatory

## Why It's Good For The Game

more utility for Lua and SDQL2

## Changelog
🆑
admin: Added some more Lua/SDQL2 wrappers: _floor(), _ceil(),
_typesof(), _uppertext(), _html_encode(), _html_decode(), _url_encode(),
and _url_decode()
/🆑
2025-07-04 16:42:06 -04:00
Lucy 732c5f63a5 Fixes the _winget SDQL2/Lua wrapper (#90327)
## About The Pull Request

this makes it so the `_winget` wrapper actually _returns_ what `winget`
returns.

## Why It's Good For The Game

this wrapper is literally useless otherwise

## Changelog
🆑
fix: Fixed the _winget SDQL2/Lua wrapper, so it actually returns the
return value of winget.
/🆑
2025-03-30 11:34:32 -04:00
Lucy 8ea51f3268 Fix the ispath SDQL2/Lua wrapper (and add a is_type_in_typecache wrapper) (#90207)
## About The Pull Request

This fixes the `_ispath` SDQL2 / Lua wrapper: it always passed two
arguments, meaning it couldn't be used to just simply check if something
was a path _at all_.

In addition, I just added wrapper around `is_type_in_typecache` (as it's
a define), as that's the whole reason I was using `_ispath` anyways, so
it can't hurt.

## Why It's Good For The Game

things working properly is nice

## Changelog
🆑
fix: The _ispath SDQL2/Lua wrapper can now be used to actually check if
something is a path.
code: Added the _is_type_in_typecache wrapper, for SDQL2 / Lua scripts.
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-03-25 21:07:32 +00:00
tonty ee16f1fccc Everything uses trim(), trim returns "" if empty, removes the SDQL2 trimtext (#87994)
## About The Pull Request
Title. I may have been wrong about how depended on this behaviour was
Also, uh, fixes #87986
## Why It's Good For The Game

trim_reduced no longer needs to exist because trimtext() does it faster,
and there's no reason to have a special proc if trim just calls that
proc anyways. I sincerely doubt the proc overhead is so severe that we
need another proc that will ever only be called directly 3 times in the
code.

Since trimtext() does something we don't expect, it's better to just
have SDQL2 queries use trim() so we're all on the same page.

## Changelog

NO!!!
2024-11-20 02:12:22 +01:00
Lucy 728036969d Replace /proc/trim_reduced with the native BYOND trimtext (#87317)
## About The Pull Request

BYOND added a native `trimtext` proc in 515, which as far as I know,
does the same thing as the `trim_reduced` proc - trims whitespace off
both ends of a string, but `trimtext` should be faster, as it's a
builtin rather than implemented in DM.

Also, added a global `_trimtext` proc, for use from SDQL2 or Lua, as
it's a builtin and can't be `call()`'d.

## Why It's Good For The Game

Micro-optimizations my beloved - especially since I imagine this proc is
called quite a lot, even if it doesn't really have a performance impact
anyways, but it can't hurt.

## Changelog
🆑
refactor: Refactored some text helper procs to use BYOND's native text
trimming proc.
admin: Added a _trimtext proc, for use with SDQL2 or Lua scripting.
/🆑
2024-10-24 15:27:59 +02:00
Y0SH1M4S73R d1ccb530b2 Replaces Auxlua with the byondapi-based Dreamluau (#84810)
## About The Pull Request

Ever since byondapi went stable, I've been meaning to create a
replacement lua library that uses it instead of the auxtools-based
auxlua. After so many months, I've finally got the code just about into
a position where it's ready for a PR.

[Click here](https://hackmd.io/@aloZJicNQrmfYgykhfFwAQ/BySAS18u0) for a
guide to rewriting auxlua scripts for dreamluau syntax.

## Why It's Good For The Game

Code that runs on production servers should not depend on memory hacks
that are liable to break any time Dream Daemon updates.

## Changelog

🆑
admin: Admin lua scripting uses a new library that (probably) will not
break when BYOND updates.
/🆑

## TODO:
- [x] Convert the lua editor ui to TS
- [x] Include a guide for converting scripts from auxlua syntax to
dreamluau syntax
2024-07-28 18:45:49 +00:00
san7890 c403a6eccc Wraps lowertext() to ensure proper stringification. (#82442)
## About The Pull Request

Fixes #82440

This PR just creates a new macro, `LOWER_TEXT()` (yes the irony is not
lost on me) to wrap around all calls of `lowertext()` and ensure that
whatever we input into that proc will be stringified using the `"[]"`
(or `tostring()` for the nerds) operator. very simple.

I also added a linter to enforce this (and prevent all forms of
regression) because I think that machines should do the menial work and
we shouldn't expect maintainers to remember this, let me know if you
disagree. if there is a time when it should be opted out for some
reason, the linter does respect it if you wrap your input with the
`UNLINT()` function.
2024-04-10 12:19:43 -07:00
Fikou c3f504bc1e more sdql2 wrapper procs (#73336)
## About The Pull Request
adds findtext (+ex), view, viewers, rectangle turfs and flick as sdql2
wrappers

## Why It's Good For The Game
more fun admin stuff

## Changelog
🆑
admin: adds findtext (+ex), view, viewers, rect_turfs and flick as sdql2
wrappers
/🆑
2023-02-10 12:41:46 -07:00
Y0SH1M4S73R 57b10fcb64 Bumps auxlua to 1.2.1 (+ several other ui fixes and qol tweaks) (#69271)
* preparations for self-referential list conversion

* additional changes for the auxlua 1.1.1 update

* fixed a type in `SS13.await`

* bumps auxlua to 1.2.0

* bumps auxlua to 1.2.1
2022-08-23 23:21:39 -07:00
Y0SH1M4S73R 4e6e1f090e [Ready for Review] Admin lua scripting (#65635)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-07-19 15:45:23 -07:00
silicons 79b0cce1c4 [s] webedit security patch to locate() wrapper (#66264) 2022-05-04 00:32:03 -05:00
LemonInTheDark 15e9d0485f Adds a seperate pick proc to work on lists (#65178)
Because of how arglist() works, _pick was only working on args matching
the format pick(1, 2 ,3)

Because this is logic that happens inside pick itself, and I can't
figure out the proper way to actually pass things in, I've created
_pick_list so admins have a sane way to pick from lists.
2022-02-27 13:16:38 +00:00
Iamgoofball 95801c7035 Fixes some code style issues for more free GBP (#65133) 2022-02-25 00:36:17 -08:00
Iamgoofball cbeaa81e60 Implements some missing SDQL 2 wrappers. (#65132)
Adds _winset and _winget as byond proc wrappers.
2022-02-25 06:30:40 +00:00
Timberpoes f9428e07c6 Fix BYOND-related runtime in SDQL2 _new wrapper (#64895) 2022-02-18 01:03:47 -08:00
Jordan Brown 765c7840e2 [s] Cleanup escalation unsafe procs (#61905)
Fixes admins spawning in atoms and datums without the DF_VAR_EDITED flag
2021-10-06 13:12:50 +01:00
Fikou 8baff61c5f adds list getter and text2num to sdql (#60654) 2021-08-02 22:57:40 -07:00
Tad Hardesty 5e37952b81 Fix name of SDQL arccos wrapper (#51087) 2020-05-25 02:15:13 +08:00
AnturK cc88cc16ed I shouldn't code straight after waking up. 2019-06-06 21:53:30 +02:00
AnturK 652071d9c8 bluh 2019-06-06 21:48:02 +02:00
AnturK 116ea6c71f Adds sdql2 trait wrappers. 2019-06-06 21:46:05 +02:00
kevinz000 a7e974f9d3 [READY]Ports yet another SDQL2 upgrade, refactors SDQL2 to a datum, adds SDQL2 options/more features (#42008)
Thanks to PJB3005
cl
experimental: SDQL2 has been refactored to a datum!
rscadd: A new SDQL2 panel has been added to admin tabs, for tracking, VVing, and halting SDQL2 queries.
rscadd: SDQL2 documentation is now available in SDQL_2.dm
rscadd: SDQL2 now has MAP added. MAP will cause the query to execute on whatever is specified in MAP, whether it's a variable or a procedure call (which will grab the return results), etc etc.
rscadd: SDQL2 now has a superuser mode, for uses outside of admin button pressing. This causes it to operate without admin protection wrapping.
rscadd: SDQL2 now supports options, including ignoring nulls in select or forcing it to operate in high priority mode, which lets it use 95% of the tick instead of obeying the Master Controller's tick limit. USE WITH CAUTION. Also includes a mode for blocking proccalls
rscadd: SDQL2 now supports TRUE/FALSE.
rscadd: To use options, append OPTIONS to the query. Available are "PRIORITY" = HIGH/NORMAL, "SELECT" = FORCE_NULLS/DISABLE or 0/FALSE, "PROCCALL" = ASYNC/BLOCKING.
/cl

Also displaytimetext is refactored.
2019-01-07 20:03:41 +13:00
Remie Richards ec80c3747f animate sqdl wrapper works now. 2017-10-31 11:09:59 +00:00
kevinz000 c10f2246a2 Adds walk and step SDQL2 wrappers (#31447)
* Update SDQL_2_wrappers.dm

* Update SDQL_2_wrappers.dm
2017-10-10 21:18:18 +13:00
kevinz000 f12f868754 Adds a few SDQL2 list wrappers (#30574)
* Update SDQL_2_wrappers.dm

* Update SDQL_2_wrappers.dm

* Update SDQL_2_wrappers.dm
2017-09-11 13:18:43 -04:00
kevinz000 7e93035613 [READY]SDQL2 update: In which admins get more power than they deserve. (#23694)
* ABSOLUTE PATHING!!

* absolutely fucking pathed

* stuffs

* oh that was there for a reason.

* fixes

* stuffs

* my fucking identation >:[

* double no

* no delayed global proccalls.

* /var/s

* /var/s/2

* catch(vars)

* var/expression/e broke without the var/

* lists and wrappers!

* Update SDQL_2.dm

* Update SDQL_2.dm

* Update SDQL_2.dm
2017-02-06 18:37:39 +13:00