Closes#729
1. Dark mode now applied correctly (was previously lacking)
2. Fixed terrain brush action (brush active is higher priority than drag, fix tile fetch)
3. Fixed writing of Building/structure labels; apply after Terrain
4. Single terrain brush form allowed, center to Field Editor on launch
Somewhat related: fix Show() load for non-ShowDialog() forms to center to parent.
Updates the Field Item Editor to render layers based on the entire map, and the per-patch positioning of each layer.
Import/export will gracefully handle upgrade/downgrade, and viewport import/export will gracefully update tiles rather than a per-acre basis.
Performance has also been slightly improved; no allocation is done anymore when updating the image.
980KB -> 12KB when compressed, seems legit
just an array of tile definitions (32x32 style), sequential acres (undefined acres are all zeroed)
tiles aren't displated as granular as possible, only sets as 16x16 tiles instead of larger 32x32, but it should be a good enough color hint to people for editing
big thanks to ninji for the color mapping in his disassembly and the pbc->tile parse
Different means of expression for the 8 byte item structure's FreeParam
Will be expanding the ItemEditor so that it has a checkmark to toggle Extension Item editing behavior.
Removes IHeldItem as there's no need to abstract it.
Preallocate the terrain-building objects and reuse
changed:
- grid alternates with a slightly-darker to help indicate the larger 2x2 tile grid.
- put plaza & buildings behind the gridlines
Extracts logic from the building & terrain & field item editors for reuse / separation of concerns
Have FieldItemEditor select between Items & Terrain so that you can change the popup menu mode (view set delete)
Not sure how I want to show the terrain names...
Adds a transparency slider to have the field items fade so you can see the underlying terrain tile.
Not really optimized (allocates every time), but it should be fine for now.
Make the None item transparent, so that the entire map bleeds through (clear clarity).
Move sprite resources to subfolder for organization
Add FieldItem class (replaces MapItem), might work in a field item editor (similar to building editor)