fix some shit

This commit is contained in:
2021-05-22 14:29:29 +08:00
parent e8ca883ae9
commit 36b45942d5
5 changed files with 85 additions and 1 deletions

View File

@ -151,7 +151,7 @@ namespace BallanceTASEditor.Core {
mMem.AddBefore(node, item.Value);
}
} else {
foreach (var item in data.IterateFull()) {
foreach (var item in data.IterateFullReversed()) {
mMem.AddAfter(node, item.Value);
}
}

View File

@ -32,6 +32,16 @@ namespace BallanceTASEditor.Core {
// if (index + count > list.Count) count = list.Count - index;
// for (int i = 0; i < count; i++) list.RemoveAt(index);
//}
public static IEnumerable<LinkedListNode<FrameData>> IterateFullReversed(this LinkedList<FrameData> ls) {
var pos = ls.Last;
while (pos != null) {
yield return pos;
pos = pos.Previous;
}
}
public static IEnumerable<LinkedListNode<FrameData>> IterateFull(this LinkedList<FrameData> ls) {
var pos = ls.First;

1
README.md Normal file
View File

@ -0,0 +1 @@
# Ballance TAS Editor

68
README_ZH.md Normal file
View File

@ -0,0 +1,68 @@
# Ballance TAS 编辑器
一款专门用于编辑Ballance TAS文件的编辑器
## 基本操作
### 菜单
* File
* Open打开一个TAS文件
* Save保存当前改动到TAS文件
* Save As...:将当前改动保存到另一个新地方,保存完毕后文件自动切换成新目标,之后的保存操作将针对新文件来保存
* Close关闭当前文件
* Display
* Item Count设置一行显示多少个TAS操作单元最少5个最多30个
* Help
* Report bugs打开一个网页来汇报这个程序的Bug
* About关于此程序
### 状态栏
在打开文件后,底部状态栏将显示当前的状态:当前工具模式 和 当前选定的区域
## 移动视图
打开文件后,靠近底部有一个滑条,可以快速滑动到希望浏览的位置。
滑条左侧有4个按钮分别是快退退一个单元进一个单元快进。快进和快退将一次性前进或后退一个页面的单元数量。
键盘上的ASDF四个键从左至右也分别对应滑条左侧的四个按钮的功能。
## 模式介绍
### 基本模式
打开文件后上部3个带有图标的按钮是TAS编辑器的三种模式它们分别是
* Select mode选择模式允许成列的选择TAS操作单元。在此模式下可以进行复制粘贴插入和删除操作。
* Fill mode填充模式像编辑表格那样允许多列选择和跨行选择但必须连续并且支持在选择区域内批量设置或不设置项目
* Draw mode绘画模式将鼠标视为画笔反转点击的单元格的设置状态。
### 如何单选与多选
选择模式允许单选直接单击某一个TAS操作单元即可选中。
选择模式和填充模式允许多选具体操作是点击某个单元格作为起始位置然后按住Shift点击第二个单元格作为终止位置。完成多选。
再次左键单击重新开始一次选择。再次按住Shift左键单击重新选定终止位置。
### 选择的标识
选择模式下选中的成列的TAS操作单元其顶部的方框将呈现橘色。
填充模式下,选中的单元格的外边框将从灰色变为橘色。
### 模式中的菜单
在表格页面右键将打开一个操作菜单,如下:
* Set位于填充模式且已多选时设置选中单元为设置状态
* Unset位于填充模式且已多选时设置选中单元为不设置状态
* Copy位于选择模式且已多选时复制选中单元
* Delete位于选择模式且已多选时删除选中单元
* Paste after this位于选择模式且已单选时在其前方粘贴剪贴板中已复制的单元
* Paste before this位于选择模式且已单选时在其后方粘贴剪贴板中已复制的单元
* Add blank item after this位于选择模式且已单选时在其前方添加空白单元
* Add blank item before this位于选择模式且已单选时在其后方添加空白单元
## 出错啦
如果程序报告出错会在程序所在文件夹下方的logs中生成错误报告请将错误报告发送给开发者以方便定位错误。

View File

@ -170,6 +170,7 @@ namespace BallanceTASEditor.UI {
var pos = mSelectionHelp.GetPoint();
mFile.Add(pos, count, deltaTime, true);
mSelectionHelp.Reset();
updateSliderRange();
RefreshDisplay();
}
@ -179,6 +180,7 @@ namespace BallanceTASEditor.UI {
var pos = mSelectionHelp.GetPoint();
mFile.Add(pos, count, deltaTime, false);
mSelectionHelp.Reset();
updateSliderRange();
RefreshDisplay();
}
@ -187,6 +189,7 @@ namespace BallanceTASEditor.UI {
var data = new LinkedList<FrameData>();
if (ClipboardUtil.GetFrameData(data)) {
mFile.Insert(mSelectionHelp.GetPoint(), data, true);
mSelectionHelp.Reset();
updateSliderRange();
RefreshDisplay();
} else MessageBox.Show("Fail to paste due to unknow reason or blank clipboard!");
@ -196,6 +199,7 @@ namespace BallanceTASEditor.UI {
var data = new LinkedList<FrameData>();
if (ClipboardUtil.GetFrameData(data)) {
mFile.Insert(mSelectionHelp.GetPoint(), data, false);
mSelectionHelp.Reset();
updateSliderRange();
RefreshDisplay();
} else MessageBox.Show("Fail to paste due to unknow reason or blank clipboard!");
@ -203,6 +207,7 @@ namespace BallanceTASEditor.UI {
private void funcDataMenu_Delete(object sender, RoutedEventArgs e) {
mFile.Remove(mSelectionHelp.GetRange());
mSelectionHelp.Reset();
updateSliderRange();
RefreshDisplay();
}