multimap support

This commit is contained in:
xavo95 2025-02-08 05:40:00 +01:00
parent c0b872ede4
commit c04f065e44
Signed by: xavo95
GPG key ID: CBF8ADED6DEBB783

View file

@ -1,7 +1,8 @@
use wicked_waifus_protocol::{ErrorCode, TeleportDataRequest, TeleportDataResponse, TeleportNotify, TeleportReason, TeleportTransferRequest, TeleportTransferResponse, TeleportFinishRequest, TeleportFinishResponse, TransitionOptionPb, TransitionType}; use wicked_waifus_protocol::{ErrorCode, TeleportDataRequest, TeleportDataResponse, TeleportNotify, TeleportReason, TeleportTransferRequest, TeleportTransferResponse, TeleportFinishRequest, TeleportFinishResponse, TransitionOptionPb, TransitionType, LeaveSceneNotify, JoinSceneNotify};
use wicked_waifus_data::{ComponentsData, level_entity_config_data, RawVectorData, TeleportComponent}; use wicked_waifus_data::{ComponentsData, level_entity_config_data, RawVectorData, TeleportComponent};
use crate::logic::player::Player; use crate::logic::player::Player;
use crate::logic::utils::world_util;
pub fn on_teleport_data_request( pub fn on_teleport_data_request(
_player: &mut Player, _player: &mut Player,
@ -58,22 +59,34 @@ pub fn on_teleport_transfer_request(
response.yaw = 0f32; response.yaw = 0f32;
response.roll = 0f32; response.roll = 0f32;
player.notify(TeleportNotify { // TODO: simplify (player.world.curr_map_id, palyer.basic_info.cur_map_id and player.location.instance_id)
map_id: teleport.map_id,
pos_x: x, if player.location.instance_id == teleport.map_id {
pos_y: y, player.notify(TeleportNotify {
pos_z: z, map_id: teleport.map_id,
pos_a: 0.0, pos_x: x,
reason: TeleportReason::Gm.into(), pos_y: y,
game_ctx: None, pos_z: z,
transition_option: Some( pos_a: 0.0,
TransitionOptionPb { reason: TeleportReason::Gm.into(),
transition_type: TransitionType::Empty.into(), game_ctx: None,
p4s: None, transition_option: Some(TransitionOptionPb::default()),
}, disable_auto_fade: false,
), });
disable_auto_fade: false, } else {
}); // remove entity
player.notify(LeaveSceneNotify {
player_id: player.basic_info.id,
scene_id: "".to_string(),
transition_option: Some(TransitionOptionPb::default()),
});
let scene_info = world_util::build_scene_information(&player);
player.notify(JoinSceneNotify {
scene_info: Some(scene_info),
max_entity_id: i64::MAX,
transition_option: Some(TransitionOptionPb::default()),
});
}
} }
} }