Skip to content

Commit

Permalink
fix avatar data and add todos
Browse files Browse the repository at this point in the history
  • Loading branch information
leanmendoza committed Nov 17, 2023
1 parent 9f923dc commit 8723938
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 12 deletions.
19 changes: 19 additions & 0 deletions rust/decentraland-godot-lib/src/dcl/components/proto_components.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,16 @@ pub mod common {
godot::prelude::Color::from_rgba(self.r, self.g, self.b, self.a)
}

pub fn to_color_string(&self) -> String {
format!(
"#{:02x}{:02x}{:02x}{:02x}",
(self.r * 255.0) as u8,
(self.g * 255.0) as u8,
(self.b * 255.0) as u8,
(self.a * 255.0) as u8
)
}

pub fn multiply(&mut self, factor: f32) -> Self {
Self {
r: self.r * factor,
Expand Down Expand Up @@ -65,6 +75,15 @@ pub mod common {
godot::prelude::Color::from_rgba(self.r, self.g, self.b, 1.0)
}

pub fn to_color_string(&self) -> String {
format!(
"#{:02x}{:02x}{:02x}",
(self.r * 255.0) as u8,
(self.g * 255.0) as u8,
(self.b * 255.0) as u8
)
}

pub fn multiply(&mut self, factor: f32) -> Self {
Self {
r: self.r * factor,
Expand Down
1 change: 1 addition & 0 deletions rust/decentraland-godot-lib/src/dcl/js/events.rs
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,7 @@ pub fn process_events_players_stateless(
op_state.put(player_expression_sender);
}

// TODO: implement this when version is in the avatar components
if let Some(profile_changed_sender) = op_state.try_take::<EventSender<ProfileChanged>>() {
op_state.put(profile_changed_sender);
}
Expand Down
37 changes: 25 additions & 12 deletions rust/decentraland-godot-lib/src/dcl/js/players.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ use deno_core::{
};

use crate::dcl::{
components::proto_components::common::Color3,
crdt::{SceneCrdtState, SceneCrdtStateProtoComponents},
scene_apis::{LocalCall, UserData},
scene_apis::{AvatarForUserData, LocalCall, UserData},
};

pub fn ops() -> Vec<OpDecl> {
Expand Down Expand Up @@ -119,7 +120,7 @@ pub fn get_player_data(user_id: String, crdt_state: &SceneCrdtState) -> Option<U
.get(player_entity_id)?
.value
.as_ref()?;
let _avatar_equipped_data_value = avatar_equipped_data_component
let avatar_equipped_data_value = avatar_equipped_data_component
.values
.get(player_entity_id)?
.value
Expand All @@ -134,16 +135,28 @@ pub fn get_player_data(user_id: String, crdt_state: &SceneCrdtState) -> Option<U
},
has_connected_web3: !player_identity_data_value.is_guest,
user_id: player_identity_data_value.address.clone(),
version: 0, // TODO: how to get this?
avatar: None,
// avatar: Some(AvatarForUserData {
// body_shape: avatar_base_value.body_shape_urn.clone(),
// skin_color: avatar_base_value.skin_color.clone().unwrap_or(Color3).to_string(),
// hair_color: String,
// eye_color: String,
// wearables: Vec<String>,
// snapshots: Option<Snapshots>
// }),
// TODO: implement this when version is in the avatar components
version: 0, // TODO: we don't have this information in the avatar components
avatar: Some(AvatarForUserData {
body_shape: avatar_base_value.body_shape_urn.clone(),
skin_color: avatar_base_value
.skin_color
.as_ref()
.unwrap_or(&Color3::black())
.to_color_string(),
hair_color: avatar_base_value
.hair_color
.as_ref()
.unwrap_or(&Color3::black())
.to_color_string(),
eye_color: avatar_base_value
.eyes_color
.as_ref()
.unwrap_or(&Color3::black())
.to_color_string(),
wearables: avatar_equipped_data_value.wearable_urns.clone(),
snapshots: None, // TODO: we don't have this information in the avatar components
}),
};
Some(user_data)
}

0 comments on commit 8723938

Please sign in to comment.