Как передать переменную с позициeй определенного тайла из тайл мапы в другой узел, при этом они не находятся в одном древе Godot 4

В древе доски находится сама tilemap, с помощью map to local нужно передать значение переменной selected_tile в узел pawn(пешка) для изменения её глобальной позиции и в итоге реализации ее движения

Сцена Pawm(пешки):

extends CharacterBody2D

var scene = load("res://shapes/pawn.tscn")

func _physics_process(delta):
  MoveMouse()

func MoveMouse():
  if Input.is_action_just_pressed("LeftMouse"):
    print(Board.selected_tile)
    global_position = Board.selected_tile

Сцена доски:

extends TileMap

var GridSize = 8
@export var Dic = {}
var selected_tile = Vector2(100,100)
var scene = load("res://shapes/board.tscn")

func _on_ready():
  for x in GridSize:
    for y in GridSize:
      if (x % 2 == 0 && y % 2 != 0):
        Dic[str(Vector2(x, y))] = {"Type": "Black", "Position" : Vector2(x, y)}
        set_cell(0, Vector2(x, y), 0, Vector2i(1, randi_range(2, 5)), 0)
        
      if (x % 2 != 0 && y % 2 == 0):
        Dic[str(Vector2(x, y))] = {"Type": "Black", "Position" : Vector2(x, y)}
        set_cell(0, Vector2(x, y), 0, Vector2i(1, randi_range(2, 5)), 0)
        
      if (x % 2 != 0 && y % 2 != 0):
        Dic[str(Vector2(x, y))] = {"Type": "White", "Position" : Vector2(x, y)}
        set_cell(0, Vector2(x, y), 0, Vector2i(2, randi_range(2, 5)), 0)
        
      if (x % 2 == 0 && y % 2 == 0):
        Dic[str(Vector2(x, y))] = {"Type": "White", "Position" : Vector2(x, y)}
        set_cell(0, Vector2(x, y), 0, Vector2i(2, randi_range(2, 5)), 0)
        

func _process(delta):
  var tile = local_to_map(get_global_mouse_position())
  
  selected_tile = map_to_local(tile)
  
  for x in GridSize:
    for y in GridSize:
      erase_cell(1, Vector2(x, y))
  
  if Dic.has(str(tile)): 
    set_cell(1, tile, 0, Vector2i(4, 2), 0)
    print(Dic[str(tile)])
   

Ответы (0 шт):