update tech menu
This commit is contained in:
parent
960e9f367e
commit
d16b2418f3
4
Cargo.lock
generated
4
Cargo.lock
generated
@ -1040,7 +1040,7 @@ checksum = "739e9d7726dc32173fed2d69d17eef3c54682169e4e20ff1d0a45dcd37063cef"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "libpso"
|
name = "libpso"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
source = "git+http://git.sharnoth.com/jake/libpso#5051514fb1d3b39a7eb6ff97b624a9ceebd93e40"
|
source = "git+http://git.sharnoth.com/jake/libpso#e71b435ea3dde01a44abf0492bfab12236b1ec06"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"psopacket",
|
"psopacket",
|
||||||
@ -1399,7 +1399,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "psopacket"
|
name = "psopacket"
|
||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
source = "git+http://git.sharnoth.com/jake/libpso#5051514fb1d3b39a7eb6ff97b624a9ceebd93e40"
|
source = "git+http://git.sharnoth.com/jake/libpso#e71b435ea3dde01a44abf0492bfab12236b1ec06"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
@ -70,3 +70,20 @@ where
|
|||||||
})}).await??;
|
})}).await??;
|
||||||
Ok(Vec::new())
|
Ok(Vec::new())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub async fn update_tech_menu<EG>(id: ClientId,
|
||||||
|
update_tech_menu: UpdateTechMenu,
|
||||||
|
clients: &Clients,
|
||||||
|
entity_gateway: &mut EG)
|
||||||
|
-> Result<Vec<(ClientId, SendShipPacket)>, anyhow::Error>
|
||||||
|
where
|
||||||
|
EG: EntityGateway + Clone + 'static,
|
||||||
|
{
|
||||||
|
clients.with_mut(id, |client| {
|
||||||
|
let mut entity_gateway = entity_gateway.clone();
|
||||||
|
Box::pin(async move {
|
||||||
|
client.character.tech_menu.tech_menu = update_tech_menu.config;
|
||||||
|
entity_gateway.save_character(&client.character).await
|
||||||
|
})}).await??;
|
||||||
|
Ok(Vec::new())
|
||||||
|
}
|
||||||
|
@ -200,6 +200,7 @@ pub enum RecvShipPacket {
|
|||||||
KeyboardConfig(KeyboardConfig),
|
KeyboardConfig(KeyboardConfig),
|
||||||
GamepadConfig(GamepadConfig),
|
GamepadConfig(GamepadConfig),
|
||||||
UpdateConfig(UpdateConfig),
|
UpdateConfig(UpdateConfig),
|
||||||
|
UpdateTechMenu(UpdateTechMenu),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RecvServerPacket for RecvShipPacket {
|
impl RecvServerPacket for RecvShipPacket {
|
||||||
@ -242,6 +243,7 @@ impl RecvServerPacket for RecvShipPacket {
|
|||||||
0x1ED => Ok(RecvShipPacket::SaveOptions(SaveOptions::from_bytes(data)?)),
|
0x1ED => Ok(RecvShipPacket::SaveOptions(SaveOptions::from_bytes(data)?)),
|
||||||
0x4ED => Ok(RecvShipPacket::KeyboardConfig(KeyboardConfig::from_bytes(data)?)),
|
0x4ED => Ok(RecvShipPacket::KeyboardConfig(KeyboardConfig::from_bytes(data)?)),
|
||||||
0x5ED => Ok(RecvShipPacket::GamepadConfig(GamepadConfig::from_bytes(data)?)),
|
0x5ED => Ok(RecvShipPacket::GamepadConfig(GamepadConfig::from_bytes(data)?)),
|
||||||
|
0x6ED => Ok(RecvShipPacket::UpdateTechMenu(UpdateTechMenu::from_bytes(data)?)),
|
||||||
0x7ED => Ok(RecvShipPacket::UpdateConfig(UpdateConfig::from_bytes(data)?)),
|
0x7ED => Ok(RecvShipPacket::UpdateConfig(UpdateConfig::from_bytes(data)?)),
|
||||||
_ => Err(PacketParseError::WrongPacketForServerType(u16::from_le_bytes([data[2], data[3]]), data.to_vec()))
|
_ => Err(PacketParseError::WrongPacketForServerType(u16::from_le_bytes([data[2], data[3]]), data.to_vec()))
|
||||||
}
|
}
|
||||||
@ -742,6 +744,9 @@ impl<EG: EntityGateway + Clone> ServerState for ShipServerState<EG> {
|
|||||||
let block = self.blocks.get_from_client(id, &self.clients).await?;
|
let block = self.blocks.get_from_client(id, &self.clients).await?;
|
||||||
handler::room::room_name_request(id, &block.client_location, &block.rooms).await?
|
handler::room::room_name_request(id, &block.client_location, &block.rooms).await?
|
||||||
},
|
},
|
||||||
|
RecvShipPacket::UpdateTechMenu(pkt) => {
|
||||||
|
handler::settings::update_tech_menu(id, pkt, &self.clients, &mut self.entity_gateway).await?
|
||||||
|
},
|
||||||
RecvShipPacket::UpdateConfig(pkt) => {
|
RecvShipPacket::UpdateConfig(pkt) => {
|
||||||
handler::settings::update_config(id, pkt, &self.clients, &mut self.entity_gateway).await?
|
handler::settings::update_config(id, pkt, &self.clients, &mut self.entity_gateway).await?
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user