MonoGame Pipeline Tool Mac and Linux

So, 3 days ago I thought to myself that I really needed Pipeline tool to work on linux, but you guys aren’t even close to completing it, so I had two options, either I wait for 6 months to few years for you to release a Pipeline tool on linux, or I make it myself.

I chose the second option…:

Changelog

[1.0.0]

Initial release

[1.0.1]

Fixed bug with build cleaning content before building it
Some minor auto size improvements with properties view
Added assembly info

[1.0.2]

Fixed bug with new project not adding to recent file list
Added “.” to allowed characters list for renaming and adding new item dialogs
Added the ability to press enter on renaming and adding new item dialogs
Added auto scroll to the main textview
Added higher resolution icon
Added add items auto setting processor and importer for the following extensions: “.png”, “.gif”, “.jpg” ,".fbx", “.spriteFont” and “.xml”

Download

Linux: https://mega.co.nz/#!eFJ2DaQb!IZS3vIm22nuDMS7AWTJnVBaa17KnIrYRgl-jMrSG5Iw
Mac: https://mega.co.nz/#!aFJHTZyA!BW3F7NVqvCVlq5uKE7xmjdnjpgG7r7y-XN-kbYfdU20
MGCB is not included in the mac archive, you’ll need to compile it manually.

Side note, I’ve started working on the official pipeline tool so I probably won’t post any more updates for this one.
.
Known bugs

On mac drag and drop doesn’t function.

FAQ:

What are the differences?

Negative:
-no undo
-no redo
-no import

Positive:
-you can drag and drop files around in the treeview
-there is a rename option
-there are 2 delete options, remove and delete

Neutral:
-add file copies file to the folder instead of linking it

Can it work on Windows?

Yes, but you guys already have the official tool, why would you want this one

What did you use to make the tool?

c# and gtk

Can we get your source code?

Sure, I’ll post it later when I’m not lazy to setup a github page for it…

Great work! It’s nice to see some progress on the pipeline tool. I can’t wait for a mac release :slight_smile:

So, I tried the tool on mac in vm, and it seems that for some reason gtk doesn’t call dragmotion on mac so drag and drop doesn’t function. I’ll look into it tomorrow, but the rest of the tool worked fine.

If anyone can post MGCB for mac, I would be grateful. I can’t compile it myself because I use hackintosh, and I can’t update it to 10.9.4, which is the minimum version needed for xcode.

I would say get it from the build server…

http://teamcity.monogame.net/

… but it looks like we’re not building MGCB for Mac just yet. I think we totally could… we just haven’t hooked it up to the build script.

Are you just rewriting the whole tool or just implementing the “view” side of the MVC pattern used in the existing code?

I’ve rewritten the whole tool.

That is too bad… it would have been great to have your enthusiasm focused into the official Pipeline tool.

But I realize some people are just not good MonoGame contributors or even want to be.

Good luck with your tool.

I’ve rewritten the tool instead of working on the official stuff because of 2 reasons:

  1. You guys use XWT for the tool, which, in my opinion, is 10x times better than GTK, more native design for each platform, but there are a lot of widgets and documentation still missing.
  2. The amount of time required for me to create the tool with existing classes is much higher than the amount of time it would require me to just create it from nothing.

Now for some stuff that might be useful for the official tool:

  1. Use monodevelops Properties Grid, it’s located in “Monodevelop.Ide”, namespace “MonoDevelop.Components.PropertyGrid”, it’s xwt widget
  2. Disable debug mode on linux and probably mac, when I run MGCB using it, it just told me “Unhandled Exception: System.NotImplementedException”, and the last time it occurred for me it turned out that mono was missing a class is System.Net

I will try to contribute to monogame in the future, tho I am quite afraid of making a mistake with git. I am a first year student, so I didn’t have a reason to use git for now.

Actually we’ve found the opposite… XWT is a bad path. Xamarin themselves are stopping development of XWT.

Our plans are to use GTK# moving forward and we hope to see the XWT stuff replaced soon.

Interesting… we’ll have to go find what method that was.

Yea… Git seems scary and even after I’ve used it for almost 2 years daily now I get nervous when doing things.

The only cure is to use it and begin to learn it… the sooner you do the better off you are really.

I did not know that xamarin stopped developing xwt, well anyway I can replace xwt stuff with gtk#, I’ll just need few days to do it so I can try and hookup propertiesview and treeview also.

The full error is:

Unhandled Exception:
System.NotImplementedException: The requested feature is not implemented.
at System.Diagnostics.Debugger.Launch () [0x00000] in :0
at MGCB.Program.Main (System.String args) [0x00000] in :0
[ERROR] FATAL UNHANDLED EXCEPTION: System.NotImplementedException: The requested feature is not implemented.
at System.Diagnostics.Debugger.Launch () [0x00000] in :0
at MGCB.Program.Main (System.String args) [0x00000] in :0

Also thanks for the advice, I’ll listen to it.

Yea… I could see Debugger.Launch() not working on Mac/Linux. No big deal to disable that feature on those platforms.

I thought I should do a status report, currently the only thing that is left to rebuild is propertiesgrid, everything else is working perfectly.

2 Likes

It looks great.

I’m not a Linux user myself, but I’ve been working on a similar project (WPF so windows only) for a while. I can see how much work has gone into this.

Love the work going on here :smile:

I have been working on the Gtk# version and just submitted a PR (https://github.com/mono/MonoGame/pull/3295)
It has the tree working and a working property grid which is NOT using the Monodevleop one. It would be great if we could collaborate on this version and get the gtk# one up to speed for Linux and Mac.

2 Likes

Let’s do it, I’ll send you my skype details, tho I’ve already implemented everything except propertygrid, which I’m having troubles implementing alone because I’ve never used it under win forms. To make things quicker I’ll submit a pull request(I think that’s what it’s called) with everything except the propertygrid working.

I think I did it correctly…: https://github.com/mono/MonoGame/pull/3296