插件新特性
This commit is contained in:
parent
5b95aee5d8
commit
5cb4d9f3d0
|
|
@ -1,9 +1,11 @@
|
|||
[gd_scene load_steps=26 format=4 uid="uid://cd88ydqhdo28"]
|
||||
[gd_scene load_steps=28 format=4 uid="uid://cd88ydqhdo28"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="1_20208"]
|
||||
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_wkfms"]
|
||||
[ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="3_rlimy"]
|
||||
[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="4_bq6n3"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/SceneTrigger.gd" id="4_wkfms"]
|
||||
[ext_resource type="Resource" uid="uid://gmaitie4ys4h" path="res://_shared/QuickTriggerConfig/player_entered_act_1.tres" id="5_rlimy"]
|
||||
[ext_resource type="Script" uid="uid://fxpk2ot6otfh" path="res://addons/reedscene/act/Act.gd" id="5_ubvm0"]
|
||||
[ext_resource type="Script" uid="uid://baqgorvlumyju" path="res://addons/reedscene/act/SingleAct.gd" id="6_r0e2c"]
|
||||
[ext_resource type="Script" uid="uid://pxjf5vst08eo" path="res://addons/reedscene/prop/PropManager.gd" id="7_hd3du"]
|
||||
|
|
@ -62,6 +64,7 @@ script = ExtResource("2_wkfms")
|
|||
|
||||
[node name="SceneManager" type="Node" parent="."]
|
||||
script = ExtResource("3_rlimy")
|
||||
quick_trigger = Array[ExtResource("4_wkfms")]([ExtResource("5_rlimy")])
|
||||
|
||||
[node name="ActManager" type="Node" parent="."]
|
||||
script = ExtResource("4_bq6n3")
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="4_10cyl"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/SceneTrigger.gd" id="4_qrebp"]
|
||||
[ext_resource type="Script" uid="uid://fxpk2ot6otfh" path="res://addons/reedscene/act/Act.gd" id="5_0xms0"]
|
||||
[ext_resource type="Resource" uid="uid://cstjpy2eh8mck" path="res://_shared/QuickTriggerConfig/prop1_player_entered_act_1.tres" id="5_10cyl"]
|
||||
[ext_resource type="Resource" uid="uid://gmaitie4ys4h" path="res://_shared/QuickTriggerConfig/player_entered_act_1.tres" id="5_qrebp"]
|
||||
[ext_resource type="Script" uid="uid://baqgorvlumyju" path="res://addons/reedscene/act/SingleAct.gd" id="6_agny0"]
|
||||
[ext_resource type="Script" uid="uid://pxjf5vst08eo" path="res://addons/reedscene/prop/PropManager.gd" id="7_8ou3l"]
|
||||
[ext_resource type="PackedScene" uid="uid://bflwr7cryd2l0" path="res://_shared/camera/CameraAnchor.tscn" id="8_dq7pn"]
|
||||
|
|
@ -63,7 +63,7 @@ script = ExtResource("2_of0lw")
|
|||
|
||||
[node name="SceneManager" type="Node" parent="."]
|
||||
script = ExtResource("3_32vl4")
|
||||
quick_trigger = Array[ExtResource("4_qrebp")]([ExtResource("5_10cyl")])
|
||||
quick_trigger = Array[ExtResource("4_qrebp")]([ExtResource("5_qrebp")])
|
||||
|
||||
[node name="ActManager" type="Node" parent="."]
|
||||
script = ExtResource("4_10cyl")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
[gd_resource type="Resource" script_class="NodePathSceneTrigger" load_steps=3 format=3 uid="uid://gmaitie4ys4h"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://baamspwt4rm4r" path="res://addons/reedscene/scene/guard.gd" id="1_idvg7"]
|
||||
[ext_resource type="Script" uid="uid://cvtkkcio4eeod" path="res://addons/reedscene/scene/NodePathSceneTrigger.gd" id="2_4sckh"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_4sckh")
|
||||
path = NodePath("../Props/PlayerTriggerVolumn")
|
||||
target_act_id = 1
|
||||
monitor_signal = &"player_entered"
|
||||
metadata/_custom_type_script = "uid://cvtkkcio4eeod"
|
||||
Binary file not shown.
|
|
@ -0,0 +1,3 @@
|
|||
class_name NodePathSceneTrigger extends SceneTrigger
|
||||
|
||||
@export var path: NodePath
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://cvtkkcio4eeod
|
||||
|
|
@ -36,7 +36,10 @@ func _bind_quick_trigger() -> void:
|
|||
for qt in quick_trigger:
|
||||
if qt is PropIDSceneTrigger:
|
||||
_bind_prop_id_trigger(qt)
|
||||
elif qt is NodePathSceneTrigger:
|
||||
_bind_node_path_trigger(qt)
|
||||
|
||||
## 通过Prop id来绑定signal
|
||||
func _bind_prop_id_trigger(trigger: PropIDSceneTrigger) -> void:
|
||||
var prop : Node = _props.get(trigger.prop_id).get_parent()
|
||||
if prop == null:
|
||||
|
|
@ -53,6 +56,28 @@ func _bind_prop_id_trigger(trigger: PropIDSceneTrigger) -> void:
|
|||
_on_trigger_fired(trigger, args)
|
||||
)
|
||||
|
||||
## 通过NodePath来绑定signal
|
||||
func _bind_node_path_trigger(trigger: NodePathSceneTrigger) -> void:
|
||||
if trigger.path.is_empty():
|
||||
return
|
||||
|
||||
var n : Node = self.get_node_or_null(trigger.path)
|
||||
|
||||
if n == null:
|
||||
return
|
||||
|
||||
var s: StringName = trigger.monitor_signal
|
||||
if not n.has_signal(s):
|
||||
push_error("Prop has no signal: %s" % trigger.monitor_signal)
|
||||
return
|
||||
|
||||
n.connect(
|
||||
trigger.monitor_signal,
|
||||
func(...args):
|
||||
_on_trigger_fired(trigger, args)
|
||||
)
|
||||
|
||||
## 当信号触发
|
||||
func _on_trigger_fired(trigger: SceneTrigger, signal_args: Array) -> void:
|
||||
if not trigger.can_trigger(signal_args):
|
||||
return
|
||||
|
|
|
|||
Loading…
Reference in New Issue