tgstation/-tg-station — pull request #4960 by Incoming5643 (2014-09-23 20:33:38+00:00)
Title: Predictably Random Z-levels and the SPACECUBE

The layout of the accessible z levels in relation to each other are now lain out in a massive shuffled SPACECUBE. Every Z-level is no more than two screens from every other Z-level, and can be moved through in a predictable order* with a little ingenuity.

*Except z.6

#### Why?

Because moving through space was a terrible experience where you had to just repeatedly cross boundaries with dice rolls and there was no consistent ways to find things that had been thrown into space. Space is now euclidean again (mostly) and if you throw something from a specific airlock you can once again be sure it will come to rest at the same place as anything else thrown directly out of that airlock. At the same time though space is still not predictable, so a level of research from round to round would need to be taken to chart out the specific routes through the SPACECUBE.

#### What about Centcom?

No transitions are assigned to there, so there's no way to transition to/from there, it's a closed space outside the CUBE

#### What about z.6 (the empty z-level)?

Because 6 appears twice on the CUBE it kind of fucks with the geometry. The routes are still static, but they don't always properly "link in" with the cube since they can come from either "instance" of z.6. In a perfect world I'd like an equally empty z.7 so the CUBE could stand on it's own, but that's not in this pull (right now).

#### Wait a minute, if you headed north from one side of the cube to another and then east to the side perpendicular to the first side, you'd end up on the eastern boarder of that side, even though you SHOULD have ended up on the northern side!

This is not a question, but yep, that's a limitation of the CUBE. I tried to put in orientation stuff so the side you entered the next z-level from was properly lined up with the previous side as in a real cube, but it was hard to get working right and led to all sorts of bizarre problems and seemingly off but correct border behavior (like suddenly floating north after floating south through a transition because the z-levels were orientated N-S S-N). The point is things got stupid (http://pastebin.com/HiMa0BFY) and I dropped it. Movement is still predictable through the CUBE in any case, which was the goal here, even if the CUBE isn't quite as CUBElike as I'd initially hoped.

#### Other benefits?

*Badmins can edit space tiles to drop people where ever they please if they want.
*Transitioning is now nearly costless even if a ton of things are transitioning since all the routes are laid out in advance
*You can scream about the SPACECUBE