2026-01-14 19:39:23 +08:00
|
|
|
|
'''
|
|
|
|
|
|
此类必须和ActIDChanged绑定,也就是,必须是监听从ActManager返回的ActChanged Signal,来触发对应的事件。
|
|
|
|
|
|
'''
|
|
|
|
|
|
class_name SG_ActIDChangedCheck extends SceneGuard
|
2026-01-13 22:42:41 +08:00
|
|
|
|
|
|
|
|
|
|
##如果为-1,则不检查from_id,只检查to id
|
|
|
|
|
|
@export var from_id: int = -1
|
|
|
|
|
|
##如果为-1,不检查,如果不为-1,则如果act manager的act changed的to act是此id,此guard通过。
|
|
|
|
|
|
@export var to_id: int = -1
|
|
|
|
|
|
|
2026-01-14 19:39:23 +08:00
|
|
|
|
func check(signal_args: Array, manager: SceneManager) -> bool:
|
2026-01-13 22:42:41 +08:00
|
|
|
|
if to_id < 0:
|
|
|
|
|
|
return true
|
|
|
|
|
|
|
|
|
|
|
|
var has_from : bool = false
|
|
|
|
|
|
if from_id >= 0:
|
|
|
|
|
|
has_from = true
|
|
|
|
|
|
|
|
|
|
|
|
if has_from:
|
|
|
|
|
|
if signal_args[0] == from_id and signal_args[1] == to_id:
|
|
|
|
|
|
return true
|
|
|
|
|
|
else:
|
|
|
|
|
|
if signal_args[1] == to_id:
|
|
|
|
|
|
return true
|
|
|
|
|
|
|
|
|
|
|
|
return false
|