mirror of
https://github.com/Pax1601/DCSOlympus.git
synced 2025-10-29 16:56:34 +00:00
65 lines
2.3 KiB
Python
65 lines
2.3 KiB
Python
import sys
|
|
import json
|
|
import inspect
|
|
import difflib
|
|
from slpp import slpp as lua
|
|
|
|
SEARCH_FOLDER = sys.argv[2]
|
|
|
|
from dcs.vehicles import *
|
|
from dcs.ships import *
|
|
from dcs.planes import *
|
|
from dcs.helicopters import *
|
|
|
|
# The database file on which to operate is the first standard argument of the call
|
|
if len(sys.argv) > 1:
|
|
if (sys.argv[1] == "aircraft"):
|
|
filename = '..\\..\\databases\\units\\aircraftdatabase.json'
|
|
elif (sys.argv[1] == "helicopter"):
|
|
filename = '..\\..\\databases\\units\\helicopterdatabase.json'
|
|
elif (sys.argv[1] == "groundunit"):
|
|
filename = '..\\..\\databases\\units\\groundunitdatabase.json'
|
|
elif (sys.argv[1] == "navyunit"):
|
|
filename = '..\\..\\databases\\units\\navyunitdatabase.json'
|
|
|
|
# Loads the database
|
|
with open(filename) as f:
|
|
database = json.load(f)
|
|
|
|
# Loop on all the units in the database
|
|
for unit_name in database:
|
|
try:
|
|
# Get the pydcs Python class for the unit
|
|
if (sys.argv[1] == "aircraft"):
|
|
unitmap = plane_map
|
|
elif (sys.argv[1] == "helicopter"):
|
|
unitmap = helicopter_map
|
|
elif (sys.argv[1] == "groundunit"):
|
|
unitmap = vehicle_map
|
|
elif (sys.argv[1] == "navyunit"):
|
|
unitmap = ship_map
|
|
lowercase_keys = [key.lower() for key in unitmap.keys()]
|
|
res = difflib.get_close_matches(unit_name.lower(), lowercase_keys)
|
|
if len(res) > 0:
|
|
found_name = list(unitmap.keys())[lowercase_keys.index(res[0])]
|
|
cls = unitmap[found_name]
|
|
else:
|
|
print(f"Warning, could not find {unit_name} in classes list. Skipping...")
|
|
continue
|
|
|
|
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...")
|
|
|
|
# Dump everything in the database
|
|
with open(filename, "w", encoding='utf8') as f:
|
|
json.dump(database, f, indent='\t', ensure_ascii=False)
|
|
|
|
# Done!
|
|
print("Done!")
|
|
|
|
|