extends Node2D ##场景中需要布置的快捷工具对应的实体 @export var shortcutToolModel2: ShortcutToolModel2 ##是否允许操作 var allowHandle :bool = true ##所有ShortTool点击操作汇总 signal AllClickShortcutTool(equipmentName:String,equipmentInfo) #电扶梯钥匙 func _on_escalator_key_pressed() -> void: AllClickShortcutTool.emit('escalatorKey',self) if !allowHandle : return #手提广播 func _on_handheld_radio_pressed() -> void: AllClickShortcutTool.emit('handheldRadio',self) if !allowHandle : return #围挡(扶梯处) func _on_hoarding_pressed() -> void: AllClickShortcutTool.emit('hoarding',self) if !allowHandle : return showSetShortcutToolEntity() #警戒线(进站闸机处) func _on_picketline_pressed() -> void: AllClickShortcutTool.emit('picketline',self) if !allowHandle : return showSetShortcutToolEntity() #铁马 func _on_metal_barrier_pressed() -> void: AllClickShortcutTool.emit('metalBarrier',self) if !allowHandle : return showSetMetalBarrier() #警示牌 func _on_notice_signs_pressed() -> void: AllClickShortcutTool.emit('noticeSigns',self) if !allowHandle : return showSetShortcutToolEntity() ##显示对应布置的工具 func showSetShortcutToolEntity()-> void: var currentCamera :LargePassengerFlowScene.Camera_name = $"..".getCurrentCamera() var camera_to_node_path := { LargePassengerFlowScene.Camera_name.BUpperStep: 'hoardingAtEscalatorUp', LargePassengerFlowScene.Camera_name.BLowerStep: 'hoardingAtEscalatorDown', LargePassengerFlowScene.Camera_name.BGangway: 'picketlineModelAtB', LargePassengerFlowScene.Camera_name.AGangway: 'picketlineModelAtA', LargePassengerFlowScene.Camera_name.BInboundGate: 'picketlineModelAtGateB', LargePassengerFlowScene.Camera_name.AInboundGate: 'picketlineModelAtGateA', LargePassengerFlowScene.Camera_name.AEntrance: 'noticeSignsModelAtAEntrance', LargePassengerFlowScene.Camera_name.BEntrance: 'noticeSignsModelAtBEntrance', LargePassengerFlowScene.Camera_name.CEntrance: 'noticeSignsModelAtCEntrance', LargePassengerFlowScene.Camera_name.DEntrance: 'noticeSignsModelAtDEntrance', } for camera in camera_to_node_path.keys(): if currentCamera == camera: var node_path = camera_to_node_path[camera] var entity = shortcutToolModel2.get_node(node_path) entity.position.y += 30 entity.visible = true if node_path in ['picketlineModelAtB','picketlineModelAtA','picketlineModelAtGateB','picketlineModelAtGateA']: entity.get_node('Timer').start() break ##显示对应布置的工具(铁马单独处理) func showSetMetalBarrier()-> void: var currentCamera :LargePassengerFlowScene.Camera_name = $"..".getCurrentCamera() var camera_to_node_path := { LargePassengerFlowScene.Camera_name.DEntrance: 'metalBarrierModelAtDEntrance', LargePassengerFlowScene.Camera_name.StationHallDExit: 'metalBarrierModelAtStationHallDExit', LargePassengerFlowScene.Camera_name.CEntrance: 'metalBarrierModelAtCEntrance', LargePassengerFlowScene.Camera_name.StationHallCExit: 'metalBarrierModelAtStationHallCExit', } for camera in camera_to_node_path.keys(): if currentCamera == camera: var node_path = camera_to_node_path[camera] var entity = shortcutToolModel2.get_node(node_path) entity.position.y += 30 entity.visible = true break ##点击快捷工具对应的实物触发 func clickShortcutToolEntity(shortcutToolName:String,equipmentInfo: Variant) -> void: if !equipmentInfo.allowHandle : return if shortcutToolName == 'escalatorKeyModel': $MarginContainer/HBoxContainer/escalatorKey.show() $MarginContainer/HBoxContainer/escalatorKeyT.hide() elif shortcutToolName == 'handheldRadioModel': $MarginContainer/HBoxContainer/handheldRadio.show() $MarginContainer/HBoxContainer/handheldRadioT.hide() elif shortcutToolName == 'hoardingModel': $MarginContainer/HBoxContainer/hoarding.show() $MarginContainer/HBoxContainer/hoardingT.hide() elif shortcutToolName == 'picketlineModel': $MarginContainer/HBoxContainer/picketline.show() $MarginContainer/HBoxContainer/picketlineT.hide() elif shortcutToolName == 'metalBarrierModel': $MarginContainer/HBoxContainer/metalBarrier.show() $MarginContainer/HBoxContainer/metalBarrierT.hide() elif shortcutToolName == 'noticeSignsModel': $MarginContainer/HBoxContainer/noticeSigns.show() $MarginContainer/HBoxContainer/noticeSignsT.hide()