52 lines
1.1 KiB
GDScript
52 lines
1.1 KiB
GDScript
extends VBoxContainer
|
|
|
|
@export var keySwitchHasKey:bool
|
|
|
|
@export var lightText:String
|
|
|
|
@export var keyText:String
|
|
|
|
##是否允许操作
|
|
var allowHandle :bool = true
|
|
|
|
|
|
signal clickKeySwitchSignal(openLight:bool,keySwitch)
|
|
|
|
signal removeKey(keySwitch)
|
|
|
|
func _ready() -> void:
|
|
$Light/MarginContainer/Label.text=lightText
|
|
if keySwitchHasKey:
|
|
$Key.visible = true
|
|
$Key/MarginContainer/Label.text=keyText
|
|
else:
|
|
$Key.visible = false
|
|
|
|
|
|
func shouHandleKey() -> void:
|
|
$Key/Key.visible = true
|
|
$Key/Left_Rotate.visible = true
|
|
$Key/Right_Rotate.visible = true
|
|
|
|
func hideHandleKey() -> void:
|
|
$Key/Key.visible = false
|
|
$Key/Left_Rotate.visible = false
|
|
$Key/Right_Rotate.visible = false
|
|
|
|
|
|
##拔钥匙相关
|
|
func _on_key_gui_input(event: InputEvent) -> void:
|
|
if event.button_mask == MouseButtonMask.MOUSE_BUTTON_MASK_LEFT:
|
|
removeKey.emit(self)
|
|
if !allowHandle :
|
|
return
|
|
hideHandleKey()
|
|
|
|
|
|
func _on_key_mouse_entered() -> void:
|
|
$Key/Key.set_default_cursor_shape(Control.CursorShape.CURSOR_POINTING_HAND)
|
|
|
|
|
|
func _on_key_mouse_exited() -> void:
|
|
$Key/Key.set_default_cursor_shape(Control.CursorShape.CURSOR_ARROW)
|