~starkingdoms/starkingdoms

0232dd4973537f7dd769134157ffe0be61e0fbf5 — core 7 days ago 1af6398
Revert "netcode: fix up PlanetDto and try to figure out flickering"

This reverts commit 302ee06fb6c522c2bf5d6908329d24a72dffa671.
M crates/unified/src/client/net.rs => crates/unified/src/client/net.rs +1 -1
@@ 8,5 8,5 @@ use crate::client::net::incoming_planets::handle_incoming_planets;
pub fn net_plugin(app: &mut App) {
    app
        .insert_resource(ServerEntityMap::default())
        .add_systems(PostUpdate, (handle_incoming_planets, handle_incoming_parts));
        .add_systems(PreUpdate, (handle_incoming_planets, handle_incoming_parts));
}
\ No newline at end of file

M crates/unified/src/server/net/update_planets.rs => crates/unified/src/server/net/update_planets.rs +1 -1
@@ 9,7 9,7 @@ use crate::shared::net::{SendTargets, ToClients};
use crate::shared::net::part::PartDto;

pub fn send_updated_planets(
    planets: Query<(Entity, Ref<Planet>, Ref<Transform>)>,
    planets: Query<(Entity, Ref<Planet>, Ref<Transform>, Ref<Temperature>)>,
    mut messages: MessageWriter<ToClients<PlanetDto>>
) {
    for planet in planets {

M crates/unified/src/shared/net.rs => crates/unified/src/shared/net.rs +6 -14
@@ 21,6 21,7 @@ use postcard::{from_bytes, to_allocvec, to_slice, to_vec};
use crate::prelude::{App, Message};
use crate::shared::thrust::ThrustSolution;
use serde::{Deserialize, Serialize};
use smolvec::SmolVec;
use crate::shared::attachment::{Joint, JointOf, PartInShip, Peer, Ship, SnapOf, SnapOfJoint};
use crate::shared::config::planet::{Planet, PlanetSpring, PlanetSpringJoint};
use crate::shared::ecs::{CanCraft, CraftPartRequest, DragRequestEvent, Drill, Part, Player, PlayerStorage, SingleStorage, Temperature, ToggleDrillEvent};


@@ 161,10 162,7 @@ fn register_mapped_server_message<T: Message + MapEntities + TypePath + for<'a> 
    registry.forward.insert(TypeId::of::<T>(), lane_index);
    registry.reverse.insert(lane_index, |payload: Vec<u8>, world: &mut World| {
        let mut entity_map = world.resource_mut::<ServerEntityMap>();
        let Ok(mut message) = from_bytes::<T>(&payload) else {
            warn!("Failed to deserialize message of type {}", T::type_path());
            return;
        };
        let mut message = from_bytes::<T>(&payload).expect(&format!("Failed to deserialize message of type {}", T::type_path()));
        message.map_entities(&mut entity_map.server_to_client);
        world.write_message(message).expect("Could not send message to game");
    });


@@ 173,10 171,7 @@ fn register_server_message<T: Message + TypePath + for<'a> Deserialize<'a>>(regi
    let lane_index = get_lane_index();
    registry.forward.insert(TypeId::of::<T>(), lane_index);
    registry.reverse.insert(lane_index, |payload: Vec<u8>, world: &mut World| {
        let Ok(message) = from_bytes::<T>(&payload) else {
            warn!("Failed to deserialize message of type {}", T::type_path());
            return;
        };
        let message = from_bytes::<T>(&payload).expect(&format!("Failed to deserialize message of type {}", T::type_path()));
        world.write_message(message).expect("Could not send message to game");
    });
}


@@ 184,10 179,7 @@ fn register_client_message<T: Message + TypePath + for<'a> Deserialize<'a>>(regi
    let lane_index = get_lane_index();
    registry.forward.insert(TypeId::of::<T>(), lane_index);
    registry.reverse.insert(lane_index, |payload: Vec<u8>, client_id: ClientId, world: &mut World| {
        let Ok(message) = from_bytes::<T>(&payload) else {
            warn!("Failed to deserialize message of type {}", T::type_path());
            return;
        };
        let message = from_bytes::<T>(&payload).expect(&format!("Failed to deserialize message of type {}", T::type_path()));
        world.write_message(FromClients {
            client_id,
            message,


@@ 270,7 262,7 @@ fn recv_from_server(
        Res<ServerMessageRegistry>,
    )> = SystemState::new(world);
    let (mut sessions, message_registry) = system_state.get_mut(world);
    let mut messages = Vec::new();
    let mut messages = SmolVec::new();
    for mut transport in sessions.iter_mut() {
        for message in transport.recv.msgs.drain() {
            let payload = message.payload;


@@ 293,7 285,7 @@ fn recv_from_client(
        Res<ClientMessageRegistry>,
    )> = SystemState::new(world);
    let (mut clients, message_registry) = system_state.get_mut(world);
    let mut messages = Vec::new();
    let mut messages = SmolVec::new();
    for (client_entity, mut transport) in clients.iter_mut() {
        for message in transport.recv.msgs.drain() {
            let payload = message.payload;