- Create the landmark as normal, but instead of allocating a z-level and placing it, register a pre_move listener on the shuttle and setup the z-level only when the shuttle is about to move to its overmap landmark.
- Change when shuttles fire the shuttle_pre_move_event to before calculating translation list to give us a chance to allocate the z-level.
- Its now possible to put shuttle consoles on a shuttle without a specific subtype or mapediting the shuttle_tag on them.
- After shtutle initialization, SSshuttles gives each initialized shuttle the chance to scan its areas for consoles it wants to claim and configure.
Largely ported from the work done at Baystation in https://github.com/Baystation12/Baystation12/pull/17460 and later commits.
- Shuttles no longer require a separate area for each location they jump to.
Instead destinations are indicated by landmark objects, which are not necessarily exclusive to that shuttle.
This means that more than one shuttle could use the same docking port (not at the same time of course).
- Enhanced shuttle control computers to use nanoui if they didn't.
- Organizes shuttle datum code a bit better so there is less re-inventing the wheel in subtypes.
- Allows the possibility of shuttles (or destinations) that start on late-loaded maps.
- Deprecate the "extra" shuttle areas that are no longer needed and update shuttle areas in unit tests
This all required a bit of infrastructure improvements.
- ChangeArea proc, for changing the area of a turf.
- Fixed lighting overlays actually being able to be destroyed.
- Added a few utility macros and procs.
- Added "turf translation" procs which are like move_contents_to but more flexible.
* Replaces the shuttle_controller and shuttle process with the shuttles subsystem. Instead of docking ports being initialized by the game ticker, its part of the StonedMC Master init order.
* The main advantage of this is control over the initialization order, as well as letting Master be aware of CPU we're using up with shuttle processing.
* By being part of the Master init order, we reduce the uncertainty about "are objects initialized yet?" which is nice, since shuttle docks break if machines aren't finished initializing!
Adds autopilot functionality for shuttle one and shuttle two. It can be enabled and disabled by the flight computer.
Autopilot is active by default on both shuttles. The shuttle waits for two minutes when it reaches the outpost or station, except for the first flight, where it waits for about ten minutes, which should be plenty of time for people to get on and for the pilot to turn it off if one exists.
Adds renaming feature to all shuttles.
Ports /tg/'s 'shuttle warning' effect, which adds a bunch of blue circles where a ship is about to land, which should prevent surprise shuttle crushes if paying attention.
Flight times for all routes are cut in half to act as the bonus for flying manually. Automatic flight takes twice as long, and so it will take the current amount of time.
Makes Ninja shuttle faster because Nippen steal.
Does some cleanup with temporary effects.
-No, the line 84 did not replace or relate to the timer part you commented out.
-Due to condition mismatch of some sort, the code skipped the line 84 stuff, moving onto the next thing below, slapping the shuttle through instantly because of the timer having been commented out
Arrivals shuttle now moves automatically to and from the station. People still spawn onboard if they join the round with arrivals selected in preferences.
The shuttle is completely automated and will go to the station if someone boards it, and leave if nobody is onboard.
Changes some tape code so it can be mapped in.
Sadly the mapmerger is broken so the map file diff is massive.
Southern Cross shuttles one and two can now launch.
Adds missing areas for shuttles 1 and 2.
Shuttles warming up, moving, or stopping now make a nice sound, ported from /tg/.
Rearranges shuttle datum/computer definitions to make it easier to read.
Removes cloaking abilities for most multi-shuttles.
Lowers transit time for multi-shuttles. Can be raised later if desired.
* A preface to my madness
Travis failed one of my PR's because I copied old code
that used /red /blue /green.
Because of this, I am going to find and replace every
instance of it that I find.
Also this is a test commit to make sure I'm comitting
to the correct branch.
* /blue /green /red replacements
Dear god.
A slow and painful death from acid is more fun than this.
I wouldn't wish this torture on my worst enemy.
And this is only the beginning
* Replace part 2.
Time to fix the human error.
* Fixes mismatches
* Sets macro count to 220
One above the current number of macros in the code.
* Fixes last of the mismatches.
* Removes spaces, replaces \black
Removes spaces
Replaces \black in a few areas where seen
Replaces \bold with <B> </B> where seen
* Updating macro count again
* More fixes!
* Issues fixed! For real this time!
I swear!
* Fixing all the merge conflict files.
Added SC map files for further work. Including hopefully all the related files.
New airlock sprite thanks to Virgo, with a alternate non-see through sprite.
Changes to the space and transit tiles (ported from bay).
Changes done to the NC map that should bring it more up to date with changes (shield defuse stuff and minor bug fixes)
Shuttles now set themselves up upon being instantiated instead of relying on a monolithic proc in the shuttle controller.
Shuttles can now be defined more cleanly on a per-map basis, as well.
Accidentally fixes a broken admin shuttle.
Turbolifts, and shuttles. Please behave.
Shuttles throw everything to z1 regardless of actual shuttle destination z-level, which is silly. Secondly they literally throw it using Move which is silly. Thirdly, they do it to every atom/movable, which is unacceptable. Especially since that tries to squash lighting overlays out of the way, making weird lighting problems on shuttles.
Turbolifts qdel any 'simulated' atom/movable when they run into it, which is also stupid. This includes things like the AI Eye, which permanently deletes it. A little unfortunate, if you ask me.
Everything in game/machinery/computers/ and modules/shuttles should now have properly (de)capitalized names. Computer, board and research names should now be coherent, too. Adds a research for employment records circuit board.
Moves all ferry shuttle processing into one place: the new shuttle
controller.
Also cleans up the emergency shuttle controller a bit more and fixes
multi-shuttle cooldown.