I've been thinking about the basic tasks:
- Rules for mapping cursor position onto cell coordinates
- Rules for mapping cell coordinates to cursor position
- Create the IsometricGrid class
- Modify GridFactory to allow access of the IsometricGrid class
- Modify the MapPropertiesDialog class and xml to allow the selection of the new map type
- Modify SightType so that vision areas are ellipses and rectangles rather than circles and squares
- Modify Light so that vision areas are ellipses and rectangles rather than circles and squares
- Modify Zone.TOKEN_Z_ORDER_COMPARATOR to order tokens by isometric depth rather than an arbitrary Z value
- Modify ZonePoint getNearestVertex. Seems like this should inherit for Grid class, not sure why it doesn't. Existing code doesn't look like it would work well for hexes?
- Think about how best to position the different tokens types on the isometric cell
So far I have created the basic IsometricGrid class and updated Map Properties so that you can create an isometric map which allows you to drop tokens onto it and drag them about. In my implementation the pixels per cell value becomes shortest dimension of the isometric "diamond" i.e. the height.
If you want to have a play with what I have done so far, you can pull my "Isometric" branch from my Github repository (https://github.com/Jaggeroth/maptool)
Obviously there is still a lot to do before this would be of much benefit. It might even be necessary to create a new Token Type. Anyway, I am finding this a fun little project for someone that has written in java for years but has never ever touched Swing!