Build 15 Cameth
smee, build 15
Hurrah, hooray! Build 15 is hay! I mean, here!
And the peasants rejoiced.
But mere moments later they began to grow restless! They clamored for more! One over the other, they voiced their discontent in ever increasing numbers, and the streets rang with a shrill cacaphony of righteous demands!
"When will SMEE support VERGE 3 maps?" shouted one.
Another cried out "When will SMEE be able to import tiles easily?"
Yet another shrieked "And how dare you wait five days to update your blog!"
VERGE 3 Support
I plan on supporting VERGE 3 maps in MOME RATH, but not in SMEE. Before your riot, understand that SMEE was intended to be a very simple map editor from the very start. Though it is amazing how much actually goes into a simple map editor! Its aims are tutorial in nature, not super-groove-full-blown-all-your-enchilada-are-belong-to-us in nature. No, VERGE 3 maps are not exceptionally complex or difficult to support. But they are beyond the scope of my intentions for SMEE.
That said, once SMEE receives a few more features and a bit of polish, it will become the starting point for MOME RATH. I will begin transitioning all of the internals over to use all of the other libraries I have been developing, including Mu, gcsio, and gameobjects. VERGE 3 support will of course follow.
Easier Tile Management
Easily importing and managing tiles is one of the next items on my list, right after another bit of an overhaul of SMEE's inner workings. I've been reading a bit further on MVC and examining how Swing implements it, and I think I've got some better ideas on how to manage all of my editor-related model data, etc.
Blog Updates
[Looking back on this, all I can do is shake my head. I still had fits of blogging about blogging and making excuses. Don't fall into this trap, my friends! It's annoying.]
As far as updating my blog, I actually spent every one of those days doing research on multiple layers and ways to perform fast refreshes. You can get into a pretty tangled web scheming up ideas for caching, but in the end I decided to stick with simplicity. As mentioned in my last entry, I knuckled down and found the bug in my smart refresh code. It behaves rather well for most cases!
In the future I will probably at least give a heads up during this "slow" periods where I'm doing more research than usable code production. It'll be a good time for some riddle-me-this topics that would probably do well to get outside opinions on!
Build 15 Overview
So! Everything mentioned from yesterday is in there except the adding and removal of layers being included in the undo history. Instead, I ended up tinkering with a minimap, which you can see in the lower right of the screenshot. Right now it's display only, but I'll be adding clickability and draggability soon.
Toolbar
The icon toolbar came out a bit cleaner than I had expected, and I'm pretty pleased with it so far. I reworked the MapPanelController class a bit to implement "modes" of operation that correspond to the different buttons.
It was pretty quick and dirty work. But it's a much better solution than handling all possible modes in each mouse handler. Which I still do, but the first level within each handler checks the mode and then defers to the appropriate handler. It's rather hacky and not that object-oriented at the moment. I'll be fixing that soon as well!
Flood Fill & Area Selections
No flood-fill or area selections yet, those will be coming along soon as well. For now, their buttons are grayed out in the toolbar.
Layer Manager Popup Menu
If you right-click in the layer manager, you can add or remove layers. Eventually I'll be adding in layer properties as well. And perhaps I'll make buttons for these menu items as well, though I like keeping the UI as compact as possible. It's more friendly to people working at lower resolutions, though I don't expect the number of people doing so is very large. One of my personal peeves about maped3 is that the entire right hand portion of the UI with the tools, etc. is fairly large.
Grayed Out Buttons
You'll also notice the tool bar buttons gray out as appropriate too! Chic. I've also added an Edit menu which has items for the Undo and Redo actions.
I've been keeping an eye out for this sort of thing in general, and always providing tooltips for grayed out items so you can tell why something is grayed out. There seems to be some extra twist on getting tooltips to work for formal action objects, so some of the tooltips aren't working right now. That will bear further investigation!
Actions
Internally, I created a few more action classes in smee.action, notably for zooming and undo, since I trigger them from multiple places: the menu, the toolbar, and the keyboard. I'll be transitioning a lot more actions into formal action objects in the near future.
Eraser
I don't know how incredibly useful the eraser is, but I suspect it has its uses! It sets tile references to null. As mentioned before, I like this behavior for "no tile" better. And having a proper concept of "no tile" certainly lends itself to the concept of erasing tiles!
Dropper
Select the dropper and click on a tile with the left, middle, or right mouse button to set the current tile selections. Don't forget to select a layer in the layer manager first. The same is true for any operation in general that requires working on a layer-- you need to select a layer first. I will probably select the first layer automatically in the future.
Viewport Dragging
There's a mode devoted entirely to viewport dragging now. You can still initiate dragging from the pencil mode by holding down the CTRL key. I'll probably see about allowing this more all of the modes in the future, since scrolling around the viewport is a pretty common task.
Next Up...
I'll be performing that overhaul first, mostly for the benefit of a cleaner MVC implementation. Then I'll be diving into tile management and importing/exporting. The ability to import and export tile sets will go a long way toward making SMEE useful, I think. Once SMEE turns into MOME RATH, I'll be writing an importer for SMEE maps, so don't think that any work you do in SMEE will be lost or unusable for VERGE 3!
