clockwork-city/prefabs/scene_tile_map_layer.gd
duncgibbs 99de9e8b40
Some checks failed
linting & formatting / build (push) Failing after 5s
itch.io publish action / build (linux64, x86_64) (push) Failing after 34s
itch.io publish action / build (osx, app) (push) Failing after 30s
itch.io publish action / build (win64, exe) (push) Failing after 31s
initial commit
2026-04-13 11:34:00 -05:00

26 lines
698 B
GDScript

class_name SceneTileMapLayer extends TileMapLayer
signal child_registered
var scene_coords: Dictionary[Vector2i, Node] = {}
func _enter_tree():
child_entered_tree.connect(_register_child)
child_exiting_tree.connect(_unregister_child)
func _register_child(child):
await child.ready
var coords = local_to_map(to_local(child.global_position))
scene_coords[coords] = child
child.set_meta("tile_coords", coords)
child_registered.emit()
func _unregister_child(child):
scene_coords.erase(child.get_meta("tile_coords"))
func get_cell_scene(coords: Vector2i) -> Node:
return scene_coords.get(coords, null)
func get_scene_coords(scene: Node) -> Vector2i:
return scene_coords.find_key(scene)