~starkingdoms/starkingdoms

1ec41be4083696df817c9e10c0154181b561c3da — core 2 years ago 42362ad
bevy_twite is having some serious doing-things issues
5 files changed, 27 insertions(+), 15 deletions(-)

M .gitignore
M Cargo.lock
M Cargo.toml
M server/src/main.rs
M starkingdoms-client/src/gateway.ts
M .gitignore => .gitignore +2 -1
@@ 8,4 8,5 @@ build.ninja
api/config.toml
api/.env
assets/dist
assets/final
\ No newline at end of file
assets/final
starkingdoms-client/node_modules

M Cargo.lock => Cargo.lock +2 -2
@@ 380,7 380,7 @@ dependencies = [
[[package]]
name = "bevy_twite"
version = "0.1.0"
source = "git+https://gitlab.com/c0repwn3r/twite.git#5c8672e1321b445540c8577e6c8066df3844c00d"
source = "git+https://gitlab.com/ghostlyzsh/twite.git#f04df32d81c3b460fdd4d80930d19f537b860f1e"
dependencies = [
 "bevy",
 "crossbeam-channel",


@@ 1167,7 1167,7 @@ dependencies = [
[[package]]
name = "twite"
version = "0.1.0"
source = "git+https://gitlab.com/c0repwn3r/twite.git#5c8672e1321b445540c8577e6c8066df3844c00d"
source = "git+https://gitlab.com/ghostlyzsh/twite.git#f04df32d81c3b460fdd4d80930d19f537b860f1e"
dependencies = [
 "base64",
 "rand",

M Cargo.toml => Cargo.toml +2 -1
@@ 1,4 1,5 @@
[workspace]
members = [
    "server",
]
\ No newline at end of file
]
resolver = "2"

M server/src/main.rs => server/src/main.rs +16 -10
@@ 22,8 22,8 @@ fn main() {
        .add_plugins(MinimalPlugins)
        .add_plugins(TwiteServerPlugin)
        .add_systems(Startup, spawn_planets)
        .add_systems(Update, on_connection)
        .add_systems(Update, on_position_change)
        .add_systems(FixedUpdate, on_connection)
        .add_systems(FixedUpdate, on_position_change)
        .run();

    info!("Goodbye!");


@@ 46,7 46,9 @@ fn on_connection(
) {
    let mut packets = Vec::new();
    for ev in reader.read(&events) {
        info!("{:?}", ev);
        if let ServerEvent::Connection(addr) = ev {
            info!("client connected");
            let _id = commands
                .spawn(PlayerBundle {
                    part: PartBundle {


@@ 86,17 88,19 @@ fn on_position_change(
    planet_query: Query<(Entity, &PlanetType, &Transform), Changed<Transform>>,
    mut packet_send: EventWriter<ServerEvent>,
) {
    let mut parts = HashMap::new();
    let mut updated_parts = HashMap::new();
    for (entity, transform) in part_query.iter() {
        let id = commands.entity(entity).id().index();
        let translation = transform.translation;
        parts.insert(id, (0, translation.x, translation.y)); // Type hearty = 0
        updated_parts.insert(id, (0, translation.x, translation.y)); // Type hearty = 0
    }

    let packet = PartPositionPacket { parts };
    let buf = serde_json::to_vec(&packet).unwrap();
    if !updated_parts.is_empty() {
        let packet = PartPositionPacket { parts: updated_parts };
        let buf = serde_json::to_vec(&packet).unwrap();

    packet_send.send(ServerEvent::Broadcast(MessageType::Text, buf));
        packet_send.send(ServerEvent::Broadcast(MessageType::Text, buf));
    }

    let mut planets = HashMap::new();
    for (entity, planet_type, transform) in planet_query.iter() {


@@ 111,8 115,10 @@ fn on_position_change(
        );
    }

    let packet = PlanetPositionPacket { planets };
    let buf = serde_json::to_vec(&packet).unwrap();
    if !planets.is_empty() {
        let packet = PlanetPositionPacket { planets };
        let buf = serde_json::to_vec(&packet).unwrap();

    packet_send.send(ServerEvent::Broadcast(MessageType::Text, buf));
        packet_send.send(ServerEvent::Broadcast(MessageType::Text, buf));
    }
}

M starkingdoms-client/src/gateway.ts => starkingdoms-client/src/gateway.ts +5 -1
@@ 17,6 17,10 @@ export async function gateway_connect(url: string) {
        socket: ws
    };

    ws.onmessage = (e) => {
        console.log(e.data);
    }

    return client;
}



@@ 36,4 40,4 @@ function _websocket_connect(url: string): Promise<WebSocket> {
            reject(err);
        };
    });
}
\ No newline at end of file
}