I have been waiting for some feedback and bug reports. Unfortunately I didn't receive any this round, so I decided to do a small release. In this release I have a new activity icon and set my custom action toolbar as the default toolbar on startup.
Some nice progress on FortuneMaker has been made. Now the GUI has been updated. I spent a while figuring out how to use the gtk drawing area widget, which has paid off. Now the grid is no longer a set of buttons, instead it is a series of images that represent the rooms. At this moment it only represents non-empty rooms and doors. Another improvement in the gui is that adding doors has been simplified. Now you only have to select door type and click in the area of the room you want to add the door (N, S, E, or W). The gui also adds doors to the connecting rooms. Overall, FortuneMaker is progressing well. Next step is to get the rooms to represent items and enemies.
As for FortuneHunter. We are planning a release later on tonight. Yesterday, I helped the group reorganize the assets of the game. This involved removing unneeded files, organizing the file directory, and then going through the code fixing every reference to the files. Originally, all the files were in one massive directory. The advantage to this is we were able to find all the unused files made a more organized asset directory.
Not too much has happened in the FileShare activity. I have a new activity icon, but that is about it at the moment. I may start writing a help system today so that I have a reason to release a new build to update the icon.
At the moment I am working on Fortune Maker which is the new name for the Dungeon Creator I mentioned in an earlier post. I think I have the backend complete and now I just need to work on improving the system's user interface. At this moment it is able to save and load dungeons from the xo's journal as well as edit basic rooms through an ugly grid-button system. This grid-button system shows the user a list of rooms as buttons, they click the button and it brings them to a screen full of dropdown option boxes to configure the room. This system is a quick prototype to get the backend running, now it needs to be modified.
Next task will be helping out the main MAFH team in loading and deleting files from the journal.
Well I have released the 7th version of my file share activity and now I am playing the weighting game, pausing development on it while waiting for some testing and bug feedback. At the moment, the only planned updates deal with the server. Some changes like update backend to use a database system instead of a json file and keeping file lists in memory. Other changes can include private folders on the server. I figured I should wait for some feedback before complicating the system with these new features.
A lot of code refactoring went on the past couple of days.
I separated the gui code as much as I can from the main system. By doing this, my gui can now spawn actions in new threads that in the past was not possible. This allows the gui to remain responsive during large IO tasks like downloading and packaging.
After this, I started to improve the server by fixing a few threading issues on the server and then spent the past day implementing a basic permission system. This permission system now keeps track of every xo that has connected to the server. The first xo becomes an admin and all following xo's are given just download permissions. The admin will get a new button in their gui that allows them to update the user list, giving users the rights to upload and remove files from the server.
I have not packaged this code into an XO yet due to being unable to test if the mesh system is still working correctly. This is because sometime this afternoon, our school server appears to have been unplugged from the network (unknown if it was intensional or not). So I will have to check the status of the school server and get it back up and running.
Well I did a lot of work in the last couple of days in getting a basic server and client system working for integration with the school server.
Now I got a prototype... but it has a few issues with threading downloads (both server and client code). The server can only accept one connection at a time which I will fix soon. This causes the gui to hang on the client as well... I'm hoping by fixing the server things will go more smoothly, but I think I will need to add a few more threads.
Improved how the system holds file records internally by now using a FileInfo class instead of arrays.
Improved the way the GUI internally handled the records.
Added file fail notice to the file list when it failed to download and install. This now allows the user to try to re-download and install the file.
The file share activity supports uploading files to a basic server. If the server is running on the jabber server (which hopefully is the school server) then it will prompt the user if they want to use the server instead of sharing with a peer.
See FileShare.server for the server script if you wish to try it on your own school server.
In the past couple of days I have been working on improving the internals of the system. First thing I did was changed how the files are maintained in the program to allow more flexibility, especially with the GUI. This improvement changed the internal structure from a pre-defined array that would be passed around (including over the network) to a FileInfo object. In the FileInfo class there are also a bunch of static helpers for the TreeView in the gui.
By using this FileInfo class, the GUI asks the object what it should display (instead of looking at arrays for the correct field). It also provides a method to save and load the important information about the file to be sent/received over the network as well as when it is saved to and restored from the journal.
I am also currently working on adding the ability to integrate the system with an external school server. At this point it has the ability to get file lists from an external server as well as download the file. This is almost the same system that it currently uses except it uses external http links instead of the pipes the normal activity sharing uses. I have decided to write a new server system instead of the one I wrote earlier in the year to simplify the system.
I have not yet implemented the ability to push files up to the server yet. This will be a challenge because the sugar api does not have an upload api like its url downloader.