Skip to content

Commit 75d0a0b

Browse files
committed
created LineList tab
1 parent 8562c0e commit 75d0a0b

File tree

5 files changed

+42
-1
lines changed

5 files changed

+42
-1
lines changed

lang/en_us.yml

+2
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,5 @@ tab:
3333
chart_basic_setting:
3434
title: Chart Basic Setting
3535
offset: Offset (ms)
36+
line_list:
37+
title: Line List

lang/zh_cn.yml

+2
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,5 @@ tab:
3333
chart_basic_setting:
3434
title: 谱面基本设置
3535
offset: 延迟 (毫秒)
36+
line_list:
37+
title: 判定线列表

src/main.rs

+1
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ impl UiState {
156156
EditorTab::TimelineSetting,
157157
EditorTab::AudioSetting,
158158
EditorTab::ChartBasicSetting,
159+
EditorTab::LineList,
159160
],
160161
);
161162

src/tab/line_list.rs

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
use crate::chart::event::LineEvent;
2+
use crate::chart::line::Line;
3+
use crate::chart::note::Note;
4+
use bevy::prelude::*;
5+
use egui::Ui;
6+
7+
// use crate::translation::Translator;
8+
9+
pub fn line_list_tab(
10+
In(ui): In<&mut Ui>,
11+
line_query: Query<&Children, With<Line>>,
12+
note_query: Query<&Note>,
13+
event_query: Query<&LineEvent>,
14+
// translator: Translator,
15+
) {
16+
for (index, line) in line_query.iter().enumerate() {
17+
let notes = line
18+
.iter()
19+
.filter(|child| note_query.get(**child).is_ok())
20+
.collect::<Vec<_>>()
21+
.len();
22+
let events = line
23+
.iter()
24+
.filter(|child| event_query.get(**child).is_ok())
25+
.collect::<Vec<_>>()
26+
.len();
27+
ui.label(format!(
28+
"Line #{}: {} notes, {} events",
29+
index, notes, events
30+
));
31+
}
32+
}

src/tab/mod.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ pub mod audio_setting;
22
pub mod chart_basic_setting;
33
pub mod game;
44
pub mod inspector;
5+
pub mod line_list;
56
pub mod timeline;
67
pub mod timeline_setting;
78

89
use crate::tab::audio_setting::audio_setting_tab;
910
use crate::tab::chart_basic_setting::chart_basic_setting_tab;
1011
use crate::tab::inspector::inspector_ui_system;
12+
use crate::tab::line_list::line_list_tab;
1113
use crate::tab::timeline::timeline_ui_system;
1214
use crate::tab::timeline_setting::timeline_setting_tab;
1315
use bevy::{prelude::*, utils::HashMap};
@@ -53,6 +55,7 @@ pub enum EditorTab {
5355
TimelineSetting,
5456
AudioSetting,
5557
ChartBasicSetting,
58+
LineList,
5659
}
5760

5861
pub struct TabPlugin;
@@ -85,7 +88,8 @@ impl Plugin for TabPlugin {
8588
EditorTab::ChartBasicSetting,
8689
"tab.chart_basic_setting.title",
8790
chart_basic_setting_tab,
88-
);
91+
)
92+
.register_tab(EditorTab::LineList, "tab.line_list.title", line_list_tab);
8993
}
9094
}
9195

0 commit comments

Comments
 (0)