mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Fixed Tutorial HUD being covered up by other HUD elements.
This commit is contained in:
parent
a8601bc76e
commit
fa5555a348
@ -2248,160 +2248,6 @@ impl Hud {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Temporary Example Quest
|
|
||||||
let arrow_ani = (self.pulse * 4.0/* speed factor */).cos() * 0.5 + 0.8; //Animation timer
|
|
||||||
let show_intro = self.show.intro; // borrow check doesn't understand closures
|
|
||||||
if let Some(toggle_cursor_key) = global_state
|
|
||||||
.settings
|
|
||||||
.controls
|
|
||||||
.get_binding(GameInput::ToggleCursor)
|
|
||||||
.filter(|_| !show_intro)
|
|
||||||
{
|
|
||||||
prof_span!("temporary example quest");
|
|
||||||
match global_state.settings.interface.intro_show {
|
|
||||||
Intro::Show => {
|
|
||||||
if Button::image(self.imgs.button)
|
|
||||||
.w_h(200.0, 60.0)
|
|
||||||
.hover_image(self.imgs.button_hover)
|
|
||||||
.press_image(self.imgs.button_press)
|
|
||||||
.bottom_left_with_margins_on(ui_widgets.window, 350.0, 150.0)
|
|
||||||
.label(i18n.get("hud.tutorial_btn"))
|
|
||||||
.label_font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.label_font_size(self.fonts.cyri.scale(18))
|
|
||||||
.label_color(TEXT_COLOR)
|
|
||||||
.label_y(conrod_core::position::Relative::Scalar(2.0))
|
|
||||||
.image_color(ENEMY_HP_COLOR)
|
|
||||||
.set(self.ids.intro_button, ui_widgets)
|
|
||||||
.was_clicked()
|
|
||||||
{
|
|
||||||
self.show.intro = true;
|
|
||||||
self.show.want_grab = true;
|
|
||||||
}
|
|
||||||
Image::new(self.imgs.sp_indicator_arrow)
|
|
||||||
.w_h(20.0, 11.0)
|
|
||||||
.mid_top_with_margin_on(self.ids.intro_button, -20.0 + arrow_ani as f64)
|
|
||||||
.color(Some(QUALITY_LEGENDARY))
|
|
||||||
.set(self.ids.tut_arrow, ui_widgets);
|
|
||||||
Text::new(&i18n.get("hud.tutorial_click_here").replace(
|
|
||||||
"{key}",
|
|
||||||
toggle_cursor_key.display_string(key_layout).as_str(),
|
|
||||||
))
|
|
||||||
.mid_top_with_margin_on(self.ids.tut_arrow, -40.0)
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.font_size(self.fonts.cyri.scale(14))
|
|
||||||
.center_justify()
|
|
||||||
.color(BLACK)
|
|
||||||
.set(self.ids.tut_arrow_txt_bg, ui_widgets);
|
|
||||||
Text::new(&i18n.get("hud.tutorial_click_here").replace(
|
|
||||||
"{key}",
|
|
||||||
toggle_cursor_key.display_string(key_layout).as_str(),
|
|
||||||
))
|
|
||||||
.bottom_right_with_margins_on(self.ids.tut_arrow_txt_bg, 1.0, 1.0)
|
|
||||||
.center_justify()
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.font_size(self.fonts.cyri.scale(14))
|
|
||||||
.color(QUALITY_LEGENDARY)
|
|
||||||
.set(self.ids.tut_arrow_txt, ui_widgets);
|
|
||||||
},
|
|
||||||
Intro::Never => {
|
|
||||||
self.show.intro = false;
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// TODO: Add event/stat based tutorial system
|
|
||||||
if self.show.intro && !self.show.esc_menu {
|
|
||||||
prof_span!("intro show");
|
|
||||||
match global_state.settings.interface.intro_show {
|
|
||||||
Intro::Show => {
|
|
||||||
if self.show.intro {
|
|
||||||
self.show.want_grab = false;
|
|
||||||
let quest_headline = i18n.get("hud.temp_quest_headline");
|
|
||||||
let quest_text = i18n.get("hud.temp_quest_text");
|
|
||||||
Image::new(self.imgs.quest_bg)
|
|
||||||
.w_h(404.0, 858.0)
|
|
||||||
.middle_of(ui_widgets.window)
|
|
||||||
.set(self.ids.quest_bg, ui_widgets);
|
|
||||||
|
|
||||||
Text::new(quest_headline)
|
|
||||||
.mid_top_with_margin_on(self.ids.quest_bg, 310.0)
|
|
||||||
.font_size(self.fonts.cyri.scale(30))
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.color(TEXT_BG)
|
|
||||||
.set(self.ids.q_headline_bg, ui_widgets);
|
|
||||||
Text::new(quest_headline)
|
|
||||||
.bottom_left_with_margins_on(self.ids.q_headline_bg, 1.0, 1.0)
|
|
||||||
.font_size(self.fonts.cyri.scale(30))
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.color(TEXT_COLOR)
|
|
||||||
.set(self.ids.q_headline, ui_widgets);
|
|
||||||
|
|
||||||
Text::new(quest_text)
|
|
||||||
.mid_top_with_margin_on(self.ids.quest_bg, 360.0)
|
|
||||||
.w(350.0)
|
|
||||||
.font_size(self.fonts.cyri.scale(17))
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.color(TEXT_BG)
|
|
||||||
.set(self.ids.q_text_bg, ui_widgets);
|
|
||||||
Text::new(quest_text)
|
|
||||||
.bottom_left_with_margins_on(self.ids.q_text_bg, 1.0, 1.0)
|
|
||||||
.w(350.0)
|
|
||||||
.font_size(self.fonts.cyri.scale(17))
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.color(TEXT_COLOR)
|
|
||||||
.set(self.ids.q_text, ui_widgets);
|
|
||||||
|
|
||||||
if Button::image(self.imgs.button)
|
|
||||||
.w_h(212.0, 52.0)
|
|
||||||
.hover_image(self.imgs.button_hover)
|
|
||||||
.press_image(self.imgs.button_press)
|
|
||||||
.mid_bottom_with_margin_on(self.ids.q_text_bg, -80.0)
|
|
||||||
.label(i18n.get("common.close"))
|
|
||||||
.label_font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.label_font_size(self.fonts.cyri.scale(22))
|
|
||||||
.label_color(TEXT_COLOR)
|
|
||||||
.label_y(conrod_core::position::Relative::Scalar(2.0))
|
|
||||||
.set(self.ids.accept_button, ui_widgets)
|
|
||||||
.was_clicked()
|
|
||||||
{
|
|
||||||
self.show.intro = false;
|
|
||||||
events.push(Event::SettingsChange(
|
|
||||||
InterfaceChange::Intro(Intro::Never).into(),
|
|
||||||
));
|
|
||||||
self.show.want_grab = true;
|
|
||||||
}
|
|
||||||
if !self.show.crafting && !self.show.bag {
|
|
||||||
Image::new(self.imgs.sp_indicator_arrow)
|
|
||||||
.w_h(20.0, 11.0)
|
|
||||||
.bottom_right_with_margins_on(
|
|
||||||
ui_widgets.window,
|
|
||||||
40.0 + arrow_ani as f64,
|
|
||||||
205.0,
|
|
||||||
)
|
|
||||||
.color(Some(QUALITY_LEGENDARY))
|
|
||||||
.set(self.ids.tut_arrow, ui_widgets);
|
|
||||||
Text::new(i18n.get("hud.tutorial_elements"))
|
|
||||||
.mid_top_with_margin_on(self.ids.tut_arrow, -50.0)
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.font_size(self.fonts.cyri.scale(40))
|
|
||||||
.color(BLACK)
|
|
||||||
.floating(true)
|
|
||||||
.set(self.ids.tut_arrow_txt_bg, ui_widgets);
|
|
||||||
Text::new(i18n.get("hud.tutorial_elements"))
|
|
||||||
.bottom_right_with_margins_on(self.ids.tut_arrow_txt_bg, 1.0, 1.0)
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.font_size(self.fonts.cyri.scale(40))
|
|
||||||
.color(QUALITY_LEGENDARY)
|
|
||||||
.floating(true)
|
|
||||||
.set(self.ids.tut_arrow_txt, ui_widgets);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
Intro::Never => {
|
|
||||||
self.show.intro = false;
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Display debug window.
|
// Display debug window.
|
||||||
// TODO:
|
// TODO:
|
||||||
// Make it use i18n keys.
|
// Make it use i18n keys.
|
||||||
@ -3819,6 +3665,160 @@ impl Hud {
|
|||||||
}
|
}
|
||||||
self.hotbar.maintain_abilities(client);
|
self.hotbar.maintain_abilities(client);
|
||||||
|
|
||||||
|
// Temporary Example Quest
|
||||||
|
let arrow_ani = (self.pulse * 4.0/* speed factor */).cos() * 0.5 + 0.8; //Animation timer
|
||||||
|
let show_intro = self.show.intro; // borrow check doesn't understand closures
|
||||||
|
if let Some(toggle_cursor_key) = global_state
|
||||||
|
.settings
|
||||||
|
.controls
|
||||||
|
.get_binding(GameInput::ToggleCursor)
|
||||||
|
.filter(|_| !show_intro)
|
||||||
|
{
|
||||||
|
prof_span!("temporary example quest");
|
||||||
|
match global_state.settings.interface.intro_show {
|
||||||
|
Intro::Show => {
|
||||||
|
if Button::image(self.imgs.button)
|
||||||
|
.w_h(200.0, 60.0)
|
||||||
|
.hover_image(self.imgs.button_hover)
|
||||||
|
.press_image(self.imgs.button_press)
|
||||||
|
.bottom_left_with_margins_on(ui_widgets.window, 350.0, 150.0)
|
||||||
|
.label(i18n.get("hud.tutorial_btn"))
|
||||||
|
.label_font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.label_font_size(self.fonts.cyri.scale(18))
|
||||||
|
.label_color(TEXT_COLOR)
|
||||||
|
.label_y(conrod_core::position::Relative::Scalar(2.0))
|
||||||
|
.image_color(ENEMY_HP_COLOR)
|
||||||
|
.set(self.ids.intro_button, ui_widgets)
|
||||||
|
.was_clicked()
|
||||||
|
{
|
||||||
|
self.show.intro = true;
|
||||||
|
self.show.want_grab = true;
|
||||||
|
}
|
||||||
|
Image::new(self.imgs.sp_indicator_arrow)
|
||||||
|
.w_h(20.0, 11.0)
|
||||||
|
.mid_top_with_margin_on(self.ids.intro_button, -20.0 + arrow_ani as f64)
|
||||||
|
.color(Some(QUALITY_LEGENDARY))
|
||||||
|
.set(self.ids.tut_arrow, ui_widgets);
|
||||||
|
Text::new(&i18n.get("hud.tutorial_click_here").replace(
|
||||||
|
"{key}",
|
||||||
|
toggle_cursor_key.display_string(key_layout).as_str(),
|
||||||
|
))
|
||||||
|
.mid_top_with_margin_on(self.ids.tut_arrow, -40.0)
|
||||||
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.font_size(self.fonts.cyri.scale(14))
|
||||||
|
.center_justify()
|
||||||
|
.color(BLACK)
|
||||||
|
.set(self.ids.tut_arrow_txt_bg, ui_widgets);
|
||||||
|
Text::new(&i18n.get("hud.tutorial_click_here").replace(
|
||||||
|
"{key}",
|
||||||
|
toggle_cursor_key.display_string(key_layout).as_str(),
|
||||||
|
))
|
||||||
|
.bottom_right_with_margins_on(self.ids.tut_arrow_txt_bg, 1.0, 1.0)
|
||||||
|
.center_justify()
|
||||||
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.font_size(self.fonts.cyri.scale(14))
|
||||||
|
.color(QUALITY_LEGENDARY)
|
||||||
|
.set(self.ids.tut_arrow_txt, ui_widgets);
|
||||||
|
},
|
||||||
|
Intro::Never => {
|
||||||
|
self.show.intro = false;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// TODO: Add event/stat based tutorial system
|
||||||
|
if self.show.intro && !self.show.esc_menu {
|
||||||
|
prof_span!("intro show");
|
||||||
|
match global_state.settings.interface.intro_show {
|
||||||
|
Intro::Show => {
|
||||||
|
if self.show.intro {
|
||||||
|
self.show.want_grab = false;
|
||||||
|
let quest_headline = i18n.get("hud.temp_quest_headline");
|
||||||
|
let quest_text = i18n.get("hud.temp_quest_text");
|
||||||
|
Image::new(self.imgs.quest_bg)
|
||||||
|
.w_h(404.0, 858.0)
|
||||||
|
.middle_of(ui_widgets.window)
|
||||||
|
.set(self.ids.quest_bg, ui_widgets);
|
||||||
|
|
||||||
|
Text::new(quest_headline)
|
||||||
|
.mid_top_with_margin_on(self.ids.quest_bg, 310.0)
|
||||||
|
.font_size(self.fonts.cyri.scale(30))
|
||||||
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.color(TEXT_BG)
|
||||||
|
.set(self.ids.q_headline_bg, ui_widgets);
|
||||||
|
Text::new(quest_headline)
|
||||||
|
.bottom_left_with_margins_on(self.ids.q_headline_bg, 1.0, 1.0)
|
||||||
|
.font_size(self.fonts.cyri.scale(30))
|
||||||
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.color(TEXT_COLOR)
|
||||||
|
.set(self.ids.q_headline, ui_widgets);
|
||||||
|
|
||||||
|
Text::new(quest_text)
|
||||||
|
.mid_top_with_margin_on(self.ids.quest_bg, 360.0)
|
||||||
|
.w(350.0)
|
||||||
|
.font_size(self.fonts.cyri.scale(17))
|
||||||
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.color(TEXT_BG)
|
||||||
|
.set(self.ids.q_text_bg, ui_widgets);
|
||||||
|
Text::new(quest_text)
|
||||||
|
.bottom_left_with_margins_on(self.ids.q_text_bg, 1.0, 1.0)
|
||||||
|
.w(350.0)
|
||||||
|
.font_size(self.fonts.cyri.scale(17))
|
||||||
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.color(TEXT_COLOR)
|
||||||
|
.set(self.ids.q_text, ui_widgets);
|
||||||
|
|
||||||
|
if Button::image(self.imgs.button)
|
||||||
|
.w_h(212.0, 52.0)
|
||||||
|
.hover_image(self.imgs.button_hover)
|
||||||
|
.press_image(self.imgs.button_press)
|
||||||
|
.mid_bottom_with_margin_on(self.ids.q_text_bg, -80.0)
|
||||||
|
.label(i18n.get("common.close"))
|
||||||
|
.label_font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.label_font_size(self.fonts.cyri.scale(22))
|
||||||
|
.label_color(TEXT_COLOR)
|
||||||
|
.label_y(conrod_core::position::Relative::Scalar(2.0))
|
||||||
|
.set(self.ids.accept_button, ui_widgets)
|
||||||
|
.was_clicked()
|
||||||
|
{
|
||||||
|
self.show.intro = false;
|
||||||
|
events.push(Event::SettingsChange(
|
||||||
|
InterfaceChange::Intro(Intro::Never).into(),
|
||||||
|
));
|
||||||
|
self.show.want_grab = true;
|
||||||
|
}
|
||||||
|
if !self.show.crafting && !self.show.bag {
|
||||||
|
Image::new(self.imgs.sp_indicator_arrow)
|
||||||
|
.w_h(20.0, 11.0)
|
||||||
|
.bottom_right_with_margins_on(
|
||||||
|
ui_widgets.window,
|
||||||
|
40.0 + arrow_ani as f64,
|
||||||
|
205.0,
|
||||||
|
)
|
||||||
|
.color(Some(QUALITY_LEGENDARY))
|
||||||
|
.set(self.ids.tut_arrow, ui_widgets);
|
||||||
|
Text::new(i18n.get("hud.tutorial_elements"))
|
||||||
|
.mid_top_with_margin_on(self.ids.tut_arrow, -50.0)
|
||||||
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.font_size(self.fonts.cyri.scale(40))
|
||||||
|
.color(BLACK)
|
||||||
|
.floating(true)
|
||||||
|
.set(self.ids.tut_arrow_txt_bg, ui_widgets);
|
||||||
|
Text::new(i18n.get("hud.tutorial_elements"))
|
||||||
|
.bottom_right_with_margins_on(self.ids.tut_arrow_txt_bg, 1.0, 1.0)
|
||||||
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
|
.font_size(self.fonts.cyri.scale(40))
|
||||||
|
.color(QUALITY_LEGENDARY)
|
||||||
|
.floating(true)
|
||||||
|
.set(self.ids.tut_arrow_txt, ui_widgets);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Intro::Never => {
|
||||||
|
self.show.intro = false;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
events
|
events
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user