Skip to content

Commit

Permalink
[EDCD#2262] Initial SLEF Output
Browse files Browse the repository at this point in the history
  • Loading branch information
Rixxan committed Jun 16, 2024
1 parent b10548d commit c60c048
Show file tree
Hide file tree
Showing 4 changed files with 400 additions and 40 deletions.
3 changes: 2 additions & 1 deletion coriolis-update-files.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ def add(modules, name, attributes) -> None:
for m in list(data['Ships'].values()):
name = coriolis_ship_map.get(m['properties']['name'], str(m['properties']['name']))
assert name in reverse_ship_map, name
ships[name] = {'hullMass': m['properties']['hullMass']}
ships[name] = {'hullMass': m['properties']['hullMass'],
'reserveFuelCapacity': m['properties']['reserveFuelCapacity']}
for i, bulkhead in enumerate(bulkheads):
modules['_'.join([reverse_ship_map[name], 'armour', bulkhead])] = {'mass': m['bulkheads'][i]['mass']}

Expand Down
267 changes: 267 additions & 0 deletions inara.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,267 @@
{
"header": {
"appName": "EDMarketConnector",
"appVersion": "5.11.1+85f5c328.DIRTY"
},
"data": {
"FuelCapacity": {
"Main": 128,
"Reserve": 0.81
},
"Ship": "belugaliner",
"ShipName": "HSRV Guiding Light",
"ShipIdent": "NFC-23",
"HullValue": 69924158,
"ModulesValue": 96918434,
"Rebuy": 8342132,
"MaxJumpRange": 52.615143,
"UnladenMass": 1233.057983,
"CargoCapacity": 16,
"Modules": [
{
"Slot": "TinyHardpoint1",
"Item": "hpt_heatsinklauncher_turret_tiny",
"ItemHealth": 1.0,
"On": true,
"Value": 3072
},
{
"Slot": "TinyHardpoint2",
"Item": "hpt_heatsinklauncher_turret_tiny",
"ItemHealth": 1.0,
"On": true,
"Value": 3413
},
{
"Slot": "TinyHardpoint3",
"Item": "hpt_heatsinklauncher_turret_tiny",
"ItemHealth": 1.0,
"On": true,
"Value": 3072
},
{
"Slot": "TinyHardpoint4",
"Item": "hpt_heatsinklauncher_turret_tiny",
"ItemHealth": 1.0,
"On": true,
"Value": 3072
},
{
"Slot": "PaintJob",
"Item": "paintjob_belugaliner_lrpo_azure",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "Armour",
"Item": "belugaliner_armour_grade1",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "PowerPlant",
"Item": "int_powerplant_size6_class5",
"ItemHealth": 1.0,
"On": true,
"Priority": 1,
"Value": 11382139
},
{
"Slot": "MainEngines",
"Item": "int_engine_size7_class2",
"ItemHealth": 1.0,
"On": true,
"Priority": 1,
"Value": 1666898
},
{
"Slot": "FrameShiftDrive",
"Item": "int_hyperdrive_size7_class5",
"ItemHealth": 1.0,
"On": true,
"Value": 45006196
},
{
"Slot": "LifeSupport",
"Item": "int_lifesupport_size8_class2",
"ItemHealth": 1.0,
"On": true,
"Value": 1530326
},
{
"Slot": "PowerDistributor",
"Item": "int_powerdistributor_size6_class5",
"ItemHealth": 1.0,
"On": true,
"Priority": 1,
"Value": 3049917
},
{
"Slot": "Radar",
"Item": "int_sensors_size5_class2",
"ItemHealth": 1.0,
"On": true,
"Priority": 1,
"Value": 69713
},
{
"Slot": "FuelTank",
"Item": "int_fueltank_size7_class3",
"ItemHealth": 1.0,
"On": true,
"Priority": 1,
"Value": 1562752
},
{
"Slot": "Decal1",
"Item": "decal_distantworlds2",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "Decal2",
"Item": "decal_distantworlds2",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "Decal3",
"Item": "decal_distantworlds2",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "ShipName0",
"Item": "nameplate_practical01_black",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "ShipName1",
"Item": "nameplate_practical01_black",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "ShipID0",
"Item": "nameplate_shipid_singleline_black",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "ShipID1",
"Item": "nameplate_shipid_singleline_black",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "Slot01_Size6",
"Item": "int_fuelscoop_size6_class5",
"ItemHealth": 1.0,
"On": true,
"Value": 25240068
},
{
"Slot": "Slot02_Size6",
"Item": "int_repairer_size6_class2",
"ItemHealth": 1.0,
"On": true,
"Value": 497429
},
{
"Slot": "Slot03_Size6",
"Item": "int_shieldgenerator_size5_class2",
"ItemHealth": 1.0,
"On": true,
"Value": 165879
},
{
"Slot": "Slot04_Size6",
"Item": "int_dronecontrol_repair_size5_class2",
"ItemHealth": 1.0,
"On": true,
"Value": 85293
},
{
"Slot": "Slot05_Size5",
"Item": "int_guardianfsdbooster_size5",
"ItemHealth": 1.0,
"On": true,
"Value": 5688921
},
{
"Slot": "Slot07_Size4",
"Item": "int_cargorack_size4_class1",
"ItemHealth": 1.0,
"On": true,
"Priority": 1,
"Value": 30124
},
{
"Slot": "Slot11_Size3",
"Item": "int_detailedsurfacescanner_tiny",
"ItemHealth": 1.0,
"On": true,
"Value": 219375
},
{
"Slot": "Slot12_Size1",
"Item": "int_repairer_size1_class5",
"ItemHealth": 1.0,
"On": false,
"Value": 710775
},
{
"Slot": "PlanetaryApproachSuite",
"Item": "int_planetapproachsuite_advanced",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "WeaponColour",
"Item": "weaponcustomisation_red",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "EngineColour",
"Item": "enginecustomisation_orange",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "VesselVoice",
"Item": "voicepack_verity",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "ShipCockpit",
"Item": "belugaliner_cockpit",
"ItemHealth": 1.0,
"On": true,
"Priority": 1
},
{
"Slot": "CargoHatch",
"Item": "modularcargobaydoor",
"ItemHealth": 1.0,
"On": false,
"Priority": 1
}
]
}
}
53 changes: 53 additions & 0 deletions plugins/inara.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import edmc_data
import killswitch
import myNotebook as nb # noqa: N813
from edshipyard import ships
import plug
import timeout_session
from companion import CAPIData
Expand Down Expand Up @@ -870,6 +871,7 @@ def journal_entry( # noqa: C901, CCR001
cur_ship['shipRebuyCost'] = state['Rebuy']

new_add_event('setCommanderShip', entry['timestamp'], cur_ship)
make_slef(state, entry)

# Stored modules
if event_name == 'StoredModules':
Expand Down Expand Up @@ -1476,6 +1478,57 @@ def make_loadout(state: dict[str, Any]) -> dict[str, Any]: # noqa: CCR001
}


def make_slef(state: dict[str, Any], entry) -> None:
initial_dict = {
"header": {"appName": appname, "appVersion": str(appversion())}
}
data_dict = {}
loadout = make_loadout(state)
modules = loadout['shipLoadout']
mod_dict = []
for module in modules:
if module['slotName']:
builder = {
'Slot': module['slotName'],
'Item': module['itemName']
}
if module.get('itemHealth'):
builder.update({'ItemHealth': module['itemHealth']})
if module.get('isOn'):
builder.update({'On': True})
elif not module.get('isOn'):
builder.update({'On': False})
if module.get('itemPriority'):
builder.update({'Priority': module['itemPriority']})
if module.get('itemValue'):
builder.update({'Value': module['itemValue']})
if not module.get('itemValue'):
builder.update({'Value': 0})
if module.get('slotName') == 'FuelTank':
cap = module['itemName'].split('size')
cap = cap[1].split('_')
cap = 2**int(cap[0])
ship = edmc_data.ship_name_map[state["ShipType"]]
fuel = {'Main': cap, 'Reserve': ships[ship]['reserveFuelCapacity']}
data_dict.update({"FuelCapacity": fuel})
mod_dict.append(builder)
data_dict.update({
'Ship': state["ShipType"],
'ShipName': state['ShipName'],
'ShipIdent': state['ShipIdent'],
'HullValue': state['HullValue'],
'ModulesValue': state['ModulesValue'],
'Rebuy': state['Rebuy'],
'MaxJumpRange': entry['MaxJumpRange'],
'UnladenMass': entry['UnladenMass'],
'CargoCapacity': entry['CargoCapacity'],
'Modules': mod_dict,
})
initial_dict.update({'data': data_dict})
json.dump(initial_dict, open('inara.json', 'w'), indent=4)
return None


def new_add_event(
name: str,
timestamp: str,
Expand Down
Loading

0 comments on commit c60c048

Please sign in to comment.