godot-psd-training/UI/psl/psl_window.gd

71 lines
2.1 KiB
GDScript3
Raw Normal View History

2024-04-19 17:48:20 +08:00
extends Window
2024-04-22 15:32:19 +08:00
func _on_psl_click_signal() -> void:
self.show()
$"../stationKeys".onShowWindow(StationKeyWindow.WindowType.PSL)
2024-04-29 11:03:01 +08:00
if !$"../stationKeys".hsjcKeyVisible() :
hideInterlockReleaseSwitchHandleKey()
if !$"../stationKeys".pslKeyVisible() :
hidePSLAllowHandleKey()
$"..".allClickPlatformSignal.emit('PSL')
2024-04-19 17:48:20 +08:00
func _on_close_requested():
self.hide()
2024-04-26 16:54:17 +08:00
$"../stationKeys".hide()
2024-04-22 15:32:19 +08:00
##点击按钮或钥匙
func onHandleSignal(openLight: bool, keySwitch: Variant) -> void:
$"..".allClickPlatformSignal.emit(keySwitch.name,keySwitch)
##显影psl相关钥匙操作
2024-04-22 15:32:19 +08:00
func shouPSLAllowHandleKey():
2024-04-23 09:33:07 +08:00
$MarginContainer/GridContainer/PSLAllow.shouHandleKey()
2024-04-19 17:48:20 +08:00
2024-04-22 15:32:19 +08:00
func hidePSLAllowHandleKey():
2024-04-23 09:33:07 +08:00
$MarginContainer/GridContainer/PSLAllow.hideHandleKey()
2024-04-19 17:48:20 +08:00
2024-04-22 15:32:19 +08:00
func shouInterlockReleaseSwitchHandleKey():
2024-04-23 09:33:07 +08:00
$MarginContainer/GridContainer/InterlockReleaseSwitch.shouHandleKey()
2024-04-22 15:32:19 +08:00
func hideInterlockReleaseSwitchHandleKey():
2024-04-23 09:33:07 +08:00
$MarginContainer/GridContainer/InterlockReleaseSwitch.hideHandleKey()
2024-04-19 17:48:20 +08:00
2024-04-29 11:03:01 +08:00
func remove_key(keyName: Variant) -> void:
var name = ''
if keyName == 'PSLAllow' :
name = 'PSL_Key'
elif keyName == 'InterlockReleaseSwitch' :
name = 'HSJC_Key'
$"../stationKeys".showKeyAfterRemoveKey(name)
##打开钥匙盒相关
func _on_open_key_window_gui_input(event: InputEvent) -> void:
if event.button_mask == MouseButtonMask.MOUSE_BUTTON_MASK_LEFT:
$"../stationKeys".onShowWindow(StationKeyWindow.WindowType.PSL)
func _on_open_key_window_mouse_entered() -> void:
$openKeyWindow.set_default_cursor_shape(Control.CursorShape.CURSOR_POINTING_HAND)
func _on_open_key_window_mouse_exited() -> void:
$openKeyWindow.set_default_cursor_shape(Control.CursorShape.CURSOR_ARROW)
func _process(delta: float) -> void:
if self.visible :
if $"..".allScreenDoorClose() :
$MarginContainer/GridContainer/MarginContainer/VBoxContainer/AllScreenDoorCloseLight.openLight()
else :
$MarginContainer/GridContainer/MarginContainer/VBoxContainer/AllScreenDoorCloseLight.closeLight()
if $"..".hasScreenDoorOpen():
$MarginContainer/GridContainer/VBoxContainer/ScreenDoorOpenLight.openLight()
else:
$MarginContainer/GridContainer/VBoxContainer/ScreenDoorOpenLight.closeLight()