extract skins
This commit is contained in:
parent
7cbfcd91af
commit
18fd825c99
144
src/main.rs
144
src/main.rs
|
@ -4,6 +4,7 @@ mod asteroids;
|
||||||
mod nn;
|
mod nn;
|
||||||
mod player;
|
mod player;
|
||||||
mod population;
|
mod population;
|
||||||
|
mod skins;
|
||||||
mod world;
|
mod world;
|
||||||
|
|
||||||
use nn::{ActivationFunc, NN};
|
use nn::{ActivationFunc, NN};
|
||||||
|
@ -11,7 +12,7 @@ use tinyfiledialogs::*;
|
||||||
|
|
||||||
use macroquad::{
|
use macroquad::{
|
||||||
prelude::*,
|
prelude::*,
|
||||||
ui::{hash, root_ui, widgets, Skin},
|
ui::{hash, root_ui, widgets},
|
||||||
};
|
};
|
||||||
use population::{AutoSwitch, Population};
|
use population::{AutoSwitch, Population};
|
||||||
use world::World;
|
use world::World;
|
||||||
|
@ -95,144 +96,9 @@ async fn main() {
|
||||||
let nums = &[
|
let nums = &[
|
||||||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16",
|
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16",
|
||||||
];
|
];
|
||||||
|
let skin = skins::get_ui_skin();
|
||||||
let skin = {
|
let skin2 = skins::get_white_buttons_skin();
|
||||||
let window_style = root_ui()
|
let skin3 = skins::get_green_buttons_skin();
|
||||||
.style_builder()
|
|
||||||
.background(Image {
|
|
||||||
width: 1,
|
|
||||||
height: 1,
|
|
||||||
bytes: vec![0; 4],
|
|
||||||
})
|
|
||||||
.background_margin(RectOffset::new(0., 0., 0., 0.))
|
|
||||||
.color_inactive(WHITE)
|
|
||||||
.build();
|
|
||||||
let button_style = root_ui()
|
|
||||||
.style_builder()
|
|
||||||
.background(Image {
|
|
||||||
width: 3,
|
|
||||||
height: 3,
|
|
||||||
bytes: vec![
|
|
||||||
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
255, 255, 255,
|
|
||||||
],
|
|
||||||
})
|
|
||||||
.background_margin(RectOffset::new(1., 1., 1., 1.))
|
|
||||||
.color_hovered(RED)
|
|
||||||
.color_clicked(BLUE)
|
|
||||||
.text_color(WHITE)
|
|
||||||
.text_color_hovered(WHITE)
|
|
||||||
.text_color_clicked(WHITE)
|
|
||||||
.margin(RectOffset::new(10., 10., 8., 8.))
|
|
||||||
.color_inactive(WHITE)
|
|
||||||
.build();
|
|
||||||
let label_style = root_ui()
|
|
||||||
.style_builder()
|
|
||||||
.text_color(WHITE)
|
|
||||||
.font_size(24)
|
|
||||||
.margin(RectOffset::new(5., 5., 4., 4.))
|
|
||||||
// .text_color_hovered(LIGHTGRAY)
|
|
||||||
// .text_color_clicked(WHITE)
|
|
||||||
.build();
|
|
||||||
let group_style = root_ui()
|
|
||||||
.style_builder()
|
|
||||||
.color(Color::new(1., 0., 0., 0.))
|
|
||||||
.build();
|
|
||||||
let editbox_style = root_ui()
|
|
||||||
.style_builder()
|
|
||||||
.background(Image {
|
|
||||||
width: 3,
|
|
||||||
height: 3,
|
|
||||||
bytes: vec![
|
|
||||||
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
255, 255, 255,
|
|
||||||
],
|
|
||||||
})
|
|
||||||
.background_margin(RectOffset::new(1., 1., 1., 1.))
|
|
||||||
.text_color(WHITE)
|
|
||||||
.build();
|
|
||||||
let combobox_style = root_ui()
|
|
||||||
.style_builder()
|
|
||||||
.background(Image {
|
|
||||||
width: 3,
|
|
||||||
height: 3,
|
|
||||||
bytes: vec![
|
|
||||||
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
255, 255, 255,
|
|
||||||
],
|
|
||||||
})
|
|
||||||
.background_margin(RectOffset::new(1., 1., 1., 1.))
|
|
||||||
.color_hovered(WHITE)
|
|
||||||
.color_selected_hovered(WHITE)
|
|
||||||
.color_inactive(WHITE)
|
|
||||||
.color_clicked(WHITE)
|
|
||||||
.color(WHITE)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
Skin {
|
|
||||||
window_style,
|
|
||||||
button_style,
|
|
||||||
label_style,
|
|
||||||
group_style,
|
|
||||||
editbox_style,
|
|
||||||
combobox_style,
|
|
||||||
margin: 0.,
|
|
||||||
..root_ui().default_skin()
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
let mut skin2 = skin.clone();
|
|
||||||
skin2.label_style = root_ui()
|
|
||||||
.style_builder()
|
|
||||||
.text_color(WHITE)
|
|
||||||
.font_size(16)
|
|
||||||
.text_color_hovered(LIGHTGRAY)
|
|
||||||
.text_color_clicked(WHITE)
|
|
||||||
.build();
|
|
||||||
skin2.button_style = root_ui()
|
|
||||||
.style_builder()
|
|
||||||
.background(Image {
|
|
||||||
width: 3,
|
|
||||||
height: 3,
|
|
||||||
bytes: vec![
|
|
||||||
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0,
|
|
||||||
0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
|
||||||
255, 255,
|
|
||||||
],
|
|
||||||
})
|
|
||||||
.background_margin(RectOffset::new(1., 1., 1., 1.))
|
|
||||||
.color_hovered(GREEN)
|
|
||||||
.color_clicked(GREEN)
|
|
||||||
.text_color(WHITE)
|
|
||||||
.text_color_hovered(WHITE)
|
|
||||||
.text_color_clicked(GREEN)
|
|
||||||
.margin(RectOffset::new(4., 4., 2., 2.))
|
|
||||||
.color_inactive(WHITE)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
let mut skin3 = skin2.clone();
|
|
||||||
skin3.button_style = root_ui()
|
|
||||||
.style_builder()
|
|
||||||
.background(Image {
|
|
||||||
width: 3,
|
|
||||||
height: 3,
|
|
||||||
bytes: vec![
|
|
||||||
0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 0, 0, 255, 0,
|
|
||||||
255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
|
|
||||||
],
|
|
||||||
})
|
|
||||||
.background_margin(RectOffset::new(1., 1., 1., 1.))
|
|
||||||
.color_hovered(GREEN)
|
|
||||||
.color_clicked(GREEN)
|
|
||||||
.text_color(GREEN)
|
|
||||||
.text_color_hovered(GREEN)
|
|
||||||
.text_color_clicked(GREEN)
|
|
||||||
.margin(RectOffset::new(4., 4., 2., 2.))
|
|
||||||
.color_inactive(GREEN)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
root_ui().push_skin(&skin);
|
root_ui().push_skin(&skin);
|
||||||
loop {
|
loop {
|
||||||
|
|
|
@ -0,0 +1,143 @@
|
||||||
|
use macroquad::{prelude::*, ui::*};
|
||||||
|
|
||||||
|
pub fn get_ui_skin() -> Skin {
|
||||||
|
let window_style = root_ui()
|
||||||
|
.style_builder()
|
||||||
|
.background(Image {
|
||||||
|
width: 1,
|
||||||
|
height: 1,
|
||||||
|
bytes: vec![0; 4],
|
||||||
|
})
|
||||||
|
.background_margin(RectOffset::new(0., 0., 0., 0.))
|
||||||
|
.color_inactive(WHITE)
|
||||||
|
.build();
|
||||||
|
let button_style = root_ui()
|
||||||
|
.style_builder()
|
||||||
|
.background(Image {
|
||||||
|
width: 3,
|
||||||
|
height: 3,
|
||||||
|
bytes: vec![
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0,
|
||||||
|
0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255,
|
||||||
|
],
|
||||||
|
})
|
||||||
|
.background_margin(RectOffset::new(1., 1., 1., 1.))
|
||||||
|
.color_hovered(RED)
|
||||||
|
.color_clicked(BLUE)
|
||||||
|
.text_color(WHITE)
|
||||||
|
.text_color_hovered(WHITE)
|
||||||
|
.text_color_clicked(WHITE)
|
||||||
|
.margin(RectOffset::new(10., 10., 8., 8.))
|
||||||
|
.color_inactive(WHITE)
|
||||||
|
.build();
|
||||||
|
let label_style = root_ui()
|
||||||
|
.style_builder()
|
||||||
|
.text_color(WHITE)
|
||||||
|
.font_size(24)
|
||||||
|
.margin(RectOffset::new(5., 5., 4., 4.))
|
||||||
|
.build();
|
||||||
|
let group_style = root_ui()
|
||||||
|
.style_builder()
|
||||||
|
.color(Color::new(1., 0., 0., 0.))
|
||||||
|
.build();
|
||||||
|
let editbox_style = root_ui()
|
||||||
|
.style_builder()
|
||||||
|
.background(Image {
|
||||||
|
width: 3,
|
||||||
|
height: 3,
|
||||||
|
bytes: vec![
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0,
|
||||||
|
0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255,
|
||||||
|
],
|
||||||
|
})
|
||||||
|
.background_margin(RectOffset::new(1., 1., 1., 1.))
|
||||||
|
.text_color(WHITE)
|
||||||
|
.build();
|
||||||
|
let combobox_style = root_ui()
|
||||||
|
.style_builder()
|
||||||
|
.background(Image {
|
||||||
|
width: 3,
|
||||||
|
height: 3,
|
||||||
|
bytes: vec![
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0,
|
||||||
|
0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255,
|
||||||
|
],
|
||||||
|
})
|
||||||
|
.background_margin(RectOffset::new(1., 1., 1., 1.))
|
||||||
|
.color_hovered(WHITE)
|
||||||
|
.color_selected_hovered(WHITE)
|
||||||
|
.color_inactive(WHITE)
|
||||||
|
.color_clicked(WHITE)
|
||||||
|
.color(WHITE)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
Skin {
|
||||||
|
window_style,
|
||||||
|
button_style,
|
||||||
|
label_style,
|
||||||
|
group_style,
|
||||||
|
editbox_style,
|
||||||
|
combobox_style,
|
||||||
|
margin: 0.,
|
||||||
|
..root_ui().default_skin()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get_white_buttons_skin() -> Skin {
|
||||||
|
let mut skin2 = get_ui_skin();
|
||||||
|
skin2.label_style = root_ui()
|
||||||
|
.style_builder()
|
||||||
|
.text_color(WHITE)
|
||||||
|
.font_size(16)
|
||||||
|
.text_color_hovered(LIGHTGRAY)
|
||||||
|
.text_color_clicked(WHITE)
|
||||||
|
.build();
|
||||||
|
skin2.button_style = root_ui()
|
||||||
|
.style_builder()
|
||||||
|
.background(Image {
|
||||||
|
width: 3,
|
||||||
|
height: 3,
|
||||||
|
bytes: vec![
|
||||||
|
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0,
|
||||||
|
0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
|
||||||
|
255, 255,
|
||||||
|
],
|
||||||
|
})
|
||||||
|
.background_margin(RectOffset::new(1., 1., 1., 1.))
|
||||||
|
.color_hovered(GREEN)
|
||||||
|
.color_clicked(GREEN)
|
||||||
|
.text_color(WHITE)
|
||||||
|
.text_color_hovered(WHITE)
|
||||||
|
.text_color_clicked(GREEN)
|
||||||
|
.margin(RectOffset::new(4., 4., 2., 2.))
|
||||||
|
.color_inactive(WHITE)
|
||||||
|
.build();
|
||||||
|
skin2
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get_green_buttons_skin() -> Skin {
|
||||||
|
let mut skin3 = get_white_buttons_skin();
|
||||||
|
skin3.button_style = root_ui()
|
||||||
|
.style_builder()
|
||||||
|
.background(Image {
|
||||||
|
width: 3,
|
||||||
|
height: 3,
|
||||||
|
bytes: vec![
|
||||||
|
0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 0, 0, 255, 0,
|
||||||
|
255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255, 0, 255,
|
||||||
|
],
|
||||||
|
})
|
||||||
|
.background_margin(RectOffset::new(1., 1., 1., 1.))
|
||||||
|
.color_hovered(GREEN)
|
||||||
|
.color_clicked(GREEN)
|
||||||
|
.text_color(GREEN)
|
||||||
|
.text_color_hovered(GREEN)
|
||||||
|
.text_color_clicked(GREEN)
|
||||||
|
.margin(RectOffset::new(4., 4., 2., 2.))
|
||||||
|
.color_inactive(GREEN)
|
||||||
|
.build();
|
||||||
|
skin3
|
||||||
|
}
|
Loading…
Reference in New Issue