TilePropertySceneRef.gd 906 B

1234567891011121314151617181920212223242526272829
  1. class_name TilePropertySceneRef
  2. extends TilePropertyContainer
  3. signal open_tile_menu(this)
  4. var scene: PackedScene = null
  5. const replace_scenes := {"res://Scenes/Prefabs/Entities/Items/Coin.tscn": "res://Scenes/Prefabs/Entities/Items/SpinningCoin.tscn"}
  6. func set_starting_value(start_value = null) -> void:
  7. %SceneName.text = get_scene_path(start_value)
  8. func open_tile_selection_menu() -> void:
  9. open_tile_menu.emit(self)
  10. func set_scene(selector: EditorTileSelector) -> void:
  11. scene = selector.entity_scene
  12. if replace_scenes.has(scene.resource_path):
  13. scene = load(replace_scenes[scene.resource_path])
  14. %SceneName.text = get_scene_path(scene)
  15. value = scene
  16. value_changed.emit(self, scene)
  17. func get_scene_path(var_scene: PackedScene = null) -> String:
  18. if var_scene == null:
  19. return "Empty"
  20. else:
  21. return var_scene.resource_path.get_file().replace(".tscn", "").to_snake_case().replace("_", " ")