diff --git a/VPet.ModMaker/Converters.xaml b/VPet.ModMaker/Converters.xaml
index 48c470e..0384cf3 100644
--- a/VPet.ModMaker/Converters.xaml
+++ b/VPet.ModMaker/Converters.xaml
@@ -9,4 +9,6 @@
+
+
\ No newline at end of file
diff --git a/VPet.ModMaker/Converters/EqualsConverter.cs b/VPet.ModMaker/Converters/EqualsConverter.cs
new file mode 100644
index 0000000..ba3939f
--- /dev/null
+++ b/VPet.ModMaker/Converters/EqualsConverter.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Windows.Data;
+
+namespace VPet.ModMaker.Converters;
+
+public class EqualsConverter : IMultiValueConverter
+{
+ public object Convert(
+ object[] values,
+ Type targetType,
+ object parameter,
+ System.Globalization.CultureInfo culture
+ )
+ {
+ if (values.Length != 2)
+ throw new NotImplementedException("Values length must be 2");
+ return values[0].Equals(values[1]);
+ }
+
+ public object[] ConvertBack(
+ object value,
+ Type[] targetTypes,
+ object parameter,
+ System.Globalization.CultureInfo culture
+ )
+ {
+ throw new NotImplementedException();
+ }
+}
diff --git a/VPet.ModMaker/Converters/FalseToCollapsedConverter.cs b/VPet.ModMaker/Converters/FalseToCollapsedConverter.cs
new file mode 100644
index 0000000..bc358e1
--- /dev/null
+++ b/VPet.ModMaker/Converters/FalseToCollapsedConverter.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Globalization;
+using System.Windows;
+using System.Windows.Data;
+
+namespace VPet.ModMaker.Converters;
+
+public class FalseToCollapsedConverter : IValueConverter
+{
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return (bool.TryParse(value.ToString(), out var result) && result)
+ ? Visibility.Visible
+ : Visibility.Collapsed;
+ }
+
+ public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ return value is Visibility visibility && visibility == Visibility.Collapsed;
+ }
+}
\ No newline at end of file
diff --git a/VPet.ModMaker/Converters/NotEqualsConverter.cs b/VPet.ModMaker/Converters/NotEqualsConverter.cs
new file mode 100644
index 0000000..d2242aa
--- /dev/null
+++ b/VPet.ModMaker/Converters/NotEqualsConverter.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Windows.Data;
+
+namespace VPet.ModMaker.Converters;
+
+public class NotEqualsConverter : IMultiValueConverter
+{
+ public object Convert(
+ object[] values,
+ Type targetType,
+ object parameter,
+ System.Globalization.CultureInfo culture
+ )
+ {
+ if (values.Length != 2)
+ throw new NotImplementedException("Values length must be 2");
+ return !values[0].Equals(values[1]);
+ }
+
+ public object[] ConvertBack(
+ object value,
+ Type[] targetTypes,
+ object parameter,
+ System.Globalization.CultureInfo culture
+ )
+ {
+ throw new NotImplementedException();
+ }
+}
diff --git a/VPet.ModMaker/Models/ModModel/FoodLocationModel.cs b/VPet.ModMaker/Models/ModModel/FoodLocationModel.cs
index c307681..e491f4e 100644
--- a/VPet.ModMaker/Models/ModModel/FoodLocationModel.cs
+++ b/VPet.ModMaker/Models/ModModel/FoodLocationModel.cs
@@ -18,7 +18,7 @@ public class FoodLocationModel
public ObservableValue Duration { get; } = new(100);
///
- /// 定位
+ /// 范围
///
public ObservableRect Rect { get; } = new();
diff --git a/VPet.ModMaker/VPet.ModMaker.csproj b/VPet.ModMaker/VPet.ModMaker.csproj
index 6ead5ed..6d8bfad 100644
--- a/VPet.ModMaker/VPet.ModMaker.csproj
+++ b/VPet.ModMaker/VPet.ModMaker.csproj
@@ -93,8 +93,11 @@
+
+
+
diff --git a/VPet.ModMaker/ViewModels/ModEdit/AnimeEdit/AnimePageVM.cs b/VPet.ModMaker/ViewModels/ModEdit/AnimeEdit/AnimePageVM.cs
index b96a6b4..ecfe136 100644
--- a/VPet.ModMaker/ViewModels/ModEdit/AnimeEdit/AnimePageVM.cs
+++ b/VPet.ModMaker/ViewModels/ModEdit/AnimeEdit/AnimePageVM.cs
@@ -3,6 +3,7 @@ using LinePutScript.Localization.WPF;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.Collections.Specialized;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -19,13 +20,23 @@ public class AnimePageVM
///
/// 显示的动画
///
- public ObservableValue> ShowAnimes { get; } = new();
+ public ObservableValue> ShowAnimes { get; } = new();
+
+ ///
+ /// 所有动画
+ ///
+ public ObservableCollection