{"action":"created","issue":{"url":"https://api.github.com/repos/SirCmpwn/TrueCraft/issues/148","labels_url":"https://api.github.com/repos/SirCmpwn/TrueCraft/issues/148/labels{/name}","comments_url":"https://api.github.com/repos/SirCmpwn/TrueCraft/issues/148/comments","events_url":"https://api.github.com/repos/SirCmpwn/TrueCraft/issues/148/events","html_url":"https://github.com/SirCmpwn/TrueCraft/pull/148","id":89479084,"number":148,"title":"Initial FNA project, with XNA4 compliance fixes","user":{"login":"flibitijibibo","id":1396814,"avatar_url":"https://avatars.githubusercontent.com/u/1396814?v=3","gravatar_id":"","url":"https://api.github.com/users/flibitijibibo","html_url":"https://github.com/flibitijibibo","followers_url":"https://api.github.com/users/flibitijibibo/followers","following_url":"https://api.github.com/users/flibitijibibo/following{/other_user}","gists_url":"https://api.github.com/users/flibitijibibo/gists{/gist_id}","starred_url":"https://api.github.com/users/flibitijibibo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flibitijibibo/subscriptions","organizations_url":"https://api.github.com/users/flibitijibibo/orgs","repos_url":"https://api.github.com/users/flibitijibibo/repos","events_url":"https://api.github.com/users/flibitijibibo/events{/privacy}","received_events_url":"https://api.github.com/users/flibitijibibo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-06-19T06:19:49Z","updated_at":"2015-06-19T13:31:35Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/SirCmpwn/TrueCraft/pulls/148","html_url":"https://github.com/SirCmpwn/TrueCraft/pull/148","diff_url":"https://github.com/SirCmpwn/TrueCraft/pull/148.diff","patch_url":"https://github.com/SirCmpwn/TrueCraft/pull/148.patch"},"body":"This adds a `TrueCraft.SDL2.sln` project file, which for the most part looks like the original solution, but uses a new `TrueCraft.Client.SDL2.csproj` project file that uses FNA rather than MonoGame for its XNA reimplementation.\r\n\r\nMore information about FNA can be found here: http://fna-xna.github.io/\r\n\r\nTo build, simply clone FNA into the root of the TrueCraft repository and build the solution as you would the default solution.\r\n\r\nIn addition to the new projects, the source file changes are as follows:\r\n\r\n- ChunkEventArgs: Buildfix to inherit EventArgs, for EventHandler compliance.\r\n- ChunkHandler: Add Ionic using statement so the compiler knows where ZlibStream came from.\r\n- TrueCraftGame: Use an official XNA4 SpriteBatch.Draw() method.\r\n- TextureMapper: Rather than using the MonoGame PngReader, we'll instead use the official XNA4 method [Texture2D.FromStream](https://msdn.microsoft.com/en-us/library/ff434103.aspx), which essentially does the same thing.\r\n\r\nThere were other buildfixes I needed locally, but only because I use an ancient compiler for production.\r\n\r\nSome caveats to the FNA solution:\r\n\r\n- Totally untested! The precompiled C# assemblies were not happy with my Mono runtime, so I couldn't run it. XNA's XNA though, and since the game no longer uses threaded GL it should be just fine :)\r\n- I did not include a launcher project. My system didn't have all the GTK dependencies (and there are a LOT of them...), so I didn't attempt to put this together - you'll have to manually set up the server/client with launch parameters for now.\r\n\r\nHaving an FNA version may be helpful for checking XNA4 compliance in addition to helping with portability - even if the platform support is roughly equivalent, having multiple XNA-like backends can be informative in identifying bugs that are uglier than usual (like that threaded GL one!)."},"comment":{"url":"https://api.github.com/repos/SirCmpwn/TrueCraft/issues/comments/113516313","html_url":"https://github.com/SirCmpwn/TrueCraft/pull/148#issuecomment-113516313","issue_url":"https://api.github.com/repos/SirCmpwn/TrueCraft/issues/148","id":113516313,"user":{"login":"SirCmpwn","id":1310872,"avatar_url":"https://avatars.githubusercontent.com/u/1310872?v=3","gravatar_id":"","url":"https://api.github.com/users/SirCmpwn","html_url":"https://github.com/SirCmpwn","followers_url":"https://api.github.com/users/SirCmpwn/followers","following_url":"https://api.github.com/users/SirCmpwn/following{/other_user}","gists_url":"https://api.github.com/users/SirCmpwn/gists{/gist_id}","starred_url":"https://api.github.com/users/SirCmpwn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SirCmpwn/subscriptions","organizations_url":"https://api.github.com/users/SirCmpwn/orgs","repos_url":"https://api.github.com/users/SirCmpwn/repos","events_url":"https://api.github.com/users/SirCmpwn/events{/privacy}","received_events_url":"https://api.github.com/users/SirCmpwn/received_events","type":"User","site_admin":false},"created_at":"2015-06-19T13:31:35Z","updated_at":"2015-06-19T13:31:35Z","body":"After testing this myself, it's not quite ready to be merged. The `Content` directory wasn't copied over during the build, and on startup it failed to find `libmojoshader.so` and crashed."}}