mirror of
https://github.com/IntQuant/noita_entangled_worlds.git
synced 2025-10-19 07:03:16 +00:00
Mark persisted settings with serde(default)
This commit is contained in:
parent
e2aaa7bc2d
commit
e73dbc9f02
1 changed files with 74 additions and 38 deletions
|
@ -4,7 +4,11 @@ use bookkeeping::{
|
|||
save_state::SaveState,
|
||||
};
|
||||
use clipboard::{ClipboardContext, ClipboardProvider};
|
||||
use eframe::egui::{self, Align2, Button, Color32, Context, DragValue, FontDefinitions, FontFamily, ImageButton, InnerResponse, Key, Margin, OpenUrl, Rect, RichText, ScrollArea, Slider, TextureOptions, Ui, UiBuilder, Vec2, Visuals, Window};
|
||||
use eframe::egui::{
|
||||
self, Align2, Button, Color32, Context, DragValue, FontDefinitions, FontFamily, ImageButton,
|
||||
InnerResponse, Key, Margin, OpenUrl, Rect, RichText, ScrollArea, Slider, TextureOptions, Ui,
|
||||
UiBuilder, Vec2, Visuals, Window,
|
||||
};
|
||||
use egui_plot::{Plot, PlotPoint, PlotUi, Text};
|
||||
use image::DynamicImage::ImageRgba8;
|
||||
use image::RgbaImage;
|
||||
|
@ -57,6 +61,7 @@ pub(crate) enum GameMode {
|
|||
}
|
||||
|
||||
#[derive(Debug, Decode, Encode, Clone, Serialize, Deserialize)]
|
||||
#[serde(default)]
|
||||
pub struct GameSettings {
|
||||
seed: u64,
|
||||
debug_mode: bool,
|
||||
|
@ -155,6 +160,7 @@ impl Default for PlayerAppearance {
|
|||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[serde(default)]
|
||||
struct AppSavedState {
|
||||
addr: String,
|
||||
nickname: Option<String>,
|
||||
|
@ -490,47 +496,77 @@ impl App {
|
|||
let (settings_rect, right) = rect.split_left_right_at_fraction(0.5);
|
||||
let (steam_connect_rect, ip_connect_rect) = right.split_top_bottom_at_fraction(0.5);
|
||||
|
||||
ui.allocate_new_ui(UiBuilder{max_rect: Some(bottom_panel.shrink(group_shrink)), ..Default::default()}, |ui| {
|
||||
filled_group(ui, |ui| {
|
||||
ui.set_min_size(ui.available_size());
|
||||
self.self_update.display_version(ui);
|
||||
ui.allocate_new_ui(
|
||||
UiBuilder {
|
||||
max_rect: Some(bottom_panel.shrink(group_shrink)),
|
||||
..Default::default()
|
||||
},
|
||||
|ui| {
|
||||
filled_group(ui, |ui| {
|
||||
ui.set_min_size(ui.available_size());
|
||||
self.self_update.display_version(ui);
|
||||
|
||||
if self.self_update.request_update {
|
||||
self.state = AppState::SelfUpdate;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
ui.allocate_new_ui(UiBuilder{max_rect: Some(right_b_panel.shrink(group_shrink)), ..Default::default()}, |ui| {
|
||||
filled_group(ui, |ui| {
|
||||
ui.set_min_size(ui.available_size());
|
||||
|
||||
self.panel_right_bar(ui, ctx);
|
||||
})
|
||||
});
|
||||
|
||||
ui.allocate_new_ui(UiBuilder{max_rect: Some(settings_rect.shrink(group_shrink)), ..Default::default()}, |ui| {
|
||||
filled_group(ui, |ui| {
|
||||
ui.set_min_size(ui.available_size());
|
||||
ScrollArea::both().auto_shrink(false).show(ui, |ui| {
|
||||
self.show_game_settings(ui, true);
|
||||
if self.self_update.request_update {
|
||||
self.state = AppState::SelfUpdate;
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
ui.allocate_new_ui(UiBuilder{max_rect: Some(steam_connect_rect.shrink(group_shrink)), ..Default::default()}, |ui| {
|
||||
filled_group(ui, |ui| {
|
||||
ui.set_min_size(ui.available_size());
|
||||
},
|
||||
);
|
||||
|
||||
self.panel_connect_by_steam(ui);
|
||||
});
|
||||
});
|
||||
ui.allocate_new_ui(UiBuilder{max_rect: Some(ip_connect_rect.shrink(group_shrink)), ..Default::default()}, |ui| {
|
||||
filled_group(ui, |ui| {
|
||||
ui.set_min_size(ui.available_size());
|
||||
ui.allocate_new_ui(
|
||||
UiBuilder {
|
||||
max_rect: Some(right_b_panel.shrink(group_shrink)),
|
||||
..Default::default()
|
||||
},
|
||||
|ui| {
|
||||
filled_group(ui, |ui| {
|
||||
ui.set_min_size(ui.available_size());
|
||||
|
||||
self.panel_connect_by_ip(ui);
|
||||
});
|
||||
});
|
||||
self.panel_right_bar(ui, ctx);
|
||||
})
|
||||
},
|
||||
);
|
||||
|
||||
ui.allocate_new_ui(
|
||||
UiBuilder {
|
||||
max_rect: Some(settings_rect.shrink(group_shrink)),
|
||||
..Default::default()
|
||||
},
|
||||
|ui| {
|
||||
filled_group(ui, |ui| {
|
||||
ui.set_min_size(ui.available_size());
|
||||
ScrollArea::both().auto_shrink(false).show(ui, |ui| {
|
||||
self.show_game_settings(ui, true);
|
||||
});
|
||||
});
|
||||
},
|
||||
);
|
||||
ui.allocate_new_ui(
|
||||
UiBuilder {
|
||||
max_rect: Some(steam_connect_rect.shrink(group_shrink)),
|
||||
..Default::default()
|
||||
},
|
||||
|ui| {
|
||||
filled_group(ui, |ui| {
|
||||
ui.set_min_size(ui.available_size());
|
||||
|
||||
self.panel_connect_by_steam(ui);
|
||||
});
|
||||
},
|
||||
);
|
||||
ui.allocate_new_ui(
|
||||
UiBuilder {
|
||||
max_rect: Some(ip_connect_rect.shrink(group_shrink)),
|
||||
..Default::default()
|
||||
},
|
||||
|ui| {
|
||||
filled_group(ui, |ui| {
|
||||
ui.set_min_size(ui.available_size());
|
||||
|
||||
self.panel_connect_by_ip(ui);
|
||||
});
|
||||
},
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue