diff --git a/Resources/Music/No_Reason.tres b/Resources/Music/No_Reason.tres new file mode 100644 index 00000000..29b9a984 --- /dev/null +++ b/Resources/Music/No_Reason.tres @@ -0,0 +1,12 @@ +[gd_resource type="Resource" script_class="MusicResource" load_steps=3 format=3 uid="uid://byo74ews118nl"] + +[ext_resource type="AudioStream" uid="uid://di416g5wgx6j0" path="res://Music/Title.mp3" id="1_u5qon"] +[ext_resource type="Script" uid="uid://cx63lvsuj1787" path="res://Scripts/Resources/MusicResource.cs" id="1_xdwi3"] + +[resource] +script = ExtResource("1_xdwi3") +TrackName = "No Reason" +AuthorName = "Fenekhu" +ShowAuthor = false +Track = ExtResource("1_u5qon") +metadata/_custom_type_script = "uid://cx63lvsuj1787" diff --git a/Resources/Music/No_Restraint.tres b/Resources/Music/No_Restraint.tres new file mode 100644 index 00000000..bc27521b --- /dev/null +++ b/Resources/Music/No_Restraint.tres @@ -0,0 +1,12 @@ +[gd_resource type="Resource" script_class="MusicResource" load_steps=3 format=3 uid="uid://b0aryixgv2vkj"] + +[ext_resource type="AudioStream" uid="uid://7fo2dxosnjk4" path="res://Music/Intro.mp3" id="1_d4uiy"] +[ext_resource type="Script" uid="uid://cx63lvsuj1787" path="res://Scripts/Resources/MusicResource.cs" id="2_f2m3a"] + +[resource] +script = ExtResource("2_f2m3a") +TrackName = "No Restraint" +AuthorName = "Fenekhu" +ShowAuthor = false +Track = ExtResource("1_d4uiy") +metadata/_custom_type_script = "uid://cx63lvsuj1787" diff --git a/Resources/Music/Overtime_Fairy_Dance.tres b/Resources/Music/Overtime_Fairy_Dance.tres new file mode 100644 index 00000000..b4de50b4 --- /dev/null +++ b/Resources/Music/Overtime_Fairy_Dance.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="MusicResource" load_steps=2 format=3 uid="uid://b0jpn0kkmciuq"] + +[ext_resource type="Script" uid="uid://cx63lvsuj1787" path="res://Scripts/Resources/MusicResource.cs" id="1_ajy4g"] + +[resource] +script = ExtResource("1_ajy4g") +TrackName = "An Overtime Fairy Dance" +AuthorName = "Fenekhu" +ShowAuthor = false +metadata/_custom_type_script = "uid://cx63lvsuj1787" diff --git a/Scenes/Cutscenes/Intro.tscn b/Scenes/Cutscenes/Intro.tscn index 58a0eaa9..d0ef40dc 100644 --- a/Scenes/Cutscenes/Intro.tscn +++ b/Scenes/Cutscenes/Intro.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=31 format=3 uid="uid://oaxftu6lytvv"] +[gd_scene load_steps=32 format=3 uid="uid://oaxftu6lytvv"] [ext_resource type="Script" uid="uid://d1cxthcj2fc10" path="res://Scripts/UI/IntroScenePlayer.cs" id="1_jtu71"] [ext_resource type="Texture2D" uid="uid://4skj5ik6qpu4" path="res://Sprites/Briefing/Intro1small.png" id="2_6u3to"] @@ -22,6 +22,7 @@ [ext_resource type="Texture2D" uid="uid://xvadkvwajs0t" path="res://Sprites/UI/Crystal.png" id="19_paaiq"] [ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="20_8r24y"] [ext_resource type="AudioStream" uid="uid://7fo2dxosnjk4" path="res://Music/Intro.mp3" id="21_p86nr"] +[ext_resource type="Resource" uid="uid://b0aryixgv2vkj" path="res://Resources/Music/No_Restraint.tres" id="23_vtao2"] [sub_resource type="Gradient" id="Gradient_k5r5b"] colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 1) @@ -608,4 +609,4 @@ libraries = { } [node name="AudioStreamPlayer2D2" parent="." instance=ExtResource("20_8r24y")] -TrackName = "Intro" +MusicData = ExtResource("23_vtao2") diff --git a/Scenes/MainMenu.tscn b/Scenes/MainMenu.tscn index e5c1fb64..153f9620 100644 --- a/Scenes/MainMenu.tscn +++ b/Scenes/MainMenu.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=3 uid="uid://5xajclchk3my"] +[gd_scene load_steps=16 format=3 uid="uid://5xajclchk3my"] [ext_resource type="Script" uid="uid://dql102fvubniv" path="res://Scripts/MainMenu.cs" id="1_702nk"] [ext_resource type="PackedScene" uid="uid://c84shrj84g4t2" path="res://Scenes/HUD/MusicRoom.tscn" id="2_if7li"] @@ -12,6 +12,7 @@ [ext_resource type="StyleBox" uid="uid://ctw2hju32l3rg" path="res://Resources/Styles/PixelStyleBoxRed.tres" id="7_rrcx7"] [ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="8_koqhg"] [ext_resource type="PackedScene" uid="uid://bemu3l6b1e84y" path="res://Scenes/HUD/debug_menu.tscn" id="9_nwlsr"] +[ext_resource type="Resource" uid="uid://byo74ews118nl" path="res://Resources/Music/No_Reason.tres" id="13_fh7cp"] [sub_resource type="Theme" id="Theme_c7h4d"] @@ -149,8 +150,7 @@ text = "Credits" [node name="AudioStreamPlayer2D" parent="." instance=ExtResource("8_koqhg")] stream = ExtResource("4_i6ku4") autoplay = true -TrackName = "No Reason" -AuthorName = "Fenekhu" +MusicData = ExtResource("13_fh7cp") [node name="SubMenuContainer" type="PanelContainer" parent="."] visible = false diff --git a/Scenes/test.tscn b/Scenes/test.tscn index 13306aa0..f5ca0841 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=119 format=4 uid="uid://bv451a8wgty4u"] +[gd_scene load_steps=120 format=4 uid="uid://bv451a8wgty4u"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_8tmoj"] [ext_resource type="PackedScene" uid="uid://bghghp5ep4w2j" path="res://Scenes/player.tscn" id="2_8mh54"] @@ -81,6 +81,7 @@ [ext_resource type="PackedScene" uid="uid://dfat0erkvb513" path="res://Scenes/Actors/Fairy_New.tscn" id="73_s4x1s"] [ext_resource type="PackedScene" uid="uid://c21m7w5ahpsd0" path="res://Scenes/Activable/Shroud.tscn" id="74_oaf68"] [ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="77_yot54"] +[ext_resource type="Resource" uid="uid://b0jpn0kkmciuq" path="res://Resources/Music/Overtime_Fairy_Dance.tres" id="82_ksslq"] [sub_resource type="Resource" id="Resource_6sau4"] script = ExtResource("7_l32kg") @@ -1174,5 +1175,4 @@ position = Vector2(-1080, -399) [node name="AudioStreamPlayer2D" parent="." instance=ExtResource("77_yot54")] process_mode = 3 autoplay = true -TrackName = "Level 1" -AuthorName = "Nobody" +MusicData = ExtResource("82_ksslq") diff --git a/Scripts/Resources/MusicResource.cs b/Scripts/Resources/MusicResource.cs new file mode 100644 index 00000000..3999742a --- /dev/null +++ b/Scripts/Resources/MusicResource.cs @@ -0,0 +1,20 @@ +using System; +using Godot; + +namespace Cirno.Scripts.Resources; + +[GlobalClass] +public partial class MusicResource : Resource +{ + [Export] + public string TrackName { get; set; } + + [Export] + public string AuthorName { get; set; } + + [Export] + public bool ShowAuthor { get; set; } + + [Export] + public AudioStream Track { get; set; } +} diff --git a/Scripts/Resources/MusicResource.cs.uid b/Scripts/Resources/MusicResource.cs.uid new file mode 100644 index 00000000..864581cb --- /dev/null +++ b/Scripts/Resources/MusicResource.cs.uid @@ -0,0 +1 @@ +uid://cx63lvsuj1787 diff --git a/Scripts/UI/AudioNameVisualizer.cs b/Scripts/UI/AudioNameVisualizer.cs index 98b7039f..02b7e600 100644 --- a/Scripts/UI/AudioNameVisualizer.cs +++ b/Scripts/UI/AudioNameVisualizer.cs @@ -6,23 +6,21 @@ using GTweens.Builders; using GTweens.Easings; using GTweens.Tweens; using GTweensGodot.Extensions; +using Cirno.Scripts.Resources; public partial class AudioNameVisualizer : AudioStreamPlayer2D { [Export] - public string TrackName { get; private set; } - - [Export] - public string AuthorName { get; private set; } + public MusicResource MusicData { get; private set; } [Export] public PackedScene CanvasTemplate; - + private MusicVisualizerCanvas _canvasLayer; - + public override void _Ready() { Setup(); - + if (Autoplay) { ShowName(); @@ -31,6 +29,11 @@ public partial class AudioNameVisualizer : AudioStreamPlayer2D private void Setup() { + if (MusicData?.Track is not null) + { + this.Stream = MusicData.Track; + } + var existingCanvas = this.GetTree().Root.GetNodeOrNull("AudioCanvas"); if (existingCanvas is null) @@ -54,7 +57,11 @@ public partial class AudioNameVisualizer : AudioStreamPlayer2D public void ShowName() { - GD.Print("show name"); - _canvasLayer.ShowName(TrackName, AuthorName); + if (MusicData is null) + { + GD.PushWarning("Music data was null"); + return; + } + _canvasLayer.ShowName(MusicData.TrackName, MusicData.ShowAuthor ? MusicData.AuthorName : null); } } diff --git a/Scripts/UI/MusicVisualizerCanvas.cs b/Scripts/UI/MusicVisualizerCanvas.cs index 837a33c2..54b9376b 100644 --- a/Scripts/UI/MusicVisualizerCanvas.cs +++ b/Scripts/UI/MusicVisualizerCanvas.cs @@ -18,7 +18,7 @@ public partial class MusicVisualizerCanvas : CanvasLayer private void ResetLabel(string trackName, string authorName) { - _nameLabel.Text = $"{trackName} ({authorName})"; + _nameLabel.Text = string.IsNullOrWhiteSpace(authorName) ? authorName : $"{trackName} ({authorName})"; _nameLabel.SetAnchorsAndOffsetsPreset(Control.LayoutPreset.BottomRight, margin: 0); _nameLabel.Modulate = Colors.White; _nameLabel.Hide(); @@ -30,7 +30,7 @@ public partial class MusicVisualizerCanvas : CanvasLayer //_tween?.Complete(); ResetLabel(trackName, authorName); _nameLabel.Show(); - + _tween = GTweenSequenceBuilder.New() .Append(_nameLabel.TweenPositionX(_nameLabel.Position.X + 32, 0f)) // Add offset .Join(_nameLabel.TweenModulateAlpha(0, 0f)) // Invisibilify