extract skins

This commit is contained in:
sparshg 2023-01-14 16:28:33 +05:30
parent 7cbfcd91af
commit 18fd825c99
2 changed files with 148 additions and 139 deletions

View File

@ -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 {

143
src/skins.rs Normal file
View File

@ -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
}