diff --git a/src/ElectronBot.Braincase/Controls/CompactOverlay/ModelLoadCompactOverlayPage.xaml.cs b/src/ElectronBot.Braincase/Controls/CompactOverlay/ModelLoadCompactOverlayPage.xaml.cs
index 4ed800d..ca9a54c 100644
--- a/src/ElectronBot.Braincase/Controls/CompactOverlay/ModelLoadCompactOverlayPage.xaml.cs
+++ b/src/ElectronBot.Braincase/Controls/CompactOverlay/ModelLoadCompactOverlayPage.xaml.cs
@@ -41,6 +41,7 @@ public sealed partial class ModelLoadCompactOverlayPage : Page
{
ModelProgressRing.IsActive = true;
ViewModel.Loaded();
+ ElectronBotHelper.Instance.IsEntityFirstEnabled = false;
ModelProgressRing.IsActive = false;
}
diff --git a/src/ElectronBot.Braincase/Controls/ElectronBotModelLoader.xaml b/src/ElectronBot.Braincase/Controls/ElectronBotModelLoader.xaml
index 7740613..bbee02b 100644
--- a/src/ElectronBot.Braincase/Controls/ElectronBotModelLoader.xaml
+++ b/src/ElectronBot.Braincase/Controls/ElectronBotModelLoader.xaml
@@ -32,16 +32,6 @@
-
-
-
Emulation
+
+ Turn on the robot action first
+
+
+ Turn off the robot action first
+
\ No newline at end of file
diff --git a/src/ElectronBot.Braincase/Strings/zh-cn/Resources.resw b/src/ElectronBot.Braincase/Strings/zh-cn/Resources.resw
index 538d0eb..058ea4f 100644
--- a/src/ElectronBot.Braincase/Strings/zh-cn/Resources.resw
+++ b/src/ElectronBot.Braincase/Strings/zh-cn/Resources.resw
@@ -704,4 +704,10 @@
电子仿真
+
+ 打开机器人动作优先
+
+
+ 关闭机器人动作优先
+
\ No newline at end of file
diff --git a/src/ElectronBot.Braincase/ViewModels/CameraEmojisViewModel.cs b/src/ElectronBot.Braincase/ViewModels/CameraEmojisViewModel.cs
index e3c2298..f50d909 100644
--- a/src/ElectronBot.Braincase/ViewModels/CameraEmojisViewModel.cs
+++ b/src/ElectronBot.Braincase/ViewModels/CameraEmojisViewModel.cs
@@ -7,10 +7,11 @@ using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media.Imaging;
using Services;
using Windows.Graphics.Imaging;
+using CommunityToolkit.Mvvm.Input;
namespace ElectronBot.Braincase.ViewModels;
-public class CameraEmojisViewModel : ObservableRecipient, INavigationAware
+public partial class CameraEmojisViewModel : ObservableRecipient, INavigationAware
{
private bool _isInitialized = false;
@@ -59,6 +60,9 @@ public class CameraEmojisViewModel : ObservableRecipient, INavigationAware
set => SetProperty(ref _faceIcon, value);
}
+ [ObservableProperty]
+ private bool _isEntityFirstEnabled = true;
+
private async Task InitAsync()
{
if (_isInitialized)
@@ -96,6 +100,26 @@ public class CameraEmojisViewModel : ObservableRecipient, INavigationAware
_isInitialized = true;
}
+ [RelayCommand]
+ private void OpenEntityFirst(bool isOn)
+ {
+ try
+ {
+ //按钮开启
+ if (!isOn)
+ {
+ ElectronBotHelper.Instance.IsEntityFirstEnabled = true;
+ }
+ else
+ {
+ ElectronBotHelper.Instance.IsEntityFirstEnabled = false;
+ }
+ }
+ catch (Exception)
+ {
+ }
+ }
+
private async void Current_FaceBoxFrameCaptured(object sender, SoftwareBitmapEventArgs e)
{
if (e.SoftwareBitmap is not null)
@@ -142,6 +166,7 @@ public class CameraEmojisViewModel : ObservableRecipient, INavigationAware
var service = App.GetService();
service.ClearQueue();
await InitAsync();
+ ElectronBotHelper.Instance.IsEntityFirstEnabled = true;
}
public async void OnNavigatedFrom()
{
diff --git a/src/ElectronBot.Braincase/ViewModels/ModelLoadCompactOverlayViewModel.cs b/src/ElectronBot.Braincase/ViewModels/ModelLoadCompactOverlayViewModel.cs
index 0f56613..325c0de 100644
--- a/src/ElectronBot.Braincase/ViewModels/ModelLoadCompactOverlayViewModel.cs
+++ b/src/ElectronBot.Braincase/ViewModels/ModelLoadCompactOverlayViewModel.cs
@@ -19,6 +19,7 @@ using HelixToolkit.SharpDX.Core.Assimp;
using HelixToolkit.SharpDX.Core.Model.Scene;
using BoundingBox = SharpDX.BoundingBox;
using Camera = HelixToolkit.WinUI.Camera;
+using Verdure.ElectronBot.Core.Models;
namespace ViewModels;
public partial class ModelLoadCompactOverlayViewModel : ObservableRecipient
@@ -436,10 +437,30 @@ public partial class ModelLoadCompactOverlayViewModel : ObservableRecipient
BaseModel.Dispose();
EffectsManager.Dispose();
_importer.Dispose();
+ ElectronBotHelper.Instance.PlayEmojisLock = false;
}
- private void Instance_ModelActionFrame(object? sender, Verdure.ElectronBot.Core.Models.ModelActionFrame e)
+ private void Instance_ModelActionFrame(object? sender, Verdure.ElectronBot.Core.Models.ModelActionFrame ex)
{
+ var e = new OnlyAction();
+
+ if (ElectronBotHelper.Instance.IsEntityFirstEnabled)
+ {
+ e = ex.Actions;
+ }
+ else
+ {
+ e = new OnlyAction()
+ {
+ J1 = ex.J1,
+ J2 = ex.J2,
+ J3 = ex.J3,
+ J4 = ex.J4,
+ J5 = ex.J5,
+ J6 = ex.J6
+ };
+ }
+
App.MainWindow.DispatcherQueue.TryEnqueue(() =>
{
BodyModel.HxTransform3D = _bodyMt * Matrix.RotationY(MathUtil.DegreesToRadians((e.J6)));
@@ -447,7 +468,7 @@ public partial class ModelLoadCompactOverlayViewModel : ObservableRecipient
Material = new DiffuseMaterial()
{
EnableUnLit = false,
- DiffuseMap = LoadTextureByStream(e.FrameStream)
+ DiffuseMap = LoadTextureByStream(ex.FrameStream)
};
diff --git a/src/ElectronBot.Braincase/Views/CameraEmojisPage.xaml b/src/ElectronBot.Braincase/Views/CameraEmojisPage.xaml
index 1fb4d57..820caeb 100644
--- a/src/ElectronBot.Braincase/Views/CameraEmojisPage.xaml
+++ b/src/ElectronBot.Braincase/Views/CameraEmojisPage.xaml
@@ -4,6 +4,8 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controlLocal="using:ElectronBot.Braincase.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:i="using:Microsoft.Xaml.Interactivity"
+ xmlns:ic="using:Microsoft.Xaml.Interactions.Core"
xmlns:local="using:ElectronBot.Braincase.Views"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
@@ -16,6 +18,18 @@
+
+
+
+
+
+
+