* fixes all access helpers (#67503)
All access helpers added their access to req_access_txt instead of req_access, that fixes that, and cuts down on some unnecessary code.
* fixes all access helpers
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Spellchecks the Name for Unrestricted Side Helpers (#67269)
What the fuck is a "unresctricted"?
* Spellchecks the Name for Unrestricted Side Helpers
Co-authored-by: san7890 <the@san7890.com>
* fixes problems with access helpers (#66456)
Makes Library access helper use Library access instead of Theatre
Adds a Theatre access helper for Theatre
Adds an Engine equip access helper for Engine equip (SMES/Grav gen, in the case of Pubby, aka the whole reason I made this PR).
Removes double crematoriums
It's nice when helpers work as they are supposed to, and if used in the future, will help our maps have less varediting. pretty cool.
* fixes problems with access helpers
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* fix CI hopefully
* more CI
* fffff test this fix
* ok try this
* ok maybe
* more runtime??
* Revert "more runtime??"
This reverts commit c14124de3e18b2963ed78207ed6c64df97524a3c.
* fix this runtime?
* Revert "fix this runtime?"
This reverts commit 4b690e17666b906c47ea1ba86da6744be15c1132.
* working??
Co-authored-by: nevimer <foxmail@protonmail.com>
* fixes minor spelling mistake on genpop instrucitons (Also makes them a fluff paper) (#64791)
* fixes minor spelling mistake on genpop instrucitons (INTRUSTIONAL -> INSTRUCTIONAL)
* 'listas' spelling mistake too
* fixes minor spelling mistake on genpop instrucitons (Also makes them a fluff paper)
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Fixes a bunch map log runtimes, adds CI to catch some more potential map issues (#64599)
* Fixes APC offsets in template maps, airlock note placer helper
* also hellfactory
* remove doubled lavaland mining cable
* Updates CI grep checks for cable check to work, and also check lattices and identical pipes
* Add APC pixel offset checking
* mass apc offset fixes
* Fixes a bunch map log runtimes, adds CI to catch some more potential map issues
Co-authored-by: Tastyfish <crazychris32@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Fixes Modular Map Loading Runtimes (#64212)
## About The Pull Request
Moves the modmap root object's load_map() call to New(). This changes something about where it falls in init order that stops it from causing a flood of lighting runtimes. Don't ask my why, it just does.
## Why It's Good For The Game
Fixes#64192
* Fixes Modular Map Loading Runtimes
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
* Fixes some mapping errors not using the mapping error log. (#64114)
Should help prevent #64066 from reoccurring.
* Fixes some mapping errors not using the mapping error log.
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Adds Modular Ruins (#64077)
Adds a new system to allow mappers to randomly load modular map segments.
For implementation details and a tutorial check the included README.md.
* Adds Modular Ruins
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
* adds the sound injector mapping helper (#63807)
lets us control both icons and sounds, basically free will over assets on custom maps
* adds the sound injector mapping helper
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Forces areas to create their lighting objects when loaded from a map template (#62931)
Continues the journey of #61730. This time, all map templates will see their area lighting objects created upon getting loaded if they have static_lighting = TRUE. This means that places like Hilbert's hotel, as well as any map placed by an admin during the round, will now be able to properly have dynamic lights without any need for VV shenanigans.
Tested and working, I tested with Hilbert's hotel and by spawning a couple of other map templates to confirm.
Fixes#61558, closes#61340 (kinda not, but it's already fixed anyway, and loosely related to this) and should be the final nail in the coffin of #61349.
Courtesy ping to @ TiviPlus, just in case you had anything to say about it.
* Forces areas to create their lighting objects when loaded from a map template
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* secret gateway update (#62003)
admins are now notified about a secret gateway load failing, also logs this
secret z levels are protected from incorporeal movement
fixes unpowered ruin areas being powered
adds a bunch of new areas for secret gateways, since var edited areas probably arent a good idea its good to have a few presets
adds cordon turfs and areas, ingame they just look like the z level border, they are completely indestructible, you cant pass them, and if you somehow do, the cordon area kills you (idea from goon but the code and sprites are mine)
adds a z level injector mapping trait, injects a z level trait into the z level its placed on, if you want to add something like ash storms or whatever to your map
adds an anti xray z level trait, you can optionally add this with the z level injector to protect your map against any xray or whatever
* secret gateway update
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Adds SHOULD_NOT_SLEEP to Destroy. Why didn't we do this before. (#61943)
* Adds SHOULD_NOT_SLEEP to Destroy. Why didn't we do this before.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
currently cycle helpers only work in straight lines, this limits mapping design for airlocks, i now present to you a new mapping helper where all you do is set a var for the helper, and paste it over airlocks, and those airlocks will now all sync up so only one of them can be open at a time (as of now clicking an airlock to open them wont cycle, but the current cycle helpers dont do it either so its consistent)
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
* Del The World: Unit testing for hard deletes (#59612)
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
* Del The World: Unit testing for hard deletes
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
As described in issue #56733, there is a possibility of a race condition in SSmapping.add_new_zlevel - either during Z level incrementing, or the proc itself, as it only expands the amount of registered z-levels after being finished.
While the first hopefully shouldn't happen, it can still manifest because of the CHECK_TICK within. A practical result is that two concurrent calls to this proc will both create a new Z-level, but actually report having made the same first one.
This is problematic for map_templates that will then load blindly to the reported Z-level when using load_new_z, overwriting each other. We sometimes encounter that end result on CM13 codebase because of a map load that can be triggered by an user topic - if two people click at the same time, it's not unlikely for the first call to sleep in CHECK_TICK and let the second run, causing double-loading.
Co-authored-by: fira <loyauflorian@gmail.com>
* I hate TGUI even if its better than what we had before
* this is why linters exist
* you need to be a Head or the Warden to get items
* does this please you linter?
* foundation
* basic interactions
* yea I can spell okay?
* linters please leave me alone
* begone debug code
* if you are dead, no interacting
* linters leave me alone
* linters are stealing my soul
* forgot to do this
* sound framework, probably wont work though
* max length, and interaction cooldowns
* message can now be a list and minor code improve
* I am a slave and linters are my master
* fix improper static reference
* add json loading/saving functionality
* default for message is now a list
* jsonize def interactions; implement requirements
* bad
* bug fix; CtrlShiftClick to interact
* minor qol fix
* fix CtrlShiftClick and remove debug code
* haha docker has security measures
* this was painful
* why are you in this branch
* begone
* bruh
* begone
Co-authored-by: Matthew <matthew@tfaluc.com>
Co-authored-by: Matthew J <GoldenKeyboard@users.noreply.github.com>
* Smart Pipes(reborn) (#58038)
How these new pipes work.
-Smart pipes autoconnect to nearby smart pipes
-They are now color coded, so they only connect to the same colored pipe, the GREY pipe is the wildcard and can connect to every other color, so be aware of this
-ALL components spawned by the RPD can be colored (from pumps to connectors, from pipes to manifolds), if you leave them GREY they can connect to every other color. Color adapters can be colored, but they'll still connect two pipes with different colors. BUILDABLE machines are GREY (thermomachines, cryo, HFR) so be aware of this
-Trying to go across another smart pipe will now build a bridge pipe automatically already colored of the color you choose, so you don't have to place it yourself anymore (is still available in the RPD tho)
-ALL binary components, layer manifolds, color adapters and bridge pipe can be put ONTOP of a smart pipe, but not on another of these. Smart pipes can't be placed on top of these pipes, so you have to build them first.
-Lcrossings can't be made anymore (sorry y'all i tryed, if someone have a way of doing them ping me on discord)
-REMEMBER you still have 5 layers to go, these rules apply to the same layer pipes, so if you do a crossing on different layers you won't see a bridge pipe appear.
* Smart Pipes(reborn)
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>