-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mishmash in the json data #5
Comments
@mcgiwer Can u explain what the mish mash is ? |
@mcgiwer Can you give examples? The files are read all right by the ts2 software, so I don't really understand what you mean either. |
To update @npiganeau , @mcgiwer is making some of the data structures in go, and the serialise technique from to_json() is py is not really readable in some cases in golang... |
eg tuples and arrays in "pure json" would be structures, instead of baing "embedded together" in a single string etc |
You mean for Well that's for historical reasons, they were treated as strings because they were stored in one column of the sqlite database. I'll see what I can do to make them pure json, should not be too complicated. |
its probably in the Please NOTE that I am in favour of
|
I've made the modification + updated ts2-data. It was just that I called the Str property instead of the property itself in for_json() |
Re ts2-data.. Can we make the countires small case eg uk instead of Uk, germany ?? |
Folder names are read 'as is' inside the "open" dialog of ts2, so having them lower case would not be very pretty, unless you find a way to show another name inside the software such as a |
example: many "types" are mixed with each other in the TrackItems. Even if they have seperate ID's it isn't sorted and grouped by the item type |
That's because they are all of the same type of objects, that's why they have a unique ID. They have many interaction as being "trackItems" in the code (independently of their precise type), so you just can't separate them as if they were completely different. You must think of the different trackItems types as being different set of properties of the same type. In the python implementation, this is done by having a base class "TrackItem" and inherited classes for each, but that's an implementation dependant choice. If I had to do it in golang, I would probably have a common struct for all of them, a common "TrackItem" interface and a specific interface derived from "TrackItem" for each trackItem type. |
@npiganeau they aren't exactly the same type. Coresponding from the |
@mcgiwer don't take it the wrong way round: These json files are the dump of the theoretical "ts2 data model" that I have invented for ts2. This model is optimised for running the game, not for loading or saving the file : the goal is to have optimised game running, not to have an easy file loading. This model is implementation independent. As I said, it has been implemented in python as inherited classes, but you should implement it as a single large struct on languages that do not support inheritance to be able to code items interactions (pointers between items for instance: |
BTW, when the files were saved to sqlite, all track items were stored in the same table. |
@npiganeau what do you think about to split the ts2-data files into half? the SQLite ones would be for Python version and JSON would be for GO? this way it won't be coliding in case of need changing the file structure in ts2-python |
TS2 file format is JSON. If you want to make a new implementation of ts2 in go, then
|
@npiganeau it will be compatible with it, but the order of the entries in TrainItems will be changed to make it more sorted and grouped by And second thing... I would propose you to make it modular to make the future development easier. I am participating in many train related projects and one of it (written in Deplhi and currently beeing converted to other language) has become so large (over 250,000 lines of code) that it was very difficult to progress with the works. That why the developers have listened to my advise and splited it into blocks (modules) and it helped much |
That's what's planned for v0.7. See wiki link in previous post. |
@npiganeau in wiki is about 0.6 and not 0.7 what have you used to do the graph? and the editor should be pinned to launcher and not server (server should be a second plan element to with users shouldn't have direct access |
@mcgiwer Since I wrote the wiki, and I also coded the software, I do hope that I know what I am talking about :-) Next arch is what is planned starting from v0.7 to make ts2 modular. v0.6 is a monolithic software of over 20,000 lines of code |
I edited my earlier post and fixed the amount of zero's (it seem I have small keyboard issues and not always all chars pop in) |
I would suggest to clean-up the json because the "track items" are mixed up too much and it makes unable to create propper structures for it
The text was updated successfully, but these errors were encountered: