1
0
mirror of https://github.com/EDCD/EDMarketConnector.git synced 2025-04-19 02:17:38 +03:00

PLUGINS.md: Document addition of Bodt(ID|Type) and the caveats about use

This commit is contained in:
Athanasius 2023-01-09 12:18:13 +00:00
parent fafe9a5f7b
commit b1308e4f28
No known key found for this signature in database
GPG Key ID: 772697E181BB2767

View File

@ -653,8 +653,9 @@ Content of `state` (updated to the current journal entry):
| `SuitLoadouts` | `dict`[2] | CAPI-returned data of all Suit Loadouts. NB: May be `None` if no data. |
| `Taxi` | `Optional[bool]` | Whether or not we're currently in a taxi. NB: This is best effort with what the journals provide. |
| `Dropship` | `Optional[bool]` | Whether or not the above taxi is a Dropship |
| `Body` | `Optional[str]` | The body we're currently on / in the SOI of |
| `BodyType` | `Optional[str]` | The type of body that `Body` refers to |
| `Body`[3] | `Optional[str]` | Name of the body we're currently on / in the SOI of |
| `BodyID`[3] | `Optional[int]` | ID of the body we're currently on / in the SOI of |
| `BodyType`[3] | `Optional[str]` | The type of body that `Body` refers to |
[1] - Contents of `NavRoute` not changed if a `NavRouteClear` event is seen,
but plugins will see the `NavRouteClear` event.
@ -676,6 +677,28 @@ least one member is missing, so the indices are not contiguous). We choose to
always convert to the integer-keyed `dict` form so that code utilising the data
is simpler.
[3] - There are some caveats with the Body data. Firstly the name and ID
can be for the orbital station or fleet carrier the player is docked at.
Check 'BodyType' before using the values.
Secondly there is an issue with close-orbiting binary bodies. If the player:
1. Enters Orbital Cruise around a Body an 'ApproachBody' event is emitted
and the tracking will update to reflect this.
2. If the player then flies *in Orbital Cruise without entering Supercruise
proper* to the close-orbiting binary partner of the Body then *there is no
new 'ApproachBody' event to indicate the new Body's details*. **Thus this
tracking will incorrectly indicate the first Body still**.
So, before making use of any of this Body state a plugin should:
1. Have a `dashboard_entry()` method and track the Body name present in its
data.
2. Cross-check that Body name with `state['Body']` before making use of any
of `state'`s Body data.
See `plugins/eddn.py` for an example of this in `export_journal_codexentry()`.
New in version 4.1.6:
`CargoJSON` contains the raw data from the last read of `Cargo.json` passed
@ -765,6 +788,12 @@ re-start EDMarketConnector. That will be present when plugins are invoked
with the synthetic `StartUp` event. NB: Might just be a `NavRouteClear` event
if that's what was in the file.
New in version 5.8.0:
`BodyID` and `BodyType` have been added to the `state` dictionary. These
now track in the same manner as prior core EDDN plugin code. Check the
documentation above for some caveats. Do not just blindly use this data, or
the 'Body' name value.
___
##### Synthetic Events