From e0671b166c5439a7555caa39c94ed4fcff0bad4f Mon Sep 17 00:00:00 2001 From: Raffaele Ragni Date: Mon, 11 Dec 2023 15:33:00 +0100 Subject: [PATCH] docs --- README.md | 2 ++ assets/cube.glb | Bin 0 -> 1888 bytes tests/asset_sync.rs | 30 ++++++++++++++++++++++++++++-- tests/setup/mod.rs | 20 +++++++++++++++++++- 4 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 assets/cube.glb diff --git a/README.md b/README.md index 4628ac7..cccdb4f 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ Current state is in development. - [X] Entity synchronization - [X] Component synchronization - [X] Parent/Child entity synchronization +- [ ] Skippable channel for Unordered+Unreliable + - [ ] Transform - [X] SimpleMaterial (through sync channel) - [ ] Refactor asset transfer through http - [x] Asset: Mesh diff --git a/assets/cube.glb b/assets/cube.glb new file mode 100644 index 0000000000000000000000000000000000000000..7b373f4d0462af367b0afd2b3a3cba6587265882 GIT binary patch literal 1888 zcmb7E?N8G{7=Hv6P<%m9zb^N=&aHzD`ay&VaSE&17GkmxX}jBK(zWDzMai;c|C#<_ ze(-s2J=T<0Z@YWmf6vRc9R!{IIRH3W0Qfr(@TF}xN6d+1E}1oA10HhW$Vf1YeLWRX z7{!GFh7@)K9`?8>G~U~V^GdN=G;7RY=Ul{o6r!_PEU~e{Vh;hBRZ6*-S=|u}ogwO2 zTiFa2MmFb6^C3pLEw9>C>flFJjUn|bDfyiqaYIdj;FfpmW>kr%9JJz&?am`=-5kLabv7X z!dg`mm))sqF|qK6zVy#iqa&s8-9(Z&V&Cj`qtmdPs>`O`I@~#6R@q>kz3+9~ZhiVu zVwQHd8OPj>Bd6Th9oxQW*oWWSErI-s-E+HyWu za4=s1H(W#ie38@X%Tw|reV&rv#}uFF32wkmek23ZtXx3d1UFGyCnRfJ(jl*9 zfCum#*6>_|1$Y9FVHM9+cnh!L6)fYq3@_j%%)=6%OYjCB!5l2&xd=~T1)d??3hsyS E58NNl7XSbN literal 0 HcmV?d00001 diff --git a/tests/asset_sync.rs b/tests/asset_sync.rs index da6556b..be32841 100644 --- a/tests/asset_sync.rs +++ b/tests/asset_sync.rs @@ -1,11 +1,11 @@ mod assert; mod setup; -use assert::{material_has_color, assets_has_sample_mesh}; +use assert::{assets_has_sample_mesh, material_has_color}; use bevy::prelude::*; use bevy_sync::SyncComponent; use serial_test::serial; -use setup::{spawn_new_material, spawn_new_mesh, TestRun}; +use setup::{spawn_new_material, spawn_new_mesh, TestRun, load_cube}; #[test] #[serial] @@ -105,3 +105,29 @@ fn test_mesh_transferred_from_client() { }, ); } + +#[test] +#[serial] +fn test_with_asset_loader() { + TestRun::default().run( + 1, + |env| { + env.setup_registration::>(); + env.setup_registration::>(); + for app in [&mut env.server, &mut env.clients[0]] { + app.sync_meshes(true); + app.sync_materials(true); + } + }, + |env| { + let app = &mut env.server; + load_cube(app) + }, + |env, _, (mesh_id, material_id)| { + println!("{:?} {:?}", mesh_id, material_id); + assets_has_sample_mesh(&mut env.clients[0], mesh_id); + material_has_color(&mut env.clients[0], material_id, Color::RED); + }, + ); +} + diff --git a/tests/setup/mod.rs b/tests/setup/mod.rs index f3979fe..12f09dd 100644 --- a/tests/setup/mod.rs +++ b/tests/setup/mod.rs @@ -1,7 +1,7 @@ use std::{ error::Error, fmt::Display, - net::{IpAddr, Ipv4Addr}, + net::{IpAddr, Ipv4Addr}, os::unix::thread, time::Duration, }; use bevy::{ @@ -242,3 +242,21 @@ pub(crate) fn sample_mesh() -> Mesh { mesh } + +#[allow(dead_code)] +pub(crate) fn load_cube(app: &mut App) -> (AssetId, AssetId) { + app.init_asset::(); + app.init_asset::(); + app.init_asset::(); + let assets = app.world.resource_mut::(); + let scene = assets.load("cube.glb#Scene0"); + app.world.spawn(SceneBundle { + scene, + ..Default::default() + }); + let meshes = app.world.resource_mut::>(); + let mesh_id = meshes.iter().next().unwrap().0; + let materials = app.world.resource_mut::>(); + let material_id = materials.iter().next().unwrap().0; + (mesh_id, material_id) +}