Over the past week and a bit, when I haven’t been rescuing drunk, drugged up, hippies, I have been working on a remake of a tool I first made about 6 years ago! Back in the day I was using RapidQ Basic, this time around I took the easier option and wrote YsFlight Organiser in C#.
What is the YsFlight Organiser?
YsFlight Organiser is an addon management tool for the flight simulator / game YsFlight. At the moment it allows you to ‘unload’ addons and rearrange the order they are displayed within YsFlight, however I have a few other ideas for the future.
The main reason for the recreation of this project is that I need a good example piece of work for my portfolio. As such this has been tested to hell. I used test driven development methods to built it. There is even decent code documentation and it is well structured!
Did someone say Linux?
One of the advantages of using C# and .NET is that the tool also runs under Linux with Mono. I didn’t think about this when first designing the project, however as there is now a decent Linux version of YsFlight this is a good feature. Making the tool run on Mono was itself rather painless, a few alterations were needed in the code for paths to make them use the correct directory separator.
// Don't do this. Not portable. String path = "aircraftaircraft.lst"; // Do this! Path.Combine will use the correct // directory separator for the platform! String path = Path.Combine("aircraft", "aircraft.lst");
I want it now!
You can download the latest release on the YsFlight Organiser GitHub page. Installation is easy, under Windows just download the .msi, and under Linux extract the .zip. Windows users will require the .NET Framework 3.5 (a minimum of the .NET Framework Client Profile – a cut down version) and Linux users will require a minimum of Mono 2.0. If you are feeling really risky, let me know how it works under Mono on Windows and OS X!
All of the code is released under a Creative Commons license, so feel free to use it in your own projects and contribute back any cool stuff you do to it! The core library, that is used to access the YsFlight data files, is in the
Src/Core project, however this will likely be split into a separate repository sometime soon.