From 7cdce1acd7cea1466d9fea5bb776c7997538abb6 Mon Sep 17 00:00:00 2001 From: Nova Date: Thu, 18 Apr 2024 15:32:09 -0400 Subject: [PATCH] feat: awawa --- Cargo.lock | 119 +++++++++------- Cargo.toml | 6 +- {res/raw => assets}/color_cube.blend | Bin {res/raw => assets}/color_cube.blend1 | Bin flake.lock | 48 +++++++ flake.nix | 38 +++++ src/color_cube.rs | 83 +++++++++++ src/main.rs | 195 +++++--------------------- 8 files changed, 278 insertions(+), 211 deletions(-) rename {res/raw => assets}/color_cube.blend (100%) rename {res/raw => assets}/color_cube.blend1 (100%) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 src/color_cube.rs diff --git a/Cargo.lock b/Cargo.lock index a324280..31fb865 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -75,9 +75,9 @@ checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cc" -version = "1.0.92" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41" +checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7" [[package]] name = "cfg-if" @@ -232,6 +232,15 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +[[package]] +name = "glam" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" +dependencies = [ + "mint", +] + [[package]] name = "glam" version = "0.25.0" @@ -355,7 +364,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -402,7 +411,7 @@ checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -610,9 +619,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" dependencies = [ "unicode-ident", ] @@ -720,22 +729,22 @@ checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" [[package]] name = "serde" -version = "1.0.197" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.198" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -746,7 +755,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -791,8 +800,8 @@ checksum = "2f2b15926089e5526bb2dd738a2eb0e59034356e06eb71e1cd912358c0e62c4d" [[package]] name = "stardust-xr" -version = "0.44.0" -source = "git+https://github.com/StardustXR/core#8fcdf1bbf01d9b31feaae7518b02c7d70348cf0b" +version = "0.45.0" +source = "git+https://github.com/StardustXR/core#21120b8924d2a450f4dd92a022d4df40b7e3885d" dependencies = [ "cluFlock", "color-rs", @@ -811,11 +820,12 @@ dependencies = [ [[package]] name = "stardust-xr-fusion" -version = "0.44.1" -source = "git+https://github.com/StardustXR/core#8fcdf1bbf01d9b31feaae7518b02c7d70348cf0b" +version = "0.45.0" +source = "git+https://github.com/StardustXR/core#21120b8924d2a450f4dd92a022d4df40b7e3885d" dependencies = [ "color-eyre", "color-rs", + "glam 0.24.2", "mint", "nanoid", "parking_lot 0.12.1", @@ -832,7 +842,7 @@ dependencies = [ [[package]] name = "stardust-xr-fusion-codegen" version = "0.1.0" -source = "git+https://github.com/StardustXR/core#8fcdf1bbf01d9b31feaae7518b02c7d70348cf0b" +source = "git+https://github.com/StardustXR/core#21120b8924d2a450f4dd92a022d4df40b7e3885d" dependencies = [ "convert_case", "mint", @@ -844,11 +854,11 @@ dependencies = [ [[package]] name = "stardust-xr-molecules" -version = "0.44.1" -source = "git+https://github.com/StardustXR/molecules#78462fc9da51dc1b41a2df7d529c654edaf6e6e8" +version = "0.45.0" +source = "git+https://github.com/StardustXR/molecules#263e19e10fb4af839809e4d1f79717247909175c" dependencies = [ "color-rs", - "glam", + "glam 0.25.0", "lazy_static", "lerp", "map-range", @@ -863,11 +873,11 @@ dependencies = [ [[package]] name = "stardust-xr-schemas" version = "1.5.3" -source = "git+https://github.com/StardustXR/core#8fcdf1bbf01d9b31feaae7518b02c7d70348cf0b" +source = "git+https://github.com/StardustXR/core#21120b8924d2a450f4dd92a022d4df40b7e3885d" dependencies = [ "flatbuffers", "flexbuffers", - "glam", + "glam 0.25.0", "kdl", "manifest-dir-macros", "mint", @@ -889,9 +899,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.58" +version = "2.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687" +checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" dependencies = [ "proc-macro2", "quote", @@ -915,7 +925,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -955,7 +965,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -994,7 +1004,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.58", + "syn 2.0.60", ] [[package]] @@ -1095,7 +1105,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.5", ] [[package]] @@ -1115,17 +1125,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", ] [[package]] @@ -1136,9 +1147,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" @@ -1148,9 +1159,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" @@ -1160,9 +1171,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" @@ -1172,9 +1189,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" @@ -1184,9 +1201,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" [[package]] name = "windows_x86_64_gnullvm" @@ -1196,9 +1213,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" @@ -1208,9 +1225,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.4" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winnow" diff --git a/Cargo.toml b/Cargo.toml index 536cb2e..ca48a0e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,13 +1,15 @@ [package] +edition = "2021" +rust-version = "1.75" name = "color_cube" version = "0.1.0" -edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] manifest-dir-macros = "0.1.18" mint = "0.5.9" +tokio = { version = "1.37.0", features = ["full"] } + stardust-xr-fusion = { git = "https://github.com/StardustXR/core" } stardust-xr-molecules = { git = "https://github.com/StardustXR/molecules" } -tokio = { version = "1.37.0", features = ["full"] } diff --git a/res/raw/color_cube.blend b/assets/color_cube.blend similarity index 100% rename from res/raw/color_cube.blend rename to assets/color_cube.blend diff --git a/res/raw/color_cube.blend1 b/assets/color_cube.blend1 similarity index 100% rename from res/raw/color_cube.blend1 rename to assets/color_cube.blend1 diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..b0e63df --- /dev/null +++ b/flake.lock @@ -0,0 +1,48 @@ +{ + "nodes": { + "crane": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1713459701, + "narHash": "sha256-LjQ11ASxnv/FXfb8QnrIyMkyqSqcBPX+lFK8gu0jSQE=", + "owner": "ipetkov", + "repo": "crane", + "rev": "45ea0059fb325132fdc3c39faffb0941d25d08d3", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1713248628, + "narHash": "sha256-NLznXB5AOnniUtZsyy/aPWOk8ussTuePp2acb9U+ISA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5672bc9dbf9d88246ddab5ac454e82318d094bb8", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "crane": "crane", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..2e257ac --- /dev/null +++ b/flake.nix @@ -0,0 +1,38 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + crane = { + inputs.nixpkgs.follows = "nixpkgs"; + url = "github:ipetkov/crane"; + }; + }; + + + outputs = { self, nixpkgs, crane }: + let supportedSystems = [ "aarch64-linux" "x86_64-linux" ]; + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; + nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); + in { + packages = forAllSystems (system: let pkgs = nixpkgsFor.${system}; in { + default = crane.lib.${system}.buildPackage { + src = ./.; + + STARDUST_RES_PREFIXES = pkgs.stdenvNoCC.mkDerivation { + name = "resources"; + src = ./.; + + buildPhase = "cp -r $src/res $out"; + }; + }; + }); + + devShells = forAllSystems (system: let pkgs = nixpkgsFor.${system}; in { + default = pkgs.mkShell { + nativeBuildInputs = with pkgs; [ + cargo + rustc + ]; + }; + }); + }; +} diff --git a/src/color_cube.rs b/src/color_cube.rs new file mode 100644 index 0000000..fc3e8b1 --- /dev/null +++ b/src/color_cube.rs @@ -0,0 +1,83 @@ +use stardust_xr_fusion::drawable::Model; +use stardust_xr_fusion::{ + client::{Client, FrameInfo}, + core::values::{rgba_linear, Color, ResourceID}, + fields::BoxField, + input::{InputData, InputHandler, InputHandlerAspect, InputHandlerHandler, InputMethod}, + node::NodeType, + spatial::{SpatialAspect, Transform}, + HandlerWrapper, +}; +use stardust_xr_molecules::{Grabbable, GrabbableSettings}; +use std::collections::HashMap; + +pub struct ColorCube { + model: Model, + field: BoxField, + handler: InputHandler, + inputs: HashMap, + hover_color: Color, +} + +impl ColorCube { + pub async fn create(client: &Client) -> HandlerWrapper { + let model = Model::create( + client.get_root(), + Transform::identity(), + &ResourceID::new_namespaced("color_cube", "color_cube"), + ) + .unwrap(); + + let bounds = model.get_local_bounding_box().await.unwrap(); + let field = BoxField::create(&model, Transform::none(), [0.4; 3]).unwrap(); + let hover_color = rgba_linear!(0.5, 0.5, 0.5, 1.0); + + let handler = InputHandler::create(&model, Transform::none(), &field).unwrap(); + let color_cube = ColorCube { + model, + field, + handler: handler.alias(), + inputs: Default::default(), + hover_color, + }; + handler.wrap(color_cube).unwrap() + } + + pub fn update(&mut self, info: &FrameInfo) { + // for (data, method) in self.inputs.iter() { + // data.datamap.with_data(|data| { + // data.idx("color_hover").as_f32() + // }); + // data.captured = true; + // method.capture(&self.handler).unwrap(); + // } + + self.inputs.clear(); + } + + // fn hover(size: Vector2, point: Vector3) -> bool { + // point.x.abs() < size.x && point.y.abs() < size.y + // } + // fn hover_action(input: &InputData, state: &State) -> bool { + // match &input.input { + // InputDataType::Pointer(_) => input.distance < 0.0, + // InputDataType::Hand(h) => Self::hover(state.size, h.index.tip.position), + // InputDataType::Tip(t) => Self::hover(state.size, t.origin), + // } + // } + // fn hover_point(&self, input: &InputData) -> Vector3 { + // let hover_point = match &input.input { + // InputDataType::Pointer(p) => [0.0; 3].into(), + // InputDataType::Hand(h) => h.index.tip.position, + // InputDataType::Tip(t) => t.origin, + // }; + + // return hover_point; + // } +} + +impl InputHandlerHandler for ColorCube { + fn input(&mut self, input: InputMethod, data: InputData) { + self.inputs.insert(data, input); + } +} diff --git a/src/main.rs b/src/main.rs index d15ca8a..d0b5e73 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,175 +1,54 @@ -use std::collections::{HashMap, HashSet}; +mod color_cube; +use color_cube::ColorCube; use manifest_dir_macros::directory_relative_path; -use mint::{Vector2, Vector3}; use stardust_xr_fusion::{ - client::{Client, RootHandler}, core::values::ResourceID, data, drawable::Model, fields::BoxField, input::{InputData, InputDataType, InputHandler, InputHandlerHandler, UnknownInputMethod}, spatial::{SpatialAspect, Transform}, HandlerWrapper + client::{Client, FrameInfo, RootHandler}, + input::InputHandler, + HandlerWrapper, }; -use stardust_xr_molecules::{input_action::{BaseInputAction, InputActionHandler}, Grabbable, GrabbableSettings, PointerMode}; - -#[derive(Debug, Clone, Copy)] -struct State { - size: Vector2, -} - -struct Root { - model: Model, - field: BoxField, - grabbable: Grabbable, - input_handler: HandlerWrapper>, - color_hover: BaseInputAction, - pub hover_color: Vector3, -} - -struct OtherStruct { - model: Model, - handler: InputHandler, - inputs: HashMap, -} - -impl OtherStruct { - fn update(&mut self, info: &stardust_xr_fusion::client::FrameInfo) { - - for (data, method) in self.inputs.iter() { - data.datamap.with_data(|data| { - data.idx("color_hover").as_f32() - }); - data.captured = true; - method.capture(&self.handler).unwrap(); - } - - self.inputs.clear(); - } -} - -impl InputHandlerHandler for OtherStruct { - fn input(&mut self, input: stardust_xr_fusion::input::UnknownInputMethod, data: InputData) { - self.inputs.insert(data); - } -} - -impl Root { - async fn create(client: &Client) -> Self { - // stardust_xr_fusion::drawable::Model - // pub fn create(spatial_parent: &impl SpatialAspect, transform: Transform, model: &ResourceID) -> NodeResult - let model = Model::create( - client.get_root(), - Transform::identity(), - &ResourceID::new_namespaced( - "color_cube", - "color_cube" - ), - ).unwrap(); - - let field = - BoxField::create(&model, Transform::none(), [0.4; 3]).unwrap(); - - let grab_settings = GrabbableSettings { - zoneable: true, - ..Default::default() - }; - - let grabbable = - Grabbable::create(client.get_root(), Transform::none(), &field, grab_settings).unwrap(); - - model - .set_spatial_parent_in_place(grabbable.content_parent()) - .unwrap(); - - let input_handler = InputActionHandler::wrap( - InputHandler::create( - &model, - Transform::none(), - &field, - ).unwrap(), - State { size: [0.1, 0.1].into() }, - ).unwrap(); - - let color_hover = BaseInputAction::new( - false, - Self::hover_action - ); - - let hover_color = [0.5; 3].into(); - - Root { - model, - field, - grabbable, - input_handler, - color_hover, - hover_color, - } - } - - fn hover(size: Vector2, point: Vector3) -> bool { - point.x.abs() < size.x && point.y.abs() < size.y - } - fn hover_action(input: &InputData, state: &State) -> bool { - match &input.input { - InputDataType::Pointer(_) => input.distance < 0.0, - InputDataType::Hand(h) => { - Self::hover(state.size, h.index.tip.position) - } - InputDataType::Tip(t) => { - Self::hover(state.size, t.origin) - } - } - } - fn hover_point(&self, input: &InputData) -> Vector3 { - let hover_point = match &input.input { - InputDataType::Pointer(p) => { - [0.0; 3].into() - } - InputDataType::Hand(h) => { - h.index.tip.position - } - InputDataType::Tip(t) => { - t.origin - } - }; - - return hover_point; - } -} +struct Root(HandlerWrapper); impl RootHandler for Root { - fn frame(&mut self, info: stardust_xr_fusion::client::FrameInfo) { - self.grabbable.update(&info).unwrap(); - - self.input_handler.lock_wrapped().update_actions([ - &mut self.color_hover, - ]); + fn frame(&mut self, info: FrameInfo) { + self.0.lock_wrapped().update(&info); + // self.grabbable.update(&info).unwrap(); - // for input_data in self - // .color_hover - // .started + // self.input_handler.lock_wrapped().update_actions([ + // &mut self.color_hover, + // ]); - if self.color_hover.currently_acting.is_empty() { - self.model.set_local_transform( - Transform::from_scale([1.1; 3]) - ).unwrap(); - } else { - self.model.set_local_transform( - Transform::from_scale([1.0; 3]) - ).unwrap(); + // for input_data in self + // .color_hover + // .started + + // if self.color_hover.currently_acting.is_empty() { + // self.model.set_local_transform( + // Transform::from_scale([1.1; 3]) + // ).unwrap(); + // } else { + // self.model.set_local_transform( + // Transform::from_scale([1.0; 3]) + // ).unwrap(); + // } } - } - fn save_state(&mut self) -> stardust_xr_fusion::client::ClientState { - todo!("implement save state") - } + fn save_state(&mut self) -> stardust_xr_fusion::client::ClientState { + todo!("implement save state") + } } #[tokio::main] async fn main() { - let (client, event_loop) = Client::connect_with_async_loop().await.unwrap(); - client.set_base_prefixes(&[directory_relative_path!("res")]); + let (client, event_loop) = Client::connect_with_async_loop().await.unwrap(); + client.set_base_prefixes(&[directory_relative_path!("res")]); - let _root = client.wrap_root(Root::create(&client).await).unwrap(); + let _root = client + .wrap_root(Root(ColorCube::create(&client).await)) + .unwrap(); - tokio::select! { - _ = tokio::signal::ctrl_c() => (), - _ = event_loop => panic!("server crashed"), - } + tokio::select! { + _ = tokio::signal::ctrl_c() => (), + _ = event_loop => panic!("server crashed"), + } }