From 99eca5948081773e196c71c4fc20597105ae8e71 Mon Sep 17 00:00:00 2001
From: arthurkehrwald <50906979+arthurkehrwald@users.noreply.github.com>
Date: Sat, 8 Feb 2025 19:04:35 +0100
Subject: [PATCH 01/53] Create sound asset subtypes
---
.../Sound/MusicAssetInspector.cs | 38 +++++
.../Sound/MusicAssetInspector.cs.meta | 15 ++
.../Sound/MusicAssetInspector.uxml | 6 +
.../Sound/MusicAssetInspector.uxml.meta | 10 ++
.../Sound/SoundAssetInspector.cs | 85 +----------
.../Sound/SoundAssetInspector.cs.meta | 2 +-
.../Sound/SoundAssetInspector.uxml | 6 -
.../Sound/SoundEffectAssetInspector.cs | 96 ++++++++++++
.../Sound/SoundEffectAssetInspector.cs.meta | 15 ++
.../Sound/SoundEffectAssetInspector.uxml | 8 +
.../Sound/SoundEffectAssetInspector.uxml.meta | 10 ++
.../Sound/VoiceAssetInspector.cs | 39 +++++
.../Sound/VoiceAssetInspector.cs.meta | 15 ++
.../Sound/VoiceAssetInspector.uxml | 3 +
.../Sound/VoiceAssetInspector.uxml.meta | 10 ++
.../VisualPinball.Unity/Sound/MusicAsset.cs | 45 ++++++
.../Sound/MusicAsset.cs.meta | 11 ++
.../VisualPinball.Unity/Sound/MusicPlayer.cs | 69 +++++++++
.../Sound/MusicPlayer.cs.meta | 11 ++
.../VisualPinball.Unity/Sound/SoundAsset.cs | 80 ++++------
.../Sound/SoundComponent.cs | 5 +-
.../Sound/SoundEffectAsset.cs | 143 ++++++++++++++++++
.../Sound/SoundEffectAsset.cs.meta | 11 ++
.../VisualPinball.Unity/Sound/SoundUtils.cs | 80 ----------
.../VisualPinball.Unity/Sound/VoiceAsset.cs | 33 ++++
.../Sound/VoiceAsset.cs.meta | 11 ++
26 files changed, 638 insertions(+), 219 deletions(-)
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs.meta
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml.meta
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundEffectAssetInspector.cs
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundEffectAssetInspector.cs.meta
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundEffectAssetInspector.uxml
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundEffectAssetInspector.uxml.meta
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/VoiceAssetInspector.cs
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/VoiceAssetInspector.cs.meta
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/VoiceAssetInspector.uxml
create mode 100644 VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/VoiceAssetInspector.uxml.meta
create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/MusicAsset.cs
create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/MusicAsset.cs.meta
create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/MusicPlayer.cs
create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/MusicPlayer.cs.meta
create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/SoundEffectAsset.cs
create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/SoundEffectAsset.cs.meta
create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/VoiceAsset.cs
create mode 100644 VisualPinball.Unity/VisualPinball.Unity/Sound/VoiceAsset.cs.meta
diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs
new file mode 100644
index 000000000..0cf7193ac
--- /dev/null
+++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs
@@ -0,0 +1,38 @@
+// Visual Pinball Engine
+// Copyright (C) 2023 freezy and VPE Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+using UnityEditor;
+using UnityEngine.UIElements;
+using UnityEngine;
+
+namespace VisualPinball.Unity.Editor
+{
+ [CustomEditor(typeof(MusicAsset)), CanEditMultipleObjects]
+ public class MusicAssetInspector : SoundAssetInspector
+ {
+ [SerializeField] private VisualTreeAsset _musicAssetInspectorAsset;
+
+ public override VisualElement CreateInspectorGUI()
+ {
+ var root = new VisualElement();
+ var baseUi = base.CreateInspectorGUI();
+ root.Add(baseUi);
+ var subUi = _musicAssetInspectorAsset.Instantiate();
+ root.Add(subUi);
+ return root;
+ }
+ }
+}
\ No newline at end of file
diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs.meta b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs.meta
new file mode 100644
index 000000000..05694000e
--- /dev/null
+++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.cs.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: ff8590e7b8c275545a4e3572fbd5346f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences:
+ - _soundAssetInspectorAsset: {fileID: 9197481963319205126, guid: 84e4ce75c16723f428f39b87bcd555a1,
+ type: 3}
+ - _musicAssetInspectorAsset: {fileID: 9197481963319205126, guid: a628fd30c34ffb74a8d1a9d170031b1c,
+ type: 3}
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml
new file mode 100644
index 000000000..59abaf6fc
--- /dev/null
+++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml.meta b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml.meta
new file mode 100644
index 000000000..22a3ac554
--- /dev/null
+++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/MusicAssetInspector.uxml.meta
@@ -0,0 +1,10 @@
+fileFormatVersion: 2
+guid: a628fd30c34ffb74a8d1a9d170031b1c
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0}
diff --git a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs
index 6d9e219da..a5cb9ad76 100644
--- a/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs
+++ b/VisualPinball.Unity/VisualPinball.Unity.Editor/Sound/SoundAssetInspector.cs
@@ -14,101 +14,22 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
-using System;
using System.Threading;
using UnityEditor;
using UnityEngine.UIElements;
using UnityEngine;
-using UnityEditor.UIElements;
-using System.Collections.Generic;
namespace VisualPinball.Unity.Editor
{
[CustomEditor(typeof(SoundAsset)), CanEditMultipleObjects]
public class SoundAssetInspector : UnityEditor.Editor
{
- private CancellationTokenSource _allowFadeCts;
- private CancellationTokenSource _instantCts;
-
[SerializeField]
- private VisualTreeAsset _inspectorXml;
-
- private Button _playButton;
-
+ private VisualTreeAsset _soundAssetInspectorAsset;
+
public override VisualElement CreateInspectorGUI()
{
- var ui = _inspectorXml.Instantiate();
- _playButton = ui.Q