* Station comms on launch request
* Ground stations provide local grav and atmo press info on landing request
* Warn about traffic on station approach
* Modular station approach messages
* Show local gravity and atmosphere on ground station lobby
* Talk to player on entering and exiting station controlled space
* Reduce lawEnforcedRange to 50km
* Refactor docking clearance API
- Expose a few SpaceStation methods to Lua
- Refactor LuaEvent to support pushing zero to three args to Lua
- Add formatters for Gravity(g) and Pressure(atm)
Co-authored-by: Webster Sheets <webster@web-eworks.com>
- Body::GetTargetIndicatorPosition now returns local-space coordinates
- CameraContext has a getter for parent frame, renamed GetCamFrame to GetTempFrame, added GetCameraOrient/Position
- Implemented matrix4x4 utilities to construct from orient+pos, fast inverse transform for position vectors
- Fixed bug where mouse would be locked if held while docking
- Preliminary work on ShipViewController, made WorldView::shipView an unique_ptr (why didn't I do it that way in the first place?)
- Cleaned up some cruft from WorldView and moved to appropriate locations
- Completely changed the way WorldSpaceToScreenSpace etc. works, now no longer requires camera frame
- Added WorldView::RelSpaceToScreenSpace, meant for pigui to use for displaying e.g. body:GetPositionRelTo(player)
- WorldSpaceToScreenSpace now operates on frame-relative coordinates, use RelSpaceToScreenSpace for player-relative coordinates
You can now use :space_station_type("new_ground") etc. to specify
the exact type of station model to use. The name is the json filename
without the extension.
Uses single point for the pad location, an offset called "pad_offset" set in the lua, and a single entrance locator.
All other points required for docking and launching are generated from these.
Includes a few very minor use cleanups too:
- *foo.Get() is simpler as just *foo
- foo.Get()[idx] is simpler as just foo[idx]
- NULL -> nullptr
- Valid() doesn't have a direct counterpart in unique_ptr; just
use the pointer in a bool context (it has an explicit conversion
to bool)
ModelViewer.cpp - change some scope/indentation and iterator usage/location.
ShipAICmd - fixed up a speeling mistook ;)
SpaceStation.h - Added a clearer description as to the reason for the limit on the number of docking bays.