Merge branch 'pfauenauge-fix' into 'master'

Update UI (Pfauenauge)

See merge request veloren/veloren!68

Former-commit-id: 43d549dbb8882937df929f618325163d22c919a4
This commit is contained in:
Joshua Barretto 2019-04-25 12:25:30 +00:00
commit 7e1ef46e4d
4 changed files with 568 additions and 469 deletions

@ -1 +1 @@
Subproject commit 0a176c408946f081850132623a6730d9d2b1e7ed
Subproject commit 25346c1ead7d03b11f7f4403332f2288824c6ca9

View File

@ -6,7 +6,10 @@ use crate::{
window::{Event as WinEvent, Key, Window},
GlobalState,
};
use common::assets;
use common::{
assets,
figure::Segment};
use conrod_core::{
color,
image::Id as ImgId,
@ -21,13 +24,11 @@ widget_ids! {
bag_space_add,
inventorytest_button,
inventorytest_button_label,
//Debug
debug_bg,
debug_button,
debug_button_label,
fps_counter,
// Logo
v_logo,
@ -41,6 +42,19 @@ widget_ids! {
inv_scrollbar,
inv_slot_0,
inv_slot[],
// Buttons
settings_button,
social_button,
map_button,
spellbook_button,
character_button,
qlog_button,
social_button_bg,
spellbook_button_bg,
character_button_bg,
qlog_button_bg,
bag_text,
//help
help,
help_bg,
@ -55,13 +69,6 @@ widget_ids! {
//Mini-Map
mmap_frame,
mmap_frame_bg,
mmap_button_0,
mmap_button_1,
mmap_button_2,
mmap_button_3,
mmap_button_4,
mmap_button_5,
mmap_icons,
mmap_location,
//Action-Bar
xp_bar,
@ -114,6 +121,8 @@ widget_ids! {
map_icon,
map_close,
map_title,
map_frame_l,
map_frame_r,
//3 Spellbook
spellbook_frame,
spellbook_bg,
@ -150,9 +159,6 @@ widget_ids! {
// TODO: make macro to mimic widget_ids! for images ids or find another solution to simplify addition of new images.
pub(self) struct Imgs {
//Missing: ActionBar, Health/Mana/Energy Bar & Char Window BG/Frame
//Logo
//v_logo: ImgId,
// Bag
bag: ImgId,
bag_hover: ImgId,
@ -164,6 +170,31 @@ pub(self) struct Imgs {
inv_grid: ImgId,
inv_slot: ImgId,
// Buttons
settings: ImgId,
settings_hover: ImgId,
settings_press: ImgId,
social_button: ImgId,
social_hover: ImgId,
social_press: ImgId,
map_button: ImgId,
map_hover: ImgId,
map_press: ImgId,
spellbook_button: ImgId,
spellbook_hover: ImgId,
spellbook_press: ImgId,
character_button: ImgId,
character_hover: ImgId,
character_press: ImgId,
qlog_button: ImgId,
qlog_hover: ImgId,
qlog_press: ImgId,
// Close button
close_button: ImgId,
close_button_hover: ImgId,
@ -179,13 +210,6 @@ pub(self) struct Imgs {
// MiniMap
mmap_frame: ImgId,
mmap_frame_bg: ImgId,
mmap_icons: ImgId,
// Settings at Mini-Map
mmap_button: ImgId,
mmap_button_hover: ImgId,
mmap_button_press: ImgId,
mmap_button_open: ImgId,
// SkillBar Module
sb_grid: ImgId,
@ -226,7 +250,8 @@ pub(self) struct Imgs {
// Map-Window
map_bg: ImgId,
map_icon: ImgId,
map_frame: ImgId,
map_frame_l: ImgId,
map_frame_r: ImgId,
// Spell Book Window
spellbook_bg: ImgId,
spellbook_icon: ImgId,
@ -239,142 +264,166 @@ pub(self) struct Imgs {
progress_frame: ImgId,
progress: ImgId,
// Buttons
mmap_button: ImgId,
mmap_button_hover: ImgId,
mmap_button_press: ImgId,
mmap_button_open: ImgId,
// Quest-Log Window
questlog_bg: ImgId,
questlog_icon: ImgId,
//help
//help: ImgId,
// Chat-Arrow
chat_arrow: ImgId,
chat_arrow_mo: ImgId,
chat_arrow_press: ImgId,
chat_arrow_up: ImgId,
chat_arrow_up_mo: ImgId,
chat_arrow_up_press: ImgId,
chat_arrow_down: ImgId,
chat_arrow_down_mo: ImgId,
chat_arrow_down_press: ImgId,
}
impl Imgs {
fn new(ui: &mut Ui, renderer: &mut Renderer) -> Imgs {
let load = |filename, ui: &mut Ui| {
let mut load_img = |filename, ui: &mut Ui| {
let fullpath: String = ["/voxygen/", filename].concat();
let image = image::load_from_memory(
assets::load(fullpath.as_str())
.expect("Error loading file")
.expect("Error loading Main UI Image")
.as_slice(),
)
.unwrap();
ui.new_graphic(ui::Graphic::Image(image))
};
let mut load_vox = |filename, ui: &mut Ui| {
let fullpath: String = ["/voxygen/", filename].concat();
let dot_vox = dot_vox::load_bytes(
assets::load(fullpath.as_str())
.expect("Error loading Main UI .vox")
.as_slice(),
)
.unwrap();
ui.new_graphic(ui::Graphic::Voxel(Segment::from(dot_vox)))
};
Imgs {
// Bag
bag: load("element/buttons/bag/closed.png", ui),
bag_hover: load("element/buttons/bag/closed_hover.png", ui),
bag_press: load("element/buttons/bag/closed_press.png", ui),
bag_open: load("element/buttons/bag/open.png", ui),
bag_open_hover: load("element/buttons/bag/open_hover.png", ui),
bag_open_press: load("element/buttons/bag/open_press.png", ui),
bag_contents: load("element/frames/bag.png", ui),
inv_grid: load("element/frames/inv_grid.png", ui),
inv_slot: load("element/buttons/inv_slot.png", ui),
bag: load_img("element/buttons/bag/closed.png", ui),
bag_hover: load_img("element/buttons/bag/closed_hover.png", ui),
bag_press: load_img("element/buttons/bag/closed_press.png", ui),
bag_open: load_img("element/buttons/bag/open.png", ui),
bag_open_hover: load_img("element/buttons/bag/open_hover.png", ui),
bag_open_press: load_img("element/buttons/bag/open_press.png", ui),
bag_contents: load_vox("element/frames/bag.vox", ui),
inv_grid: load_vox("element/frames/inv_grid.vox", ui),
inv_slot: load_vox("element/buttons/inv_slot.vox", ui),
// Buttons
settings: load_vox("element/buttons/settings.vox", ui),
settings_hover: load_vox("element/buttons/settings_hover.vox", ui),
settings_press: load_vox("element/buttons/settings_press.vox", ui),
social_button: load_vox("element/buttons/social.vox", ui),
social_hover: load_vox("element/buttons/social_hover.vox", ui),
social_press: load_vox("element/buttons/social_press.vox", ui),
map_button: load_vox("element/buttons/map.vox", ui),
map_hover: load_vox("element/buttons/map_hover.vox", ui),
map_press: load_vox("element/buttons/map_press.vox", ui),
spellbook_button: load_vox("element/buttons/spellbook.vox", ui),
spellbook_hover: load_vox("element/buttons/spellbook_hover.vox", ui),
spellbook_press: load_vox("element/buttons/spellbook_press.vox", ui),
character_button: load_vox("element/buttons/character.vox", ui),
character_hover: load_vox("element/buttons/character_hover.vox", ui),
character_press: load_vox("element/buttons/character_press.vox", ui),
qlog_button: load_vox("element/buttons/qlog.vox", ui),
qlog_hover: load_vox("element/buttons/qlog_hover.vox", ui),
qlog_press: load_vox("element/buttons/qlog_press.vox", ui),
mmap_button: load_img("element/buttons/border.png", ui),
mmap_button_hover: load_img("element/buttons/border_mo.png", ui),
mmap_button_press: load_img("element/buttons/border_press.png", ui),
mmap_button_open: load_img("element/buttons/border_pressed.png", ui),
// Close button
close_button: load("element/buttons/x.png", ui),
close_button_hover: load("element/buttons/x_hover.png", ui),
close_button_press: load("element/buttons/x_press.png", ui),
close_button: load_vox("element/buttons/x.vox", ui),
close_button_hover: load_vox("element/buttons/x_hover.vox", ui),
close_button_press: load_vox("element/buttons/x_press.vox", ui),
// Esc-Menu
esc_bg: load("element/frames/menu.png", ui),
fireplace: load("element/misc_backgrounds/fireplace.png", ui),
button_dark: load("element/buttons/button_dark.png", ui),
button_dark_hover: load("element/buttons/button_dark_hover.png", ui),
button_dark_press: load("element/buttons/button_dark_press.png", ui),
esc_bg: load_img("element/frames/menu.png", ui),
fireplace: load_vox("element/misc_bg/fireplace.vox", ui),
button_dark: load_vox("element/buttons/button_dark.vox", ui),
button_dark_hover: load_img("element/buttons/button_dark_hover.png", ui),
button_dark_press: load_img("element/buttons/button_dark_press.png", ui),
// MiniMap
mmap_frame: load("element/frames/mmap.png", ui),
mmap_frame_bg: load("element/misc_backgrounds/mmap_bg.png", ui),
mmap_icons: load("element/buttons/mmap_icons.png", ui),
mmap_frame: load_vox("element/frames/mmap.vox", ui),
mmap_frame_bg: load_img("element/misc_bg/mmap_bg.png", ui),
// Settings at Mini-Map
mmap_button: load("element/buttons/border.png", ui),
mmap_button_hover: load("element/buttons/border_mo.png", ui),
mmap_button_press: load("element/buttons/border_press.png", ui),
mmap_button_open: load("element/buttons/border_pressed.png", ui),
// Skillbar Module
sb_grid: load("element/skill_bar/sbar_grid.png", ui),
sb_grid_bg: load("element/skill_bar/sbar_grid_bg.png", ui),
l_click: load("element/skill_bar/l.png", ui),
r_click: load("element/skill_bar/r.png", ui),
mana_bar: load("element/skill_bar/mana_bar.png", ui),
health_bar: load("element/skill_bar/health_bar.png", ui),
xp_bar: load("element/skill_bar/xp_bar.png", ui),
//Buff Frame(s)
//buff_frame: load("element/skill_bar/buff_frame.png", ui),
//buff_frame_bg: load("element/skill_bar/buff_frame_bg.png", ui),
//buff_frame_red: load("element/skill_bar/buff_frame_red.png", ui),
//buff_frame_green: load("element/skill_bar/buff_frame_green.png", ui),
sb_grid: load_img("element/skill_bar/sbar_grid.png", ui),
sb_grid_bg: load_img("element/skill_bar/sbar_grid_bg.png", ui),
l_click: load_img("element/skill_bar/l.png", ui),
r_click: load_img("element/skill_bar/r.png", ui),
mana_bar: load_img("element/skill_bar/mana_bar.png", ui),
health_bar: load_img("element/skill_bar/health_bar.png", ui),
xp_bar: load_img("element/skill_bar/xp_bar.png", ui),
// Missing: Buff Frame Animation (.gif ?!) (we could do animation in ui.maintain(), or in shader?)
window_frame: load("element/frames/window.png", ui),
window_frame_2: load("element/frames/window_2.png", ui),
window_frame: load_vox("element/frames/window2.vox", ui),
window_frame_2: load_img("element/frames/window_2.png", ui),
// Settings Window
settings_bg: load("element/frames/settings.png", ui),
settings_icon: load("element/icons/settings.png", ui),
settings_button_mo: load("element/buttons/blue_mo.png", ui),
check: load("element/buttons/check/no.png", ui),
check_mo: load("element/buttons/check/no_mo.png", ui),
check_press: load("element/buttons/check/press.png", ui),
check_checked: load("element/buttons/check/yes.png", ui),
check_checked_mo: load("element/buttons/check/yes_mo.png", ui),
slider: load("element/slider/track.png", ui),
slider_indicator: load("element/slider/indicator.png", ui),
settings_bg: load_img("element/frames/settings.png", ui),
settings_icon: load_img("element/icons/settings.png", ui),
settings_button_mo: load_img("element/buttons/blue_mo.png", ui),
check: load_img("element/buttons/check/no.png", ui),
check_mo: load_img("element/buttons/check/no_mo.png", ui),
check_press: load_img("element/buttons/check/press.png", ui),
check_checked: load_img("element/buttons/check/yes.png", ui),
check_checked_mo: load_img("element/buttons/check/yes_mo.png", ui),
slider: load_img("element/slider/track.png", ui),
slider_indicator: load_img("element/slider/indicator.png", ui),
button_blank: ui.new_graphic(ui::Graphic::Blank),
button_blue_mo: load("element/buttons/blue_mo.png", ui),
button_blue_press: load("element/buttons/blue_press.png", ui),
button_blue_mo: load_img("element/buttons/blue_mo.png", ui),
button_blue_press: load_img("element/buttons/blue_press.png", ui),
// Window BG
window_bg: load("element/misc_backgrounds/window_bg.png", ui),
window_bg: load_img("element/misc_bg/window_bg.png", ui),
// Social Window
social_bg: load("element/misc_backgrounds/small_bg.png", ui),
social_icon: load("element/icons/social.png", ui),
social_bg: load_img("element/misc_bg/small_bg.png", ui),
social_icon: load_img("element/icons/social.png", ui),
// Map Window
map_bg: load("element/misc_backgrounds/small_bg.png", ui),
map_icon: load("element/icons/map.png", ui),
map_frame: load("element/frames/window_map.png", ui),
map_bg: load_img("element/misc_bg/small_bg.png", ui),
map_icon: load_img("element/icons/map.png", ui),
map_frame_l: load_vox("element/frames/map_l.vox", ui),
map_frame_r: load_vox("element/frames/map_r.vox", ui),
// Spell Book Window
spellbook_bg: load("element/misc_backgrounds/small_bg.png", ui),
spellbook_icon: load("element/icons/spellbook.png", ui),
spellbook_bg: load_img("element/misc_bg/small_bg.png", ui),
spellbook_icon: load_img("element/icons/spellbook.png", ui),
// Char Window
charwindow: load("element/misc_backgrounds/charwindow.png", ui),
charwindow_icon: load("element/icons/charwindow.png", ui),
charwindow_tab_bg: load("element/frames/tab.png", ui),
charwindow_tab: load("element/buttons/tab.png", ui),
charwindow_expbar: load("element/misc_backgrounds/small_bg.png", ui),
progress_frame: load("element/frames/progress_bar.png", ui),
progress: load("element/misc_backgrounds/progress.png", ui),
charwindow: load_img("element/misc_bg/charwindow.png", ui),
charwindow_icon: load_img("element/icons/charwindow.png", ui),
charwindow_tab_bg: load_img("element/frames/tab.png", ui),
charwindow_tab: load_img("element/buttons/tab.png", ui),
charwindow_expbar: load_img("element/misc_bg/small_bg.png", ui),
progress_frame: load_img("element/frames/progress_bar.png", ui),
progress: load_img("element/misc_bg/progress.png", ui),
// Quest-Log Window
questlog_bg: load("element/misc_backgrounds/small_bg.png", ui),
questlog_icon: load("element/icons/questlog.png", ui),
questlog_bg: load_img("element/misc_bg/small_bg.png", ui),
questlog_icon: load_img("element/icons/questlog.png", ui),
// Chat-Arrows
chat_arrow: load("element/buttons/arrow/chat_arrow.png", ui),
chat_arrow_mo: load("element/buttons/arrow/chat_arrow_mo.png", ui),
chat_arrow_press: load("element/buttons/arrow/chat_arrow_press.png", ui),
chat_arrow_up: load("element/buttons/arrow/chat_arrow_up.png", ui),
chat_arrow_up_mo: load("element/buttons/arrow/chat_arrow_up_mo.png", ui),
chat_arrow_up_press: load("element/buttons/arrow/chat_arrow_up_press.png", ui),
chat_arrow_down: load("element/buttons/arrow/chat_arrow_down.png", ui),
chat_arrow_down_mo: load("element/buttons/arrow/chat_arrow_down_mo.png", ui),
chat_arrow_down_press: load("element/buttons/arrow/chat_arrow_down_press.png", ui),
chat_arrow: load_img("element/buttons/arrow/chat_arrow.png", ui),
chat_arrow_mo: load_img("element/buttons/arrow/chat_arrow_mo.png", ui),
chat_arrow_press: load_img("element/buttons/arrow/chat_arrow_press.png", ui),
}
}
}
@ -527,6 +576,7 @@ impl Hud {
self.inventory_space = self.inventory_space + 1;
};
}
// Chat box
if let Some(msg) = self
.chat
@ -534,17 +584,19 @@ impl Hud {
{
events.push(Event::SendMessage(msg));
}
// Alpha Version
Text::new(version)
.top_left_with_margins_on(ui_widgets.window, 5.0, 5.0)
.font_size(14)
.color(TEXT_COLOR)
.set(self.ids.v_logo, ui_widgets);
// Help Text
if self.show_help {
Image::new(self.imgs.window_frame_2)
.top_left_with_margins_on(ui_widgets.window, 3.0, 3.0)
.w_h(300.0, 350.0)
.w_h(300.0, 190.0)
.set(self.ids.help_bg, ui_widgets);
Text::new(
@ -555,24 +607,17 @@ impl Hud {
F2 = Toggle Interface \n\
\n\
Enter = Open Chat \n\
Mouse Wheel = Scroll Chat\n\
\n\
M = Map \n\
B = Bag \n\
L = Quest-Log \n\
C = Character Window \n\
O = Social \n\
P = Spellbook \n\
N = Settings",
Mouse Wheel = Scroll Chat"
)
.color(TEXT_COLOR)
.top_left_with_margins_on(self.ids.help_bg, 20.0, 20.0)
.font_id(self.font_opensans)
.font_size(18)
.set(self.ids.help, ui_widgets);
// X-button
if Button::image(self.imgs.close_button)
.w_h(244.0 * 0.22 / 3.0, 244.0 * 0.22 / 3.0)
.w_h(100.0 * 0.2, 100.0 * 0.2)
.hover_image(self.imgs.close_button_hover)
.press_image(self.imgs.close_button_press)
.top_right_with_margins_on(self.ids.help_bg, 8.0, 3.0)
@ -586,19 +631,14 @@ impl Hud {
// Minimap frame and bg
Image::new(self.imgs.mmap_frame_bg)
.w_h(1750.0 / 8.0, 1650.0 / 8.0)
.top_right_with_margins_on(ui_widgets.window, 5.0, 30.0)
.top_right_with_margins_on(ui_widgets.window, 5.0, 5.0)
.set(self.ids.mmap_frame_bg, ui_widgets);
Image::new(self.imgs.mmap_frame)
.w_h(1750.0 / 8.0, 1650.0 / 8.0)
.top_right_with_margins_on(ui_widgets.window, 5.0, 30.0)
.top_right_with_margins_on(ui_widgets.window, 5.0, 5.0)
.set(self.ids.mmap_frame, ui_widgets);
Image::new(self.imgs.mmap_icons)
.w_h(448.0 / 14.93, 2688.0 / 14.93)
.right_from(self.ids.mmap_frame, 0.0)
.align_bottom_of(self.ids.mmap_frame)
.set(self.ids.mmap_icons, ui_widgets);
// Title
// Make it display the actual location
Text::new("Uncanny Valley")
@ -607,15 +647,20 @@ impl Hud {
.color(TEXT_COLOR)
.set(self.ids.mmap_location, ui_widgets);
// Minimap Buttons
// Buttons at Bag
// 0 Settings
if Button::image(self.imgs.mmap_button)
.w_h(448.0 / 15.0, 448.0 / 15.0)
.top_right_with_margins_on(self.ids.mmap_icons, 0.0, 0.0)
.hover_image(self.imgs.mmap_button_hover)
.press_image(self.imgs.mmap_button_press)
.set(self.ids.mmap_button_0, ui_widgets)
if Button::image(self.imgs.settings)
.w_h(29.0, 25.0)
.bottom_right_with_margins_on(ui_widgets.window, 5.0, 57.0)
.hover_image(self.imgs.settings_hover)
.press_image(self.imgs.settings_press)
.label("N")
.label_font_size(10)
.label_color(TEXT_COLOR)
.label_y(conrod_core::position::Relative::Scalar(-7.0))
.label_x(conrod_core::position::Relative::Scalar(10.0))
.set(self.ids.settings_button, ui_widgets)
.was_clicked()
{
self.open_windows = match self.open_windows {
@ -624,34 +669,61 @@ impl Hud {
};
self.bag_open = false;
};
// 2 Map
if Button::image(self.imgs.mmap_button)
.w_h(448.0 / 15.0, 448.0 / 15.0)
.down_from(self.ids.mmap_button_1, 0.0)
.hover_image(self.imgs.mmap_button_hover)
.press_image(self.imgs.mmap_button_press)
.set(self.ids.mmap_button_2, ui_widgets)
if Button::image(self.imgs.map_button)
.w_h(22.0, 25.0)
.left_from(self.ids.social_button, 10.0)
.hover_image(self.imgs.map_hover)
.press_image(self.imgs.map_press)
.label("M")
.label_font_size(10)
.label_color(TEXT_COLOR)
.label_y(conrod_core::position::Relative::Scalar(-7.0))
.label_x(conrod_core::position::Relative::Scalar(10.0))
.set(self.ids.map_button, ui_widgets)
.was_clicked()
{
self.map_open = !self.map_open;
self.bag_open = false;
};
// Other Windows can only be accessed, when Settings are closed. Opening Settings will close all other Windows including the Bag.
// Other Windows can only be accessed, when Settings are closed.
// Opening Settings will close all other Windows including the Bag.
// Opening the Map won't close the windows displayed before.
Image::new(self.imgs.social_button)
.w_h(25.0, 25.0)
.left_from(self.ids.settings_button, 10.0)
.set(self.ids.social_button_bg, ui_widgets);
Image::new(self.imgs.spellbook_button)
.w_h(28.0, 25.0)
.left_from(self.ids.map_button, 10.0)
.set(self.ids.spellbook_button_bg, ui_widgets);
Image::new(self.imgs.character_button)
.w_h(27.0, 25.0)
.left_from(self.ids.spellbook_button, 10.0)
.set(self.ids.character_button_bg, ui_widgets);
Image::new(self.imgs.qlog_button)
.w_h(23.0, 25.0)
.left_from(self.ids.character_button, 10.0)
.set(self.ids.qlog_button_bg, ui_widgets);
if match self.open_windows {
Windows::Settings => false,
_ => true,
} && self.map_open == false
{
} && self.map_open == false {
// 1 Social
if Button::image(self.imgs.mmap_button)
.w_h(448.0 / 15.0, 448.0 / 15.0)
.down_from(self.ids.mmap_button_0, 0.0)
.hover_image(self.imgs.mmap_button_hover)
.press_image(self.imgs.mmap_button_press)
.set(self.ids.mmap_button_1, ui_widgets)
if Button::image(self.imgs.social_button)
.w_h(25.0, 25.0)
.left_from(self.ids.settings_button, 10.0)
.hover_image(self.imgs.social_hover)
.press_image(self.imgs.social_press)
.label("O")
.label_font_size(10)
.label_color(TEXT_COLOR)
.label_y(conrod_core::position::Relative::Scalar(-7.0))
.label_x(conrod_core::position::Relative::Scalar(10.0))
.set(self.ids.social_button, ui_widgets)
.was_clicked()
{
self.open_windows = match self.open_windows {
@ -666,12 +738,17 @@ impl Hud {
}
// 3 Spellbook
if Button::image(self.imgs.mmap_button)
.w_h(448.0 / 15.0, 448.0 / 15.0)
.down_from(self.ids.mmap_button_2, 0.0)
.hover_image(self.imgs.mmap_button_hover)
.press_image(self.imgs.mmap_button_press)
.set(self.ids.mmap_button_3, ui_widgets)
if Button::image(self.imgs.spellbook_button)
.w_h(28.0, 25.0)
.left_from(self.ids.map_button, 10.0)
.hover_image(self.imgs.spellbook_hover)
.press_image(self.imgs.spellbook_press)
.label("P")
.label_font_size(10)
.label_color(TEXT_COLOR)
.label_y(conrod_core::position::Relative::Scalar(-7.0))
.label_x(conrod_core::position::Relative::Scalar(10.0))
.set(self.ids.spellbook_button, ui_widgets)
.was_clicked()
{
self.open_windows = match self.open_windows {
@ -684,13 +761,19 @@ impl Hud {
Windows::Settings => Windows::Settings,
};
}
// 4 Char-Window
if Button::image(self.imgs.mmap_button)
.w_h(448.0 / 15.0, 448.0 / 15.0)
.down_from(self.ids.mmap_button_3, 0.0)
.hover_image(self.imgs.mmap_button_hover)
.press_image(self.imgs.mmap_button_press)
.set(self.ids.mmap_button_4, ui_widgets)
if Button::image(self.imgs.character_button)
.w_h(27.0, 25.0)
.left_from(self.ids.spellbook_button, 10.0)
.hover_image(self.imgs.character_hover)
.press_image(self.imgs.character_press)
.label("C")
.label_font_size(10)
.label_color(TEXT_COLOR)
.label_y(conrod_core::position::Relative::Scalar(-7.0))
.label_x(conrod_core::position::Relative::Scalar(10.0))
.set(self.ids.character_button, ui_widgets)
.was_clicked()
{
self.open_windows = match self.open_windows {
@ -703,13 +786,19 @@ impl Hud {
Windows::Settings => Windows::Settings,
}
}
// 5 Quest-Log
if Button::image(self.imgs.mmap_button)
.w_h(448.0 / 15.0, 448.0 / 15.0)
.down_from(self.ids.mmap_button_4, 0.0)
.hover_image(self.imgs.mmap_button_hover)
.press_image(self.imgs.mmap_button_press)
.set(self.ids.mmap_button_5, ui_widgets)
if Button::image(self.imgs.qlog_button)
.w_h(23.0, 25.0)
.left_from(self.ids.character_button, 10.0)
.hover_image(self.imgs.qlog_hover)
.press_image(self.imgs.qlog_press)
.label("L")
.label_font_size(10)
.label_color(TEXT_COLOR)
.label_y(conrod_core::position::Relative::Scalar(-7.0))
.label_x(conrod_core::position::Relative::Scalar(10.0))
.set(self.ids.qlog_button, ui_widgets)
.was_clicked()
{
self.open_windows = match self.open_windows {
@ -724,6 +813,7 @@ impl Hud {
}
}
// Skillbar Module
// Experience-Bar
@ -862,40 +952,33 @@ impl Hud {
.w_h(40.0, 40.0)
.set(self.ids.inv_slot_0, ui_widgets);
}
// if self.ids.inv_slot.len() < self.inventory_space {
// self.ids.inv_slot.resize(self.inventory_space, &mut ui_widgets.widget_id_generator());
//}
//let num = self.ids.inv_slot.len();
//println!("self.ids.inv_slot.len(): {:?}", num);
//if num > 0 {
//Button::image(self.imgs.inv_slot)
//.top_left_with_margins_on(self.ids.inv_grid, 5.0, 5.0)
//.w_h(40.0, 40.0)
//.set(self.ids.inv_slot[0], ui_widgets);
//}
//for i in 1..5 {
//Button::image(self.imgs.inv_slot)
//.right(10.0)
//.label(&format!("{}", i + 1))
//.label_color(TEXT_COLOR)
//.label_font_size(5)
//.set(self.ids.inv_slot[i], ui_widgets);}
}
// Bag
if !self.map_open {
if !self.map_open && self.show_ui {
self.bag_open = ToggleButton::new(self.bag_open, self.imgs.bag, self.imgs.bag_open)
.bottom_right_with_margins_on(ui_widgets.window, 5.0, 5.0)
.hover_images(self.imgs.bag_hover, self.imgs.bag_open_hover)
.press_images(self.imgs.bag_press, self.imgs.bag_open_press)
.w_h(420.0 / 6.0, 480.0 / 6.0)
.w_h(420.0 / 10.0, 480.0 / 10.0)
.set(self.ids.bag, ui_widgets);
Text::new("B")
.bottom_right_with_margins_on(self.ids.bag, 0.0, 0.0)
.font_size(10)
.color(TEXT_COLOR)
.set(self.ids.bag_text, ui_widgets);
} else {
Image::new(self.imgs.bag)
.bottom_right_with_margins_on(ui_widgets.window, 5.0, 5.0)
.w_h(420.0 / 6.0, 480.0 / 6.0)
.w_h(420.0 / 10.0, 480.0 / 10.0)
.set(self.ids.bag_map_open, ui_widgets);
Text::new("B")
.bottom_right_with_margins_on(self.ids.bag, 0.0, 0.0)
.font_size(10)
.color(TEXT_COLOR)
.set(self.ids.bag_text, ui_widgets);
}
//Windows
@ -986,6 +1069,7 @@ impl Hud {
.hover_images(self.imgs.check_checked_mo, self.imgs.check_mo)
.press_images(self.imgs.check_press, self.imgs.check_press)
.set(self.ids.inventorytest_button, ui_widgets);
Text::new("Show Inventory Test Button")
.right_from(self.ids.inventorytest_button, 10.0)
.font_size(12)
@ -994,13 +1078,17 @@ impl Hud {
.color(TEXT_COLOR)
.set(self.ids.inventorytest_button_label, ui_widgets);
self.show_debug =
ToggleButton::new(self.show_debug, self.imgs.check, self.imgs.check_checked)
self.show_debug = ToggleButton::new(
self.show_debug,
self.imgs.check,
self.imgs.check_checked
)
.w_h(288.0 / 24.0, 288.0 / 24.0)
.top_left_with_margins_on(self.ids.rectangle, 65.0, 15.0)
.hover_images(self.imgs.check_checked_mo, self.imgs.check_mo)
.press_images(self.imgs.check_press, self.imgs.check_press)
.set(self.ids.debug_button, ui_widgets);
Text::new("Show Debug Window")
.right_from(self.ids.debug_button, 10.0)
.font_size(12)
@ -1010,12 +1098,14 @@ impl Hud {
.set(self.ids.debug_button_label, ui_widgets);
}
// 2 Gameplay////////////////
if Button::image(if let SettingsTab::Gameplay = self.settings_tab {
self.imgs.button_blue_mo
} else {
self.imgs.button_blank
})
}
)
.w_h(304.0 / 2.5, 80.0 / 2.5)
.hover_image(self.imgs.button_blue_mo)
.press_image(self.imgs.button_blue_press)
@ -1034,7 +1124,8 @@ impl Hud {
self.imgs.button_blue_mo
} else {
self.imgs.button_blank
})
}
)
.w_h(304.0 / 2.5, 80.0 / 2.5)
.hover_image(self.imgs.button_blue_mo)
.press_image(self.imgs.button_blue_press)
@ -1053,7 +1144,8 @@ impl Hud {
self.imgs.button_blue_mo
} else {
self.imgs.button_blank
})
}
)
.w_h(304.0 / 2.5, 80.0 / 2.5)
.hover_image(self.imgs.button_blue_mo)
.press_image(self.imgs.button_blue_press)
@ -1072,7 +1164,8 @@ impl Hud {
self.imgs.button_blue_mo
} else {
self.imgs.button_blank
})
}
)
.w_h(304.0 / 2.5, 80.0 / 2.5)
.hover_image(self.imgs.button_blue_mo)
.press_image(self.imgs.button_blue_press)
@ -1086,6 +1179,7 @@ impl Hud {
self.settings_tab = SettingsTab::Sound;
}
}
if let Some((small, char_window_open)) = match self.open_windows {
Windows::Small(small) => Some((small, false)),
Windows::CharacterAnd(Some(small)) => Some((small, true)),
@ -1098,33 +1192,35 @@ impl Hud {
if char_window_open {
Image::new(self.imgs.window_frame)
.right_from(self.ids.charwindow_frame, 20.0)
.w_h(1648.0 / 4.0, 1952.0 / 4.0)
.w_h(107.0*4.0, 125.0*4.0)
.set(self.ids.social_frame, ui_widgets);
} else {
Image::new(self.imgs.window_frame)
.top_left_with_margins_on(ui_widgets.window, 200.0, 90.0)
.top_left_with_margins_on(ui_widgets.window, 200.0, 10.0)
.w_h(1648.0 / 4.0, 1952.0 / 4.0)
.set(self.ids.social_frame, ui_widgets);
}
//BG
Image::new(self.imgs.social_bg)
.w_h(1648.0 / 4.0, 1952.0 / 4.0)
.middle_of(self.ids.social_frame)
.set(self.ids.social_bg, ui_widgets);
// Icon
Image::new(self.imgs.social_icon)
.w_h(224.0 / 3.0, 224.0 / 3.0)
.top_left_with_margins_on(self.ids.social_frame, -10.0, -10.0)
.w_h(40.0, 40.0)
.top_left_with_margins_on(self.ids.social_frame, 4.0, 4.0)
.set(self.ids.social_icon, ui_widgets);
// Content alignment
Rectangle::fill_with([362.0, 418.0], color::TRANSPARENT)
.bottom_right_with_margins_on(self.ids.social_frame, 17.0, 17.0)
.scroll_kids()
.scroll_kids_vertically()
.set(self.ids.social_bg, ui_widgets);
// X-Button
if Button::image(self.imgs.close_button)
.w_h(244.0 * 0.22 / 4.0, 244.0 * 0.22 / 4.0)
.w_h(20.0, 20.0)
.hover_image(self.imgs.close_button_hover)
.press_image(self.imgs.close_button_press)
.top_right_with_margins_on(self.ids.social_frame, 4.0, 4.0)
.top_right_with_margins_on(self.ids.social_frame, 17.0, 5.0)
.set(self.ids.social_close, ui_widgets)
.was_clicked()
{
@ -1136,7 +1232,9 @@ impl Hud {
}
// Title
Text::new("Social")
.mid_top_with_margin_on(self.ids.social_frame, 7.0)
.mid_top_with_margin_on(self.ids.social_frame, 16.0)
.font_id(self.font_metamorph)
.font_size(14)
.color(TEXT_COLOR)
.set(self.ids.social_title, ui_widgets);
}
@ -1361,17 +1459,20 @@ impl Hud {
// 2 Map
if self.map_open {
//Frame
Image::new(self.imgs.map_frame)
.middle_of(ui_widgets.window)
.w_h(5000.0 / 4.0, 3000.0 / 4.0)
.set(self.ids.map_frame, ui_widgets);
// BG
Image::new(self.imgs.map_bg)
.w_h(5000.0 / 4.0, 3000.0 / 4.0)
.middle_of(self.ids.map_frame)
.w_h(824.0, 488.0)
.middle_of(ui_widgets.window)
.set(self.ids.map_bg, ui_widgets);
// Frame
Image::new(self.imgs.map_frame_l)
.top_left_with_margins_on(self.ids.map_bg, 0.0, 0.0)
.w_h(412.0, 488.0)
.set(self.ids.map_frame_l, ui_widgets);
Image::new(self.imgs.map_frame_r)
.top_right_with_margins_on(self.ids.map_bg, 0.0, 0.0)
.w_h(1648.0 / 4.0, 1952.0 / 4.0)
.set(self.ids.map_frame_r, ui_widgets);
// Icon
Image::new(self.imgs.map_icon)
@ -1381,10 +1482,10 @@ impl Hud {
// X-Button
if Button::image(self.imgs.close_button)
.w_h(244.0 * 0.22 / 1.0, 244.0 * 0.22 / 1.0)
.w_h(4.0*2.0, 4.0*2.0)
.hover_image(self.imgs.close_button_hover)
.press_image(self.imgs.close_button_press)
.top_right_with_margins_on(self.ids.map_frame, 1.0, 1.0)
.top_right_with_margins_on(self.ids.map_frame_r, 1.0, 1.0)
.set(self.ids.map_close, ui_widgets)
.was_clicked()
{
@ -1392,12 +1493,13 @@ impl Hud {
}
// Title
Text::new("Map")
.mid_top_with_margin_on(self.ids.map_frame, -7.0)
.mid_top_with_margin_on(self.ids.map_bg, -7.0)
.font_size(50)
.color(TEXT_COLOR)
.set(self.ids.map_title, ui_widgets);
}
// ESC-MENU
// Background
if self.menu_open {

View File

@ -5,6 +5,7 @@ use crate::{
};
use common::{
assets,
figure::Segment,
comp::character::{
Character,
Race,
@ -33,7 +34,7 @@ widget_ids! {
bg_selection,
bg_creation,
v_logo,
alpha_version,
version,
// Windows
selection_window,
@ -173,12 +174,12 @@ struct Imgs {
v_logo: ImgId,
bg_selection: ImgId,
bg_creation: ImgId,
button_dark: ImgId,
button_dark_hover: ImgId,
button_dark_press: ImgId,
button_dark_red: ImgId,
button_dark_red_hover: ImgId,
button_dark_red_press: ImgId,
button: ImgId,
button_hover: ImgId,
button_press: ImgId,
button_red: ImgId,
button_red_hover: ImgId,
button_red_press: ImgId,
selection_window: ImgId,
test_char_l_button: ImgId,
test_char_l_big: ImgId,
@ -241,7 +242,7 @@ struct Imgs {
}
impl Imgs {
fn new(ui: &mut Ui, renderer: &mut Renderer) -> Imgs {
let mut load = |filename| {
let load_img = |filename, ui: &mut Ui| {
let fullpath: String = ["/voxygen/", filename].concat();
let image = image::load_from_memory(
assets::load(fullpath.as_str())
@ -251,75 +252,85 @@ impl Imgs {
.unwrap();
ui.new_graphic(ui::Graphic::Image(image))
};
let load_vox = |filename, ui: &mut Ui| {
let fullpath: String = ["/voxygen/", filename].concat();
let dot_vox = dot_vox::load_bytes(
assets::load(fullpath.as_str())
.expect("Error loading file")
.as_slice(),
)
.unwrap();
ui.new_graphic(ui::Graphic::Voxel(Segment::from(dot_vox)))
};
Imgs {
v_logo: load("element/v_logo.png"),
bg_selection: load("background/bg_selection.png"),
bg_creation: load("background/bg_creation.png"),
selection_window: load("element/frames/selection.png"),
button_dark: load("element/buttons/button_dark.png"),
button_dark_hover: load("element/buttons/button_dark_hover.png"),
button_dark_press: load("element/buttons/button_dark_press.png"),
button_dark_red: load("element/buttons/button_dark_red.png"),
button_dark_red_hover: load("element/buttons/button_dark_red_hover.png"),
button_dark_red_press: load("element/buttons/button_dark_red_press.png"),
test_char_l_button: load("element/misc_backgrounds/test_char_l.png"),
test_char_l_big: load("element/misc_backgrounds/test_char_l_big.png"),
name_input: load("element/misc_backgrounds/textbox.png"),
creation_window: load("element/frames/char_creation.png"),
creation_window_body: load("element/frames/body_creation.png"),
frame_closed: load("element/buttons/frame/closed.png"),
frame_closed_mo: load("element/buttons/frame/closed_mo.png"),
frame_closed_press: load("element/buttons/frame/closed_press.png"),
frame_open: load("element/buttons/frame/open.png"),
frame_open_mo: load("element/buttons/frame/open_mo.png"),
frame_open_press: load("element/buttons/frame/open_press.png"),
skin_eyes_window: load("element/frames/skin_eyes.png"),
hair_window: load("element/frames/skin_eyes.png"),
accessories_window: load("element/frames/skin_eyes.png"),
color_picker_bg: load("element/misc_backgrounds/color_picker_blank.png"),
slider_range: load("element/slider/track.png"),
slider_indicator: load("element/slider/indicator.png"),
window_frame_2: load("element/frames/window_2.png"),
v_logo: load_vox("element/v_logo.vox", ui),
bg_selection: load_img("background/bg_selection.png", ui),
bg_creation: load_img("background/bg_creation.png", ui),
selection_window: load_img("element/frames/selection.png", ui),
button: load_vox("element/buttons/button.vox", ui),
button_hover: load_vox("element/buttons/button_hover.vox", ui),
button_press: load_vox("element/buttons/button_press.vox", ui),
button_red: load_vox("element/buttons/button_red.vox", ui),
button_red_hover: load_vox("element/buttons/button_red_hover.vox", ui),
button_red_press: load_vox("element/buttons/button_red_press.vox", ui),
test_char_l_button: load_img("element/misc_bg/test_char_l.png", ui),
test_char_l_big: load_img("element/misc_bg/test_char_l_big.png", ui),
name_input: load_vox("element/misc_bg/textbox.vox", ui),
creation_window: load_img("element/frames/char_creation.png", ui),
creation_window_body: load_img("element/frames/body_creation.png", ui),
frame_closed: load_img("element/buttons/frame/closed.png", ui),
frame_closed_mo: load_img("element/buttons/frame/closed_mo.png", ui),
frame_closed_press: load_img("element/buttons/frame/closed_press.png", ui),
frame_open: load_img("element/buttons/frame/open.png", ui),
frame_open_mo: load_img("element/buttons/frame/open_mo.png", ui),
frame_open_press: load_img("element/buttons/frame/open_press.png", ui),
skin_eyes_window: load_img("element/frames/skin_eyes.png", ui),
hair_window: load_img("element/frames/skin_eyes.png", ui),
accessories_window: load_img("element/frames/skin_eyes.png", ui),
color_picker_bg: load_img("element/misc_bg/color_picker_blank.png", ui),
slider_range: load_img("element/slider/track.png", ui),
slider_indicator: load_img("element/slider/indicator.png", ui),
window_frame_2: load_img("element/frames/window_2.png", ui),
// Weapon Icons
daggers: load("element/icons/daggers.png"),
sword_shield: load("element/icons/swordshield.png"),
sword: load("element/icons/sword.png"),
axe: load("element/icons/axe.png"),
hammer: load("element/icons/hammer.png"),
bow: load("element/icons/bow.png"),
staff: load("element/icons/staff.png"),
//test_char_m_button: load("test_char_m_button"),
//test_char_r_button: load("test_char_r_button"),
daggers: load_img("element/icons/daggers.png", ui),
sword_shield: load_img("element/icons/swordshield.png", ui),
sword: load_img("element/icons/sword.png", ui),
axe: load_img("element/icons/axe.png", ui),
hammer: load_img("element/icons/hammer.png", ui),
bow: load_img("element/icons/bow.png", ui),
staff: load_img("element/icons/staff.png", ui),
//test_char_m_button: load_img("test_char_m_button"),
//test_char_r_button: load_img("test_char_r_button"),
// Race Icons
male: load("element/icons/male.png"),
female: load("element/icons/female.png"),
human_m: load("element/icons/human_m.png"),
human_f: load("element/icons/human_f.png"),
orc_m: load("element/icons/orc_m.png"),
orc_f: load("element/icons/orc_f.png"),
dwarf_m: load("element/icons/dwarf_m.png"),
dwarf_f: load("element/icons/dwarf_f.png"),
undead_m: load("element/icons/ud_m.png"),
undead_f: load("element/icons/ud_f.png"),
elf_m: load("element/icons/elf_m.png"),
elf_f: load("element/icons/elf_f.png"),
danari_m: load("element/icons/danari_m.png"),
danari_f: load("element/icons/danari_f.png"),
male: load_img("element/icons/male.png", ui),
female: load_img("element/icons/female.png", ui),
human_m: load_img("element/icons/human_m.png", ui),
human_f: load_img("element/icons/human_f.png", ui),
orc_m: load_img("element/icons/orc_m.png", ui),
orc_f: load_img("element/icons/orc_f.png", ui),
dwarf_m: load_img("element/icons/dwarf_m.png", ui),
dwarf_f: load_img("element/icons/dwarf_f.png", ui),
undead_m: load_img("element/icons/ud_m.png", ui),
undead_f: load_img("element/icons/ud_f.png", ui),
elf_m: load_img("element/icons/elf_m.png", ui),
elf_f: load_img("element/icons/elf_f.png", ui),
danari_m: load_img("element/icons/danari_m.png", ui),
danari_f: load_img("element/icons/danari_f.png", ui),
// Arrows
arrow_left: load("element/buttons/arrow/left.png"),
arrow_left_mo: load("element/buttons/arrow/left_mo.png"),
arrow_left_press: load("element/buttons/arrow/left_press.png"),
arrow_left_grey: load("element/buttons/arrow/left_inactive.png"),
arrow_right: load("element/buttons/arrow/right.png"),
arrow_right_mo: load("element/buttons/arrow/right_mo.png"),
arrow_right_press: load("element/buttons/arrow/right_press.png"),
arrow_right_grey: load("element/buttons/arrow/right_inactive.png"),
arrow_left: load_img("element/buttons/arrow/left.png", ui),
arrow_left_mo: load_img("element/buttons/arrow/left_mo.png", ui),
arrow_left_press: load_img("element/buttons/arrow/left_press.png", ui),
arrow_left_grey: load_img("element/buttons/arrow/left_inactive.png", ui),
arrow_right: load_img("element/buttons/arrow/right.png", ui),
arrow_right_mo: load_img("element/buttons/arrow/right_mo.png", ui),
arrow_right_press: load_img("element/buttons/arrow/right_press.png", ui),
arrow_right_grey: load_img("element/buttons/arrow/right_inactive.png", ui),
// Icon Borders
icon_border: load("element/buttons/border.png"),
icon_border_mo: load("element/buttons/border_mo.png"),
icon_border_press: load("element/buttons/border_press.png"),
icon_border_pressed: load("element/buttons/border_pressed.png"),
icon_border: load_img("element/buttons/border.png", ui),
icon_border_mo: load_img("element/buttons/border_mo.png", ui),
icon_border_press: load_img("element/buttons/border_press.png", ui),
icon_border_pressed: load_img("element/buttons/border_pressed.png", ui),
}
}
}
@ -415,11 +426,11 @@ impl CharSelectionUi {
.set(self.ids.bg_selection, ui_widgets);
// Logout_Button
if Button::image(self.imgs.button_dark)
if Button::image(self.imgs.button)
.bottom_left_with_margins_on(self.ids.bg_selection, 10.0, 10.0)
.w_h(150.0, 40.0)
.hover_image(self.imgs.button_dark_hover)
.press_image(self.imgs.button_dark_press)
.hover_image(self.imgs.button_hover)
.press_image(self.imgs.button_press)
.label("Logout")
.label_color(TEXT_COLOR)
.label_font_size(18)
@ -431,11 +442,11 @@ impl CharSelectionUi {
}
// Create Character Button
if Button::image(self.imgs.button_dark)
if Button::image(self.imgs.button)
.mid_bottom_with_margin_on(self.ids.bg_selection, 10.0)
.w_h(270.0, 50.0)
.hover_image(self.imgs.button_dark_hover)
.press_image(self.imgs.button_dark_press)
.hover_image(self.imgs.button_hover)
.press_image(self.imgs.button_press)
.label("Create Character")
.label_color(TEXT_COLOR)
.label_font_size(20)
@ -459,15 +470,15 @@ impl CharSelectionUi {
}
// Veloren Logo and Alpha Version
Button::image(self.imgs.v_logo)
.w_h(346.0, 111.0)
.top_left_with_margins_on(self.ids.bg_selection, 30.0, 40.0)
.label(version)
.label_rgba(1.0, 1.0, 1.0, 1.0)
.label_font_size(10)
.label_y(conrod_core::position::Relative::Scalar(-40.0))
.label_x(conrod_core::position::Relative::Scalar(-100.0))
Image::new(self.imgs.v_logo)
.w_h(123.0*3.0, 35.0*3.0)
.top_left_with_margins(30.0, 30.0)
.set(self.ids.v_logo, ui_widgets);
Text::new(version)
.top_left_with_margins_on(ui_widgets.window, 5.0, 5.0)
.font_size(14)
.color(TEXT_COLOR)
.set(self.ids.version, ui_widgets);
// Click Character to Login <-- Temporary!
Image::new(self.imgs.window_frame_2)
.mid_top_with_margin_on(self.ids.bg_selection, 60.0)
@ -506,11 +517,11 @@ impl CharSelectionUi {
}
// Enter World Button
if Button::image(self.imgs.button_dark)
if Button::image(self.imgs.button)
.mid_bottom_with_margin_on(self.ids.selection_window, 65.0)
.w_h(210.0, 55.0)
.hover_image(self.imgs.button_dark_hover)
.press_image(self.imgs.button_dark_press)
.hover_image(self.imgs.button_hover)
.press_image(self.imgs.button_press)
.label("Enter World")
.label_color(TEXT_COLOR)
.label_font_size(22)
@ -523,11 +534,11 @@ impl CharSelectionUi {
}
// Delete Button
if Button::image(self.imgs.button_dark_red)
if Button::image(self.imgs.button_red)
.bottom_right_with_margins_on(self.ids.selection_window, -25.0, 0.0)
.w_h(100.0, 20.0)
.hover_image(self.imgs.button_dark_red_hover)
.press_image(self.imgs.button_dark_red_press)
.hover_image(self.imgs.button_red_hover)
.press_image(self.imgs.button_red_press)
.label("Delete")
.label_color(TEXT_COLOR)
.label_font_size(12)
@ -544,11 +555,11 @@ impl CharSelectionUi {
.middle_of(ui_widgets.window)
.set(self.ids.bg_creation, ui_widgets);
// Back Button
if Button::image(self.imgs.button_dark)
if Button::image(self.imgs.button)
.bottom_left_with_margins_on(self.ids.bg_creation, 10.0, 10.0)
.w_h(150.0, 40.0)
.hover_image(self.imgs.button_dark_hover)
.press_image(self.imgs.button_dark_press)
.hover_image(self.imgs.button_hover)
.press_image(self.imgs.button_press)
.label("Back")
.label_color(TEXT_COLOR)
.label_font_size(18)
@ -559,11 +570,11 @@ impl CharSelectionUi {
self.character_creation = false;
}
// Create Button
if Button::image(self.imgs.button_dark)
if Button::image(self.imgs.button)
.bottom_right_with_margins_on(self.ids.bg_creation, 10.0, 10.0)
.w_h(150.0, 40.0)
.hover_image(self.imgs.button_dark_hover)
.press_image(self.imgs.button_dark_press)
.hover_image(self.imgs.button_hover)
.press_image(self.imgs.button_press)
.label("Create")
.label_color(TEXT_COLOR)
.label_font_size(18)

View File

@ -45,6 +45,7 @@ widget_ids! {
// Error
error_frame,
button_ok,
version,
}
}
@ -54,18 +55,13 @@ struct Imgs {
input_bg: ImgId,
login_button: ImgId,
login_button_hover: ImgId,
login_button_press: ImgId,
button: ImgId,
button_hover: ImgId,
button_press: ImgId,
error_frame: ImgId,
button_dark: ImgId,
button_dark_hover: ImgId,
button_dark_press: ImgId,
button: ImgId,
button_hover: ImgId,
button_press: ImgId,
}
impl Imgs {
fn new(ui: &mut Ui, renderer: &mut Renderer) -> Imgs {
@ -91,27 +87,18 @@ impl Imgs {
};
Imgs {
bg: load_img("background/bg_main.png", ui),
v_logo: load_img("element/v_logo.png", ui),
v_logo: load_vox("element/v_logo.vox", ui),
// Input fields
input_bg: load_img("element/misc_backgrounds/textbox.png", ui),
input_bg: load_vox("element/misc_bg/textbox.vox", ui),
// Login button
login_button: load_img("element/buttons/button_login.png", ui),
login_button_hover: load_img("element/buttons/button_login_hover.png", ui),
login_button_press: load_img("element/buttons/button_login_press.png", ui),
// Servers, settings, and quit buttons
//button: load_vox("element/buttons/button.vox", ui),
button: load_img("element/buttons/button.png", ui),
button_hover: load_img("element/buttons/button_hover.png", ui),
button_press: load_img("element/buttons/button_press.png", ui),
//Error
error_frame: load_img("element/frames/window_2.png", ui),
button_dark: load_img("element/buttons/button_dark.png", ui),
button_dark_hover: load_img("element/buttons/button_dark_hover.png", ui),
button_dark_press: load_img("element/buttons/button_dark_press.png", ui),
button_dark: load_vox("element/buttons/button_dark.vox", ui),
button_dark_hover: load_vox("element/buttons/button_dark_hover.vox", ui),
button_dark_press: load_vox("element/buttons/button_dark_press.vox", ui),
button: load_vox("element/buttons/button.vox", ui),
button_hover: load_vox("element/buttons/button_hover.vox", ui),
button_press: load_vox("element/buttons/button_press.vox", ui),
}
}
}
@ -184,16 +171,15 @@ impl MainMenuUi {
Image::new(self.imgs.bg)
.middle_of(ui_widgets.window)
.set(self.ids.bg, ui_widgets);
Button::image(self.imgs.v_logo)
.w_h(346.0, 111.0)
.top_left_with_margins(30.0, 40.0)
.label(version)
.label_rgba(1.0, 1.0, 1.0, 1.0)
.label_font_size(10)
.label_y(Relative::Scalar(-40.0))
.label_x(Relative::Scalar(-100.0))
Image::new(self.imgs.v_logo)
.w_h(123.0*3.0, 35.0*3.0)
.top_left_with_margins(30.0, 30.0)
.set(self.ids.v_logo, ui_widgets);
Text::new(version)
.top_left_with_margins_on(ui_widgets.window, 5.0, 5.0)
.font_size(14)
.color(TEXT_COLOR)
.set(self.ids.version, ui_widgets);
// Input fields
// Used when the login button is pressed, or enter is pressed within input field
macro_rules! login {
@ -368,7 +354,7 @@ impl MainMenuUi {
// Login button
// Change button text and remove hover/press images if a connection is in progress
if let Some(start) = self.connecting {
Button::image(self.imgs.login_button)
Button::image(self.imgs.button)
.w_h(258.0, 68.0)
.down_from(self.ids.address_bg, 20.0)
.align_middle_x_of(self.ids.address_bg)
@ -386,9 +372,9 @@ impl MainMenuUi {
.label_y(Relative::Scalar(5.0))
.set(self.ids.login_button, ui_widgets);
} else {
if Button::image(self.imgs.login_button)
.hover_image(self.imgs.login_button_hover)
.press_image(self.imgs.login_button_press)
if Button::image(self.imgs.button)
.hover_image(self.imgs.button_hover)
.press_image(self.imgs.button_press)
.w_h(258.0, 68.0)
.down_from(self.ids.address_bg, 20.0)
.align_middle_x_of(self.ids.address_bg)
@ -404,9 +390,9 @@ impl MainMenuUi {
};
// Singleplayer button
if Button::image(self.imgs.login_button)
.hover_image(self.imgs.login_button_hover)
.press_image(self.imgs.login_button_press)
if Button::image(self.imgs.button)
.hover_image(self.imgs.button_hover)
.press_image(self.imgs.button_press)
.w_h(258.0, 68.0)
.down_from(self.ids.login_button, 20.0)
.align_middle_x_of(self.ids.address_bg)