biqqles / flint Goto Github PK
View Code? Open in Web Editor NEWA parser and API for Freelancer and its formats
Home Page: https://github.com/biqqles/flint/wiki
License: Mozilla Public License 2.0
A parser and API for Freelancer and its formats
Home Page: https://github.com/biqqles/flint/wiki
License: Mozilla Public License 2.0
I'm using Discovery 4.91.0 and I noticed that Flint isn't aware of configurations set in installed plugins. For example, inspecting the base entity for LI09_08_base
, it says the buy price of commodity_outcast
is 10000. However, there is a server side plugin with a config file at EXE\flhook_plugins\prices.cfg
that overrides that buy price for that station to 45000.
This can be easily reproduced with a local server running this version and checking in game that the station buys this commodity for the price in the prices.cfg
file and not what Flint reports.
There's a lot of different files in the flhooks_plugins
folder that I'm sure affect the game state that is likely not being picked up by Flint.
Using a fresh copy of Discovery 4.91.0, there are several bases that do not show up in the EntitySet
when calling the bases
method of their respective system. Each missing base is present in the appropriate system ini file and each base object retrieved by flint has the correct system identified by its system
string attribute.
Here is the list of missing bases I've found:
File "d:\repos\discoWikiGen\.venv\Lib\site-packages\flint\entities\ship.py", line 83, in type
return self._ship_classes()[self.ship_class]
^^^^^^^^^^^^^^^^^^^^
File "d:\repos\discoWikiGen\.venv\Lib\site-packages\flint\entities\ship.py", line 179, in _ship_classes
result.extend(dll.parse(ship_class, 0).values())
^^^^^^^^^^^^^^^^^^^^^^^^
File "d:\repos\discoWikiGen\.venv\Lib\site-packages\flint\formats\dll.py", line 163, in parse
resources.update(read_string_table())
^^^^^^^^^^^^^^^^^^^
File "d:\repos\discoWikiGen\.venv\Lib\site-packages\flint\formats\dll.py", line 101, in read_string_table
resource_string = ResourceDirectoryString(f.read(2))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "d:\repos\discoWikiGen\.venv\Lib\site-packages\deconstruct\struct.py", line 41, in __init__
unpacked = iter(struct.unpack(self.format_string, buffer))
something changed in shipclass.dll to break the dll parser. it's the only file this happens with
when you try init flint in your own program
import flint as fl
fl.set_install_path(YourPath) is not working due to some namespace error apparently
but fl.paths.set_install_path(YourPath) works fine.
P.S. Shell launches fine without the bug.
Detailed tracelog:
(venv) C:\Users\User\source\repos\FLDarknet\FLDarknet>python
Python 3.7.8 (tags/v3.7.8:4b47a5b6ba, Jun 28 2020, 08:53:46) [MSC v.1916 64 bit
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import flint as fl
>>> fl.set_install_path(r"C:\Freelancer")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\User\source\repos\FLDarknet\FLDarknet\venv\lib\site-packages\fl
int\__init__.py", line 46, in __getattr__
if not paths.install:
AttributeError: module 'flint.paths' has no attribute 'install'
We really should add some form of testing to check that all functions and methods work on vanilla and Discovery data as there are a lot of NoneType
errors lurking. This could be as simple as iterating through every routine
and Entity
generated and trying to call everything they expose. I have a basic script that does this but it needs finishing. Might have to do some more conventional unit testing for functions that take arguments, though.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.