22 lines
596 B
GDScript3
22 lines
596 B
GDScript3
|
|
'''
|
|||
|
|
此类在触发时会尝试读取当前scene的id,如果id和目标id匹配,则通过检查
|
|||
|
|
'''
|
|||
|
|
class_name SG_CurrentIDCheck extends SceneGuard
|
|||
|
|
|
|||
|
|
##在此列表里的id,如果当被监听的signal触发时,我们当前scene的id属于此id,则会通过check,否则不通过
|
|||
|
|
@export var check_pass_ids: Array[int] = [-1]
|
|||
|
|
|
|||
|
|
func check(signal_args: Array, manager: SceneManager) -> bool:
|
|||
|
|
if not manager:
|
|||
|
|
return false
|
|||
|
|
|
|||
|
|
var am := manager._act_manager
|
|||
|
|
if not am:
|
|||
|
|
return false
|
|||
|
|
|
|||
|
|
for id in check_pass_ids:
|
|||
|
|
if am._current_act_id == id and id >= 0:
|
|||
|
|
return true
|
|||
|
|
|
|||
|
|
return false
|