diff --git a/AssetBundles/conversation b/AssetBundles/conversation index c8efe88b..ff7f3e2c 100644 Binary files a/AssetBundles/conversation and b/AssetBundles/conversation differ diff --git a/AssetBundles/conversation.manifest b/AssetBundles/conversation.manifest index 0682315e..a669c957 100644 --- a/AssetBundles/conversation.manifest +++ b/AssetBundles/conversation.manifest @@ -1,16 +1,22 @@ ManifestFileVersion: 0 -CRC: 2169759651 +CRC: 674027210 Hashes: AssetFileHash: serializedVersion: 2 - Hash: 15a4033bba58538c184c71c4d9f2799c + Hash: 207385c19798113635f73bd17e7c2e5c TypeTreeHash: serializedVersion: 2 - Hash: 6ce89620af51ba381c9e4f226a2ebb1b + Hash: 27971550fda62b1a0371f7196924aa6c HashAppended: 0 ClassTypes: - Class: 1 Script: {instanceID: 0} +- Class: 21 + Script: {instanceID: 0} +- Class: 28 + Script: {instanceID: 0} +- Class: 48 + Script: {instanceID: 0} - Class: 114 Script: {fileID: 1741964061, guid: f70555f144d8491a825f0804e09c671c, type: 3} - Class: 114 @@ -21,6 +27,8 @@ ClassTypes: Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} - Class: 115 Script: {instanceID: 0} +- Class: 128 + Script: {instanceID: 0} - Class: 222 Script: {instanceID: 0} - Class: 223 diff --git a/QSB/ConversationSync/ConversationEvent.cs b/QSB/ConversationSync/ConversationEvent.cs index 91f616c3..49941cee 100644 --- a/QSB/ConversationSync/ConversationEvent.cs +++ b/QSB/ConversationSync/ConversationEvent.cs @@ -28,11 +28,16 @@ namespace QSB.ConversationSync { case ConversationType.Character: var translated = TextTranslation.Translate(message.Message).Trim(); - DebugLog.DebugWrite($"CHARACTER id [{message.ObjectId}] text [{translated}]"); + ConversationManager.Instance.DisplayCharacterConversationBox(message.ObjectId, translated); break; case ConversationType.Player: ConversationManager.Instance.DisplayPlayerConversationBox((uint)message.ObjectId, message.Message); break; + case ConversationType.EndCharacter: + break; + case ConversationType.EndPlayer: + UnityEngine.Object.Destroy(PlayerRegistry.GetPlayer((uint)message.ObjectId).CurrentDialogueBox); + break; } } } diff --git a/QSB/ConversationSync/ConversationManager.cs b/QSB/ConversationSync/ConversationManager.cs index 34d57b97..e3decbef 100644 --- a/QSB/ConversationSync/ConversationManager.cs +++ b/QSB/ConversationSync/ConversationManager.cs @@ -1,4 +1,5 @@ using OWML.Common; +using OWML.ModHelper.Events; using QSB.Events; using QSB.Utility; using UnityEngine; @@ -39,6 +40,16 @@ namespace QSB.ConversationSync GlobalMessenger.FireEvent(EventNames.QSBConversation, (uint)id, text, ConversationType.Character); } + public void EndConversationPlayer() + { + GlobalMessenger.FireEvent(EventNames.QSBConversation, PlayerRegistry.LocalPlayerId, "", ConversationType.EndPlayer); + } + + public void EndConversationCharacter(int id) + { + GlobalMessenger.FireEvent(EventNames.QSBConversation, (uint)id, "", ConversationType.EndCharacter); + } + public void DisplayPlayerConversationBox(uint playerId, string text) { Destroy(PlayerRegistry.GetPlayer(playerId).CurrentDialogueBox); @@ -48,12 +59,24 @@ namespace QSB.ConversationSync return; } var newBox = Instantiate(BoxPrefab); + newBox.SetActive(false); newBox.transform.parent = PlayerRegistry.GetPlayer(playerId).Body.transform; - newBox.transform.localPosition = Vector3.zero; - newBox.transform.LookAt(PlayerRegistry.LocalPlayer.Camera.transform); + newBox.transform.localPosition = new Vector3(0, 25, 0); + newBox.transform.rotation = PlayerRegistry.GetPlayer(playerId).Body.transform.rotation; + //newBox.transform.LookAt(PlayerRegistry.LocalPlayer.Camera.transform, PlayerRegistry.GetPlayer(playerId).Body.transform.up); + var lookAt = newBox.AddComponent(); + lookAt.SetValue("_useLookAt", false); + lookAt.SetValue("_localFacingVector", Vector3.back); + lookAt.SetValue("_localRotationAxis", Vector3.up); newBox.GetComponent().text = text; + newBox.SetActive(true); PlayerRegistry.GetPlayer(playerId).CurrentDialogueBox = newBox; } + + public void DisplayCharacterConversationBox(int index, string text) + { + + } } } diff --git a/QSB/ConversationSync/ConversationPatches.cs b/QSB/ConversationSync/ConversationPatches.cs index 33eaa346..51b1fb8a 100644 --- a/QSB/ConversationSync/ConversationPatches.cs +++ b/QSB/ConversationSync/ConversationPatches.cs @@ -16,6 +16,7 @@ namespace QSB.ConversationSync public static void EndConversation() { PlayerRegistry.LocalPlayer.CurrentDialogueID = -1; + ConversationManager.Instance.EndConversationPlayer(); } public static bool InputDialogueOption(int optionIndex, DialogueBoxVer2 ____currentDialogueBox) @@ -23,6 +24,8 @@ namespace QSB.ConversationSync if (optionIndex < 0) { // in a page where there is no selectable options + PlayerRegistry.LocalPlayer.CurrentDialogueID = -1; + ConversationManager.Instance.EndConversationPlayer(); return true; } diff --git a/QSB/ConversationSync/ConversationType.cs b/QSB/ConversationSync/ConversationType.cs index 9a17d13d..18212519 100644 --- a/QSB/ConversationSync/ConversationType.cs +++ b/QSB/ConversationSync/ConversationType.cs @@ -3,6 +3,8 @@ public enum ConversationType { Character, - Player + Player, + EndCharacter, + EndPlayer } } diff --git a/QSB/TransformSync/NomaiOrbTransformSync.cs b/QSB/TransformSync/NomaiOrbTransformSync.cs index 50eee1fa..d905a371 100644 --- a/QSB/TransformSync/NomaiOrbTransformSync.cs +++ b/QSB/TransformSync/NomaiOrbTransformSync.cs @@ -93,4 +93,4 @@ namespace QSB.TransformSync } } } -} +} \ No newline at end of file diff --git a/UnityProject/Assets/DialogueBubble.prefab b/UnityProject/Assets/DialogueBubble.prefab index 78b5d43b..f8713e30 100644 --- a/UnityProject/Assets/DialogueBubble.prefab +++ b/UnityProject/Assets/DialogueBubble.prefab @@ -69,7 +69,7 @@ MonoBehaviour: m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_FontData: - m_Font: {fileID: 12800000, guid: 58199d5bdd1dec045bcdd0a15a8dc780, type: 2} + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_FontSize: 1 m_FontStyle: 0 m_BestFit: 0 @@ -94,7 +94,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.841} + m_Color: {r: 0, g: 0, b: 0, a: 0.50980395} m_RaycastTarget: 1 m_OnCullStateChanged: m_PersistentCalls: @@ -196,7 +196,7 @@ RectTransform: m_GameObject: {fileID: 1531056750600734} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.13, y: 0.13, z: 1} + m_LocalScale: {x: 0.1, y: 0.1, z: 1} m_Children: - {fileID: 224902966460615240} m_Father: {fileID: 0}