I can't figure out why my player alot scenes are all in sync
They are different instances but when I click on one it updates the other...
@tool extends Control
@export_range(0,3) var id := 0
func _ready():
Game.player_changed.connect(func(player):
if player.id != id: return
_update(player))
Game.player_opened .connect(func(player):
if player.id != id: return
if $Animator.is_playing():
await $Animator.animation_finished
$Animator.play("open"))
Game.player_closed .connect(func(player):
if player.id != id: return
if $Animator.is_playing():
await $Animator.animation_finished
$Animator.play("close"))
func _update(player:Player)->void:
var text_x = player.mode * 16
var text_y = player.id * 8 + 96
$Background/Text.texture.region.position.x = text_x
$Background/Text.texture.region.position.y = text_y
var card_x = player.team * 32
$Background/Card.texture.region.position.x = card_x
var door_x = player.id * 32
$Foreground/LDoor.texture.region.position.x = door_x
$Foreground/RDoor.texture.region.position.x = door_x
func is_basic_input(event:InputEvent)->bool:
if event is InputEventMouseButton:
if event.pressed && event.button_index == MOUSE_BUTTON_LEFT:
return true
if event is InputEventScreenTouch:
if event.pressed:
return true
if event is InputEventAction:
if event.is_action("ui_accept"):
return true
return false
func _on_door_gui_input(event):
if is_basic_input(event):
Game.get_player(id).mode = 1
func _on_text_gui_input(event):
if is_basic_input(event):
Game.get_player(id).mode = wrapf(Game.get_player(id).mode + 1, 0, 3)
func _on_card_gui_input(event):
if is_basic_input(event):
Game.get_player(id).team = wrapf(Game.get_player(id).team + 1, 0, 4)
