Updated unit database creation files

This commit is contained in:
Pax1601
2025-08-16 17:09:32 +02:00
parent 151196e5f2
commit 74b446d157
10 changed files with 7567 additions and 67 deletions

View File

@@ -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"
}
}
]

View File

@@ -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 = {}

View File

@@ -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...")

View File

@@ -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)

View File

@@ -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": {

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff