Commit Graph

42 Commits

Author SHA1 Message Date
GoblinBackwards
88c05be924 Adds optional automatic ceiling generation for map templates and gives bluespace shelters ceilings (#65582)
* Gives bluespace shelters roofs

* Adds automatic ceiling generation for templates

* baseturf_bottom makes this a lot simpler
2022-03-22 16:37:46 -04:00
Seth Scherer
4e9731712a Dehardcodes SSmapping (#65077)
Essentially SSmapping had a list for each theme of ruin (space, lava,
ice, ice underground). These were all filled with an if statement
checking the ruin templates type. Now, i've given ruins a ruin_type var, which is then used to dynamically add to a single list of ruins, which separates lists of ruins by ruin type.
Good for downstreams who may have more ruin types
Changelog

cl
refactor: Dehardcoded SSmapping ruin types.
/cl
2022-03-02 17:32:43 +13:00
Thunder12345
9dc96a68f5 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.
2022-01-16 15:50:40 -08:00
Watermelon914
8fd85e9666 [MDB IGNORE] BIDDLE TRAITORS - Adds progression traitors. Refactors uplink code in its entirety (#63588)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: tgstation-server <tgstation-server@tgstation13.org>
Co-authored-by: gbfree <guillaumebfree@gmail.com>
Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: ike709 <ike709@users.noreply.github.com>
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Pepsilawn <reisenrui@gmail.com>
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: SuperNovaa41 <supernovaa41@protonmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: san7890 <34697715+san7890@users.noreply.github.com>
Co-authored-by: MMMiracles <lolaccount1@hotmail.com>
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Aziz Chynaliev <azizonkg@gmail.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com>
Co-authored-by: carshalash <carshalash@gmail.com>
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2022-01-11 15:47:10 -08:00
GoldenAlpharex
5342438ec3 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.
2021-11-22 16:16:23 +00:00
Fikou
74be6236d5 Secret Gateways: Config loaded Away Missions + Anti-observing Z level traits (#61719) 2021-09-27 17:04:27 -07:00
Kylerace
c7a399ec4a Fixes bug with atoms (including new players!!!!) not spawned from the holodeck being deleted by it if they happened to be initialized at the same time (#57510)
About The Pull Request

Fixes #57446
yeah not my best moment, holodeck currently sets SSatoms to add every call to InitAtom() to a list and then give it back to the holodeck console (it actually goes through map_template/holodeck to do it but whatever). However it turns out atom/New() calls InitAtom too, so if an atom is created while SSatoms is still creating the list to give to the holodeck then that atom is added to the list regardless of whether or not its actually from the holodeck template.

Now theres an extra argument to InitAtom that tells it whether its spawned directly from a map template (ie, its part of the input list of uninitialized atoms that InitializeAtoms was given) or otherwise the output list that the holodeck uses is populated by calling GetAllContents on all atom/movables spawned directly from the template.

also renamed some vars in initTemplateBounds because it was hard to reason what it was doing and made it use as anything

also note that loading a map template with returns_created_atoms = TRUE will no longer track atoms that arent in the map file but are spawned directly onto a turf, currently nothing does this with the holodeck (which is the only map template that has this feature)

by the way this bug is my fault
Why It's Good For The Game

incredibly incredibly unlucky new players dont deserve to be deleted just because they didnt spawn in the holodeck
Changelog

🆑
fix: the holodeck is no longer so powerful that it can destroy anything and everything that dares to start existing while it's busy loading programs
/🆑
2021-03-20 11:56:35 +13:00
Mothblocks
0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm

We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.

There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.

Hi codeowners!

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-14 16:53:29 -08:00
Kylerace
98f58208c8 Refactors Holodeck to Use Map Templates, Again! Black Magic OOM Crashing No Longer Included (#55645)
Refactors the holodeck to use map templates instead of copy_contents_to, which every maintainer seems to have complaints about.

Fixes #41485 because the matches become part of the spawned list created by ssatoms
Fixes #54789 because the holodeck area no longer has the NO_TELEPORT flag
Fixes #55676 because the map templates cant be changed midround unlike the program copies in the centcom z level
Fixes #49318 because the holodeck no longer creates new areas like the original did

This pr also changes initTemplateBounds to be a /datum/map_template proc instead of a parsed_map proc. This was mainly so I wouldn't have to duplicate vars between map_template and parsed_map. It's also nice because there's no longer a parsed_map proc inside the map_template file, especially when it didn't need to be a parsed_map proc.

The holodeck sims wont take up space in the centcom z level any more (which allows for more possible programs in the future), and map templates are more heavily tested. This is also a chance to future proof the holodeck against bugs. Holodeck also seems more responsive. This should allow for a second custom holodeck in some future ruin as well, although that of course will not be in play for the near future because of the offstation content ban. Also I documented the fuck out of the holodeck
2021-01-30 11:56:29 -03:00
LemonInTheDark
6d1cb94ffb LINDA Reforged (#55604)
Speeds up gas movement significantly
Documents the intent and finer details of the atmos system (Thanks dunc)
Fixes excited groups constantly rebuilding, this broke 4 years ago
Fixes superconductors just straight up not working
Allows turfs to sleep while inside an excited group
Adds a new subprocess to SSAir to support rebuilding in this state
Most heat based behavior no longer relies on being inside a fire
Adds a new element to support doing this cleanly
Adds a new subprocess to SSAir to support doing this while a turf is asleep
Refactors air_update_turf to allow for finer control
Makes apcs take damage in heat to prevent infinite plasma fire diffs
Cleans up immutable gas mixtures to make them work properly when the mix has gas in it
Planetary turfs no longer create a new copy of themselves each time they process. We instead use a global
immutable mix
Cleans up a typed for loop in reactions
Canisters will take damage from outside heat now
Speeds up excited group dismantle
Increases the superconductor threshold by 200k
Cleans up some roundstart ATs on some ruins
Uses /turf/open/var/excited to track if a turf is actively processing, preventing a |=
Prevents openspace from trying to melt
Tweaks a canister examine line
Makes planetary turfs reset to base when broken down as part of an excited group
Makes it impossible for planetary turfs to rebuild, just like space tiles
Fixes closed turfs not activating their replacement when destroyed by moving closed -> open turf activation to
the adjacent air subsystem. They were activating and then going back to sleep before adjacent air got a chance
to tick.
Fire alarms will trigger when the area gets too cold for humans
2021-01-08 08:14:08 +01:00
WarlockD
56345975ba The Great Radio Rework: NTNET Part 1 of many. (#54462)
Machinery networking refactor.
2020-12-30 21:54:34 +01:00
WarlockD
f15bcc4692 Initialize and LateInitialize runs correctly at round start (#54594)
I've been pulling my hair out on this one. Ever since I started my ntnet project, I could never get LateInitalize to work right. Apparently it has never worked right. How it was set up before on server start

    Station map loads, Does NOT run Initialize(mapload = TRUE)
    Generates space, lavaland/icebox ruins
    Loads a ruin, DOES run Initialize(mapload = TRUE) EXCEPT on areas
    End of mapping system
    Atom system Initialized and it checks and runs Initialize(mapload = TRUE) on world

You see the issue? Initialize and by extension LateInitialize is run in blocks. Worst, LateInitialize is run on turfs FIRST in ruins BEFORE Initialize is ever run on the other atoms. While there isn't much in Area, there is map_generator so I am sure it caused some grief for map creators.

The NEW order now is

    Station map loads, Does NOT run Initialize(mapload = TRUE)
    Generates space, lavaland/icebox ruins
    Loads a ruin, Does NOT run Initialize(mapload = TRUE)
    End of mapping system
    Atom system Initialized and it checks and runs Initialize(mapload = TRUE) on world

Also if you dynamicly load a map, like snowdin or such, it will Initialize all atoms at once and then run LateInitialize properly
2020-10-26 12:26:46 -03:00
Dennok
516a3e5bdc Some shuttes rework. Allow many shuttles of one template to work at the same time. (#53993)
* add replace button to shuttle panel

load button now only load new shuttle

* shuttle teplate loads as shuttle

* new shuttle console connects to shuttle

* new navigation computer connect to shurrle

* docking_port id now unique

add count to id if id already in work

* many docks from one base tenplate

* up

* fix unregister

* up

* up

* up

* block multiple shuttle loading

* return preview button

* up  id generation
2020-10-06 00:20:15 +03:00
TheChosenEvilOne
711af982e4 Fix loading templates in new z-levels being off by one turf (#54135)
Due to how byond maps start at 1,1 and not 0,0 when loading a map that 
is the same size as the world the map will start loading at 0,0 in the 
world which is outside the map. load_map defaults the x and y offsets 
to 1 for a reason!

Though you can load a map that is larger (257 x 257) than the world as 
a band aid for issue.
2020-10-03 10:58:43 -07:00
Dennok
fd883e5f1f fix hidden load 2020-09-29 19:34:21 +03:00
Dennok
4badcbbe24 map_template load fix (#53846) 2020-09-23 02:49:02 -03:00
Whoneedspacee
2a4bf712af Fix ruins overlapping the station and away missions increasing world size (#53558)
Changes the bounds size proc from async to not. We need to make sure 
the bounds on map templates are correct before they are spawned or 
weird issues can happen. Fixes #53542. Fixes #53562.
2020-09-08 20:01:27 -07:00
TiviPlus
550e763433 Reenables SHOULD_NOT_SLEEP on initialize (#53378) 2020-09-04 20:44:08 -03:00
nemvar
c38a7a3bb5 Removes a bunch of var/ in procs (#46946)
* Removes a bunch of /var in procs

* reset this

* Why wasn't this already?
2019-10-10 04:20:27 -07:00
Dennok
f9addce004 Runtimes fixes (#44885)
* fix meter work on un initialized pipe

* fix runtime in process_cell

whet it try to call to wrong type turf

* fix roundstart runtime in debug sungery disc

*  fix return_air() runtime

Runtime in pipes.dm, line 52: Cannot read null.air

* s

* Update surgery.dm

* Update pipes.dm

* Update meter.dm

* Update LINDA_turf_tile.dm

* Disable atmos processing in outer border on load.

* Update map_template.dm

* Update map_template.dm

* Update map_template.dm

* Update pipes.dm

more runtimes for good of runtimes
2019-07-13 03:58:02 -07:00
Brett Williams
5008b3e93f Fix "at at" in map template loading logs (#43460)
Removed unlawful reference to Disney's Star Wars franchise in map logging.
2019-04-02 18:10:20 -07:00
Dennok
781dde6239 areas_in_z after start population fix (#41452)
Fixes areas_in_z after start population. Now it get areas spawned by templates and blueprints.
2018-11-13 18:15:14 -05:00
Tad Hardesty
b4ce7bc1f1 Validate map templates uploaded by admins (#39674)
* Move the preloader datum to its own file

* Prettify some of the map loader docs

* Use src rather than usr in map template verbs

* Cache parsed templates between upload and first use

* Validate map templates uploaded by admins before use

* Add href token to validation report links
2018-08-16 10:09:21 +02:00
Tad Hardesty
b83424bd87 Refactor the map loader (#39567)
* Remove duplicate initTemplateBounds method

* Move dmmRegex var to the type that actually uses it

* Keep a single, static map_loader datum

* Combine maploader into parsed_map

* Remove some redundant parameters from parsed_map/load

* Move file2text into parsed_map/New

* Narrow the scope of the map loading lock

* Remove redundant xcrdStart var

* Fix argument names in station reloader

* Move offsets from parsing to loading only

* Tidy argument handling on parsed_map/load

* Store modelCache, track nonexistent atom paths

* Use raw strings to specify the regexes

* Remove cropMap from parsed_map/New

* Don't parse maps twice when checking multi-z validity

Speeds up SSmapping init by approximately 10%.

* Bring the documentation (somewhat) up to speed

* No, I don't know why this fixes it
2018-08-09 22:49:38 -04:00
Jordan Brown
61e70f2333 Seperates map reader parsing from loading (#38764)
* Seperates map reader parsing from loading

* Compile fixes

* Uhhh, ok dm

* Ugh

* Fix one error...

* FIxes model caching
2018-07-13 18:07:32 +02:00
AnturK
f7cf151e92 Fixes loading zlevels with static lighting. (#38365)
* Fixes loading zlevels with static lighting.

* Actually this whole part is unnecessary now because change turf handles the change properly now.

* Correct
2018-06-10 02:54:53 -07:00
Tad Hardesty
9d49ce482c Delay smoothing atoms that have not initialized yet (#38173) 2018-06-03 21:25:34 +02:00
Emmett Gaines
49d1e9ee66 Shuttles have additional baseturfs, and other minor baseturf changes (#36388)
cl ninjanomnom
fix: Shuttles have proper baseturfs now.
fix: Mineral walls properly use their baseturfs when destroyed/drilled.
add: A new engineering goggle mode allows you to see the shuttle area you're standing in.
admin: Buildmode works a bit better with baseturfs now and can properly only remove the top layer of turfs when editing. Note that as a result the order you place turfs is important and a wall placed on space means when the wall is removed there will be space underneath.
/cl

This adds an area hook for turfs getting the PlaceOnTop proc called so shuttle areas are able to intercept it and add a special turf used for determining where the bottom of the shuttle is. I'm not too certain on this being the best way to handle it but the alternatives restrict the kind of turfs that are allowed to be on shuttles which I didn't want to do as it was part of the whole intent of the baseturf change to allow any turf type on shuttles.

The alternative to the area hook would require a tool which attaches turfs to a shuttle which is why there's a shuttle area viewing tool in this pr. I considered doing it this way first but decided it was too clunky.

In addition to other changes:

Tiled/Reinforced floors have proper baseturfs now.

A large amount of the remaining ChangeTurf calls were swapped over to various baseturf helpers so, for example, mining doesn't create a lavaland turf if somehow the mineral wall is on plating.

Escape pods, the aux base, and syndicate drop pod have been converted over to shuttle templates as well.

The error when the timid var is set incorrectly has been changed to a stack_trace.

The change turf file has been made all lowercase as per standard.
2018-04-05 11:13:20 +12:00
AnturK
90a7bfdf15 Adds load away mission verb (#36568)
* Adds load away mission verb

* You seen nothing.

* Is this more readable ?
2018-03-26 22:33:45 -04:00
Tad Hardesty
bbe4d12d13 Support stations with multiple z-levels (#35339)
* Remove ZLEVEL_STATION_PRIMARY

* Add Up and Down traits for use by ladders and chasms

* Give map_config creation its own proc

* Combine LoadConfig and ValidateJSON and remove transition_config

* Make space linkage a z-level trait

* Remove ZLEVEL_EMPTY_SPACE

* Update uses of GetFullMapPath

* Handle multi-Z stations and load Lavaland and Reebe at runtime

* Remove unused space maps

* Fix inappropriate z-expansion in map reader, improve logging

* Update comments relating to z-level configuration

* Add Lavaland and Reebe to ALL_MAPS
2018-02-15 10:21:25 +01:00
ninjanomnom
dcacb06269 makes templates use PlaceOnTop 2018-01-23 01:01:18 -05:00
Tad Hardesty
35faafa8bc Refactor weather to use Z traits, assorted related cleanup (#34633)
* Add a proc for getting the station center

* Add a couple of comments to ZTRAIT defines

* Remove unused global_map list

* Refactor weather to use the trait system

* Un-hardcode the transit z-level

* Use Z traits to determine Portal Storm event areas

* Fix loading away missions containing anything that reads traits
2018-01-21 20:33:11 +01:00
Tad Hardesty
cad0922daf Fix away missions taking 2+ minutes to load (#34084) 2018-01-05 06:56:55 -05:00
Emmett Gaines
934f3459df Fixes some cases where changeturf were called incorrectly (#32584) 2017-11-11 09:34:56 -02:00
duncathan salt
5263fe9be6 makes loaded templates call air_update_turf() on bordering turfs (#31738)
* makes loaded templates call air_update_turf() on bordering turfs

* safety check for OOB turfs; fixes compile error
2017-10-15 20:34:19 -04:00
AnturK
1b55446f2d Fixes lighting object initialization on new zlevels. 2017-10-05 09:13:36 +02:00
ShizCalev
45d3d52af7 Made some object lists less terrible to read (#29304)
* spaces

* more spaces

* last ones
2017-07-18 10:44:29 -04:00
AnturK
1a810315e0 Fixes sortedAreas use. 2017-06-02 22:15:41 +02:00
AnturK
ff4596a6ba Fixes templates/ruins not updating area list 2017-04-24 10:47:45 +02:00
Cyberboss
b9f41db32c [s] Fixes an exploit allowing admins to read any file (#26107)
* THE SECURITY HOLE PILE DON'T STOP GETTING TALLER

* ARE YOU FUCKING SERIOUS?
2017-04-12 18:54:17 -06:00
Cyberboss
71deca2374 SSmachine -> SSmachines 2017-03-22 11:38:35 -04:00
Cyberboss
1365ab99d8 Merges map templates and map loader (#24140)
* Reorganize the mapping code

* Finish this up

* Reee line endings

* FUCKING LINE ENDINGS

* LINARU ENDARU

* >PLS SET REPO LINE ENDINGS

* Comments

* Hoisted by my own travis.yml changes
2017-02-19 16:55:02 +13:00