Port experimental base_turf system from Baystation - Third time in a row
Created by: dylanstrategie
No, I don't know how to manually fix conflicts on a PR, and this doesn't make me wanna figure out how it's done
Fuck you too for not even trying when you were working on Endgame @N3X15
Also thanks for fucking up my PR by stealth-merging a fix @Comic
Because Baystation has finally gotten around to it, and because the code looked simple, I decided to get my hands on porting a system that allows up to define base_turfs. As a bonus, it also defines them per Z-level. So if you wanted, you could have a space station, and a Z-level on a map-spanning asteroid, and then an away mission on land, all in the same file
Note that you can modify it mid-round via a DEBUG flag verb, it will however only affect destroyed turfs (it won't change space, which I suppose is intentional)
Tested were destroying walls and floors and even dropping a bomb in the middle of Medbay
Not tested were more finicky conditions like the Singularity or buildmode. I simply replaced all ChangeTurf() instructions that pointed to space, because that is how Baystation implemented it
Only problem with this is that it doesn't work on a per-map basis, so unless some wizardry is done on that code, it'll be hard to get anything interesting going with it. Just create custom Z-levels and use those in your map. Remember that it does not replace pre-existing space tiles though.
Discussions go below. Since this is pure code refactor, I doubt there'll be much up to debate
- Old PR over at #5192
- Older PR over at #5167
Example picture (with the current code, there would be no lattices over the sand) :
This PR was fully tested to all extents and should work with regular deletion, singularities, Nar'Sie and build mode