diff options
author | metamuffin <metamuffin@disroot.org> | 2025-03-27 18:17:34 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-03-27 18:17:34 +0100 |
commit | 40afd6fa42ad937148c6812b8df8efff6c78e4b5 (patch) | |
tree | 09b5200598d9a9d93757745461fe34fbe28e1a81 /shared/src/resources.rs | |
parent | 9f16507564354422b64e437e547d8403b22b70c7 (diff) | |
download | weareserver-40afd6fa42ad937148c6812b8df8efff6c78e4b5.tar weareserver-40afd6fa42ad937148c6812b8df8efff6c78e4b5.tar.bz2 weareserver-40afd6fa42ad937148c6812b8df8efff6c78e4b5.tar.zst |
spatial tree, graphics and some unit tests
Diffstat (limited to 'shared/src/resources.rs')
-rw-r--r-- | shared/src/resources.rs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/shared/src/resources.rs b/shared/src/resources.rs index 4d14633..fa3c17b 100644 --- a/shared/src/resources.rs +++ b/shared/src/resources.rs @@ -14,9 +14,14 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ -use crate::{helper::ReadWrite, loader::ResLoader, packets::Resource}; +use crate::{ + graphics::GraphicsPart, + helper::{AABB, ReadWrite}, + loader::ResLoader, + packets::Resource, +}; use anyhow::Result; -use glam::{Affine3A, Vec2, Vec3A, Vec4}; +use glam::{Affine3A, DAffine3, Vec2, Vec3A, Vec4}; use log::warn; use std::{ borrow::Cow, @@ -75,10 +80,20 @@ macro_rules! resource_dicts { resource_dicts!( pub struct RespackEntry { c_prefab[multi]: Resource<Prefab>, + c_spatial_index[multi]: Resource<SpatialIndex>, + } + + pub struct SpatialIndex { + level: u32, + prefab: Resource<Prefab>, + child[multi]: (AABB, Resource<SpatialIndex>), } pub struct Prefab { name: String, + transform: DAffine3, + prefab[multi]: (Affine3A, Resource<Prefab>), + graphics[multi]: (Affine3A, Resource<GraphicsPart>), mesh[multi]: (Affine3A, Resource<MeshPart>), collision[multi]: (Affine3A, Resource<CollisionPart>), light[multi]: (Vec3A, Resource<LightPart>), |