mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Update CHANGELOG.md, german locale
This commit is contained in:
parent
ecf6a84b2f
commit
1eb671e1a6
@ -49,6 +49,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Loading-Screen tips
|
- Loading-Screen tips
|
||||||
- Feeding animation for some animals
|
- Feeding animation for some animals
|
||||||
- Power stat to weapons which affects weapon damage
|
- Power stat to weapons which affects weapon damage
|
||||||
|
- Add detection of entities under the cursor
|
||||||
|
- Functional group-system with exp-sharing and disabled damage to group members
|
||||||
|
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
@ -80,6 +83,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Fixed window resizing on Mac OS X.
|
- Fixed window resizing on Mac OS X.
|
||||||
- Dehardcoded many item variants
|
- Dehardcoded many item variants
|
||||||
- Tooltips avoid the mouse better and disappear when hovered
|
- Tooltips avoid the mouse better and disappear when hovered
|
||||||
|
- Improved social window functions and visuals
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
|
32
Cargo.lock
generated
32
Cargo.lock
generated
@ -219,6 +219,16 @@ dependencies = [
|
|||||||
"winapi 0.3.8",
|
"winapi 0.3.8",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "auth-common"
|
||||||
|
version = "0.1.0"
|
||||||
|
source = "git+https://gitlab.com/veloren/auth.git?rev=223a4097f7ebc8d451936dccb5e6517194bbf086#223a4097f7ebc8d451936dccb5e6517194bbf086"
|
||||||
|
dependencies = [
|
||||||
|
"rand 0.7.3",
|
||||||
|
"serde",
|
||||||
|
"uuid",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "auth-common"
|
name = "auth-common"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
@ -229,12 +239,26 @@ dependencies = [
|
|||||||
"uuid",
|
"uuid",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "authc"
|
||||||
|
version = "1.0.0"
|
||||||
|
source = "git+https://gitlab.com/veloren/auth.git?rev=223a4097f7ebc8d451936dccb5e6517194bbf086#223a4097f7ebc8d451936dccb5e6517194bbf086"
|
||||||
|
dependencies = [
|
||||||
|
"auth-common 0.1.0 (git+https://gitlab.com/veloren/auth.git?rev=223a4097f7ebc8d451936dccb5e6517194bbf086)",
|
||||||
|
"fxhash",
|
||||||
|
"hex",
|
||||||
|
"rust-argon2 0.8.2",
|
||||||
|
"serde_json",
|
||||||
|
"ureq",
|
||||||
|
"uuid",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "authc"
|
name = "authc"
|
||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
source = "git+https://gitlab.com/veloren/auth.git?rev=b943c85e4a38f5ec60cd18c34c73097640162bfe#b943c85e4a38f5ec60cd18c34c73097640162bfe"
|
source = "git+https://gitlab.com/veloren/auth.git?rev=b943c85e4a38f5ec60cd18c34c73097640162bfe#b943c85e4a38f5ec60cd18c34c73097640162bfe"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"auth-common",
|
"auth-common 0.1.0 (git+https://gitlab.com/veloren/auth.git?rev=b943c85e4a38f5ec60cd18c34c73097640162bfe)",
|
||||||
"fxhash",
|
"fxhash",
|
||||||
"hex",
|
"hex",
|
||||||
"rust-argon2 0.8.2",
|
"rust-argon2 0.8.2",
|
||||||
@ -4601,7 +4625,7 @@ dependencies = [
|
|||||||
name = "veloren-client"
|
name = "veloren-client"
|
||||||
version = "0.6.0"
|
version = "0.6.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"authc",
|
"authc 1.0.0 (git+https://gitlab.com/veloren/auth.git?rev=b943c85e4a38f5ec60cd18c34c73097640162bfe)",
|
||||||
"byteorder 1.3.4",
|
"byteorder 1.3.4",
|
||||||
"futures-executor",
|
"futures-executor",
|
||||||
"futures-timer",
|
"futures-timer",
|
||||||
@ -4622,7 +4646,7 @@ name = "veloren-common"
|
|||||||
version = "0.6.0"
|
version = "0.6.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"arraygen",
|
"arraygen",
|
||||||
"authc",
|
"authc 1.0.0 (git+https://gitlab.com/veloren/auth.git?rev=223a4097f7ebc8d451936dccb5e6517194bbf086)",
|
||||||
"criterion",
|
"criterion",
|
||||||
"crossbeam",
|
"crossbeam",
|
||||||
"dot_vox",
|
"dot_vox",
|
||||||
@ -4650,7 +4674,7 @@ dependencies = [
|
|||||||
name = "veloren-server"
|
name = "veloren-server"
|
||||||
version = "0.6.0"
|
version = "0.6.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"authc",
|
"authc 1.0.0 (git+https://gitlab.com/veloren/auth.git?rev=b943c85e4a38f5ec60cd18c34c73097640162bfe)",
|
||||||
"chrono",
|
"chrono",
|
||||||
"crossbeam",
|
"crossbeam",
|
||||||
"diesel",
|
"diesel",
|
||||||
|
@ -88,7 +88,7 @@
|
|||||||
(0.50, "common.items.weapons.staff.starter_staff"),
|
(0.50, "common.items.weapons.staff.starter_staff"),
|
||||||
(0.35, "common.items.weapons.staff.bone_staff"),
|
(0.35, "common.items.weapons.staff.bone_staff"),
|
||||||
(0.15, "common.items.weapons.staff.amethyst_staff"),
|
(0.15, "common.items.weapons.staff.amethyst_staff"),
|
||||||
(0.01, "common.items.weapons.staff.cultist_staff"),
|
//(0.01, "common.items.weapons.staff.cultist_staff"),
|
||||||
// hammers
|
// hammers
|
||||||
(0.05, "common.items.weapons.hammer.starter_hammer"),
|
(0.05, "common.items.weapons.hammer.starter_hammer"),
|
||||||
(0.05, "common.items.weapons.hammer.wood_hammer-0"),
|
(0.05, "common.items.weapons.hammer.wood_hammer-0"),
|
||||||
|
@ -68,6 +68,7 @@ VoxygenLocalization(
|
|||||||
"common.none": "Kein",
|
"common.none": "Kein",
|
||||||
"common.error": "Fehler",
|
"common.error": "Fehler",
|
||||||
"common.fatal_error": "Fataler Fehler",
|
"common.fatal_error": "Fataler Fehler",
|
||||||
|
"common.decline": "Ablehnen",
|
||||||
/// End Common section
|
/// End Common section
|
||||||
|
|
||||||
// Message when connection to the server is lost
|
// Message when connection to the server is lost
|
||||||
@ -306,7 +307,7 @@ magischen Gegenstände ergattern?"#,
|
|||||||
"hud.settings.unbound": "-",
|
"hud.settings.unbound": "-",
|
||||||
"hud.settings.reset_keybinds": "Auf Standard zurücksetzen",
|
"hud.settings.reset_keybinds": "Auf Standard zurücksetzen",
|
||||||
|
|
||||||
"hud.social": "Sozial",
|
"hud.social": "Andere Spieler ",
|
||||||
"hud.social.online": "Online",
|
"hud.social.online": "Online",
|
||||||
"hud.social.friends": "Freunde",
|
"hud.social.friends": "Freunde",
|
||||||
"hud.social.not_yet_available": "Noch nicht verfügbar",
|
"hud.social.not_yet_available": "Noch nicht verfügbar",
|
||||||
@ -315,6 +316,21 @@ magischen Gegenstände ergattern?"#,
|
|||||||
|
|
||||||
"hud.spell": "Zauber",
|
"hud.spell": "Zauber",
|
||||||
|
|
||||||
|
"hud.social.name" : "Name",
|
||||||
|
"hud.social.level" : "Lvl",
|
||||||
|
"hud.social.zone" : "Gebiet",
|
||||||
|
|
||||||
|
"hud.group": "Gruppe",
|
||||||
|
"hud.group.invite": "Einladen",
|
||||||
|
"hud.group.leave": "Verlassen",
|
||||||
|
"hud.group.add_friend": "Freund hinzufügen",
|
||||||
|
"hud.group.assign_leader": "Anführer",
|
||||||
|
"hud.group.kick": "Entfernen",
|
||||||
|
"hud.group.invite_to_join": "{name} hat euch zu seiner Gruppe eingeladen!",
|
||||||
|
"hud.group.dead" : "Tot",
|
||||||
|
"hud.group.out_of_range": "Außer Reichweite",
|
||||||
|
"hud.group.link_group": "Gruppen verbinden",
|
||||||
|
|
||||||
"hud.crafting": "Herstellen",
|
"hud.crafting": "Herstellen",
|
||||||
"hud.crafting.recipes": "Rezepte",
|
"hud.crafting.recipes": "Rezepte",
|
||||||
"hud.crafting.ingredients": "Zutaten:",
|
"hud.crafting.ingredients": "Zutaten:",
|
||||||
@ -376,6 +392,8 @@ magischen Gegenstände ergattern?"#,
|
|||||||
"gameinput.freelook": "Freie Sicht",
|
"gameinput.freelook": "Freie Sicht",
|
||||||
"gameinput.autowalk": "Automatisch Laufen",
|
"gameinput.autowalk": "Automatisch Laufen",
|
||||||
"gameinput.dance": "Tanzen",
|
"gameinput.dance": "Tanzen",
|
||||||
|
"gameinput.declinegroupinvite": "Ablehnen",
|
||||||
|
"gameinput.acceptgroupinvite": "Annehmen",
|
||||||
|
|
||||||
/// End GameInput section
|
/// End GameInput section
|
||||||
|
|
||||||
|
@ -71,6 +71,7 @@ VoxygenLocalization(
|
|||||||
"common.none": "None",
|
"common.none": "None",
|
||||||
"common.error": "Error",
|
"common.error": "Error",
|
||||||
"common.fatal_error": "Fatal Error",
|
"common.fatal_error": "Fatal Error",
|
||||||
|
"common.you": "You",
|
||||||
|
|
||||||
// Message when connection to the server is lost
|
// Message when connection to the server is lost
|
||||||
"common.connection_lost": r#"Connection lost!
|
"common.connection_lost": r#"Connection lost!
|
||||||
@ -307,7 +308,7 @@ magically infused items?"#,
|
|||||||
"hud.settings.unbound": "None",
|
"hud.settings.unbound": "None",
|
||||||
"hud.settings.reset_keybinds": "Reset to Defaults",
|
"hud.settings.reset_keybinds": "Reset to Defaults",
|
||||||
|
|
||||||
"hud.social": "Social",
|
"hud.social": "Other Players",
|
||||||
"hud.social.online": "Online:",
|
"hud.social.online": "Online:",
|
||||||
"hud.social.friends": "Friends",
|
"hud.social.friends": "Friends",
|
||||||
"hud.social.not_yet_available": "Not yet available",
|
"hud.social.not_yet_available": "Not yet available",
|
||||||
@ -325,13 +326,16 @@ magically infused items?"#,
|
|||||||
"hud.crafting.tool_cata": "Requires:",
|
"hud.crafting.tool_cata": "Requires:",
|
||||||
|
|
||||||
"hud.group": "Group",
|
"hud.group": "Group",
|
||||||
"hud.group.invite_to_join": "{name} invited you to their group.",
|
"hud.group.invite_to_join": "{name} invited you to their group!",
|
||||||
"hud.group.invite": "Invite",
|
"hud.group.invite": "Invite",
|
||||||
"hud.group.kick": "Kick",
|
"hud.group.kick": "Kick",
|
||||||
"hud.group.assign_leader": "Assign Leader",
|
"hud.group.assign_leader": "Assign Leader",
|
||||||
"hud.group.leave": "Leave Group",
|
"hud.group.leave": "Leave Group",
|
||||||
"hud.group.dead" : "Dead",
|
"hud.group.dead" : "Dead",
|
||||||
"hud.group.out_of_range": "Out of range",
|
"hud.group.out_of_range": "Out of range",
|
||||||
|
"hud.group.add_friend": "Add to Friends",
|
||||||
|
"hud.group.link_group": "Link Groups",
|
||||||
|
"hud.group.in_menu": "In Menu",
|
||||||
|
|
||||||
"hud.spell": "Spells",
|
"hud.spell": "Spells",
|
||||||
|
|
||||||
@ -453,7 +457,8 @@ Protection
|
|||||||
"Press 'F1' to see all default keybindings.",
|
"Press 'F1' to see all default keybindings.",
|
||||||
"You can type /say or /s to only chat with players directly around you.",
|
"You can type /say or /s to only chat with players directly around you.",
|
||||||
"You can type /region or /r to only chat with players a couple of hundred blocks around you.",
|
"You can type /region or /r to only chat with players a couple of hundred blocks around you.",
|
||||||
"To send private message type /tell followed by a player name and your message.",
|
"You can type /group or /g to only chat with players in your current group.",
|
||||||
|
"To send private messages type /tell followed by a player name and your message.",
|
||||||
"NPCs with the same level can have a different difficulty.",
|
"NPCs with the same level can have a different difficulty.",
|
||||||
"Look at the ground for food, chests and other loot!",
|
"Look at the ground for food, chests and other loot!",
|
||||||
"Inventory filled with food? Try crafting better food from it!",
|
"Inventory filled with food? Try crafting better food from it!",
|
||||||
@ -465,6 +470,7 @@ Protection
|
|||||||
"Press 'L-Shift' to open your Glider and conquer the skies.",
|
"Press 'L-Shift' to open your Glider and conquer the skies.",
|
||||||
"Veloren is still in Pre-Alpha. We do our best to improve it every day!",
|
"Veloren is still in Pre-Alpha. We do our best to improve it every day!",
|
||||||
"If you want to join the Dev-Team or just have a chat with us join our Discord-Server.",
|
"If you want to join the Dev-Team or just have a chat with us join our Discord-Server.",
|
||||||
|
"You can toggle showing your amount of health on the healthbar in the settings.",
|
||||||
],
|
],
|
||||||
"npc.speech.villager_under_attack": [
|
"npc.speech.villager_under_attack": [
|
||||||
"Help, I'm under attack!",
|
"Help, I'm under attack!",
|
||||||
|
BIN
assets/voxygen/voxel/weapon/staff/firestaff_cultist.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/weapon/staff/firestaff_cultist.vox
(Stored with Git LFS)
Binary file not shown.
@ -17,8 +17,8 @@ use byteorder::{ByteOrder, LittleEndian};
|
|||||||
use common::{
|
use common::{
|
||||||
character::CharacterItem,
|
character::CharacterItem,
|
||||||
comp::{
|
comp::{
|
||||||
self, ControlAction, ControlEvent, Controller, ControllerInputs, GroupManip,
|
self, group, ControlAction, ControlEvent, Controller, ControllerInputs, GroupManip,
|
||||||
InventoryManip, InventoryUpdateEvent, group,
|
InventoryManip, InventoryUpdateEvent,
|
||||||
},
|
},
|
||||||
msg::{
|
msg::{
|
||||||
validate_chat_msg, ChatMsgValidationError, ClientMsg, ClientState, Notification,
|
validate_chat_msg, ChatMsgValidationError, ClientMsg, ClientState, Notification,
|
||||||
@ -434,7 +434,9 @@ impl Client {
|
|||||||
|
|
||||||
pub fn group_invite(&self) -> Option<Uid> { self.group_invite }
|
pub fn group_invite(&self) -> Option<Uid> { self.group_invite }
|
||||||
|
|
||||||
pub fn group_info(&self) -> Option<(String, Uid)> { self.group_leader.map(|l| ("TODO".into(), l)) }
|
pub fn group_info(&self) -> Option<(String, Uid)> {
|
||||||
|
self.group_leader.map(|l| ("Group".into(), l)) // TODO
|
||||||
|
}
|
||||||
|
|
||||||
pub fn group_members(&self) -> &HashMap<Uid, group::Role> { &self.group_members }
|
pub fn group_members(&self) -> &HashMap<Uid, group::Role> { &self.group_members }
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ crossbeam = "0.7"
|
|||||||
notify = "5.0.0-pre.3"
|
notify = "5.0.0-pre.3"
|
||||||
indexmap = "1.3.0"
|
indexmap = "1.3.0"
|
||||||
sum_type = "0.2.0"
|
sum_type = "0.2.0"
|
||||||
authc = { git = "https://gitlab.com/veloren/auth.git", rev = "223a4097f7ebc8d451936dccb5e6517194bbf086" }
|
authc = { git = "https://gitlab.com/veloren/auth.git", rev = "b943c85e4a38f5ec60cd18c34c73097640162bfe" }
|
||||||
slab = "0.4.2"
|
slab = "0.4.2"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
@ -137,7 +137,7 @@ impl GroupManager {
|
|||||||
fn create_group(&mut self, leader: specs::Entity) -> Group {
|
fn create_group(&mut self, leader: specs::Entity) -> Group {
|
||||||
Group(self.groups.insert(GroupInfo {
|
Group(self.groups.insert(GroupInfo {
|
||||||
leader,
|
leader,
|
||||||
name: "Flames".into(),
|
name: "Group".into(),
|
||||||
}) as u32)
|
}) as u32)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,7 +229,7 @@ impl<'a> Widget for Bag<'a> {
|
|||||||
)
|
)
|
||||||
.mid_top_with_margin_on(state.ids.bg_frame, 9.0)
|
.mid_top_with_margin_on(state.ids.bg_frame, 9.0)
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
.font_size(self.fonts.cyri.scale(22))
|
.font_size(self.fonts.cyri.scale(20))
|
||||||
.color(Color::Rgba(0.0, 0.0, 0.0, 1.0))
|
.color(Color::Rgba(0.0, 0.0, 0.0, 1.0))
|
||||||
.set(state.ids.inventory_title_bg, ui);
|
.set(state.ids.inventory_title_bg, ui);
|
||||||
Text::new(
|
Text::new(
|
||||||
@ -240,7 +240,7 @@ impl<'a> Widget for Bag<'a> {
|
|||||||
)
|
)
|
||||||
.top_left_with_margins_on(state.ids.inventory_title_bg, 2.0, 2.0)
|
.top_left_with_margins_on(state.ids.inventory_title_bg, 2.0, 2.0)
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
.font_size(self.fonts.cyri.scale(22))
|
.font_size(self.fonts.cyri.scale(20))
|
||||||
.color(TEXT_COLOR)
|
.color(TEXT_COLOR)
|
||||||
.set(state.ids.inventory_title, ui);
|
.set(state.ids.inventory_title, ui);
|
||||||
// Scrollbar-BG
|
// Scrollbar-BG
|
||||||
|
@ -117,23 +117,6 @@ impl<'a> Widget for Crafting<'a> {
|
|||||||
)
|
)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/*if state.ids.recipe_img_frame.len() < self.client.recipe_book().iter().len() {
|
|
||||||
state.update(|state| {
|
|
||||||
state.ids.recipe_img_frame.resize(
|
|
||||||
self.client.recipe_book().iter().len(),
|
|
||||||
&mut ui.widget_id_generator(),
|
|
||||||
)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if state.ids.recipe_img.len() < self.client.recipe_book().iter().len() {
|
|
||||||
state.update(|state| {
|
|
||||||
state.ids.recipe_img.resize(
|
|
||||||
self.client.recipe_book().iter().len(),
|
|
||||||
&mut ui.widget_id_generator(),
|
|
||||||
)
|
|
||||||
});
|
|
||||||
}*/
|
|
||||||
|
|
||||||
let ids = &state.ids;
|
let ids = &state.ids;
|
||||||
|
|
||||||
let mut events = Vec::new();
|
let mut events = Vec::new();
|
||||||
@ -186,7 +169,7 @@ impl<'a> Widget for Crafting<'a> {
|
|||||||
Text::new(&self.localized_strings.get("hud.crafting"))
|
Text::new(&self.localized_strings.get("hud.crafting"))
|
||||||
.mid_top_with_margin_on(ids.window_frame, 9.0)
|
.mid_top_with_margin_on(ids.window_frame, 9.0)
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
.font_size(self.fonts.cyri.scale(22))
|
.font_size(self.fonts.cyri.scale(20))
|
||||||
.color(TEXT_COLOR)
|
.color(TEXT_COLOR)
|
||||||
.set(ids.title_main, ui);
|
.set(ids.title_main, ui);
|
||||||
|
|
||||||
|
@ -205,7 +205,7 @@ impl<'a> Widget for Group<'a> {
|
|||||||
// broken
|
// broken
|
||||||
if self.show.group_menu || open_invite.is_some() {
|
if self.show.group_menu || open_invite.is_some() {
|
||||||
// Frame
|
// Frame
|
||||||
Rectangle::fill_with([220.0, 230.0], color::Color::Rgba(0.0, 0.0, 0.0, 0.8))
|
Rectangle::fill_with([220.0, 165.0], color::Color::Rgba(0.0, 0.0, 0.0, 0.8))
|
||||||
.bottom_left_with_margins_on(ui.window, 220.0, 10.0)
|
.bottom_left_with_margins_on(ui.window, 220.0, 10.0)
|
||||||
.set(state.ids.bg, ui);
|
.set(state.ids.bg, ui);
|
||||||
}
|
}
|
||||||
@ -358,15 +358,17 @@ impl<'a> Widget for Group<'a> {
|
|||||||
// Health Text
|
// Health Text
|
||||||
let txt = format!(
|
let txt = format!(
|
||||||
"{}/{}",
|
"{}/{}",
|
||||||
stats.health.current() as u32,
|
stats.health.current() / 10 as u32,
|
||||||
stats.health.maximum() as u32,
|
stats.health.maximum() / 10 as u32,
|
||||||
);
|
);
|
||||||
|
// Change font size depending on health amount
|
||||||
let font_size = match stats.health.maximum() {
|
let font_size = match stats.health.maximum() {
|
||||||
0..=999 => 14,
|
0..=999 => 14,
|
||||||
1000..=9999 => 13,
|
1000..=9999 => 13,
|
||||||
10000..=99999 => 12,
|
10000..=99999 => 12,
|
||||||
_ => 11,
|
_ => 11,
|
||||||
};
|
};
|
||||||
|
// Change text offset depending on health amount
|
||||||
let txt_offset = match stats.health.maximum() {
|
let txt_offset = match stats.health.maximum() {
|
||||||
0..=999 => 4.0,
|
0..=999 => 4.0,
|
||||||
1000..=9999 => 4.5,
|
1000..=9999 => 4.5,
|
||||||
@ -460,10 +462,11 @@ impl<'a> Widget for Group<'a> {
|
|||||||
if Button::image(self.imgs.button)
|
if Button::image(self.imgs.button)
|
||||||
.w_h(90.0, 22.0)
|
.w_h(90.0, 22.0)
|
||||||
.top_right_with_margins_on(state.ids.bg, 30.0, 5.0)
|
.top_right_with_margins_on(state.ids.bg, 30.0, 5.0)
|
||||||
.hover_image(self.imgs.button)
|
.hover_image(self.imgs.button) // Change this when the friendslist is working
|
||||||
.press_image(self.imgs.button)
|
.press_image(self.imgs.button) // Change this when the friendslist is working
|
||||||
.label("Add to Friends")
|
|
||||||
.label_color(TEXT_COLOR_GREY) // Change this when the friendslist is working
|
.label_color(TEXT_COLOR_GREY) // Change this when the friendslist is working
|
||||||
|
.image_color (TEXT_COLOR_GREY) // Change this when the friendslist is working
|
||||||
|
.label(&self.localized_strings.get("hud.group.add_friend"))
|
||||||
.label_font_id(self.fonts.cyri.conrod_id)
|
.label_font_id(self.fonts.cyri.conrod_id)
|
||||||
.label_font_size(self.fonts.cyri.scale(10))
|
.label_font_size(self.fonts.cyri.scale(10))
|
||||||
.set(state.ids.btn_friend, ui)
|
.set(state.ids.btn_friend, ui)
|
||||||
@ -482,6 +485,7 @@ impl<'a> Widget for Group<'a> {
|
|||||||
.was_clicked()
|
.was_clicked()
|
||||||
{
|
{
|
||||||
self.show.group_menu = false;
|
self.show.group_menu = false;
|
||||||
|
self.show.group = !self.show.group;
|
||||||
events.push(Event::LeaveGroup);
|
events.push(Event::LeaveGroup);
|
||||||
};
|
};
|
||||||
// Group leader functions
|
// Group leader functions
|
||||||
@ -514,8 +518,11 @@ impl<'a> Widget for Group<'a> {
|
|||||||
.mid_bottom_with_margin_on(state.ids.btn_leader, -27.0)
|
.mid_bottom_with_margin_on(state.ids.btn_leader, -27.0)
|
||||||
.hover_image(self.imgs.button)
|
.hover_image(self.imgs.button)
|
||||||
.press_image(self.imgs.button)
|
.press_image(self.imgs.button)
|
||||||
.label("Link Group") // TODO: Localize
|
.label(&self.localized_strings.get("hud.group.link_group"))
|
||||||
.label_color(TEXT_COLOR_GREY) // Change this when the linking is working
|
.hover_image(self.imgs.button) // Change this when the friendslist is working
|
||||||
|
.press_image(self.imgs.button) // Change this when the friendslist is working
|
||||||
|
.label_color(TEXT_COLOR_GREY) // Change this when the friendslist is working
|
||||||
|
.image_color (TEXT_COLOR_GREY) // Change this when the friendslist is working
|
||||||
.label_font_id(self.fonts.cyri.conrod_id)
|
.label_font_id(self.fonts.cyri.conrod_id)
|
||||||
.label_font_size(self.fonts.cyri.scale(10))
|
.label_font_size(self.fonts.cyri.scale(10))
|
||||||
.set(state.ids.btn_link, ui)
|
.set(state.ids.btn_link, ui)
|
||||||
@ -557,7 +564,7 @@ impl<'a> Widget for Group<'a> {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
// Scrollable area for group member names
|
// Scrollable area for group member names
|
||||||
Rectangle::fill_with([110.0, 192.0], color::TRANSPARENT)
|
Rectangle::fill_with([110.0, 135.0], color::TRANSPARENT)
|
||||||
.top_left_with_margins_on(state.ids.bg, 30.0, 5.0)
|
.top_left_with_margins_on(state.ids.bg, 30.0, 5.0)
|
||||||
.scroll_kids()
|
.scroll_kids()
|
||||||
.scroll_kids_vertically()
|
.scroll_kids_vertically()
|
||||||
@ -582,7 +589,7 @@ impl<'a> Widget for Group<'a> {
|
|||||||
if i == 0 {
|
if i == 0 {
|
||||||
w.top_left_with_margins_on(state.ids.scroll_area, 5.0, 0.0)
|
w.top_left_with_margins_on(state.ids.scroll_area, 5.0, 0.0)
|
||||||
} else {
|
} else {
|
||||||
w.down_from(state.ids.members[i - 1], 10.0)
|
w.down_from(state.ids.members[i - 1], 5.0)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.hover_image(self.imgs.selection_hover)
|
.hover_image(self.imgs.selection_hover)
|
||||||
|
@ -409,7 +409,6 @@ impl Show {
|
|||||||
fn social(&mut self, open: bool) {
|
fn social(&mut self, open: bool) {
|
||||||
if !self.esc_menu {
|
if !self.esc_menu {
|
||||||
self.social = open;
|
self.social = open;
|
||||||
self.crafting = false;
|
|
||||||
self.spell = false;
|
self.spell = false;
|
||||||
self.want_grab = !open;
|
self.want_grab = !open;
|
||||||
}
|
}
|
||||||
@ -509,7 +508,7 @@ impl Show {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn toggle_social(&mut self) {
|
fn toggle_social(&mut self) {
|
||||||
self.social = !self.social;
|
self.social(!self.social);
|
||||||
self.spell = false;
|
self.spell = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1925,22 +1924,25 @@ impl Hud {
|
|||||||
// Social Window
|
// Social Window
|
||||||
if self.show.social {
|
if self.show.social {
|
||||||
let ecs = client.state().ecs();
|
let ecs = client.state().ecs();
|
||||||
let stats = ecs.read_storage::<comp::Stats>();
|
let _stats = ecs.read_storage::<comp::Stats>();
|
||||||
let me = client.entity();
|
let me = client.entity();
|
||||||
if let Some(stats) = stats.get(me) {
|
if let Some(_stats) = stats.get(me) {
|
||||||
for event in Social::new(
|
for event in Social::new(
|
||||||
&self.show,
|
&self.show,
|
||||||
client,
|
client,
|
||||||
&self.imgs,
|
&self.imgs,
|
||||||
&self.fonts,
|
&self.fonts,
|
||||||
&self.voxygen_i18n,
|
&self.voxygen_i18n,
|
||||||
&stats,
|
//&stats,
|
||||||
info.selected_entity,
|
info.selected_entity,
|
||||||
)
|
)
|
||||||
.set(self.ids.social_window, ui_widgets)
|
.set(self.ids.social_window, ui_widgets)
|
||||||
{
|
{
|
||||||
match event {
|
match event {
|
||||||
social::Event::Close => self.show.social(false),
|
social::Event::Close => {
|
||||||
|
self.show.social(false);
|
||||||
|
self.force_ungrab = true;
|
||||||
|
},
|
||||||
social::Event::ChangeSocialTab(social_tab) => {
|
social::Event::ChangeSocialTab(social_tab) => {
|
||||||
self.show.open_social_tab(social_tab)
|
self.show.open_social_tab(social_tab)
|
||||||
},
|
},
|
||||||
@ -1950,7 +1952,6 @@ impl Hud {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Group Window
|
// Group Window
|
||||||
|
|
||||||
for event in Group::new(
|
for event in Group::new(
|
||||||
&mut self.show,
|
&mut self.show,
|
||||||
client,
|
client,
|
||||||
|
@ -1190,6 +1190,10 @@ impl<'a> Widget for SettingsWindow<'a> {
|
|||||||
.color(TEXT_COLOR)
|
.color(TEXT_COLOR)
|
||||||
.set(state.ids.chat_char_name_text, ui);
|
.set(state.ids.chat_char_name_text, ui);
|
||||||
|
|
||||||
|
// Show account name in chat
|
||||||
|
|
||||||
|
// Show account names in social window
|
||||||
|
|
||||||
// Language select drop down
|
// Language select drop down
|
||||||
Text::new(&self.localized_strings.get("common.languages"))
|
Text::new(&self.localized_strings.get("common.languages"))
|
||||||
.down_from(state.ids.chat_char_name_button, 20.0)
|
.down_from(state.ids.chat_char_name_button, 20.0)
|
||||||
|
@ -2,7 +2,7 @@ use super::{img_ids::Imgs, Show, TEXT_COLOR, TEXT_COLOR_3, UI_HIGHLIGHT_0, UI_MA
|
|||||||
|
|
||||||
use crate::{i18n::VoxygenLocalization, ui::fonts::ConrodVoxygenFonts};
|
use crate::{i18n::VoxygenLocalization, ui::fonts::ConrodVoxygenFonts};
|
||||||
use client::{self, Client};
|
use client::{self, Client};
|
||||||
use common::{comp::Stats, sync::Uid};
|
use common::sync::Uid;
|
||||||
use conrod_core::{
|
use conrod_core::{
|
||||||
color,
|
color,
|
||||||
widget::{self, Button, Image, Rectangle, Scrollbar, Text},
|
widget::{self, Button, Image, Rectangle, Scrollbar, Text},
|
||||||
@ -14,6 +14,7 @@ widget_ids! {
|
|||||||
pub struct Ids {
|
pub struct Ids {
|
||||||
frame,
|
frame,
|
||||||
close,
|
close,
|
||||||
|
title_align,
|
||||||
title,
|
title,
|
||||||
bg,
|
bg,
|
||||||
icon,
|
icon,
|
||||||
@ -62,8 +63,7 @@ pub struct Social<'a> {
|
|||||||
imgs: &'a Imgs,
|
imgs: &'a Imgs,
|
||||||
fonts: &'a ConrodVoxygenFonts,
|
fonts: &'a ConrodVoxygenFonts,
|
||||||
localized_strings: &'a std::sync::Arc<VoxygenLocalization>,
|
localized_strings: &'a std::sync::Arc<VoxygenLocalization>,
|
||||||
stats: &'a Stats,
|
//stats: &'a Stats,
|
||||||
|
|
||||||
selected_entity: Option<(specs::Entity, Instant)>,
|
selected_entity: Option<(specs::Entity, Instant)>,
|
||||||
|
|
||||||
#[conrod(common_builder)]
|
#[conrod(common_builder)]
|
||||||
@ -77,7 +77,7 @@ impl<'a> Social<'a> {
|
|||||||
imgs: &'a Imgs,
|
imgs: &'a Imgs,
|
||||||
fonts: &'a ConrodVoxygenFonts,
|
fonts: &'a ConrodVoxygenFonts,
|
||||||
localized_strings: &'a std::sync::Arc<VoxygenLocalization>,
|
localized_strings: &'a std::sync::Arc<VoxygenLocalization>,
|
||||||
stats: &'a Stats,
|
//stats: &'a Stats,
|
||||||
selected_entity: Option<(specs::Entity, Instant)>,
|
selected_entity: Option<(specs::Entity, Instant)>,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
Self {
|
Self {
|
||||||
@ -86,7 +86,7 @@ impl<'a> Social<'a> {
|
|||||||
imgs,
|
imgs,
|
||||||
fonts,
|
fonts,
|
||||||
localized_strings,
|
localized_strings,
|
||||||
stats,
|
//stats,
|
||||||
selected_entity,
|
selected_entity,
|
||||||
common: widget::CommonBuilder::default(),
|
common: widget::CommonBuilder::default(),
|
||||||
}
|
}
|
||||||
@ -120,7 +120,11 @@ impl<'a> Widget for Social<'a> {
|
|||||||
let mut events = Vec::new();
|
let mut events = Vec::new();
|
||||||
|
|
||||||
// Window frame and BG
|
// Window frame and BG
|
||||||
let pos = if self.show.group { 180.0 } else { 25.0 };
|
let pos = if self.show.group || self.show.group_menu {
|
||||||
|
200.0
|
||||||
|
} else {
|
||||||
|
25.0
|
||||||
|
};
|
||||||
// TODO: Different window visuals depending on the selected tab
|
// TODO: Different window visuals depending on the selected tab
|
||||||
let window_bg = match &self.show.social_tab {
|
let window_bg = match &self.show.social_tab {
|
||||||
SocialTab::Online => self.imgs.social_bg_on,
|
SocialTab::Online => self.imgs.social_bg_on,
|
||||||
@ -133,7 +137,7 @@ impl<'a> Widget for Social<'a> {
|
|||||||
SocialTab::Faction => self.imgs.social_frame_fact,
|
SocialTab::Faction => self.imgs.social_frame_fact,
|
||||||
};
|
};
|
||||||
Image::new(window_bg)
|
Image::new(window_bg)
|
||||||
.top_left_with_margins_on(ui.window, 200.0, pos)
|
.bottom_left_with_margins_on(ui.window, 308.0, pos)
|
||||||
.color(Some(UI_MAIN))
|
.color(Some(UI_MAIN))
|
||||||
.w_h(280.0, 460.0)
|
.w_h(280.0, 460.0)
|
||||||
.set(state.ids.bg, ui);
|
.set(state.ids.bg, ui);
|
||||||
@ -160,10 +164,13 @@ impl<'a> Widget for Social<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Title
|
// Title
|
||||||
|
Rectangle::fill_with([212.0, 42.0], color::TRANSPARENT)
|
||||||
|
.top_left_with_margins_on(state.ids.frame, 2.0, 44.0)
|
||||||
|
.set(state.ids.title_align, ui);
|
||||||
Text::new(&self.localized_strings.get("hud.social"))
|
Text::new(&self.localized_strings.get("hud.social"))
|
||||||
.mid_top_with_margin_on(state.ids.frame, 9.0)
|
.middle_of(state.ids.title_align)
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
.font_size(self.fonts.cyri.scale(22))
|
.font_size(self.fonts.cyri.scale(20))
|
||||||
.color(TEXT_COLOR)
|
.color(TEXT_COLOR)
|
||||||
.set(state.ids.title, ui);
|
.set(state.ids.title, ui);
|
||||||
|
|
||||||
@ -186,7 +193,7 @@ impl<'a> Widget for Social<'a> {
|
|||||||
SocialTab::Online => UI_MAIN,
|
SocialTab::Online => UI_MAIN,
|
||||||
_ => Color::Rgba(1.0, 1.0, 1.0, 0.6),
|
_ => Color::Rgba(1.0, 1.0, 1.0, 0.6),
|
||||||
})
|
})
|
||||||
.top_right_with_margins_on(state.ids.frame, 50.0, -28.0)
|
.top_right_with_margins_on(state.ids.frame, 50.0, -27.0)
|
||||||
.set(state.ids.online_tab, ui)
|
.set(state.ids.online_tab, ui)
|
||||||
.was_clicked()
|
.was_clicked()
|
||||||
{
|
{
|
||||||
@ -322,7 +329,7 @@ impl<'a> Widget for Social<'a> {
|
|||||||
.font_size(self.fonts.cyri.scale(14))
|
.font_size(self.fonts.cyri.scale(14))
|
||||||
.color(TEXT_COLOR)
|
.color(TEXT_COLOR)
|
||||||
.set(state.ids.online_txt, ui);
|
.set(state.ids.online_txt, ui);
|
||||||
Text::new(&count.to_string())
|
Text::new(&(count - 1).to_string())
|
||||||
.right_from(state.ids.online_txt, 5.0)
|
.right_from(state.ids.online_txt, 5.0)
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
.font_id(self.fonts.cyri.conrod_id)
|
||||||
.font_size(self.fonts.cyri.scale(14))
|
.font_size(self.fonts.cyri.scale(14))
|
||||||
@ -356,24 +363,33 @@ impl<'a> Widget for Social<'a> {
|
|||||||
for (i, (&uid, player_info)) in
|
for (i, (&uid, player_info)) in
|
||||||
players.filter(|(uid, _)| Some(**uid) != my_uid).enumerate()
|
players.filter(|(uid, _)| Some(**uid) != my_uid).enumerate()
|
||||||
{
|
{
|
||||||
|
let hide_username = true;
|
||||||
|
let zone = "Wilderness"; // TODO Add real zone
|
||||||
let selected = state.selected_uid.map_or(false, |u| u.0 == uid);
|
let selected = state.selected_uid.map_or(false, |u| u.0 == uid);
|
||||||
let alias = &player_info.player_alias;
|
let alias = &player_info.player_alias;
|
||||||
let name = match &player_info.character {
|
let name_text = match &player_info.character {
|
||||||
Some(character) => format!("{} ", &character.name),
|
Some(character) => {
|
||||||
None => "<None>".to_string(), // character select or spectating
|
if Some(uid) == my_uid {
|
||||||
|
format!(
|
||||||
|
"{} ({})",
|
||||||
|
&self.localized_strings.get("hud.common.you"),
|
||||||
|
&character.name
|
||||||
|
)
|
||||||
|
} else if hide_username {
|
||||||
|
character.name.clone()
|
||||||
|
} else {
|
||||||
|
format!("[{}] {}", alias, &character.name)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
None => alias.clone(), // character select or spectating
|
||||||
};
|
};
|
||||||
let level = match &player_info.character {
|
let level = match &player_info.character {
|
||||||
Some(character) => format!("{} ", &character.level),
|
Some(character) => format!("{} ", &character.level),
|
||||||
None => "<None>".to_string(), // character select or spectating
|
None => "".to_string(), // character select or spectating
|
||||||
};
|
};
|
||||||
let setting = true; // TODO Remove this
|
let zone_name = match &player_info.character {
|
||||||
let zone = "Wilderness"; // TODO: Add real zone
|
None => self.localized_strings.get("hud.group.in_menu").to_string(), /* character select or spectating */
|
||||||
let name_text = if name == self.stats.name {
|
_ => format!("{} ", &zone),
|
||||||
format!("You ({})", name) // TODO: Locale
|
|
||||||
} else if setting {
|
|
||||||
format!("{}", name)
|
|
||||||
} else {
|
|
||||||
format!("[{}] {}", alias, name)
|
|
||||||
};
|
};
|
||||||
// Player name widgets
|
// Player name widgets
|
||||||
let button = Button::image(if !selected {
|
let button = Button::image(if !selected {
|
||||||
@ -417,9 +433,9 @@ impl<'a> Widget for Social<'a> {
|
|||||||
.color(TEXT_COLOR)
|
.color(TEXT_COLOR)
|
||||||
.set(state.ids.player_levels[i], ui);
|
.set(state.ids.player_levels[i], ui);
|
||||||
let zone_txt = if i == 0 {
|
let zone_txt = if i == 0 {
|
||||||
Text::new(&zone).mid_top_with_margin_on(state.ids.zones_align, 2.0)
|
Text::new(&zone_name).mid_top_with_margin_on(state.ids.zones_align, 2.0)
|
||||||
} else {
|
} else {
|
||||||
Text::new(&zone).down_from(state.ids.player_zones[i - 1], 2.0)
|
Text::new(&zone_name).down_from(state.ids.player_zones[i - 1], 2.0)
|
||||||
};
|
};
|
||||||
zone_txt
|
zone_txt
|
||||||
.font_size(self.fonts.cyri.scale(14))
|
.font_size(self.fonts.cyri.scale(14))
|
||||||
@ -496,189 +512,6 @@ impl<'a> Widget for Social<'a> {
|
|||||||
}
|
}
|
||||||
} // End of Online Tab
|
} // End of Online Tab
|
||||||
|
|
||||||
// Alignment
|
|
||||||
/*
|
|
||||||
// Online Tab
|
|
||||||
|
|
||||||
// Contents
|
|
||||||
|
|
||||||
if let SocialTab::Online = self.show.social_tab {
|
|
||||||
// Players list
|
|
||||||
// TODO: this list changes infrequently enough that it should not have to be
|
|
||||||
// recreated every frame
|
|
||||||
let players = self.client.player_list.iter().filter(|(_, p)| p.is_online);
|
|
||||||
let count = players.clone().count();
|
|
||||||
if state.ids.player_names.len() < count {
|
|
||||||
state.update(|s| {
|
|
||||||
s.ids
|
|
||||||
.player_names
|
|
||||||
.resize(count, &mut ui.widget_id_generator())
|
|
||||||
})
|
|
||||||
}
|
|
||||||
Text::new(
|
|
||||||
&self
|
|
||||||
.localized_strings
|
|
||||||
.get("hud.social.play_online_fmt")
|
|
||||||
.replace("{nb_player}", &format!("{:?}", count)),
|
|
||||||
)
|
|
||||||
.top_left_with_margins_on(state.ids.content_align, -2.0, 7.0)
|
|
||||||
.font_size(self.fonts.cyri.scale(14))
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.color(TEXT_COLOR)
|
|
||||||
.set(state.ids.online_title, ui);
|
|
||||||
|
|
||||||
// Clear selected player if an entity was selected
|
|
||||||
if state
|
|
||||||
.selected_uid
|
|
||||||
.zip(self.selected_entity)
|
|
||||||
// Compare instants
|
|
||||||
.map_or(false, |(u, e)| u.1 < e.1)
|
|
||||||
{
|
|
||||||
state.update(|s| s.selected_uid = None);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i, (&uid, player_info)) in players.enumerate() {
|
|
||||||
let selected = state.selected_uid.map_or(false, |u| u.0 == uid);
|
|
||||||
let alias = &player_info.player_alias;
|
|
||||||
let character_name_level = match &player_info.character {
|
|
||||||
Some(character) => format!("{} Lvl {}", &character.name, &character.level),
|
|
||||||
None => "<None>".to_string(), // character select or spectating
|
|
||||||
};
|
|
||||||
let text = if selected {
|
|
||||||
format!("-> [{}] {}", alias, character_name_level)
|
|
||||||
} else {
|
|
||||||
format!("[{}] {}", alias, character_name_level)
|
|
||||||
};
|
|
||||||
Text::new(&text)
|
|
||||||
.down(3.0)
|
|
||||||
.font_size(self.fonts.cyri.scale(15))
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.color(TEXT_COLOR)
|
|
||||||
.set(state.ids.player_names[i], ui);
|
|
||||||
// Check for click
|
|
||||||
if ui
|
|
||||||
.widget_input(state.ids.player_names[i])
|
|
||||||
.clicks()
|
|
||||||
.left()
|
|
||||||
.next()
|
|
||||||
.is_some()
|
|
||||||
{
|
|
||||||
state.update(|s| s.selected_uid = Some((uid, Instant::now())));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Invite Button
|
|
||||||
if self
|
|
||||||
.client
|
|
||||||
.group_info()
|
|
||||||
.map_or(true, |(_, l_uid)| self.client.uid() == Some(l_uid))
|
|
||||||
{
|
|
||||||
let selected = state.selected_uid.map(|s| s.0).or_else(|| {
|
|
||||||
self.selected_entity
|
|
||||||
.and_then(|s| self.client.state().read_component_copied(s.0))
|
|
||||||
});
|
|
||||||
|
|
||||||
if Button::image(self.imgs.button)
|
|
||||||
.down(3.0)
|
|
||||||
.w_h(150.0, 30.0)
|
|
||||||
.hover_image(self.imgs.button_hover)
|
|
||||||
.press_image(self.imgs.button_press)
|
|
||||||
.label(&self.localized_strings.get("hud.group.invite"))
|
|
||||||
.label_y(conrod_core::position::Relative::Scalar(3.0))
|
|
||||||
.label_color(if selected.is_some() {
|
|
||||||
TEXT_COLOR
|
|
||||||
} else {
|
|
||||||
TEXT_COLOR_3
|
|
||||||
})
|
|
||||||
.label_font_size(self.fonts.cyri.scale(15))
|
|
||||||
.label_font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.set(state.ids.invite_button, ui)
|
|
||||||
.was_clicked()
|
|
||||||
{
|
|
||||||
if let Some(uid) = selected {
|
|
||||||
events.push(Event::Invite(uid));
|
|
||||||
state.update(|s| {
|
|
||||||
s.selected_uid = None;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Friends Tab
|
|
||||||
|
|
||||||
if Button::image(if let SocialTab::Friends = self.show.social_tab {
|
|
||||||
self.imgs.social_button_pressed
|
|
||||||
} else {
|
|
||||||
self.imgs.social_button
|
|
||||||
})
|
|
||||||
.w_h(30.0 * 4.0, 12.0 * 4.0)
|
|
||||||
.hover_image(if let SocialTab::Friends = self.show.social_tab {
|
|
||||||
self.imgs.social_button_pressed
|
|
||||||
} else {
|
|
||||||
self.imgs.social_button
|
|
||||||
})
|
|
||||||
.press_image(if let SocialTab::Friends = self.show.social_tab {
|
|
||||||
self.imgs.social_button_pressed
|
|
||||||
} else {
|
|
||||||
self.imgs.social_button
|
|
||||||
})
|
|
||||||
.right_from(state.ids.online_tab, 0.0)
|
|
||||||
.label(&self.localized_strings.get("hud.social.friends"))
|
|
||||||
.label_font_size(self.fonts.cyri.scale(14))
|
|
||||||
.label_font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.parent(state.ids.frame)
|
|
||||||
.color(UI_MAIN)
|
|
||||||
.label_color(TEXT_COLOR_3)
|
|
||||||
.set(state.ids.friends_tab, ui)
|
|
||||||
.was_clicked()
|
|
||||||
{
|
|
||||||
events.push(Event::ChangeSocialTab(SocialTab::Friends));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Contents
|
|
||||||
|
|
||||||
if let SocialTab::Friends = self.show.social_tab {
|
|
||||||
Text::new(&self.localized_strings.get("hud.social.not_yet_available"))
|
|
||||||
.middle_of(state.ids.content_align)
|
|
||||||
.font_size(self.fonts.cyri.scale(18))
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.color(TEXT_COLOR_3)
|
|
||||||
.set(state.ids.friends_test, ui);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Faction Tab
|
|
||||||
let button_img = if let SocialTab::Faction = self.show.social_tab {
|
|
||||||
self.imgs.social_button_pressed
|
|
||||||
} else {
|
|
||||||
self.imgs.social_button
|
|
||||||
};
|
|
||||||
if Button::image(button_img)
|
|
||||||
.w_h(30.0 * 4.0, 12.0 * 4.0)
|
|
||||||
.right_from(state.ids.friends_tab, 0.0)
|
|
||||||
.label(&self.localized_strings.get("hud.social.faction"))
|
|
||||||
.parent(state.ids.frame)
|
|
||||||
.label_font_size(self.fonts.cyri.scale(14))
|
|
||||||
.label_font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.color(UI_MAIN)
|
|
||||||
.label_color(TEXT_COLOR_3)
|
|
||||||
.set(state.ids.faction_tab, ui)
|
|
||||||
.was_clicked()
|
|
||||||
{
|
|
||||||
events.push(Event::ChangeSocialTab(SocialTab::Faction));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Contents
|
|
||||||
|
|
||||||
if let SocialTab::Faction = self.show.social_tab {
|
|
||||||
Text::new(&self.localized_strings.get("hud.social.not_yet_available"))
|
|
||||||
.middle_of(state.ids.content_align)
|
|
||||||
.font_size(self.fonts.cyri.scale(18))
|
|
||||||
.font_id(self.fonts.cyri.conrod_id)
|
|
||||||
.color(TEXT_COLOR_3)
|
|
||||||
.set(state.ids.faction_test, ui);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
events
|
events
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -522,7 +522,7 @@ impl Floor {
|
|||||||
"common.items.armor.shoulder.cultist_shoulder_purple",
|
"common.items.armor.shoulder.cultist_shoulder_purple",
|
||||||
),
|
),
|
||||||
8 => comp::Item::expect_from_asset(
|
8 => comp::Item::expect_from_asset(
|
||||||
"common.items.weapons.sword.greatsword_2h_fine-0",
|
"common.items.weapons.staff.cultist_staff",
|
||||||
),
|
),
|
||||||
9 => comp::Item::expect_from_asset(
|
9 => comp::Item::expect_from_asset(
|
||||||
"common.items.weapons.sword.greatsword_2h_fine-1",
|
"common.items.weapons.sword.greatsword_2h_fine-1",
|
||||||
|
Loading…
Reference in New Issue
Block a user