77 lines
2.7 KiB
GDScript
77 lines
2.7 KiB
GDScript
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)
|