Event flags implementation (#382)
* Added event flags * Added transition ESC command * Also edited .gitignore to ignore .translation files * docs: Automatic update of API docs Co-authored-by: StraToN <StraToN@users.noreply.github.com>
This commit is contained in:
Binary file not shown.
@@ -1,40 +1,68 @@
|
||||
# A transition player for scene changes
|
||||
extends ColorRect
|
||||
|
||||
|
||||
# Emitted when the transition was played
|
||||
signal transition_done
|
||||
|
||||
|
||||
# The name of the transition to play
|
||||
# The name of the default transition to play
|
||||
export(
|
||||
String,
|
||||
"fade_black",
|
||||
"fade_white",
|
||||
"transition_in",
|
||||
"transition_out"
|
||||
"curtain"
|
||||
) var transition_name: String
|
||||
|
||||
|
||||
|
||||
# Reference to the _AnimationPlayer_ node
|
||||
onready var _anim_player := $AnimationPlayer
|
||||
|
||||
|
||||
# Fade in when the scene is starting
|
||||
func _ready() -> void:
|
||||
fade_in()
|
||||
transition_in()
|
||||
|
||||
|
||||
# Fade out the transition
|
||||
func fade_out() -> void:
|
||||
_anim_player.play(transition_name)
|
||||
# Transition out
|
||||
#
|
||||
# ## Parameters
|
||||
#
|
||||
# - p_transition_name: name of the transition to play (if empty string, uses
|
||||
# the default transition)
|
||||
func transition_out(p_transition_name: String = "") -> void:
|
||||
if p_transition_name.empty():
|
||||
_anim_player.play(transition_name)
|
||||
else:
|
||||
_anim_player.play(p_transition_name)
|
||||
yield(_anim_player, "animation_finished")
|
||||
emit_signal("transition_done")
|
||||
_anim_player.seek(0.0)
|
||||
|
||||
|
||||
# Fade in the transition
|
||||
func fade_in() -> void:
|
||||
# Plays the Fade animation and wait until it finishes
|
||||
_anim_player.play_backwards(transition_name)
|
||||
|
||||
# Transition in
|
||||
#
|
||||
# ## Parameters
|
||||
#
|
||||
# - p_transition_name: name of the transition to play (if empty string, uses
|
||||
# the default transition)
|
||||
func transition_in(p_transition_name: String = "") -> void:
|
||||
if p_transition_name.empty():
|
||||
_anim_player.play_backwards(transition_name)
|
||||
else:
|
||||
_anim_player.play_backwards(p_transition_name)
|
||||
yield(_anim_player, "animation_finished")
|
||||
emit_signal("transition_done")
|
||||
_anim_player.seek(0.0)
|
||||
|
||||
|
||||
# Returns true whether the transition scene has a transition corresponding
|
||||
# to name provided.
|
||||
#
|
||||
# ## Parameters
|
||||
#
|
||||
# - p_name: The name of the transition to test
|
||||
#
|
||||
# *Returns* true if a transition exists with given name.
|
||||
func has_transition(p_name: String) -> bool:
|
||||
return _anim_player.has_animation(p_name)
|
||||
|
||||
@@ -1,8 +1,47 @@
|
||||
[gd_scene load_steps=7 format=2]
|
||||
[gd_scene load_steps=6 format=2]
|
||||
|
||||
[ext_resource path="res://addons/escoria-core/game/scenes/transitions/transition.gd" type="Script" id=1]
|
||||
[ext_resource path="res://addons/escoria-core/game/scenes/transitions/shaders/transition.material" type="Material" id=2]
|
||||
|
||||
[sub_resource type="Animation" id=3]
|
||||
resource_name = "curtain"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:material:shader_param/cutoff")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 1 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
"update": 0,
|
||||
"values": [ 0.0, 1.0 ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath(".:material:shader_param/color")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 0, 0, 0, 1 ) ]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath(".:modulate")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 1 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=1]
|
||||
resource_name = "fade_black"
|
||||
length = 0.5
|
||||
@@ -18,6 +57,30 @@ tracks/0/keys = {
|
||||
"update": 0,
|
||||
"values": [ Color( 0, 0, 0, 0 ), Color( 0, 0, 0, 1 ) ]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath(".:material:shader_param/cutoff")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ 0.0 ]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath(".:material:shader_param/color")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ Color( 0, 0, 0, 1 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=2]
|
||||
resource_name = "fade_white"
|
||||
@@ -34,38 +97,33 @@ tracks/0/keys = {
|
||||
"update": 0,
|
||||
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=3]
|
||||
resource_name = "transition_in"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:material:shader_param/cutoff")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 1 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
tracks/1/type = "value"
|
||||
tracks/1/path = NodePath(".:material:shader_param/cutoff")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ 0.0, 1.0 ]
|
||||
"values": [ 0.0 ]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id=4]
|
||||
resource_name = "transition_out"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/path = NodePath(".:material:shader_param/cutoff")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/keys = {
|
||||
"times": PoolRealArray( 0, 1 ),
|
||||
"transitions": PoolRealArray( 1, 1 ),
|
||||
tracks/2/type = "value"
|
||||
tracks/2/path = NodePath(".:material:shader_param/color")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/keys = {
|
||||
"times": PoolRealArray( 0 ),
|
||||
"transitions": PoolRealArray( 1 ),
|
||||
"update": 0,
|
||||
"values": [ 1.0, 0.0 ]
|
||||
"values": [ Color( 1, 1, 1, 1 ) ]
|
||||
}
|
||||
|
||||
[node name="scene_transition" type="ColorRect"]
|
||||
modulate = Color( 0, 0, 0, 0 )
|
||||
material = ExtResource( 2 )
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
@@ -74,10 +132,9 @@ script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
transition_name = "transition_out"
|
||||
transition_name = "curtain"
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
anims/curtain = SubResource( 3 )
|
||||
anims/fade_black = SubResource( 1 )
|
||||
anims/fade_white = SubResource( 2 )
|
||||
anims/transition_in = SubResource( 3 )
|
||||
anims/transition_out = SubResource( 4 )
|
||||
|
||||
Reference in New Issue
Block a user