This is a Python library used for accessing information about regiments present in «IL-2 Sturmovik: Forgotten Battles» flight simulator.
Information about regiments is extracted directly from game's SFS archive named files.sfs.
Data in il2fb/regiments/data directory contains the following files:
Source path in files.sfs |
Stored as | Comments |
|---|---|---|
files.sfs/i18n/regShort.properties |
regShort_en.properties |
Added _en suffix |
files.sfs/i18n/regShort_ru.properties |
regShort_ru.properties |
|
files.sfs/i18n/regInfo.properties |
regInfo_en.properties |
Added _en suffix |
files.sfs/i18n/regInfo_ru.properties |
regInfo_ru.properties |
|
files.sfs/PaintSchemes/regiments.ini |
regiments.ini |
All data files retain their original encoding, which is CP1251.
Do not edit or resave the data files in this directory manually! Instead, extract them from SFS archive and replace the current ones with them.
The package is available at PyPI:
pip install il2fb-regimentsfrom il2fb.regiments import Regiments
regiments = Regiments()
regiment = regiments.get_by_code_name("USN_VT_9B")
print(regiment.code_name)
# USN_VT_9B
print(regiment.air_force.verbose_name)
# USN
print(regiment.verbose_name)
# VT-9 USS Essex CV-9
print(regiment.help_text)
# US Navy Torpedo Squadron 9 USS Essex CV-9Values of human-readable properties (verbose_name, help_text) are sensitive to the current language in use.
The current language is detected via verboselib library.
The set of supported languages is defined by il2fb-commons library.
from verboselib import set_language
from il2fb.regiments import Regiments
regiments = Regiments()
regiment = regiments.get_by_code_name("890DBAP")
print(regiment.verbose_name)
# 890th "Bryansk" AP DD
print(regiment.help_text)
# 890th "Bryansk" AP DD
set_language("ru")
print(regiment.verbose_name)
# 890-й Брянский АП ДД
print(regiment.help_text)
# 890-й Брянский Авиационный Полк Дальнего ДействияIt's possible to convert Regiment objects into Python's primitives for further serialization.
This can be done via to_primitive() method:
import json
from il2fb.regiments import Regiments
regiments = Regiments()
regiment = regiments.get_by_code_name("USN_VT_9B")
print(json.dumps(regiment.to_primitive(), indent=2))Outputs:
{
"air_force": {
"name": "USN",
"value": "un",
"verbose_name": "USN",
"help_text": "United States Navy",
"country": {
"name": "US",
"verbose_name": "United States",
"help_text": null
},
"default_flight_prefix": "UN_NN"
},
"code_name": "USN_VT_9B",
"verbose_name": "VT-9 USS Essex CV-9",
"help_text": "US Navy Torpedo Squadron 9 USS Essex CV-9"
}