-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Welcome to the documentation for flint.
The API is unstable until v1.0, so minor details may change.
flint incorporates an interactive mode that can be used for testing or exploration. It provides a Python interpreter where flint is imported as fl
and ready to use. To use it, run python -m flint <path_to_freelancer>
. This mode will be used in the following examples.
Before doing anything you will want to set the path to the Freelancer directory to be inspected. This is accomplished with flint.set_install_path()
or automatically with the interactive shell as shown above.
flint defines several "core functions":
Name | Type | Notes |
---|---|---|
flint.get_bases() |
EntitySet[Base] |
All bases defined in the game files |
flint.get_systems() |
EntitySet[System] |
All systems defined in the game files |
flint.get_ships() |
EntitySet[Ship] |
All ships defined in the game files |
flint.get_factions() |
EntitySet[Faction] |
All factions defined in the game files |
flint.get_equipment() |
EntitySet[Equipment] |
All equipment defined in the game files |
flint.get_commodities() |
EntitySet[Commodity] |
All commodities defined in the game files |
flint.get_goods() |
EntitySet[Good] |
All goods defined in the game files |
(If you are on Python 3.7 or above, these have handy shorthands of the form flint.bases
, flint.systems
, flint.commodities
etc.)
These functions all return instances of the EntitySet
type. This is a container which, as the name suggests, represents a set of entities, represented by the Entity
type.
An Entity
represents a unique entity in Freelancer, distinguished by a unique nickname. Entities are constructed from the game's INI files and contain methods to calculate derived attributes. For example:
(flint as fl) >>> fl.get_systems()
{'li01': System(nickname='li01', ids_name=196609, ids_info=66106, file='systems\\li01\\li01.ini', navmapscale=1.0),
'li02': System(nickname='li02', ids_name=196610, ids_info=66084, file='systems\\li02\\li02.ini', navmapscale=1.0),
'li03': System(nickname='li03', ids_name=196611, ids_info=66087, file='systems\\li03\\li03.ini', navmapscale=1.0),
...
}
(flint as fl) >>> [s.name() for s in fl.get_systems()]
['New York', 'California', 'Colorado', 'Texas', 'Alaska', 'New London', ...]
Entity types are described in detail in the next section.