## MapTheme is assigned in MetSys Settings and defines the cell appearance when using [method MetroidvaniaSystem.draw_cell]. It has a few subtypes: shape can be either square or rectangular and borders can be either shared or not. Some properties are only available for certain theme subtypes. Check the Map Theme section in README for some more detailed information.
## The cell's center texture. The size of all other textures depends on this one. It can be square or rectangular and the shape affects some properties. The texture should be grayscale (preferrably white).
## The scene that appears at player location after using [method MetroidvaniaSystem.add_player_location]. Must have a [Node2D] root. Optional, but [method MetroidvaniaSystem.add_player_location] can't be used if the scene is not provided.
@exportvarplayer_location_scene:PackedScene
## If [code]true[/code], the player location is displayed accurately inside the cell. If [code]false[/code], the location marker always appears at the center of the cell.
@exportvarshow_exact_player_location:bool
## Determines how mapped (unexplored) cells are displayed. Use Preview Mapped option in Map Viewer to preview this style.
## Modulation of the center texture when the cell is only mapped. Usually this color is gray.
@exportvarmapped_center_color:Color
## Default modulation of the cell's border textures.
@exportvardefault_border_color:Color
## Modulation of the cell's border textures when the cell is only mapped.
@exportvarmapped_border_color:Color
@export_group("Symbols")
## The list of symbols that can be assigned to cells, either from editor, using [method MetroidvaniaSystem.add_custom_marker] or from storable objects.
@exportvarsymbols:Array[Texture2D]
## The symbol for discovered, but not collected item (or any other object). See [method MetroidvaniaSystem.add_storable_object_with_marker]. Must be within [member symbols] indicies. [code]-1[/code] means no symbol will be assigned automatically.
@exportvaruncollected_item_symbol:=-1
## The symbol for collected item (or any other object). See [method MetroidvaniaSystem.store_object]. Must be within [member symbols] indicies. [code]-1[/code] means no symbol will be assigned automatically.
@exportvarcollected_item_symbol:=-1
@export_group("Border Textures")
## The texture used for wall borders. Must be oriented vertically facing towards east. Height should match [member center_texture].
@exportvarwall:Texture2D
## The texture used for passage borders. Same rules as [member wall].
@exportvarpassage:Texture2D
## The texture used for separator, i.e. fake border that draws between cells with no border. Same rules as [member wall]. Optional.
@exportvarseparator:Texture2D
## A set of alternative borders that can be assigned to the cell (either walls or passages). Same rules as [member wall].
@exportvarborders:Array[Texture2D]
## Same as [member wall], but only available when the [member center_texture] is a rectangle.
@exportvarvertical_wall:Texture2D
## Same as [member wall], but only available when the [member center_texture] is a rectangle. It should still be oriented horizontally and height should match center texture's width.
@exportvarhorizontal_wall:Texture2D
## Same as [member passage], but only available when the [member center_texture] is a rectangle.
@exportvarvertical_passage:Texture2D
## Same as [member passage], but only available when the [member center_texture] is a rectangle. It should still be oriented horizontally and height should match center texture's width.
@exportvarhorizontal_passage:Texture2D
## Same as [member separator], but only available when the [member center_texture] is a rectangle.
@exportvarvertical_separator:Texture2D
## Same as [member separator], but only available when the [member center_texture] is a rectangle. It should still be oriented horizontally and height should match center texture's width.
@exportvarhorizontal_separator:Texture2D
## Same as [member borders], but only available when the [member center_texture] is a rectangle.
@exportvarvertical_borders:Array[Texture2D]
## Same as [member borders], but only available when the [member center_texture] is a rectangle. It should still be oriented horizontally and height should match center texture's width.
@exportvarhorizontal_borders:Array[Texture2D]
@export_group("Corner Textures")
## The texture that draws at room's outer corners. It draws above borders.
@exportvarouter_corner:Texture2D
## The texture that draws at room's inner corners. Only appears in concave rooms. It draws above borders.
@exportvarinner_corner:Texture2D
## Only available when [member use_shared_borders] is enabled. Corner of a single border that divides U-shaped room.
@exportvaru_corner:Texture2D
## Only available when [member use_shared_borders] is enabled. Corner of 2 perpendicular borders.
@exportvarl_corner:Texture2D
## Only available when [member use_shared_borders] is enabled. Corner of 3 borders connecting at one point.
@exportvart_corner:Texture2D
## Only available when [member use_shared_borders] is enabled. Corner of 4 borders.