~starkingdoms/starkingdoms

ref: 8013bd0d83684d62a4d0bdeb707bd92e262dbecb starkingdoms/crates/unified/src/shared/net.rs -rw-r--r-- 1.7 KiB
8013bd0d — core feat(netcode-rewrite): vastly improve client simulation accuracy 28 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
use avian2d::prelude::{AngularInertia, AngularVelocity, LinearVelocity, Mass, Position, Rotation};
use bevy::ecs::entity::MapEntities;
use bevy::prelude::*;
use crate::prelude::{App, Message};
use bevy_replicon::prelude::*;
use serde::{Deserialize, Serialize};
use crate::shared::attachment::{Joint, JointOf, PartInShip, Peer, Ship, SnapOf, SnapOfJoint};
use crate::shared::config::planet::{Planet, PlanetSpring, PlanetSpringJoint};
use crate::shared::ecs::{CanCraft, Drill, Part, Player, PlayerStorage, SingleStorage, Temperature};
use crate::shared::ecs::thruster::{Thruster, ThrusterOfPart};

pub fn register_replication(app: &mut App) {
    app
        .add_mapped_server_message::<Hi>(Channel::Ordered)

        .replicate::<Transform>()
        .replicate::<GlobalTransform>()

        .replicate::<Position>()
        .replicate::<Rotation>()
        .replicate::<LinearVelocity>()
        .replicate::<AngularVelocity>()
        .replicate::<AngularInertia>()
        .replicate::<Mass>()

        .replicate::<Part>()
        .replicate::<Planet>()
        .replicate::<Player>()

        .replicate::<ChildOf>()
        .replicate::<Ship>()
        .replicate::<PartInShip>()
        .replicate::<Joint>()
        .replicate::<Peer>()
        .replicate::<JointOf>()
        .replicate::<SnapOfJoint>()
        .replicate::<SnapOf>()
        .replicate::<PlayerStorage>()
        .replicate::<Thruster>()
        .replicate::<ThrusterOfPart>()
        .replicate::<CanCraft>()
        .replicate::<Temperature>()
        .replicate::<Drill>()
        .replicate::<SingleStorage>()
        .replicate::<PlanetSpring>()
        .replicate::<PlanetSpringJoint>();
}

#[derive(Message, Deserialize, Serialize, MapEntities)]
pub struct Hi {
    #[entities]
    pub you_are: Entity
}