summaryrefslogtreecommitdiff
path: root/world
diff options
context:
space:
mode:
Diffstat (limited to 'world')
-rw-r--r--world/Cargo.toml12
-rw-r--r--world/src/main.rs39
2 files changed, 51 insertions, 0 deletions
diff --git a/world/Cargo.toml b/world/Cargo.toml
new file mode 100644
index 0000000..ee74e2b
--- /dev/null
+++ b/world/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "weareworld"
+version = "0.1.0"
+edition = "2024"
+
+[dependencies]
+anyhow = "1.0.95"
+clap = { version = "4.5.23", features = ["derive"] }
+env_logger = "0.11.6"
+gltf = { version = "1.4.1", features = ["extras", "names"] }
+log = "0.4.22"
+weareshared = { path = "../shared" }
diff --git a/world/src/main.rs b/world/src/main.rs
new file mode 100644
index 0000000..56b62c9
--- /dev/null
+++ b/world/src/main.rs
@@ -0,0 +1,39 @@
+use anyhow::Result;
+use clap::Parser;
+use gltf::Gltf;
+use std::{
+ fs::File,
+ io::BufReader,
+ net::{SocketAddr, TcpStream},
+ path::PathBuf,
+};
+use weareshared::resources::Part;
+
+#[derive(Parser)]
+struct Args {
+ address: SocketAddr,
+ scene: PathBuf,
+}
+
+fn main() -> Result<()> {
+ env_logger::init_from_env("LOG");
+ let args = Args::parse();
+
+ let sock = TcpStream::connect(args.address)?;
+
+ let scenefile = Gltf::from_reader(BufReader::new(File::open(args.scene)?))?;
+ let scene = scenefile
+ .default_scene()
+ .unwrap_or(scenefile.scenes().next().unwrap());
+
+ for node in scene.nodes() {
+ if let Some(mesh) = node.mesh() {
+ for p in mesh.primitives() {
+ for (sem, iter) in p.attributes() {}
+ }
+ let part = Part { ..Part::default() };
+ }
+ }
+
+ Ok(())
+}