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
		
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			GDScript
		
	
| 
								 
											2 years ago
										 
									 | 
							
								@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
							 |