summaryrefslogtreecommitdiff
path: root/world
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-01-05 21:28:19 +0100
committermetamuffin <metamuffin@disroot.org>2025-01-05 21:28:19 +0100
commitc427fed04f89147bcdcb2b4b1be9198a063d89cd (patch)
treeb713c689795592ee93125575588e9be5cfe925c8 /world
parenta6f57036bc954bab45d61fb41c1bd0a27001bad6 (diff)
downloadweareserver-c427fed04f89147bcdcb2b4b1be9198a063d89cd.tar
weareserver-c427fed04f89147bcdcb2b4b1be9198a063d89cd.tar.bz2
weareserver-c427fed04f89147bcdcb2b4b1be9198a063d89cd.tar.zst
a
Diffstat (limited to 'world')
-rw-r--r--world/src/main.rs22
1 files changed, 21 insertions, 1 deletions
diff --git a/world/src/main.rs b/world/src/main.rs
index 28a4ec4..fd354b3 100644
--- a/world/src/main.rs
+++ b/world/src/main.rs
@@ -1,3 +1,4 @@
+#![feature(iter_array_chunks)]
use anyhow::Result;
use clap::Parser;
use std::{
@@ -6,7 +7,7 @@ use std::{
};
use weareshared::{
packets::{Object, Packet},
- resources::{Part, Prefab, VertexAttributes},
+ resources::{Indecies, Part, Prefab, VertexAttributes},
store::ResourceStore,
};
@@ -36,6 +37,14 @@ fn main() -> Result<()> {
attrs[1].push(p[1]);
attrs[2].push(p[2]);
}
+ let index = reader
+ .read_indices()
+ .unwrap()
+ .into_u32()
+ .map(|e| e as u16)
+ .array_chunks::<3>()
+ .collect::<Vec<_>>();
+
let part = Part {
vertex: attrs
.into_iter()
@@ -45,6 +54,11 @@ fn main() -> Result<()> {
store.set(&out)
})
.collect::<Result<Vec<_>, _>>()?,
+ index: Some({
+ let mut out = Vec::new();
+ Indecies(index).serialize(&mut out)?;
+ store.set(&out)?
+ }),
..Part::default()
};
let mut out = Vec::new();
@@ -60,6 +74,12 @@ fn main() -> Result<()> {
Packet::Add(Object::new(), prefab).serialize(&mut sock)?;
+ store.iter(|d| {
+ Packet::RespondResource(d.to_vec())
+ .serialize(&mut sock)
+ .unwrap();
+ })?;
+
loop {
let packet = Packet::deserialize(&mut sock)?;
match packet {