extends Node3D var screenDoorALL = [] ##开整体屏蔽门 func openScreenDoorALL ()-> void: for child in screenDoorALL: child.openScreenDoor() ##关整体屏蔽门 func closeScreenDoorALL ()-> void: for child in screenDoorALL: child.closeScreenDoor() ##所有屏蔽门开门到位 func allScreenDoorOpen ()-> bool: for child in screenDoorALL: if child.screenDoorState != ScreenDoor.ScreenDoor_State.open : return false return true ##所有屏蔽门关门到位 func allScreenDoorClose ()-> bool: for child in screenDoorALL: if child.screenDoorState != ScreenDoor.ScreenDoor_State.close : return false return true ##有屏蔽门开门到位 func hasScreenDoorOpen ()-> bool: for child in screenDoorALL: if child.screenDoorState == ScreenDoor.ScreenDoor_State.open : return true return false func _ready() -> void: var screenDoor_scene = preload("res://sceen/platform/screenDoor.tscn") for i in range(1, 5): var screenDoorInstance = screenDoor_scene.instantiate() add_child(screenDoorInstance) screenDoorALL.append(screenDoorInstance) screenDoorInstance.position.x=(i-1)*4.385 screenDoorInstance.name = 'screenDoor{0}'.format([i]) screenDoorInstance.connect("clickLcbSignalAndSent",Callable($LCB,"_on_screen_door_click_lcb_signal")) screenDoorInstance.connect("clicksScreenDoorSignal",Callable($ScreenDoorOperate,"_on_screen_door_click_signal")) screenDoorInstance.connect("screenDoorOpenSignal",Callable($"..","emitScreenDoorOpenSignal")) screenDoorInstance.connect("screenDoorCloseSignal",Callable($"..","emitScreenDoorCloseSignal")) ##所有站台点击操作汇总 signal allClickPlatformSignal(equipmentName:String,equipmentInfo) func _on_lcb_all_click_lcb_signal(equipmentName: String,equipmentInfo=null) -> void: allClickPlatformSignal.emit(equipmentName,equipmentInfo) func _on_psl_all_click_psl_signal(equipmentName: String, equipmentInfo: Variant=null) -> void: allClickPlatformSignal.emit(equipmentName,equipmentInfo) func _on_jjtc_all_click_jjtc_signal(equipmentName: String, equipmentInfo: Variant=null) -> void: allClickPlatformSignal.emit(equipmentName,equipmentInfo) func _on_screen_door_operate_all_click_screen_door_signal(equipmentName: String, equipmentInfo: Variant=null) -> void: allClickPlatformSignal.emit(equipmentName,equipmentInfo) func _on_station_keys_all_click_station_keys_signal(equipmentName: String) -> void: allClickPlatformSignal.emit(equipmentName,$stationKeys) ##屏蔽门lcb的状态变化 signal allScreenDoorLcbStateSignal(currenScreenDoor:ScreenDoor,knob_state:LcbWindow.KNOB_STATE) func _on_lcb_lcb_knob_state_signal(currenScreenDoor: ScreenDoor, knob_state: LcbWindow.KNOB_STATE) -> void: allScreenDoorLcbStateSignal.emit(currenScreenDoor,knob_state)