From 917939de5c3c4fa5f3c682c71798d7b384bc5204 Mon Sep 17 00:00:00 2001 From: Cherry Date: Mon, 13 May 2024 00:55:28 -0400 Subject: [PATCH] fade into battle --- pets-gd/scenes/battle.tscn | 54 ++++++++++++++++++- pets-gd/scenes/world.tscn | 2 +- ...ttle_intro.gdshader => encounter.gdshader} | 0 pets-gd/themes/opacity.gdshader | 7 +++ pets-lib/src/battle/mod.rs | 3 +- pets-lib/src/world/mod.rs | 2 +- 6 files changed, 64 insertions(+), 4 deletions(-) rename pets-gd/themes/{battle_intro.gdshader => encounter.gdshader} (100%) create mode 100644 pets-gd/themes/opacity.gdshader diff --git a/pets-gd/scenes/battle.tscn b/pets-gd/scenes/battle.tscn index f892467c..43c4b5e7 100644 --- a/pets-gd/scenes/battle.tscn +++ b/pets-gd/scenes/battle.tscn @@ -1,5 +1,6 @@ -[gd_scene load_steps=12 format=3 uid="uid://kgl5788x405y"] +[gd_scene load_steps=17 format=3 uid="uid://kgl5788x405y"] +[ext_resource type="Shader" path="res://themes/opacity.gdshader" id="1_3pmac"] [ext_resource type="Shader" path="res://themes/vdrugs/rainbow.gdshader" id="2_0m4jp"] [ext_resource type="Shader" path="res://themes/vdrugs/common.gdshader" id="2_5b7lm"] [ext_resource type="Texture2D" uid="uid://he44mug8lejt" path="res://assets/textures/misc/BattleIcons.png" id="3_k3xai"] @@ -101,6 +102,47 @@ _data = { "dualmenu_open": SubResource("Animation_0hj2l") } +[sub_resource type="Animation" id="Animation_fgiup"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("IntroBlack:material:shader_parameter/opacity") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} + +[sub_resource type="Animation" id="Animation_16138"] +resource_name = "fade_in" +length = 2.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("IntroBlack:material:shader_parameter/opacity") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(1, 2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [1.0, 0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_cwld1"] +_data = { +"RESET": SubResource("Animation_fgiup"), +"fade_in": SubResource("Animation_16138") +} + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_lgbmi"] +shader = ExtResource("1_3pmac") +shader_parameter/opacity = 0.0 + [node name="BattleEngine" type="BattleEngine"] [node name="VideoDrugs" type="Control" parent="."] @@ -393,3 +435,13 @@ libraries = { } [node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_cwld1") +} + +[node name="IntroBlack" type="ColorRect" parent="."] +top_level = true +material = SubResource("ShaderMaterial_lgbmi") +offset_right = 1920.0 +offset_bottom = 1080.0 +color = Color(0, 0, 0, 1) diff --git a/pets-gd/scenes/world.tscn b/pets-gd/scenes/world.tscn index abe6e17d..f819be87 100644 --- a/pets-gd/scenes/world.tscn +++ b/pets-gd/scenes/world.tscn @@ -7,7 +7,7 @@ [ext_resource type="PackedScene" uid="uid://b0rlrppekv4vg" path="res://scenes/player_cb.tscn" id="2_r6tgb"] [ext_resource type="PackedScene" uid="uid://c0jehwow4ein4" path="res://scenes/interaction_manager.tscn" id="2_uh12s"] [ext_resource type="TileSet" uid="uid://dtft48lqhsjgr" path="res://assets/tilesets/cliff-dirt/tileset_cliff-dirt.tres" id="3_14512"] -[ext_resource type="Shader" path="res://themes/battle_intro.gdshader" id="3_a3d4r"] +[ext_resource type="Shader" path="res://themes/encounter.gdshader" id="3_a3d4r"] [ext_resource type="Script" path="res://scenes/BattleIntroRect.gd" id="4_jple0"] [ext_resource type="PackedScene" uid="uid://2i16xk27wro6" path="res://scenes/interaction_zone.tscn" id="5_uar2c"] [ext_resource type="AudioStream" uid="uid://b83wws3dajmi5" path="res://assets/music/zone/routingout.ogg" id="5_x7nbf"] diff --git a/pets-gd/themes/battle_intro.gdshader b/pets-gd/themes/encounter.gdshader similarity index 100% rename from pets-gd/themes/battle_intro.gdshader rename to pets-gd/themes/encounter.gdshader diff --git a/pets-gd/themes/opacity.gdshader b/pets-gd/themes/opacity.gdshader new file mode 100644 index 00000000..f0ca2b80 --- /dev/null +++ b/pets-gd/themes/opacity.gdshader @@ -0,0 +1,7 @@ +shader_type canvas_item; + +uniform float opacity : hint_range(0, 1) = 0.0; + +void fragment() { + COLOR.a = mix(0.0, 1.0, opacity); +} \ No newline at end of file diff --git a/pets-lib/src/battle/mod.rs b/pets-lib/src/battle/mod.rs index 81af0a8e..5c72026a 100644 --- a/pets-lib/src/battle/mod.rs +++ b/pets-lib/src/battle/mod.rs @@ -65,7 +65,8 @@ impl BattleEngine { /// slide the battle screen into view #[func] pub fn animate_in(&mut self) { - // + self.animator.set_assigned_animation("fade_in".into()); + self.animator.play(); } fn open_dualmenu(&mut self) { diff --git a/pets-lib/src/world/mod.rs b/pets-lib/src/world/mod.rs index 6a4bad10..ae559248 100644 --- a/pets-lib/src/world/mod.rs +++ b/pets-lib/src/world/mod.rs @@ -117,8 +117,8 @@ impl World { // load the scene let mut scene = self.instantiate_battle_scene(); - scene.bind_mut().animate_in(); layer.add_child(scene.clone().upcast()); + scene.bind_mut().animate_in(); } #[func]