Compare commits
2 Commits
ceb137461c
...
dcb25f2c46
| Author | SHA1 | Date |
|---|---|---|
|
|
dcb25f2c46 | |
|
|
5efdabb230 |
|
|
@ -17,7 +17,7 @@ script = ExtResource("1_yksyv")
|
|||
|
||||
[node name="PlayerController" parent="." instance=ExtResource("2_x2i0j")]
|
||||
|
||||
[node name="ReedScene" parent="." instance=ExtResource("3_4ifj7")]
|
||||
[node name="L0_S0" parent="." instance=ExtResource("3_4ifj7")]
|
||||
|
||||
[node name="L1_S1" parent="." instance=ExtResource("4_m1t3p")]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
extends Node2D
|
||||
|
||||
func _ready() -> void:
|
||||
$ReedScene.switch_act_by_id(1)
|
||||
#$L1_S1.switch_act_by_id(1)
|
||||
#$L0_S0.switch_act_by_id(1)
|
||||
$L1_S1.switch_act_by_id(1)
|
||||
#$L1_S2.switch_act_by_id(1)
|
||||
#$L1_S3.switch_act_by_id(1)
|
||||
#$L1_S4.switch_act_by_id(1)
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,13 +1,15 @@
|
|||
[gd_scene load_steps=40 format=4 uid="uid://sursemsbf1lg"]
|
||||
[gd_scene load_steps=43 format=4 uid="uid://sursemsbf1lg"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="1_oyljl"]
|
||||
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_ggwu1"]
|
||||
[ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="3_7btev"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/SceneTrigger.gd" id="4_pkqns"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/scene_trigger/base/SceneTrigger.gd" id="4_pkqns"]
|
||||
[ext_resource type="Resource" uid="uid://gmaitie4ys4h" path="res://_shared/quick_scene_config/player_entered_act_1.tres" id="5_esfbf"]
|
||||
[ext_resource type="Resource" uid="uid://cstjpy2eh8mck" path="res://_shared/quick_scene_config/prop1_player_entered_act_1.tres" id="6_j5iwd"]
|
||||
[ext_resource type="Script" uid="uid://baamspwt4rm4r" path="res://addons/reedscene/scene/guard.gd" id="6_7btev"]
|
||||
[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="7_mu7ca"]
|
||||
[ext_resource type="Script" uid="uid://bprxx881tmhn8" path="res://addons/reedscene/scene/scene_trigger/PropIDSceneTrigger.gd" id="7_pkqns"]
|
||||
[ext_resource type="Script" uid="uid://fxpk2ot6otfh" path="res://addons/reedscene/act/Act.gd" id="8_0m4o0"]
|
||||
[ext_resource type="Script" uid="uid://dxj5vimigc651" path="res://addons/reedscene/scene/scene_trigger/base/SceneTriggerEffectPair.gd" id="8_esfbf"]
|
||||
[ext_resource type="Script" uid="uid://baqgorvlumyju" path="res://addons/reedscene/act/SingleAct.gd" id="9_1oohu"]
|
||||
[ext_resource type="Script" uid="uid://pxjf5vst08eo" path="res://addons/reedscene/prop/PropManager.gd" id="10_g4f48"]
|
||||
[ext_resource type="PackedScene" uid="uid://bflwr7cryd2l0" path="res://_shared/camera/CameraAnchor.tscn" id="11_o5yb1"]
|
||||
|
|
@ -25,6 +27,11 @@
|
|||
[ext_resource type="Script" uid="uid://8cqs3i8sr8b1" path="res://addons/reedscene/prop/Effect/ETT_Owner.gd" id="23_5h6d2"]
|
||||
[ext_resource type="TileSet" uid="uid://doepkfp83k0lb" path="res://_tileset/test.tres" id="24_uiy5k"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_j5iwd"]
|
||||
script = ExtResource("7_pkqns")
|
||||
prop_id = 1
|
||||
metadata/_custom_type_script = "uid://bprxx881tmhn8"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_hd3du"]
|
||||
script = ExtResource("9_1oohu")
|
||||
|
||||
|
|
@ -105,7 +112,7 @@ script = ExtResource("2_ggwu1")
|
|||
|
||||
[node name="SceneManager" type="Node" parent="."]
|
||||
script = ExtResource("3_7btev")
|
||||
quick_trigger = Array[ExtResource("4_pkqns")]([ExtResource("5_esfbf"), ExtResource("6_j5iwd")])
|
||||
quick_trigger = Array[ExtResource("4_pkqns")]([ExtResource("5_esfbf"), SubResource("Resource_j5iwd")])
|
||||
|
||||
[node name="ActManager" type="Node" parent="."]
|
||||
script = ExtResource("7_mu7ca")
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
[gd_scene load_steps=40 format=4 uid="uid://cd88ydqhdo28"]
|
||||
[gd_scene load_steps=39 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="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/scene_trigger/base/SceneTrigger.gd" id="4_wkfms"]
|
||||
[ext_resource type="Resource" uid="uid://gmaitie4ys4h" path="res://_shared/quick_scene_config/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="Resource" uid="uid://cstjpy2eh8mck" path="res://_shared/quick_scene_config/prop1_player_entered_act_1.tres" id="6_bq6n3"]
|
||||
[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"]
|
||||
[ext_resource type="PackedScene" uid="uid://bflwr7cryd2l0" path="res://_shared/camera/CameraAnchor.tscn" id="8_vjpkl"]
|
||||
|
|
@ -105,7 +104,7 @@ script = ExtResource("2_wkfms")
|
|||
|
||||
[node name="SceneManager" type="Node" parent="."]
|
||||
script = ExtResource("3_rlimy")
|
||||
quick_trigger = Array[ExtResource("4_wkfms")]([ExtResource("5_rlimy"), ExtResource("6_bq6n3")])
|
||||
quick_trigger = Array[ExtResource("4_wkfms")]([ExtResource("5_rlimy")])
|
||||
|
||||
[node name="ActManager" type="Node" parent="."]
|
||||
script = ExtResource("4_bq6n3")
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -4,7 +4,7 @@
|
|||
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_huisa"]
|
||||
[ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="3_6bhoi"]
|
||||
[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="4_dnt6f"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/SceneTrigger.gd" id="4_sv1n5"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/scene_trigger/base/SceneTrigger.gd" id="4_sv1n5"]
|
||||
[ext_resource type="Script" uid="uid://fxpk2ot6otfh" path="res://addons/reedscene/act/Act.gd" id="5_dnt6f"]
|
||||
[ext_resource type="Script" uid="uid://pxjf5vst08eo" path="res://addons/reedscene/prop/PropManager.gd" id="5_qtvqv"]
|
||||
[ext_resource type="Resource" uid="uid://gmaitie4ys4h" path="res://_shared/quick_scene_config/player_entered_act_1.tres" id="5_sv1n5"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="1_fvnde"]
|
||||
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_tts1w"]
|
||||
[ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="3_dascw"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/SceneTrigger.gd" id="4_pfh14"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/scene_trigger/base/SceneTrigger.gd" id="4_pfh14"]
|
||||
[ext_resource type="Resource" uid="uid://gmaitie4ys4h" path="res://_shared/quick_scene_config/player_entered_act_1.tres" id="5_dalgl"]
|
||||
[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="6_ymq84"]
|
||||
[ext_resource type="Script" uid="uid://fxpk2ot6otfh" path="res://addons/reedscene/act/Act.gd" id="7_c6mvs"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="1_a2nbh"]
|
||||
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_txt12"]
|
||||
[ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="3_1w7i6"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/SceneTrigger.gd" id="4_gnhi3"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/scene_trigger/base/SceneTrigger.gd" id="4_gnhi3"]
|
||||
[ext_resource type="Resource" uid="uid://gmaitie4ys4h" path="res://_shared/quick_scene_config/player_entered_act_1.tres" id="5_qcumk"]
|
||||
[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="6_nokqb"]
|
||||
[ext_resource type="Script" uid="uid://fxpk2ot6otfh" path="res://addons/reedscene/act/Act.gd" id="7_u3uxu"]
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="1_a2nbh"]
|
||||
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_txt12"]
|
||||
[ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="3_1w7i6"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/SceneTrigger.gd" id="4_gnhi3"]
|
||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/scene_trigger/base/SceneTrigger.gd" id="4_gnhi3"]
|
||||
[ext_resource type="Resource" uid="uid://gmaitie4ys4h" path="res://_shared/quick_scene_config/player_entered_act_1.tres" id="5_qcumk"]
|
||||
[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="6_nokqb"]
|
||||
[ext_resource type="Script" uid="uid://fxpk2ot6otfh" path="res://addons/reedscene/act/Act.gd" id="7_u3uxu"]
|
||||
|
|
|
|||
|
|
@ -1,11 +1,38 @@
|
|||
[gd_resource type="Resource" script_class="NodePathSceneTrigger" load_steps=3 format=3 uid="uid://gmaitie4ys4h"]
|
||||
[gd_resource type="Resource" script_class="NodePathSceneTrigger" load_steps=12 format=3 uid="uid://gmaitie4ys4h"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b1bgmb71bapws" path="res://addons/reedscene/scene/scene_trigger/base/SceneTriggerEffect.gd" id="1_35f6h"]
|
||||
[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"]
|
||||
[ext_resource type="Script" uid="uid://dxj5vimigc651" path="res://addons/reedscene/scene/scene_trigger/base/SceneTriggerEffectPair.gd" id="3_ad8dv"]
|
||||
[ext_resource type="Script" uid="uid://cvtkkcio4eeod" path="res://addons/reedscene/scene/scene_trigger/NodePathSceneTrigger.gd" id="3_ieluj"]
|
||||
[ext_resource type="Script" uid="uid://cdprpen0jyr6d" path="res://addons/reedscene/scene/scene_trigger/STR_NodePath.gd" id="4_x2vyj"]
|
||||
[ext_resource type="Script" uid="uid://bjstkg23cq6vq" path="res://addons/reedscene/scene/scene_trigger/STE_SwitchAct.gd" id="5_p6nbk"]
|
||||
[ext_resource type="Script" uid="uid://c8qq8400vebpg" path="res://addons/reedscene/scene/scene_trigger/STT_Self.gd" id="6_p7kla"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_0he72"]
|
||||
script = ExtResource("5_p6nbk")
|
||||
func_name = &"switch_act_with_id"
|
||||
func_args = [1]
|
||||
metadata/_custom_type_script = "uid://bjstkg23cq6vq"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1cpnw"]
|
||||
script = ExtResource("6_p7kla")
|
||||
metadata/_custom_type_script = "uid://c8qq8400vebpg"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_du6w3"]
|
||||
script = ExtResource("3_ad8dv")
|
||||
target = SubResource("Resource_1cpnw")
|
||||
effect = Array[ExtResource("1_35f6h")]([SubResource("Resource_0he72")])
|
||||
metadata/_custom_type_script = "uid://dxj5vimigc651"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_p6nbk"]
|
||||
script = ExtResource("4_x2vyj")
|
||||
node_path = NodePath("../Props/PlayerTriggerVolumn")
|
||||
monitor_signal = &"player_entered"
|
||||
metadata/_custom_type_script = "uid://cdprpen0jyr6d"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_4sckh")
|
||||
script = ExtResource("3_ieluj")
|
||||
path = NodePath("../Props/PlayerTriggerVolumn")
|
||||
target_act_id = 1
|
||||
monitor_signal = &"player_entered"
|
||||
trigger_register_conifg = SubResource("Resource_p6nbk")
|
||||
trigger_effect_pairs = Array[ExtResource("3_ad8dv")]([SubResource("Resource_du6w3")])
|
||||
metadata/_custom_type_script = "uid://cvtkkcio4eeod"
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
[gd_resource type="Resource" script_class="PropIDSceneTrigger" load_steps=3 format=3 uid="uid://cstjpy2eh8mck"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://baamspwt4rm4r" path="res://addons/reedscene/scene/guard.gd" id="1_ugibh"]
|
||||
[ext_resource type="Script" uid="uid://bprxx881tmhn8" path="res://addons/reedscene/scene/PropIDSceneTrigger.gd" id="2_501i5"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_501i5")
|
||||
prop_id = 1
|
||||
target_act_id = 1
|
||||
monitor_signal = &"player_entered"
|
||||
metadata/_custom_type_script = "uid://bprxx881tmhn8"
|
||||
Binary file not shown.
|
|
@ -0,0 +1,9 @@
|
|||
class_name ETT_Global extends EffectTargetType
|
||||
|
||||
@export var global_node_name: StringName
|
||||
|
||||
func get_effect_target(owner: Node, prop_comp: Node) -> Object:
|
||||
if Engine.has_singleton(global_node_name):
|
||||
return Engine.get_singleton(global_node_name)
|
||||
|
||||
return null
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://cuj3qsbnobfm7
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
class_name ETT_Tree extends EffectTargetTypes
|
||||
|
||||
func get_effect_target(owner: Node, prop_comp: Node) -> Object:
|
||||
return owner.get_tree()
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://xccdmxs2wqde
|
||||
|
|
@ -47,6 +47,8 @@ const SCENE_MANAGER_NAME := "SceneManager"
|
|||
const PROPS_ROOT_PATH: NodePath = ^"Props"
|
||||
##PropManager脚本的路徑
|
||||
const PROPS_MANAGER_SCRIPT: Script = preload("res://addons/reedscene/prop/PropManager.gd")
|
||||
##所有的Scene都会在进入Tree时被添加进入这个节点。
|
||||
const SCENE_GROUP: StringName = "REED_SCENE"
|
||||
|
||||
## ==============================
|
||||
## Export Config
|
||||
|
|
@ -70,6 +72,9 @@ var _scene_manager: SceneManager
|
|||
## Build In
|
||||
## ==============================
|
||||
func _enter_tree() -> void:
|
||||
if not self.is_in_group(SCENE_GROUP):
|
||||
self.add_to_group(SCENE_GROUP)
|
||||
|
||||
if Engine.is_editor_hint():
|
||||
_editor_ensure_scene_nodes() ##进入场景树,自动添加ActManager,PropsRoot,和SceneManager
|
||||
_editor_ensure_scene_id_comp() ##進入場景樹,則自動添加一個IDComp
|
||||
|
|
@ -255,10 +260,17 @@ func _editor_ensure_scene_id_comp() -> ReedSceneID:
|
|||
|
||||
return id_comp
|
||||
|
||||
func _get_default_act_id() -> int:
|
||||
return 0
|
||||
|
||||
## ==============================
|
||||
## Externel API
|
||||
## ==============================
|
||||
|
||||
##外部可以通过此函数将Scene重置回默认状态,_get_default_act_id的逻辑将在未来可以和其他脚本联动并重写。
|
||||
func reset_to_default_act() -> void:
|
||||
self.switch_act_by_id(self._get_default_act_id())
|
||||
|
||||
## 外部取得Prop映射對
|
||||
func get_prop_map() -> Dictionary:
|
||||
return _prop_map
|
||||
|
|
|
|||
|
|
@ -33,11 +33,31 @@ func _resolve_references() -> void:
|
|||
_props = _scene._prop_map
|
||||
|
||||
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)
|
||||
for i in quick_trigger:
|
||||
var st := i as SceneTrigger
|
||||
if not st:
|
||||
continue
|
||||
|
||||
var tr := st.trigger_register_conifg as SceneTriggerRegister
|
||||
if not tr:
|
||||
continue
|
||||
|
||||
var r := tr.get_register(self)
|
||||
if not r:
|
||||
continue
|
||||
|
||||
if not r.has_signal(tr.monitor_signal):
|
||||
continue
|
||||
|
||||
r.connect(
|
||||
tr.monitor_signal,
|
||||
func(...args):
|
||||
_on_trigger_fired(st, args)
|
||||
)
|
||||
#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:
|
||||
|
|
@ -82,11 +102,26 @@ func _on_trigger_fired(trigger: SceneTrigger, signal_args: Array) -> void:
|
|||
if not trigger.can_trigger(signal_args):
|
||||
return
|
||||
|
||||
var target_act_id: int = trigger.target_act_id
|
||||
var trans_overwrite: int = trigger.trans_overwrite
|
||||
for i in trigger.trigger_effect_pairs:
|
||||
var sp := i as SceneTriggerEffectPair
|
||||
if not sp.target:
|
||||
continue
|
||||
|
||||
if target_act_id < 0:
|
||||
return
|
||||
var t := sp.target.get_effect_target(self)
|
||||
if not t:
|
||||
continue
|
||||
|
||||
_act_manager.switch_act_with_id(target_act_id,trans_overwrite)
|
||||
var exs := sp.effect
|
||||
for j in exs:
|
||||
var ex := j as SceneTriggerEffect
|
||||
ex.apply_effect(self)
|
||||
#var target_act_id: int = trigger.target_act_id
|
||||
#var trans_overwrite: int = trigger.trans_overwrite
|
||||
#
|
||||
#if target_act_id < 0:
|
||||
#return
|
||||
#
|
||||
#_act_manager.switch_act_with_id(target_act_id,trans_overwrite)
|
||||
|
||||
func switch_act_with_id(id: int,trans_overwrite:int = 0) -> void:
|
||||
_act_manager.switch_act_with_id(id,trans_overwrite)
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
@abstract
|
||||
class_name SceneTrigger extends Resource
|
||||
|
||||
@export var target_act_id: int
|
||||
@export var monitor_signal: StringName
|
||||
@export var guards: Array[SceneGuard]
|
||||
@export var trans_overwrite: int = 0
|
||||
|
||||
func can_trigger(args: Array) -> bool:
|
||||
for g in guards:
|
||||
if not g.check(args):
|
||||
return false
|
||||
|
||||
return true
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
class_name STE_CallFunc extends SceneTriggerEffect
|
||||
|
||||
##尝试Call的Func name
|
||||
@export var func_name: StringName
|
||||
##Call Func的可选输入
|
||||
@export var func_args: Array[Variant] = []
|
||||
|
||||
func apply_effect(target:Object) -> bool:
|
||||
if target.has_method(func_name):
|
||||
target.callv(func_name,func_args)
|
||||
return true
|
||||
return false
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://bjstkg23cq6vq
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
class_name STR_NodePath extends SceneTriggerRegister
|
||||
|
||||
@export var node_path: NodePath
|
||||
|
||||
func get_register(owner: Object) -> Node:
|
||||
return owner.get_node_or_null(node_path)
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://cdprpen0jyr6d
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
class_name STT_Self extends SceneTriggerTarget
|
||||
|
||||
func get_effect_target(owner: Node) -> Object:
|
||||
if owner:
|
||||
return owner
|
||||
return null
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://c8qq8400vebpg
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
@abstract
|
||||
class_name SceneTrigger extends Resource
|
||||
|
||||
##绑定哪个Node的哪个函数作为此Trigger的Register。
|
||||
@export var trigger_register_conifg: SceneTriggerRegister
|
||||
##Guard是一个保护项,如果某个Trigger触发后但因为某些条件并不想被执行,可以使用guard进行保护
|
||||
@export var guards: Array[SceneGuard]
|
||||
##当某个Trigger被激活时,可以应用任意多个Effect,Effect会按序执行列
|
||||
@export var trigger_effect_pairs: Array[SceneTriggerEffectPair]
|
||||
|
||||
var _owner: Node
|
||||
|
||||
func can_trigger(args: Array) -> bool:
|
||||
for g in guards:
|
||||
if not g.check(args):
|
||||
return false
|
||||
|
||||
return true
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
@abstract
|
||||
class_name SceneTriggerEffect extends Resource
|
||||
|
||||
### Guard是一个保护项,如果某个Trigger触发后但因为某些条件并不想被执行,可以使用guard进行保护
|
||||
#@export var guards: Array[SceneGuard]
|
||||
|
||||
## 内部检测一下是不是可以Trigger,如果不可以就直接返回false
|
||||
#func _can_trigger(args: Array) -> bool:
|
||||
#for g in guards:
|
||||
#if not g.check(args):
|
||||
#return false
|
||||
#
|
||||
#return true
|
||||
|
||||
func apply_effect(target:Object) -> bool:
|
||||
if not target:
|
||||
return false
|
||||
return true
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://b1bgmb71bapws
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
class_name SceneTriggerEffectPair extends Resource
|
||||
|
||||
@export var target: SceneTriggerTarget
|
||||
@export var effect: Array[SceneTriggerEffect]
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://dxj5vimigc651
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
@abstract
|
||||
class_name SceneTriggerRegister extends Resource
|
||||
|
||||
@export var monitor_signal: StringName
|
||||
|
||||
@abstract
|
||||
func get_register(owner: Object) -> Node
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://beajk81tdp8ic
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
@abstract
|
||||
class_name SceneTriggerTarget extends Resource
|
||||
|
||||
@abstract
|
||||
func get_effect_target(owner: Node) -> Object
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://ch2sd8uqniupd
|
||||
|
|
@ -22,3 +22,8 @@ V1.1
|
|||
- 添加和规范API
|
||||
- 删除不必要的ClassName
|
||||
- 完善ActManager的编辑者友好界面
|
||||
|
||||
V1.2
|
||||
- 完善了更优的Scene管理器的生命周期
|
||||
- 全新的PropStateEffect的配置方案
|
||||
- 全新的SceneStateEffect的配置方案
|
||||
|
|
|
|||
|
|
@ -35,6 +35,12 @@ window/stretch/mode="canvas_items"
|
|||
|
||||
enabled=PackedStringArray("res://addons/phantom_camera/plugin.cfg", "res://addons/reedcomponent/plugin.cfg", "res://addons/reedfx/plugin.cfg", "res://addons/reedinput/plugin.cfg", "res://addons/reedscene/plugin.cfg")
|
||||
|
||||
[file_customization]
|
||||
|
||||
folder_colors={
|
||||
"res://_shared/": "pink"
|
||||
}
|
||||
|
||||
[global_group]
|
||||
|
||||
ROOM="房间分组,其下存在所有的Room"
|
||||
|
|
|
|||
Loading…
Reference in New Issue