mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-13 10:14:15 +01:00
ed94de4ddf7edad8694badefc577392e0f762bf5
23 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
ae5a4f955d |
Pulls apart the vestiges of components still hanging onto signals (#75914)
## About The Pull Request Signals were initially only usable with component listeners, which while no longer the case has lead to outdated documentation, names, and a similar location in code. This pr pulls the two apart. Partially because mso thinks we should, but also because they really aren't directly linked anymore, and having them in this midstate just confuses people. [Renames comp_lookup to listen_lookup, since that's what it does](https://github.com/tgstation/tgstation/commit/102b79694fa8eb57ecf7b36032616a9e368ccced) [Moves signal procs over to their own file](https://github.com/tgstation/tgstation/commit/33d07d01fd336726b4f6f6f1b61bb0b3f11a00dc) [Renames the PREQDELETING and QDELETING comsigs to drop the parent bit since they can hook to more then just comps now](https://github.com/tgstation/tgstation/commit/335ea4ad081ec63c42cfa05856e582cca833af6e) [Does something similar to the attackby comsigs (PARENT -> ATOM)](https://github.com/tgstation/tgstation/commit/210e57051df63f88dac3dd83321236da825aae5e) [And finally passes over the examine signals](https://github.com/tgstation/tgstation/commit/65917658fb8a1e7d28ae23c9437a583d646f0302) ## Why It's Good For The Game Code makes more sense, things are better teased apart, s just good imo ## Changelog 🆑 refactor: Pulled apart the last vestiges of names/docs directly linking signals to components /🆑 |
||
|
|
4d6a8bc537 |
515 Compatibility (#71161)
Makes the code compatible with 515.1594+
Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword
And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.
@tgstation/commit-access Since the .proc/stuff is pretty big change.
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
|
||
|
|
4f56b365a4 |
Improves proccall admin circuit component. Adds the option to not resolve weakrefs for set variables and proccall admin circuit components. (#64564)
* Improves proccall admin circuit function |
||
|
|
6e2de00ab4 |
Fixes an issue with tags for mobs not properly being handled correctly and adds logging to admin circuits (#64821)
Tags would bug out due to how the 'Save Shell' component would copy all the variables on an object except a few restricted ones, though this proved to be very buggy. The duplicator part has been removed and more proper logging has been added. To compensate for the duplicator part being removed, admin circuit display names will now replace the entire name of the shell. |
||
|
|
9c6fdb567d |
TGUI list conversions + bug fixes (#63354)
About The Pull Request
Converts more inputs to TGUI. Possibly all user-facing input lists in the game.
Did any surrounding text/number inputs as well
Added null choice support so users can press cancel.
Added some misc TGUI input fixes
Fixed custom vendors while I was there
I refactored a lot of code while just poking around.
Primarily, usage of .len in files where I was already working on lists.
Some code was just awful - look at guardian.dm and its non use of early returns
If there are any disputes, I can revert it just fine, those changes are not integral to the PR.
Why It's Good For The Game
Fixes #63629
Fixes #63307
Fixes custom vendors /again/
Text input is more performant.
Part of a long series of TGUI conversion to make the game more visually appealing
Changelog
cl
refactor: The majority of user facing input lists have been converted to TGUI.
refactor: Tgui text inputs now scale with entered input.
fix: Many inputs now properly accept cancelling out of the menu.
fix: Fixes an edge case where users could not press enter on number inputs.
fix: Custom vendor bluescreen.
fix: You can now press ENTER on text inputs without an entry to cancel.
/cl
|
||
|
|
9653fa06e0 |
save shell component properly loads shells that come with their own circuit (#63628)
Attempting to load a BCI or circuit MODsuit module with the save shell component yields an empty circuit. This PR fixes that by making the save shell component check for and delete any pre-existing circuit in the loaded shell. |
||
|
|
44a2af780d |
Integrated the component printer into the integrated circuit UI. You can now link integrated circuits to component printers (#62287)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> |
||
|
|
a8e01da16f |
Adds 2 new signals, adds pre/postattack_secondary signals to circuit signal handler presets (+a proccall component fix) (#62233)
Adds COMSIG_ITEM_AFTERATTACK_SECONDARY and COMSIG_MOB_ITEM_AFTERATTACK_SECONDARY signals, which are both called by item/proc/afterattack_secondary. Adds COMSIG_ITEM_PRE_ATTACK_SECONDARY and COMSIG_ITEM_AFTERATTACK_SECONDARY to the list of circuit signal handler presets. The proc call, set var, and spawn atom components will resolve any weakrefs passed to them in their parameter port, seeing as the list literal component now converts datums into weakrefs. |
||
|
|
0ebf4891ad |
Fixes bugs with admin circuits, expands upon some admin circuit components and fixes duplicator runtiming when a port doesn't exist. (#61948)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> |
||
|
|
f6dfff674f |
Fixed animating filters with circuits and added special signal ports for instant circuit execution. (#61851)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> |
||
|
|
d15b305527 |
Refactors the list datatype to support composite lists. Adapts a lot of circuits to be able to properly use composite lists. Adds the dispenser shell (#61856)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> Co-authored-by: Colovorat <35225170+Colovorat@users.noreply.github.com> |
||
|
|
765c7840e2 |
[s] Cleanup escalation unsafe procs (#61905)
Fixes admins spawning in atoms and datums without the DF_VAR_EDITED flag |
||
|
|
5fc3aa5b3d |
Adds Animation and Filter Components for Admin Circuits (#61766)
Adds a selection of components for animating atoms and manipulating filters. Makes animating atoms and filters using circuits more intuitive. Also Watermelon planned to make these but was too busy with other circuit QOL stuff and asked me if I would be willing to do it. |
||
|
|
b7ed43d7a8 |
Adds a Datum port type for Admin Circuits (#61582)
Admin circuit components were limited in their utility due to the setvar, getvar, proccall, and signal handler components only being able to operate on atoms. I have improved them by adding the datum datatype, which is used exclusively by the aforementioned components in place of the atom datatype their target port currently uses. Furthermore, an option for the expected output type has been added to the getvar and proccall components. This option defaults to any. |
||
|
|
9295f0d5bd |
[s] Fixed admins being able to bypass proccall protections via remote sdql and circuits. (#61482)
About The Pull Request Admins can bypass IsAdminAdvancedProcCall checks by using these methods of proccall because proccall protection is kinda dumb. This has been tweaked so that there is proper proccall protection for these methods of proccall. Code is hacky, but there's not much of a choice if we want procs to be properly protected from admin proccalls from any sort of remote source. If anyone has a better idea on how to implement this, feel free to hit me up. We need a special global mob that handles proccalls from sources that may not have a usr/client to refer back to. IsAdminAdvancedProcCall() relies usr being defined, so if no usr is defined, then this will always return false. This has been adjusted so that proccalls without a usr/client to refer back to will instead set usr to this special mob, which will then let the IsAdminAdvancedProcCall() return true by comparing whether usr == this special global mob. Why It's Good For The Game Admins can no longer bypass IsAdminAdvancedProcCall checks. Changelog cl admin: Admins are no longer able to bypass proccall protections using remote methods of proccalling. /cl |
||
|
|
515e9a9638 |
Adds admin input requests circuit component (#61403)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> |
||
|
|
b6df5b0046 |
Admin signal handler circuit component (#61246)
* Refactors how components are triggered and refactors how ports are ordered * Fixed trigger problems * Cleanup * Tweaked the code a bit * Fixes compile time errors * Fixes CI * Removed the callback datum that each port had. * Tweaked add_option_port * Fixed sleep problem * Uses regex datums and macros for text-manipulation (#61042) * bane component to element. nullrod now uses it for revenants. (#60640) * bane component to element. nullrod uses it for revenants. * TRUE to FALSE * Update field_generator.dm (#60918) * Automatic changelog generation for PR #60918 [ci skip] * More thermomachine fixes (#60998) fix error when typing the mole efficiency (instead of 0.1 it was 0.001, didn't push the change) fix infinite power consumption (capped) fix efficiency not being tied to laser tiers (issue connected to infinite power consumption) Also fix #61006 (Thermos not working at all because of the efficency stuff added recently) * Automatic changelog generation for PR #60998 [ci skip] * Automatic changelog compile [ci skip] * colossus-type projectiles no longer explode sealed vehicles (#61030) * Automatic changelog generation for PR #61030 [ci skip] * Automatic changelog compile [ci skip] * makes QDEL_IN() not runtime due to using a ternary operator on an arg, fixes several runtimes that happen every emitter firing (#61078) `QDEL_IN(new /obj/effect/projectile_lighting(T, light_color_override, light_range, light_intensity, instance_key), qdel_in > 0? qdel_in : 5)` the use of a ternary here in hitscan code got parsed as `qdel_in > 0? qdel_in : 5 > GC_FILTER_QUEUE ? WEAKREF(item) : item` and since qdel_in is 3 for emitters this was passing only the argument 3 into qdel() when the timer callback was invoked. so every tile that an emitter covers when it fires on master runtimes with a bad del exception and effect doesnt delete * Atmos re-Defined (#60855) This PR takes the atmospherics.dm in _DEFINES and split it into several files to lower the mess, increase readability and improve on the code for later uses Also added some docs here and there * Allows you to cancel TGUI alerts (#61072) This was requested by someone downstream. Some TGUI alerts offer two options e.g. (Kill Bob, Kill Janice), In byond alerts you'd be able to cancel by pressing the X, but tgui alerts don't support this. I've added an option to enable the normal X in the top right, so you can cancel out of alerts if you enable it. * tgui: Silicon Station Alerts (#61070) This PR unifies all Station Alert menus into one datum system. This also means that the old html menus will be converted to tgui, which is a case for cyborg and AI menus. All menus above differ very little, practically only by amount of type of alerts they show except for the AI menu, which also has access to cameras in the alert areas and knows number of the alert sources. * Automatic changelog generation for PR #61070 [ci skip] * Rewords the traitor panel's policy tooltip (#61098) Fulp's spacelaw isn't a suggestion, which makes the upstream comment in the tgui kind of an unintentional griffon. * Automatic changelog generation for PR #61098 [ci skip] * Many smart pipe fixes (#60981) * Smart pipes now actually go over smart pipes This was ostensibly the main feature of smart pipes, so should be fairly important Parentheses are technically not required around the |, but I think it's important to emphasise the importance of parentheses around bitwise operators as this was apparently broken since |
||
|
|
6497a97a89 |
Admins can now save custom shells (#61307)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> |
||
|
|
126411f405 |
Refactors how components are triggered and refactors how ports are ordered (#60934)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> |
||
|
|
e0fad671fd |
Input ports now connect to multiple output ports. Remove combiner. (#60494)
* tgui bsod * debug disconnections * prelim * recomment * set_value -> put ._. * DAMN IT * reinsert subsystem * prepare * unditch signals * remove combiner * remove combiner some more * how did router.dm get here? deleting. * These two COMSIGS should be one. * critical typo * inline cast * have your signals * Have your set_input & set_output. * make compile * upgrade save/load to n-to-n-wires * have your documentation * have your unsafe proc * pay no attention to the compile errors * unlist the ref * paste my for block back in ._. * fix manual input * oops pushed too soon * Have your !port.connected_to?.length Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> |
||
|
|
0deb859b3c |
Moves most circuit defines to files (#60705)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> |
||
|
|
13296f5f74 |
Refactors port types completely and adds the option type. Refactors options to use this new type (#60571)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> |
||
|
|
96f1c2abae |
Adds the bare minimum admin components and allows admins to define list literals. (#60240)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> Co-authored-by: carshalash <carshalash@gmail.com> Co-authored-by: tgstation-server <tgstation-server@tgstation13.org> |