From a836b61190ed47960b9639aee69bed9b7f9482a7 Mon Sep 17 00:00:00 2001 From: floppy Date: Mon, 17 Jan 2022 23:45:51 +0100 Subject: [PATCH] allow enabling/disabling biome names on map --- .../voxygen/element/ui/map/buttons/biome.png | 3 ++ assets/voxygen/i18n/en/hud/map.ron | 1 + voxygen/src/hud/img_ids.rs | 1 + voxygen/src/hud/map.rs | 44 ++++++++++++++++++- voxygen/src/session/settings_change.rs | 4 ++ voxygen/src/settings/interface.rs | 2 + 6 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 assets/voxygen/element/ui/map/buttons/biome.png diff --git a/assets/voxygen/element/ui/map/buttons/biome.png b/assets/voxygen/element/ui/map/buttons/biome.png new file mode 100644 index 0000000000..e0b7450714 --- /dev/null +++ b/assets/voxygen/element/ui/map/buttons/biome.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afcfc6df378dc85091d7681a662efd85e157d0037ce87e4bd1292ee1d0a3b805 +size 8123 diff --git a/assets/voxygen/i18n/en/hud/map.ron b/assets/voxygen/i18n/en/hud/map.ron index 0ef0218382..09138bf279 100644 --- a/assets/voxygen/i18n/en/hud/map.ron +++ b/assets/voxygen/i18n/en/hud/map.ron @@ -14,6 +14,7 @@ "hud.map.caves": "Caves", "hud.map.cave": "Cave", "hud.map.peaks": "Mountains", + "hud.map.biomes": "Biomes", "hud.map.voxel_map": "Voxel map", "hud.map.trees": "Giant Trees", "hud.map.tree": "Giant Tree", diff --git a/voxygen/src/hud/img_ids.rs b/voxygen/src/hud/img_ids.rs index 0d795e563f..9bf816567a 100644 --- a/voxygen/src/hud/img_ids.rs +++ b/voxygen/src/hud/img_ids.rs @@ -414,6 +414,7 @@ image_ids! { mmap_site_tree: "voxygen.element.ui.map.buttons.tree", mmap_site_tree_hover: "voxygen.element.ui.map.buttons.tree_hover", mmap_poi_peak: "voxygen.element.ui.map.buttons.peak", + mmap_poi_biome: "voxygen.element.ui.map.buttons.biome", mmap_poi_peak_hover: "voxygen.element.ui.map.buttons.peak_hover", // Window Parts diff --git a/voxygen/src/hud/map.rs b/voxygen/src/hud/map.rs index f48ed7addc..850d53e89a 100644 --- a/voxygen/src/hud/map.rs +++ b/voxygen/src/hud/map.rs @@ -42,6 +42,8 @@ widget_ids! { mmap_poi_titles[], peaks_txt, peaks_txt_bg, + biomes_txt, + biomes_txt_bg, site_difs[], member_indicators[], member_height_indicators[], @@ -65,6 +67,9 @@ widget_ids! { show_peaks_img, show_peaks_box, show_peaks_text, + show_biomes_img, + show_biomes_box, + show_biomes_text, show_voxel_map_img, show_voxel_map_box, show_voxel_map_text, @@ -209,6 +214,7 @@ impl<'a> Widget for Map<'a> { let show_caves = self.global_state.settings.interface.map_show_caves; let show_trees = self.global_state.settings.interface.map_show_trees; let show_peaks = self.global_state.settings.interface.map_show_peaks; + let show_biomes = self.global_state.settings.interface.map_show_biomes; let show_voxel_map = self.global_state.settings.interface.map_show_voxel_map; let show_topo_map = self.global_state.settings.interface.map_show_topo_map; let mut events = Vec::new(); @@ -641,9 +647,43 @@ impl<'a> Widget for Map<'a> { .graphics_for(state.ids.show_trees_box) .color(TEXT_COLOR) .set(state.ids.show_trees_text, ui); + // Biomes + Image::new(self.imgs.mmap_poi_biome) + .down_from(state.ids.show_trees_img, 10.0) + .w_h(20.0, 20.0) + .set(state.ids.show_biomes_img, ui); + if Button::image(if show_biomes { + self.imgs.checkbox_checked + } else { + self.imgs.checkbox + }) + .w_h(18.0, 18.0) + .hover_image(if show_biomes { + self.imgs.checkbox_checked_mo + } else { + self.imgs.checkbox_mo + }) + .press_image(if show_biomes { + self.imgs.checkbox_checked + } else { + self.imgs.checkbox_press + }) + .right_from(state.ids.show_biomes_img, 10.0) + .set(state.ids.show_biomes_box, ui) + .was_clicked() + { + events.push(Event::SettingsChange(MapShowBiomes(!show_biomes))); + } + Text::new(i18n.get("hud.map.biomes")) + .right_from(state.ids.show_biomes_box, 10.0) + .font_size(self.fonts.cyri.scale(14)) + .font_id(self.fonts.cyri.conrod_id) + .graphics_for(state.ids.show_biomes_box) + .color(TEXT_COLOR) + .set(state.ids.show_biomes_text, ui); // Peaks Image::new(self.imgs.mmap_poi_peak) - .down_from(state.ids.show_trees_img, 10.0) + .down_from(state.ids.show_biomes_img, 10.0) .w_h(20.0, 20.0) .set(state.ids.show_peaks_img, ui); if Button::image(if show_peaks { @@ -1023,7 +1063,7 @@ impl<'a> Widget for Map<'a> { } }, PoiKind::Lake(size) => { - if zoom.powi(2) * size as f64 > 30.0 { + if show_biomes && zoom > 2.0 && zoom.powi(2) * size as f64 > 30.0 { let font_scale_factor = if size > 20 { size as f64 / 25.0 } else if size > 10 { diff --git a/voxygen/src/session/settings_change.rs b/voxygen/src/session/settings_change.rs index 2f0dd5b2b2..b164acade5 100644 --- a/voxygen/src/session/settings_change.rs +++ b/voxygen/src/session/settings_change.rs @@ -129,6 +129,7 @@ pub enum Interface { MapShowCaves(bool), MapShowTrees(bool), MapShowPeaks(bool), + MapShowBiomes(bool), MapShowVoxelMap(bool), ResetInterfaceSettings, @@ -535,6 +536,9 @@ impl SettingsChange { Interface::MapShowPeaks(map_show_peaks) => { settings.interface.map_show_peaks = map_show_peaks; }, + Interface::MapShowBiomes(map_show_biomes) => { + settings.interface.map_show_biomes = map_show_biomes; + }, Interface::MapShowVoxelMap(map_show_voxel_map) => { settings.interface.map_show_voxel_map = map_show_voxel_map; }, diff --git a/voxygen/src/settings/interface.rs b/voxygen/src/settings/interface.rs index 494ea651c8..18bd31720a 100644 --- a/voxygen/src/settings/interface.rs +++ b/voxygen/src/settings/interface.rs @@ -38,6 +38,7 @@ pub struct InterfaceSettings { pub map_show_caves: bool, pub map_show_trees: bool, pub map_show_peaks: bool, + pub map_show_biomes: bool, pub map_show_voxel_map: bool, pub minimap_show: bool, pub minimap_face_north: bool, @@ -77,6 +78,7 @@ impl Default for InterfaceSettings { map_show_caves: true, map_show_trees: false, map_show_peaks: false, + map_show_biomes: false, map_show_voxel_map: true, minimap_show: true, minimap_face_north: true,