mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
Updated unit database creation files
This commit is contained in:
2
scripts/python/.vscode/launch.json
vendored
2
scripts/python/.vscode/launch.json
vendored
@@ -68,7 +68,7 @@
|
||||
"args": {
|
||||
"key": "folder",
|
||||
"description": "DCS folder location",
|
||||
"default": "E:\\Eagle Dynamics\\DCS World (Open Beta)"
|
||||
"default": "C:\\Program Files\\Eagle Dynamics\\DCS World"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -114,13 +114,16 @@ if len(sys.argv) > 1:
|
||||
database = json.load(f)
|
||||
|
||||
# Loads the loadout names
|
||||
with open('../unitPayloads.lua') as f:
|
||||
with open('unitPayloads.lua') as f:
|
||||
lines = f.readlines()
|
||||
unit_payloads = lua.decode("".join(lines).replace("Olympus.unitPayloads = ", "").replace("\n", ""))
|
||||
|
||||
# Loads the loadout roles
|
||||
with open('payloadRoles.json') as f:
|
||||
payloads_roles = json.load(f)
|
||||
|
||||
with open('pylonUsage.json') as f:
|
||||
pylon_usage = json.load(f)
|
||||
|
||||
# Loop on all the units in the database
|
||||
for unit_name in database:
|
||||
@@ -154,6 +157,15 @@ if len(sys.argv) > 1:
|
||||
}
|
||||
database[unit_name]["loadouts"].append(empty_loadout)
|
||||
|
||||
# Add the available pylon usage
|
||||
database[unit_name]["acceptedPayloads"] = {}
|
||||
for pylon_name in pylon_usage[unit_name]:
|
||||
pylon_data = pylon_usage[unit_name][pylon_name]
|
||||
database[unit_name]["acceptedPayloads"][pylon_name] = {
|
||||
"clsids": pylon_data,
|
||||
"names": [find_weapon_name(clsid) for clsid in pylon_data]
|
||||
}
|
||||
|
||||
# Loop on all the loadouts for that unit
|
||||
for payload_name in unit_payloads[unit_name]:
|
||||
payload_weapons = {}
|
||||
|
||||
@@ -47,8 +47,10 @@ if len(sys.argv) > 1:
|
||||
print(f"Warning, could not find {unit_name} in classes list. Skipping...")
|
||||
continue
|
||||
|
||||
database[unit_name]["acquisitionRange"] = unitmap[found_name].detection_range
|
||||
database[unit_name]["engagementRange"] = unitmap[found_name].threat_range
|
||||
if not "acquisitionRange" in database[unit_name]:
|
||||
database[unit_name]["acquisitionRange"] = unitmap[found_name].detection_range
|
||||
if not "engagementRange" in database[unit_name]:
|
||||
database[unit_name]["engagementRange"] = unitmap[found_name].threat_range
|
||||
|
||||
except Exception as e:
|
||||
print(f"Could not find data for unitof type {unit_name}: {e}, skipping...")
|
||||
|
||||
@@ -92,7 +92,9 @@ for filename in filenames:
|
||||
src = tmp['payloads'].values()
|
||||
else:
|
||||
src = tmp['payloads']
|
||||
|
||||
|
||||
print(f"Processing {filename} with {len(src)} payloads, detected unit name {tmp['unitType']}")
|
||||
|
||||
names[tmp['unitType']] = []
|
||||
roles[tmp['unitType']] = {}
|
||||
payloads[tmp['unitType']] = {}
|
||||
@@ -129,9 +131,22 @@ for filename in filenames:
|
||||
with open('payloadRoles.json', 'w') as f:
|
||||
json.dump(roles, f, ensure_ascii = False, indent = 2)
|
||||
|
||||
with open('../unitPayloads.lua', 'w') as f:
|
||||
with open('unitPayloads.lua', 'w') as f:
|
||||
f.write("Olympus.unitPayloads = " + dump_lua(payloads))
|
||||
|
||||
|
||||
|
||||
# Iterate over the payloads and accumulate the pylon data
|
||||
pylon_usage = {}
|
||||
for unitType, unitPayloads in payloads.items():
|
||||
pylon_usage[unitType] = {}
|
||||
for payloadName, pylons in unitPayloads.items():
|
||||
for pylonID, pylonData in pylons.items():
|
||||
# Keep track of what CLSIDs are used on each pylon
|
||||
clsid = pylonData['CLSID']
|
||||
if pylonID not in pylon_usage[unitType]:
|
||||
pylon_usage[unitType][pylonID] = []
|
||||
if clsid not in pylon_usage[unitType][pylonID]:
|
||||
pylon_usage[unitType][pylonID].append(clsid)
|
||||
|
||||
# Save the pylon usage data to a JSON file
|
||||
with open('pylonUsage.json', 'w') as f:
|
||||
json.dump(pylon_usage, f, ensure_ascii=False, indent=2)
|
||||
@@ -3773,6 +3773,23 @@
|
||||
"1": 29
|
||||
}
|
||||
},
|
||||
"F4U-1D": {
|
||||
"HVAR x 8": {
|
||||
"1": 32,
|
||||
"2": 31,
|
||||
"3": 30
|
||||
},
|
||||
"Bomb x 2, HVAR x 4": {
|
||||
"1": 32,
|
||||
"2": 31,
|
||||
"3": 30
|
||||
},
|
||||
"Tiny Tim x2, HVAR x 4": {
|
||||
"1": 32,
|
||||
"2": 31,
|
||||
"3": 30
|
||||
}
|
||||
},
|
||||
"F/A-18A": {
|
||||
"GBU-16*2,AIM-9*2,AIM-7,FLIR Pod,Fuel*3": {
|
||||
"1": 33
|
||||
@@ -4726,6 +4743,15 @@
|
||||
"AEROBATIC": {}
|
||||
},
|
||||
"Mirage-F1B": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -4781,6 +4807,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1BD": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*S530F, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -4830,6 +4865,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1BE": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*AIM9-JULI, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -4909,6 +4953,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1BQ": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*S530F, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -4958,6 +5011,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1C-200": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5013,6 +5075,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1C": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5068,6 +5139,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1CE": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*AIM9-JULI, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5147,6 +5227,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1CG": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*AIM-9 JULI, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5208,6 +5297,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1CH": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5263,6 +5361,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1CJ": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5318,6 +5425,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1CK": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5373,6 +5489,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1CR": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I": {
|
||||
"1": 10
|
||||
},
|
||||
@@ -5410,6 +5535,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1CT": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*S530F, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5459,6 +5593,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1CZ": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5514,6 +5657,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1DDA": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*S530F, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5563,6 +5715,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1ED": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic II, 2*S530F, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5612,6 +5773,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1EDA": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*S530F, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5661,6 +5831,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1EE": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*AIM9-JULI, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5746,6 +5925,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1EH": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5801,6 +5989,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1EQ": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*S530F, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5850,6 +6047,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1JA": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*R550 Magic I, 2*Python III, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5896,6 +6102,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1M-CE": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*AIM9-JULI, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -5969,6 +6184,15 @@
|
||||
}
|
||||
},
|
||||
"Mirage-F1M-EE": {
|
||||
"Clean": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
"3": 18,
|
||||
"4": 19,
|
||||
"5": 31,
|
||||
"6": 32,
|
||||
"7": 34
|
||||
},
|
||||
"2*AIM9-JULI, 2*R530IR, 1*Fuel Tank": {
|
||||
"1": 10,
|
||||
"2": 11,
|
||||
@@ -8145,7 +8369,7 @@
|
||||
"UB-32*2,Fuel*3": {
|
||||
"1": 32
|
||||
},
|
||||
"Kh-59M*2,R-60M*2,Fuel": {
|
||||
"Kh-59M*2,R-60M*2": {
|
||||
"1": 33
|
||||
},
|
||||
"S-25*4": {
|
||||
|
||||
7065
scripts/python/pylonUsage.json
Normal file
7065
scripts/python/pylonUsage.json
Normal file
File diff suppressed because it is too large
Load Diff
0
scripts/python/pylonUsage.lua
Normal file
0
scripts/python/pylonUsage.lua
Normal file
15398
scripts/python/unitPayloads.lua
Normal file
15398
scripts/python/unitPayloads.lua
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user