Closed ilexp closed 8 years ago
AutoTile Template: All 47 permutations of an expanded AutoTile:
There is also this AutoTile format.
It would make sense to support any of them via customization on a case by case basis. Just let the user specify per-autotile, which existing tiles have which role and let the system generate the rest based on the available sub-tiles using a predefined priority / order.
BaseTile
field to TileInfo
, which is a link-back index to the single root tile that represents the AutoTile group.AutoTileInput
class that defines a single AutoTile in the source dataset.
AutoTileInfo
class that represents a single (generated or as-is) AutoTile in the target dataset.
byte
.BaseTile
field to TileInfo
struct.TilesetAutoTileInput
class.TilesetAutoTileInfo
class.TileConnection
byte flags enum, easily cast-able into an array index for tile index lookups.Tileset.TileCount
needs to be revisited to account for constructed tiles. There needs to be one count with only the source tiles considered, and another with really all of them considered.TilesetCompiler
class, explicitly specified input and output data, and split up the single compile method into multiple smaller ones.BaseTile
field.TilesetAutoTileInfo
tiles, so all of them are defined.Tileset.TileCount
needs to be revisited to account for constructed tiles. There needs to be one count with only the source tiles considered, and another with really all of them considered.Tileset.TileCount
needs to be revisited to account for constructed tiles. There needs to be one count with only the source tiles considered, and another with really all of them considered.Add
/RemoveTilesetVisualLayerAction
into something more generic that simply adds/removes an item of type T
to/from an IList<T>
as used by one of the various Tileset
layer-like properties. There will likely be more in the future, and having two UndoRedoActions for each of them despite essentially doing the same is a bit overkill.
Tileset
instance, PropertyInfo
and item.Tileset.TileCount
needs to be revisited to account for constructed tiles. There needs to be one count with only the source tiles considered, and another with really all of them considered.Some mockup screens for the new AutoTile mode of the TilesetEditor:
Basic idea behind this: After selecting the base tile, the user "carves free" all the connected parts of border tiles, so the AutoTile base part will be highlighted in the end.
Add
/RemoveTilesetVisualLayerAction
into the more generic Add
/RemoveTilesetConfigLayerAction
and used it for the AutoTile editor mode.TileConnection
outlines within a tile, not outside. The above mockup is wrong in that regard.Tileset.TileCount
needs to be revisited to account for constructed tiles. There needs to be one count with only the source tiles considered, and another with really all of them considered.master
and release.Split this up into a separate issue
Tileset.TileCount
needs to be revisited to account for constructed tiles. There needs to be one count with only the source tiles considered, and another with really all of them considered.Tile
struct to actually include only BaseTile + TileConnection, not the post-compile tile index.Tile
struct to include BaseTile + TileConnection as redundant info?AutoTile test tileset for the non-generating setup:
All 47 permutations of the test AutoTile are in there. The compiler should properly map them, and the AutoTiling algorithm should be able to use them accordingly.
TileInfo
and Tile
structs to provide more practical data, rather than conceptual data.Tilemap
implementation to resolve the final tile index on load and on change. Until resolved, a Tile
that was generated using the index-based constructor will share the same base and final tile index as a fallback.GenerateMissingTiles
option.Tilemap
to do this when the change event is fired?Tilemap
to perform the resolve step in each EndUpdateTiles
and SetTile
call, rather than the event?Tilemap
change event that triggers immediately without waiting for the last EndUpdate
call, and then use that one instead for this case?master
and release.master
and release.Tile.CreateXY
calls.master
and release.Done. Release in progress.
As previously described in issue #249, the tilemaps plugin needs some kind of AutoTile feature. This feature will affect Tileset and editor implementations, but is mostly transparent towards Tilemaps themselves.