Compare commits
1
Commits
9a3a1383ff
...
ui_fix
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2e06cbb4b7 |
+23
-4
@@ -3,11 +3,9 @@
|
||||
use std::{collections::HashMap, time::Duration};
|
||||
|
||||
use bevy::{
|
||||
input::InputSystems,
|
||||
prelude::*,
|
||||
settings::{ReflectSettingsGroup, SaveSettingsDeferred, SettingsGroup},
|
||||
camera::{CameraOutputMode, visibility::RenderLayers}, input::InputSystems, prelude::*, render::render_resource::BlendState, settings::{ReflectSettingsGroup, SaveSettingsDeferred, SettingsGroup},
|
||||
};
|
||||
use bevy_egui::{EguiContexts, EguiPrimaryContextPass, egui};
|
||||
use bevy_egui::{EguiContexts, EguiGlobalSettings, EguiPrimaryContextPass, PrimaryEguiContext, egui};
|
||||
use bevy_ggrs::{RollbackFrameRate, RunGgrsSystems};
|
||||
use enum_cycling::EnumCycle;
|
||||
use enum_cycling_derive::EnumCycle;
|
||||
@@ -397,6 +395,7 @@ impl Plugin for DebugToolsPlugin {
|
||||
.before(RunGgrsSystems)
|
||||
.run_if(in_state(AppState::InMatch)),
|
||||
)
|
||||
.add_systems(Startup, spawn_egui_camera)
|
||||
.add_systems(PreUpdate, restore_frame_step_time.after(RunGgrsSystems))
|
||||
.add_systems(
|
||||
Update,
|
||||
@@ -408,6 +407,26 @@ impl Plugin for DebugToolsPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn spawn_egui_camera(mut commands: Commands, mut egui_global_settings: ResMut<EguiGlobalSettings>,) {
|
||||
egui_global_settings.auto_create_primary_context = false;
|
||||
commands.spawn((
|
||||
// The `PrimaryEguiContext` component requires everything needed to render a primary context.
|
||||
PrimaryEguiContext,
|
||||
Camera2d,
|
||||
// Setting RenderLayers to none makes sure we won't render anything apart from the UI.
|
||||
RenderLayers::none(),
|
||||
Camera {
|
||||
order: 2,
|
||||
output_mode: CameraOutputMode::Write {
|
||||
blend_state: Some(BlendState::ALPHA_BLENDING),
|
||||
clear_color: ClearColorConfig::None,
|
||||
},
|
||||
clear_color: ClearColorConfig::Custom(Color::NONE),
|
||||
..default()
|
||||
},
|
||||
));
|
||||
}
|
||||
|
||||
fn player_handles(players: &Query<&Player>) -> Vec<usize> {
|
||||
let mut handles = players
|
||||
.iter()
|
||||
|
||||
@@ -1,19 +1,8 @@
|
||||
use bevy::{picking::pointer::PointerId, prelude::*};
|
||||
|
||||
use crate::{
|
||||
AppState,
|
||||
fighter::manifest::{FighterManifest, FighterManifestRegistry},
|
||||
game_settings::CommonAssets,
|
||||
input::{LocalInputAssignments, LocalInputSource},
|
||||
menus::{
|
||||
MenuMarker,
|
||||
button::FGUiButton,
|
||||
character_select::{character_box::CharacterBox, token::CharacterSelectToken},
|
||||
cursor::{FGMenuCursor, MenuCursorInputSource},
|
||||
errors::MenuErrors::FighterManifestNotFound,
|
||||
match_config::{MenuMatchConfig, MenuMatchPlayerSlot},
|
||||
scaling, spawn_menu,
|
||||
style::{FGUiButtonType, FGUiStyle},
|
||||
AppState, fighter::manifest::{FighterManifest, FighterManifestRegistry}, game_settings::CommonAssets, input::{LocalInputAssignments, LocalInputSource}, menus::{
|
||||
MenuCameraMarker, MenuMarker, button::FGUiButton, character_select::{character_box::CharacterBox, token::CharacterSelectToken}, cursor::{FGMenuCursor, MenuCursorInputSource}, errors::MenuErrors::FighterManifestNotFound, match_config::{MenuMatchConfig, MenuMatchPlayerSlot}, scaling, spawn_menu, style::{FGUiButtonType, FGUiStyle},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -241,7 +230,7 @@ pub fn copy_cursor_transform_to_token(
|
||||
character_boxes: Query<(&CharacterBox, &ComputedNode, &UiGlobalTransform)>,
|
||||
match_config: Res<MenuMatchConfig>,
|
||||
cursors: Query<&UiGlobalTransform, With<FGMenuCursor>>,
|
||||
cam: Single<&Camera>,
|
||||
cam: Single<&Camera, With<MenuCameraMarker>>,
|
||||
ui_scale: Res<UiScale>,
|
||||
) -> Result {
|
||||
let camera = cam.into_inner();
|
||||
|
||||
+3
-6
@@ -9,11 +9,8 @@ use bevy::{
|
||||
};
|
||||
|
||||
use crate::{
|
||||
input::{LocalInputAssignments, LocalInputSource},
|
||||
menus::{
|
||||
input::{MenuInput, MenuInputState},
|
||||
scaling,
|
||||
style::FGUiStyle,
|
||||
input::{LocalInputAssignments, LocalInputSource}, menus::{
|
||||
MenuCameraMarker, input::{MenuInput, MenuInputState}, scaling, style::FGUiStyle,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -181,7 +178,7 @@ pub fn cursor_input(
|
||||
}
|
||||
|
||||
pub fn update_cursor_transform(
|
||||
camera: Single<&Camera>,
|
||||
camera: Single<&Camera, With<MenuCameraMarker>>,
|
||||
query: Query<(&mut Node, &PointerLocation), With<FGMenuCursor>>,
|
||||
ui_scale: Res<UiScale>,
|
||||
) {
|
||||
|
||||
+1
-4
@@ -53,6 +53,7 @@ pub fn wrap_menu(menu: impl Scene) -> impl Scene {
|
||||
#MenuCamera
|
||||
Camera
|
||||
Camera2d
|
||||
MenuCameraMarker
|
||||
),
|
||||
(
|
||||
#MenuContainer
|
||||
@@ -73,7 +74,6 @@ pub fn wrap_menu(menu: impl Scene) -> impl Scene {
|
||||
|
||||
pub fn despawn_menu(
|
||||
existing_menu: Option<Single<Entity, With<MenuMarker>>>,
|
||||
existing_menu_camera: Option<Single<Entity, With<MenuCameraMarker>>>,
|
||||
mut commands: Commands,
|
||||
) {
|
||||
if let Some(entity) = existing_menu {
|
||||
@@ -82,9 +82,6 @@ pub fn despawn_menu(
|
||||
.despawn();
|
||||
}
|
||||
|
||||
if let Some(menu_cam) = existing_menu_camera {
|
||||
commands.entity(*menu_cam).despawn();
|
||||
}
|
||||
}
|
||||
|
||||
pub fn spawn_menu(
|
||||
|
||||
Reference in New Issue
Block a user