Skip to content

Commit

Permalink
2.8.0
Browse files Browse the repository at this point in the history
Merge pull request #102 from SideQuestVR/dev
  • Loading branch information
mikeskydev authored Jan 21, 2025
2 parents 6c87f27 + ef3acee commit 74584ee
Show file tree
Hide file tree
Showing 76 changed files with 11,909 additions and 17,202 deletions.
2 changes: 1 addition & 1 deletion Editor/banter-link/inject.txt

Large diffs are not rendered by default.

24 changes: 24 additions & 0 deletions Runtime/Scripts/BanterLink/BanterLink.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;
using System.IO;


#if BANTER_VISUAL_SCRIPTING
using Unity.VisualScripting;
#endif
Expand Down Expand Up @@ -170,6 +173,10 @@ void ParseRequest(string msg, int id, string full)
{
scene.Base64ToCDN(GetMsgData(msg, APICommands.BASE_64_TO_CDN), id);
}
else if (msg.StartsWith(APICommands.SELECT_FILE))
{
scene.SelectFile(GetMsgData(msg, APICommands.SELECT_FILE), id);
}
else if (msg.StartsWith(APICommands.GRAVITY))
{
scene.Gravity(GetMsgData(msg, APICommands.GRAVITY), id);
Expand Down Expand Up @@ -554,6 +561,23 @@ public void OnBase64ToCDN(long image)
#endif
Send(APICommands.EVENT + APICommands.BASE_64_TO_CDN_RECV + MessageDelimiters.PRIMARY + image);
}
public void OnSelectFile(SelectFileType type, string path)
{
byte[] bytes = File.ReadAllBytes(path);
if (bytes.Length > 1048576 * 4)
{
#if BANTER_VISUAL_SCRIPTING
EventBus.Trigger("OnSelectFile", new CustomEventArgs("", new object[] { "too-large-over-4mb", type }));
#endif
Send(APICommands.EVENT + APICommands.SELECT_FILE_RECV + MessageDelimiters.PRIMARY + "too-large-over-4mb" + MessageDelimiters.SECONDARY + (int)type);
return;
}
string file = Convert.ToBase64String(bytes);
#if BANTER_VISUAL_SCRIPTING
EventBus.Trigger("OnSelectFile", new CustomEventArgs("", new object[] { file, type }));
#endif
Send(APICommands.EVENT + APICommands.SELECT_FILE_RECV + MessageDelimiters.PRIMARY + file + MessageDelimiters.SECONDARY + (int)type);
}
public void OnTranscription(string message, string id)
{
#if BANTER_VISUAL_SCRIPTING
Expand Down
2 changes: 2 additions & 0 deletions Runtime/Scripts/Models/APICommands.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public class APICommands
public const string AI_IMAGE = "!aiimg!";
public const string AI_MODEL = "!aiglb!";
public const string BASE_64_TO_CDN = "!b64cdn!";
public const string SELECT_FILE = "!sltglb!";
public const string GRAVITY = "!gv!";
public const string TIME_SCALE = "!ts!";
public const string PLAYER_SPEED = "!ps!";
Expand Down Expand Up @@ -86,6 +87,7 @@ public class APICommands
public const string AI_IMAGE_RECV = "aiimg!";
public const string AI_MODEL_RECV = "aiglb!";
public const string BASE_64_TO_CDN_RECV = "b64cdn!";
public const string SELECT_FILE_RECV = "sltglb!";
public const string BANTER_VERSION = "bv!";
public const string SEND_USER = "su!";
public const string FULL_SPACE_STATE = "fss!";
Expand Down
16 changes: 16 additions & 0 deletions Runtime/Scripts/Models/AiImageRatio.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
namespace Banter.SDK
{
public enum AiImageRatio
{
_1_1,
_3_2,
_4_3,
_16_9,
_21_9,
_2_3,
_3_4,
_9_16,
_9_21
}

}
11 changes: 11 additions & 0 deletions Runtime/Scripts/Models/AiImageRatio.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions Runtime/Scripts/Models/AiModelSimplify.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
namespace Banter.SDK
{
public enum AiModelSimplify
{
low,
med,
high
}

}
11 changes: 11 additions & 0 deletions Runtime/Scripts/Models/AiModelSimplify.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions Runtime/Scripts/Models/SelectFileType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace Banter.SDK
{
public enum SelectFileType
{
GLB,
IMG
}

}
11 changes: 11 additions & 0 deletions Runtime/Scripts/Models/SelectFileType.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 33 additions & 2 deletions Runtime/Scripts/Scene/BanterScene.cs
Original file line number Diff line number Diff line change
Expand Up @@ -324,12 +324,38 @@ public void StopTTS(string msg, int reqId)
}
public void AiImage(string msg, int reqId)
{
UnityMainThreadTaskScheduler.Default.Enqueue(() => events.OnAiImage.Invoke(msg));
try
{
var parts = msg.Split(MessageDelimiters.PRIMARY);
if (parts.Length < 2)
{
Debug.LogError("[Banter] AiImage message is malformed: " + msg);
return;
}
UnityMainThreadTaskScheduler.Default.Enqueue(() => events.OnAiImage.Invoke(parts[0], (AiImageRatio)int.Parse(parts[1])));
}
catch (Exception e)
{
Debug.LogError(e);
}
link.Send(APICommands.REQUEST_ID + MessageDelimiters.REQUEST_ID + reqId + MessageDelimiters.PRIMARY + APICommands.AI_IMAGE);
}
public void AiModel(string msg, int reqId)
{
UnityMainThreadTaskScheduler.Default.Enqueue(() => events.OnAiImage.Invoke(msg));
try
{
var parts = msg.Split(MessageDelimiters.PRIMARY);
if (parts.Length < 3)
{
Debug.LogError("[Banter] AiModel message is malformed: " + msg);
return;
}
UnityMainThreadTaskScheduler.Default.Enqueue(() => events.OnAiModel.Invoke(parts[0], (AiModelSimplify)int.Parse(parts[1]), int.Parse(parts[2])));
}
catch (Exception e)
{
Debug.LogError(e);
}
link.Send(APICommands.REQUEST_ID + MessageDelimiters.REQUEST_ID + reqId + MessageDelimiters.PRIMARY + APICommands.AI_MODEL);
}
public void Base64ToCDN(string msg, int reqId)
Expand All @@ -338,6 +364,11 @@ public void Base64ToCDN(string msg, int reqId)
UnityMainThreadTaskScheduler.Default.Enqueue(() => events.OnBase64ToCDN.Invoke(parts[0], parts[1]));
link.Send(APICommands.REQUEST_ID + MessageDelimiters.REQUEST_ID + reqId + MessageDelimiters.PRIMARY + APICommands.BASE_64_TO_CDN);
}
public void SelectFile(string msg, int reqId)
{
UnityMainThreadTaskScheduler.Default.Enqueue(() => events.OnSelectFile.Invoke((SelectFileType)int.Parse(msg)));
link.Send(APICommands.REQUEST_ID + MessageDelimiters.REQUEST_ID + reqId + MessageDelimiters.PRIMARY + APICommands.SELECT_FILE);
}
public void Gravity(string msg, int reqId)
{
var parts = msg.Split(MessageDelimiters.PRIMARY);
Expand Down
5 changes: 3 additions & 2 deletions Runtime/Scripts/Scene/BanterSceneEvents.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,10 @@ public class BanterSceneEvents
public UnityEvent<string, string> OnDeepLink = new UnityEvent<string, string>();
public UnityEvent<bool> OnTTsStarted = new UnityEvent<bool>();
public UnityEvent<string> OnTTsStoped = new UnityEvent<string>();
public UnityEvent<string> OnAiImage = new UnityEvent<string>();
public UnityEvent<string> OnAiModel = new UnityEvent<string>();
public UnityEvent<string, AiImageRatio> OnAiImage = new UnityEvent<string, AiImageRatio>();
public UnityEvent<string, AiModelSimplify, int> OnAiModel = new UnityEvent<string, AiModelSimplify, int>();
public UnityEvent<string, string> OnBase64ToCDN = new UnityEvent<string, string>();
public UnityEvent<SelectFileType> OnSelectFile = new UnityEvent<SelectFileType>();
public UnityEvent<bool> OnPlayerSpeedChanged = new UnityEvent<bool>();
public UnityEvent<string> OnMenuBrowserMessage = new UnityEvent<string>();
public UnityEvent OnSceneReset = new UnityEvent();
Expand Down
2 changes: 1 addition & 1 deletion Samples~/GettingStarted.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.
114 changes: 114 additions & 0 deletions Samples~/GettingStarted/-SharedAssets-/Models/BevelCube.fbx.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.
Loading

0 comments on commit 74584ee

Please sign in to comment.