You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.3 KiB
GDScript

@tool
extends Resource
## The theme used for drawing map cells.
@export var theme: MapTheme:
set(t):
if t == theme:
return
theme = t
theme_changed.emit()
## The root directory where room scenes are located. All scenes used for MetSys editor should be within this folder or its subfolders.
@export_dir var map_root_folder: String = "res://"
@export_dir var map_setting_folder: String = "res://"
## The size of a map cell within an in-game room, i.e. this is the real game size of your map cells. Usually equal to the screen size.
@export var in_game_cell_size := Vector2(1152, 648)
@export var collectible_list: Array[Dictionary]
## The script that determines the custom elements available in the Custom Elements map editor mode. It should inherit [code]CustomElementManager.gd[/code], refer to that class' documentation on how to use it.
@export var custom_element_script: Script:
set(elements):
if elements == custom_element_script:
return
custom_element_script = elements
if elements:
custom_elements = elements.new()
else:
custom_elements = null
custom_elements_changed.emit()
var custom_elements: MetroidvaniaSystem.CustomElementManager
signal theme_changed
signal custom_elements_changed
func _validate_property(property: Dictionary) -> void:
if property.name == "collectible_list":
property.usage &= ~PROPERTY_USAGE_EDITOR