diff --git a/audio_bus_layout.tres b/audio_bus_layout.tres new file mode 100644 index 00000000..f1196a61 --- /dev/null +++ b/audio_bus_layout.tres @@ -0,0 +1,15 @@ +[gd_resource type="AudioBusLayout" format=3 uid="uid://c45r135brpaeb"] + +[resource] +bus/1/name = &"Environment" +bus/1/solo = false +bus/1/mute = false +bus/1/bypass_fx = false +bus/1/volume_db = 0.0 +bus/1/send = &"Master" +bus/2/name = &"Music" +bus/2/solo = false +bus/2/mute = false +bus/2/bypass_fx = false +bus/2/volume_db = 0.0 +bus/2/send = &"Master" diff --git a/native/Cargo.lock b/native/Cargo.lock index 911ac820..ac281df3 100644 --- a/native/Cargo.lock +++ b/native/Cargo.lock @@ -32,6 +32,12 @@ version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +[[package]] +name = "arrayvec" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" + [[package]] name = "autocfg" version = "1.1.0" @@ -53,6 +59,12 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "case" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6c0e7b807d60291f42f33f58480c0bfafe28ed08286446f45e463728cf9c1c" + [[package]] name = "cc" version = "1.0.72" @@ -173,6 +185,15 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "euclid" +version = "0.22.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b52c2ef4a78da0ba68fbe1fd920627411096d2ac478f7f4c9f3a54ba6705bade" +dependencies = [ + "num-traits", +] + [[package]] name = "fnv" version = "1.0.7" @@ -264,6 +285,7 @@ dependencies = [ "godot-cell", "godot-codegen", "godot-ffi", + "serde", ] [[package]] @@ -305,7 +327,7 @@ dependencies = [ "itertools", "once_cell", "rand", - "thiserror", + "thiserror 1.0.56", ] [[package]] @@ -322,9 +344,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.2" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" [[package]] name = "heck" @@ -340,9 +362,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexmap" -version = "2.1.0" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "07aa2048142242915a31d35844fb311e0e53fcca590c3a0a40dcf1b841fa09eb" dependencies = [ "equivalent", "hashbrown", @@ -367,6 +389,18 @@ dependencies = [ "lock_api", ] +[[package]] +name = "kurbo" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b60dfc32f652b926df6192e55525b16d186c69d47876c3ead4da5cc9f8450e2" +dependencies = [ + "arrayvec", + "euclid", + "polycool", + "smallvec", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -418,9 +452,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "memoffset" @@ -462,6 +496,7 @@ version = "0.5.0" dependencies = [ "anyhow", "backtrace", + "case", "derive-debug", "godot", "godot-rust-script", @@ -474,7 +509,11 @@ dependencies = [ "rand", "rayon", "regex", - "thiserror", + "serde", + "svgm-core", + "thiserror 1.0.56", + "toml", + "toml_edit 0.25.13+spec-1.1.0", ] [[package]] @@ -589,6 +628,15 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +[[package]] +name = "polycool" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50596ddc09eb5ad5f75cacd40209568e66df71baf86e1499a0e99c4cff12a5a6" +dependencies = [ + "arrayvec", +] + [[package]] name = "pomsky" version = "0.11.0" @@ -625,7 +673,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" dependencies = [ - "toml_edit", + "toml_edit 0.20.7", ] [[package]] @@ -742,12 +790,84 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "serde" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.4", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "smallvec" +version = "1.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" + [[package]] name = "strsim" version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "svgm-core" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28efd8051ef1b3ef0a5f3aa0baf704bfd734ab0d29198c1a0cd525cf174b1a33" +dependencies = [ + "svgtypes", + "thiserror 2.0.20", + "xmlparser", +] + +[[package]] +name = "svgtypes" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "695b5790b3131dafa99b3bbfd25a216edb3d216dad9ca208d4657bfb8f2abc3d" +dependencies = [ + "kurbo", + "siphasher", +] + [[package]] name = "syn" version = "1.0.109" @@ -770,13 +890,33 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "thiserror" version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.56", +] + +[[package]] +name = "thiserror" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +dependencies = [ + "thiserror-impl 2.0.20", ] [[package]] @@ -790,12 +930,47 @@ dependencies = [ "syn 2.0.48", ] +[[package]] +name = "thiserror-impl" +version = "2.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.4", +] + +[[package]] +name = "toml" +version = "1.1.4+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5" +dependencies = [ + "indexmap", + "serde_core", + "serde_spanned", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.4", +] + [[package]] name = "toml_datetime" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.20.7" @@ -803,10 +978,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ "indexmap", - "toml_datetime", - "winnow", + "toml_datetime 0.6.5", + "winnow 0.5.19", +] + +[[package]] +name = "toml_edit" +version = "0.25.13+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" +dependencies = [ + "indexmap", + "serde_core", + "serde_spanned", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.4", +] + +[[package]] +name = "toml_parser" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow 1.0.4", ] +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + [[package]] name = "unicode-id" version = "0.3.6" @@ -853,8 +1058,23 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] + [[package]] name = "wit-bindgen" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" + +[[package]] +name = "xmlparser" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" diff --git a/native/Cargo.toml b/native/Cargo.toml index 4d80f81e..f07c44bf 100644 --- a/native/Cargo.toml +++ b/native/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" crate-type = ["cdylib"] [dependencies] -godot = { version = "0.5.5", features = ["experimental-threads", "api-4-5", "register-docs"] } +godot = { version = "0.5.0", features = ["experimental-threads", "api-4-5", "register-docs", "serde"] } godot-rust-script = { git = "https://github.com/titannano/godot-rust-script", rev = "e63d2e01cf1c02a46091463b5675576630b65659" } lerp = "0.4.0" backtrace = "0.3.64" @@ -22,6 +22,11 @@ rand = "0.9.3" pomsky-macro = "0.11.0" regex = "1.10.5" kanal = { version = "0.1.1", features = ["async"] } +svgm-core = "0.3.8" +toml = "1.1.2" +serde = { version = "1.0.228", features = ["derive"] } +case = "1.0.0" +toml_edit = { version = "0.25.11", features = ["serde"] } [lints.clippy] pedantic = "deny" diff --git a/native/Cargo.toml.uid b/native/Cargo.toml.uid new file mode 100644 index 00000000..f894d3d9 --- /dev/null +++ b/native/Cargo.toml.uid @@ -0,0 +1 @@ +uid://c0by7kjsc66m8 diff --git a/native/rust-toolchain.toml.uid b/native/rust-toolchain.toml.uid new file mode 100644 index 00000000..35c885e0 --- /dev/null +++ b/native/rust-toolchain.toml.uid @@ -0,0 +1 @@ +uid://eawt5dax8mqh diff --git a/native/src/lib.rs b/native/src/lib.rs index af4f6dea..ff4f2cf5 100644 --- a/native/src/lib.rs +++ b/native/src/lib.rs @@ -17,8 +17,13 @@ mod terrain_builder; mod util; mod world; +use godot::classes::{Engine, RefCounted, ResourceLoader, ResourceSaver}; use godot::init::InitStage; -use godot::prelude::{gdextension, ExtensionLibrary}; +use godot::obj::{Gd, NewGd, Singleton}; +use godot::prelude::{gdextension, ExtensionLibrary, GodotClass}; + +use crate::resources::{TomlResourceLoader, TomlResourceSaver}; +use crate::util::logger; struct NativeLib; @@ -27,12 +32,78 @@ unsafe impl ExtensionLibrary for NativeLib { fn on_stage_init(level: InitStage) { if level == InitStage::Scene { godot_rust_script::init!(scripts); + + let toml_resource_loader = TomlResourceLoader::new_gd(); + + ResourceLoader::singleton().add_resource_format_loader(&toml_resource_loader); + + Engine::singleton().register_singleton( + &TomlResourceLoader::class_id().to_string_name(), + &RcSingletonWrapper::wrap(toml_resource_loader.upcast()), + ); + + let toml_resource_saver = TomlResourceSaver::new_gd(); + + ResourceSaver::singleton().add_resource_format_saver(&toml_resource_saver); + + Engine::singleton().register_singleton( + &TomlResourceSaver::class_id().to_string_name(), + &RcSingletonWrapper::wrap(toml_resource_saver.upcast()), + ); } } fn on_stage_deinit(level: InitStage) { if level == InitStage::Scene { godot_rust_script::deinit!(); + + let mut engine = Engine::singleton(); + let mut resource_loader = ResourceLoader::singleton(); + let mut resource_saver = ResourceSaver::singleton(); + + // De-register TOML resource loader. + if let Some(inst) = + engine.get_singleton(&TomlResourceLoader::class_id().to_string_name()) + { + let wrapped_toml_resource_loader = inst.cast::(); + let toml_resource_loader = wrapped_toml_resource_loader + .bind() + .inner + .clone() + .cast::(); + + resource_loader.remove_resource_format_loader(&toml_resource_loader); + + engine.unregister_singleton(&TomlResourceLoader::class_id().to_string_name()); + wrapped_toml_resource_loader.free(); + } else { + logger::error!( + "Unable to access unknown {} singleton!", + TomlResourceLoader::class_id() + ); + } + + // De-register TOML resource saver. + if let Some(inst) = + engine.get_singleton(&TomlResourceSaver::class_id().to_string_name()) + { + let wrapped_toml_resource_saver = inst.cast::(); + let toml_resource_saver = wrapped_toml_resource_saver + .bind() + .inner + .clone() + .cast::(); + + resource_saver.remove_resource_format_saver(&toml_resource_saver); + + engine.unregister_singleton(&TomlResourceSaver::class_id().to_string_name()); + wrapped_toml_resource_saver.free(); + } else { + logger::error!( + "Unable to access unknown {} singleton!", + TomlResourceSaver::class_id() + ); + } } } } @@ -71,3 +142,17 @@ macro_rules! engine_callable { __typecheck($instance).callable(stringify!($fn)) }}; } + +#[derive(GodotClass)] +#[class(base = Object, init)] +struct RcSingletonWrapper { + inner: Gd, +} + +impl RcSingletonWrapper { + fn wrap(inner: Gd) -> Gd { + let slf = Self { inner }; + + Gd::from_object(slf) + } +} diff --git a/native/src/resources.rs b/native/src/resources.rs index db4452c0..4cebdbb1 100644 --- a/native/src/resources.rs +++ b/native/src/resources.rs @@ -5,11 +5,17 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +mod game_settings; mod input_device; +mod input_prompt_texture; mod items; +mod toml_loader; mod water_decal_tracker; mod world_constants; +pub(crate) use game_settings::GameSettings; pub(crate) use input_device::InputDevice; +pub(crate) use input_prompt_texture::InputPromptTexture; +pub(crate) use toml_loader::{TomlResourceLoader, TomlResourceSaver}; pub use water_decal_tracker::WaterDecalTracker; pub use world_constants::*; diff --git a/native/src/resources/game_settings.rs b/native/src/resources/game_settings.rs new file mode 100644 index 00000000..ab852b3e --- /dev/null +++ b/native/src/resources/game_settings.rs @@ -0,0 +1,234 @@ +use godot::builtin::math::ApproxEq; +use godot::builtin::Vector2i; +use godot::classes::display_server::VSyncMode; +use godot::classes::window::{self}; +use godot::classes::{AudioServer, DisplayServer, Engine, ProjectSettings, SceneTree}; +use godot::obj::{Gd, Singleton}; +use godot::prelude::{godot_dyn, GodotClass}; +use serde::{Deserialize, Serialize}; + +use crate::resources::toml_loader::SerializeTomlClass; +use crate::util::logger; + +#[derive(Debug, Clone, Deserialize, Serialize)] +#[serde(default)] +struct AudioSettings { + master: f32, + env: f32, + music: f32, +} + +impl AudioSettings { + fn apply(&self) { + let mut audio_server = AudioServer::singleton(); + + audio_server.set_bus_volume_linear(0, self.master); + audio_server.set_bus_volume_linear(0, self.env); + audio_server.set_bus_volume_linear(0, self.music); + } +} + +impl Default for AudioSettings { + fn default() -> Self { + AudioSettings { + master: 1.0, + env: 1.0, + music: 1.0, + } + } +} + +#[derive(Debug, Clone, Deserialize, Serialize)] +#[serde(default)] +pub(crate) struct VideoSettings { + fullscreen: bool, + vsync: bool, + resolution: Vector2i, +} + +impl VideoSettings { + fn vsync_mode(project_settings: &Gd) -> VSyncMode { + project_settings + .get_setting_with_override("display/window/vsync/vsync_mode") + .to::() + } + + fn window_mode(project_settings: &Gd) -> window::Mode { + project_settings + .get_setting_with_override("display/window/size/mode") + .to::() + } + + fn apply(&self) { + let mut display_server = DisplayServer::singleton(); + let project_settings = ProjectSettings::singleton(); + + let mut main_window = Engine::singleton() + .get_main_loop() + .unwrap() + .cast::() + .get_root() + .unwrap(); + + logger::debug!("applying configured resolution: {}", self.resolution); + main_window.set_content_scale_size(self.resolution); + + logger::debug!("applying fullscreen setting: {}", self.fullscreen); + if self.fullscreen { + main_window.set_mode(window::Mode::EXCLUSIVE_FULLSCREEN); + } else { + main_window.set_mode(window::Mode::WINDOWED); + } + + let vsync_mode = if self.vsync { + Self::vsync_mode(&project_settings) + } else { + VSyncMode::DISABLED + }; + + display_server + .window_set_vsync_mode_ex(vsync_mode) + .window_id(main_window.get_window_id()) + .done(); + } +} + +impl Default for VideoSettings { + fn default() -> Self { + let project_settings = ProjectSettings::singleton(); + + let fullscreen = VideoSettings::window_mode(&project_settings) != window::Mode::FULLSCREEN; + + let vsync = VideoSettings::vsync_mode(&project_settings) != VSyncMode::DISABLED; + + let res_x = project_settings + .get_setting_with_override("display/window/size/viewport_width") + .to::(); + let res_y = project_settings + .get_setting_with_override("display/window/size/viewport_height") + .to::(); + VideoSettings { + fullscreen, + vsync, + resolution: Vector2i::new(res_x, res_y), + } + } +} + +#[derive(Debug, GodotClass, Clone, Deserialize, Serialize, Default)] +#[class(base = Resource, init)] +#[serde(default)] +pub(crate) struct GameSettings { + #[serde(skip)] + dirty: bool, + audio: AudioSettings, + video: VideoSettings, +} + +impl GameSettings { + const PATH: &str = "user://settings.toml"; + + pub fn apply(&mut self) { + self.audio.apply(); + self.video.apply(); + self.dirty = false; + } + + pub fn is_dirty(&self) -> bool { + self.dirty + } + + pub fn set_video_resolution(&mut self, resolution: Vector2i) { + if self.video.resolution != resolution { + self.dirty = true; + } + + self.video.resolution = resolution; + } + + pub fn set_video_fullscreen(&mut self, fullscreen: bool) { + if self.video.fullscreen != fullscreen { + self.dirty = true; + } + self.video.fullscreen = fullscreen; + } + + pub fn set_video_vsync(&mut self, vsync: bool) { + if self.video.vsync != vsync { + self.dirty = true; + } + + self.video.vsync = vsync; + } + + pub fn set_audio_master_bus(&mut self, volume: f32) { + if !self.audio.master.approx_eq(&volume) { + self.dirty = true; + } + + self.audio.master = volume; + } + + pub fn set_audio_env_bus(&mut self, volume: f32) { + if !self.audio.env.approx_eq(&volume) { + self.dirty = true; + } + + self.audio.env = volume; + } + + pub fn set_audio_music_bus(&mut self, volume: f32) { + if !self.audio.music.approx_eq(&volume) { + self.dirty = true; + } + + self.audio.music = volume; + } + + pub fn load_or_new() -> Gd { + let settings_resource = godot::tools::try_load::(Self::PATH); + + let mut settings = match settings_resource { + Ok(settings) => { + logger::info!("loaded game settings: {:?}", *settings.bind()); + settings + } + + Err(err) => { + logger::warn!("failed to load game settings: {err}"); + let default_settings = GameSettings::default(); + + let mut settings_res = Gd::from_object(default_settings); + + settings_res.set_path(Self::PATH); + godot::tools::save(&settings_res, &settings_res.get_path()); + settings_res + } + }; + + settings.bind_mut().apply(); + settings + } +} + +#[godot_dyn] +impl SerializeTomlClass for GameSettings { + fn deserialize( + &'_ mut self, + der: toml::Table, + ) -> Option<>::Error> { + let deserialized = match serde::Deserialize::deserialize(der) { + Ok(de) => de, + Err(err) => return Some(err), + }; + + logger::debug!("Deserialized game settings: {:?}", deserialized); + + *self = deserialized; + None + } + + fn serialize(&self) -> Result { + toml::Table::try_from(self) + } +} diff --git a/native/src/resources/game_settings.rs.uid b/native/src/resources/game_settings.rs.uid new file mode 100644 index 00000000..8075d4c4 --- /dev/null +++ b/native/src/resources/game_settings.rs.uid @@ -0,0 +1 @@ +uid://d3esy4278wisq diff --git a/native/src/resources/input_device.rs b/native/src/resources/input_device.rs index 112f91ea..d32546d9 100644 --- a/native/src/resources/input_device.rs +++ b/native/src/resources/input_device.rs @@ -1,15 +1,23 @@ -use godot::builtin::{Callable, StringName}; +use std::borrow::Cow; + +use godot::builtin::{Callable, GString, StringName}; +use godot::classes::class_macros::sys::VariantType; use godot::classes::input::MouseMode; +use godot::classes::notify::ObjectNotification; use godot::classes::{ match_class, Engine, IResource, Input, InputEvent, InputEventJoypadButton, InputEventJoypadMotion, Resource, }; +use godot::init::is_editor_hint; use godot::meta::conv::ByValue; +use godot::meta::shape::EnumeratorShape; use godot::meta::{FromGodot, GodotConvert, ToGodot}; use godot::obj::{Base, Gd, Singleton, WithUserSignals}; -use godot::prelude::{godot_api, ConvertError, GodotClass}; +use godot::prelude::{godot_api, ConvertError, Export, GodotClass}; use godot::register::property::SimpleVar; +use crate::util::logger; + macro_rules! input_axis { ($event:ident, $field:expr, $neg:expr, $pos:expr) => { if $event.is_action($neg.as_str()) { @@ -54,20 +62,157 @@ impl InputAxis { } } -#[derive(Default)] -enum DeviceType { +#[derive(Default, Clone, Copy, PartialEq, Eq, Debug)] +pub(crate) enum DeviceType { #[default] KeyboardMouse, - Controller, + Controller(ControllerType), +} + +const DEVICE_TYPE_VARIANTS: &[EnumeratorShape] = &[ + EnumeratorShape::new_string("keyboard_mouse"), + EnumeratorShape::new_string("controller_play_station"), + EnumeratorShape::new_string("controller_xbox"), + EnumeratorShape::new_string("controller_steam"), + EnumeratorShape::new_string("controller_steam_deck"), + EnumeratorShape::new_string("controller_switch"), + EnumeratorShape::new_string("controller_switch_2"), + EnumeratorShape::new_string("controller_wii"), + EnumeratorShape::new_string("controller_wii_u"), + EnumeratorShape::new_string("controller_gamecube"), + EnumeratorShape::new_string("controller_generic"), +]; + +impl GodotConvert for DeviceType { + type Via = GString; + + fn godot_shape() -> godot::meta::shape::GodotShape { + godot::meta::shape::GodotShape::Enum { + variant_type: VariantType::STRING, + enumerators: Cow::Borrowed(DEVICE_TYPE_VARIANTS), + godot_name: None, + is_bitfield: false, + } + } +} + +impl ToGodot for DeviceType { + type Pass = ByValue; + + fn to_godot(&self) -> godot::meta::ToArg<'_, Self::Via, Self::Pass> { + let str = match self { + DeviceType::KeyboardMouse => "keyboard_mouse", + DeviceType::Controller(ControllerType::PlayStation) => "controller_play_station", + DeviceType::Controller(ControllerType::Xbox) => "controller_xbox", + DeviceType::Controller(ControllerType::Steam) => "controller_steam", + DeviceType::Controller(ControllerType::SteamDeck) => "controller_steam_deck", + DeviceType::Controller(ControllerType::NintendoSwitch) => "controller_switch", + DeviceType::Controller(ControllerType::NintendoSwitch2) => "controller_switch_2", + DeviceType::Controller(ControllerType::NintendoWii) => "controller_wii", + DeviceType::Controller(ControllerType::NintendoWiiU) => "controller_wii_u", + DeviceType::Controller(ControllerType::NintendoGamecube) => "controller_gamecube", + DeviceType::Controller(ControllerType::Generic) => "controller_generic", + }; + + GString::from(str) + } } +impl FromGodot for DeviceType { + fn try_from_godot(via: Self::Via) -> Result { + match &*via.to_string() { + "keyboard_mouse" => Ok(DeviceType::KeyboardMouse), + "controller_play_station" => Ok(DeviceType::Controller(ControllerType::PlayStation)), + "controller_xbox" => Ok(DeviceType::Controller(ControllerType::Xbox)), + "controller_steam" => Ok(DeviceType::Controller(ControllerType::Steam)), + "controller_steam_deck" => Ok(DeviceType::Controller(ControllerType::SteamDeck)), + "controller_switch" => Ok(DeviceType::Controller(ControllerType::NintendoSwitch)), + "controller_switch_2" => Ok(DeviceType::Controller(ControllerType::NintendoSwitch2)), + "controller_wii" => Ok(DeviceType::Controller(ControllerType::NintendoWii)), + "controller_wii_u" => Ok(DeviceType::Controller(ControllerType::NintendoWiiU)), + "controller_gamecube" => Ok(DeviceType::Controller(ControllerType::NintendoGamecube)), + "controller_generic" => Ok(DeviceType::Controller(ControllerType::Generic)), + _ => Err(ConvertError::new("unknown input device type")), + } + } +} + +impl SimpleVar for DeviceType {} + +#[derive(Clone, Copy, PartialEq, Eq, Debug)] +pub(crate) enum ControllerType { + PlayStation, + Xbox, + Steam, + SteamDeck, + NintendoSwitch, + NintendoSwitch2, + NintendoWii, + NintendoWiiU, + NintendoGamecube, + Generic, +} + +impl ControllerType { + /// Controller name mapping based on the SDL game controller db. + /// + /// + fn from_device_id(device_id: i32) -> Self { + let name = Input::singleton().get_joy_name(device_id).to_string(); + + if name.contains("PS4 Controller") || name.contains("PS3 Controller") { + Self::PlayStation + } else if name.contains("Xbox") { + Self::Xbox + } else if name.contains("Steam Controller") { + Self::Steam + } else if name.contains("Steam Deck") { + Self::SteamDeck + } else if name.contains("Nintendo Switch 2") { + Self::NintendoSwitch2 + } else if name.contains("Nintendo Switch") { + Self::NintendoSwitch + } else if name.contains("Nintendo Wii U") { + Self::NintendoWiiU + } else if name.contains("Nintendo Wii") { + Self::NintendoWii + } else if name.contains("Nintendo Gamecube") { + Self::NintendoGamecube + } else { + Self::Generic + } + } + + pub fn as_str(self) -> &'static str { + match self { + ControllerType::PlayStation => "play_station", + ControllerType::Xbox => "xbox", + ControllerType::Steam => "steam", + ControllerType::SteamDeck => "steam_deck", + ControllerType::NintendoSwitch => "nintendo_switch", + ControllerType::NintendoSwitch2 => "nintendo_switch_2", + ControllerType::NintendoWii => "nintendo_wii", + ControllerType::NintendoWiiU => "nintendo_wii_u", + ControllerType::NintendoGamecube => "nintendo_gamecube", + ControllerType::Generic => "generic", + } + } +} + +impl Export for DeviceType {} + #[derive(GodotClass)] -#[class( base = Resource)] +#[class( base = Resource, tool)] +#[expect(clippy::struct_excessive_bools)] pub(crate) struct InputDevice { #[export] - device_id: i32, + pub device_id: i32, device_type: DeviceType, + + #[export] + #[var(set)] + editor_device_type: DeviceType, mouse_mode: MouseMode, seperate_climp_axis: bool, @@ -79,6 +224,8 @@ pub(crate) struct InputDevice { fire_primary_state: bool, fire_secondary_state: bool, + ui_tab_prev_state: bool, + ui_tab_next_state: bool, base: Base, } @@ -89,6 +236,7 @@ impl IResource for InputDevice { Self { device_id: 0, device_type: DeviceType::default(), + editor_device_type: DeviceType::KeyboardMouse, mouse_mode: MouseMode::VISIBLE, seperate_climp_axis: true, climb: InputAxis::default(), @@ -98,18 +246,42 @@ impl IResource for InputDevice { base, fire_primary_state: false, fire_secondary_state: false, + ui_tab_prev_state: false, + ui_tab_next_state: false, + } + } + + fn on_notification(&mut self, notification: ObjectNotification) { + match notification { + ObjectNotification::POSTINITIALIZE => logger::debug!("input device post init!"), + ObjectNotification::EXTENSION_RELOADED => { + logger::debug!("input device hot-reload complete!"); + } + _ => (), } } } #[godot_api] impl InputDevice { + /// [`DeviceType`] of the input device has changed. + /// + /// Either due to input on a different device with the same ID (Keyboard to Controller switch) or because the editor override changed. + #[signal] + pub fn device_type_changed(); + #[signal] fn fire_primary(pressed: bool); #[signal] fn fire_secondary(pressed: bool); + #[signal] + pub fn ui_tab_prev(pressed: bool); + + #[signal] + pub fn ui_tab_next(pressed: bool); + #[func] fn climb_strength(&self) -> f32 { let climb_strength = self.climb.get(); @@ -126,7 +298,7 @@ impl InputDevice { } #[func] - fn strafe_strength(&self) -> f32 { + pub fn strafe_strength(&self) -> f32 { let strafe_strength = self.strafe.get(); if self.seperate_climp_axis { @@ -141,7 +313,7 @@ impl InputDevice { } #[func] - fn movement_strength(&self) -> f32 { + pub fn movement_strength(&self) -> f32 { self.movement.get() } @@ -153,16 +325,24 @@ impl InputDevice { #[func] #[expect(clippy::needless_pass_by_value)] pub fn capture(&mut self, event: Gd) { - if event.get_device() != self.device_id { + let device_id = event.get_device(); + + if device_id != self.device_id { return; } + let current_device_type = self.device_type; + self.device_type = match_class! { event.clone(), - _ @ InputEventJoypadButton => DeviceType::Controller, - _ @ InputEventJoypadMotion => DeviceType::Controller, + _ @ InputEventJoypadButton => DeviceType::Controller(ControllerType::from_device_id(device_id)), + _ @ InputEventJoypadMotion => DeviceType::Controller(ControllerType::from_device_id(device_id)), _ => DeviceType::KeyboardMouse, }; + if current_device_type != self.device_type { + self.signals().device_type_changed().emit(); + } + input_axis!(event, self.climb, AxisAction::Land, AxisAction::Rise); input_axis!(event, self.movement, AxisAction::Forward, AxisAction::Back); input_axis!( @@ -180,11 +360,13 @@ impl InputDevice { input_button!(event, ButtonAction::FirePrimary, self => (fire_primary, fire_primary_state)); input_button!(event, ButtonAction::FireSecondary, self => (fire_secondary, fire_secondary_state)); + input_button!(event, ButtonAction::UiTabPrev, self => (ui_tab_prev, ui_tab_prev_state)); + input_button!(event, ButtonAction::UiTabNext, self => (ui_tab_next, ui_tab_next_state)); if !Engine::singleton().is_embedded_in_editor() { match self.device_type { DeviceType::KeyboardMouse => Input::singleton().set_mouse_mode(self.mouse_mode), - DeviceType::Controller => Input::singleton().set_mouse_mode(MouseMode::HIDDEN), + DeviceType::Controller(_) => Input::singleton().set_mouse_mode(MouseMode::HIDDEN), } } } @@ -201,6 +383,9 @@ impl InputDevice { .fire_secondary() .to_untyped() .connect(&handler), + + ButtonAction::UiTabPrev => self.signals().ui_tab_prev().to_untyped().connect(&handler), + ButtonAction::UiTabNext => self.signals().ui_tab_next().to_untyped().connect(&handler), } } @@ -218,6 +403,16 @@ impl InputDevice { .fire_secondary() .to_untyped() .disconnect(&handler), + ButtonAction::UiTabPrev => self + .signals() + .ui_tab_prev() + .to_untyped() + .disconnect(&handler), + ButtonAction::UiTabNext => self + .signals() + .ui_tab_next() + .to_untyped() + .disconnect(&handler), } } @@ -225,6 +420,25 @@ impl InputDevice { pub fn set_mouse_mode(&mut self, mode: MouseMode) { self.mouse_mode = mode; } + + pub fn device_type(&self) -> DeviceType { + if is_editor_hint() { + self.editor_device_type + } else { + self.device_type + } + } + + #[func] + fn set_editor_device_type(&mut self, device_type: DeviceType) { + let previous_device_type = self.editor_device_type; + + self.editor_device_type = device_type; + + if device_type != previous_device_type { + self.signals().device_type_changed().emit(); + } + } } #[derive(Clone, Copy, Debug)] @@ -292,9 +506,10 @@ impl FromGodot for AxisAction { #[derive(Clone, Copy, Debug)] enum ButtonAction { - // Buttons FirePrimary, FireSecondary, + UiTabPrev, + UiTabNext, } impl ButtonAction { @@ -302,6 +517,8 @@ impl ButtonAction { match self { Self::FirePrimary => "fire_primary", Self::FireSecondary => "fire_secondary", + Self::UiTabPrev => "ui_tab_prev", + Self::UiTabNext => "ui_tab_next", } } } @@ -319,6 +536,8 @@ impl FromGodot for ButtonAction { let parsed = match via.to_string().as_str() { "fire_primary" => Self::FirePrimary, "fire_secondary" => Self::FireSecondary, + "ui_tab_prev" => Self::UiTabPrev, + "ui_tab_next" => Self::UiTabNext, _ => return Err(ConvertError::new("unknown action type")), }; diff --git a/native/src/resources/input_prompt_texture.rs b/native/src/resources/input_prompt_texture.rs new file mode 100644 index 00000000..9c029206 --- /dev/null +++ b/native/src/resources/input_prompt_texture.rs @@ -0,0 +1,406 @@ +use std::backtrace::Backtrace; +use std::borrow::Cow; +use std::collections::HashMap; + +use godot::builtin::{Array, Dictionary, GString, StringName, Variant}; +use godot::classes::{ + DisplayServer, DpiTexture, FileAccess, IDpiTexture, InputEvent, InputEventJoypadButton, + InputEventJoypadMotion, InputEventKey, InputMap, Os, ProjectSettings, +}; +use godot::global::Key; +use godot::obj::{Base, EngineEnum, Gd, OnEditor, Singleton, WithBaseField}; +use godot::prelude::{godot_api, vslice, GodotClass, Var}; +use godot::signal::ConnectHandle; +use svgm_core::ast::{Attribute, Document, Element, NodeKind}; + +use crate::resources::input_device::{ControllerType, DeviceType}; +use crate::resources::InputDevice; +use crate::util::{logger, run_on_main}; + +enum InputTexture { + Name(String), + Composed(Vec>), +} + +impl InputTexture { + fn to_source(&self, texture_dir: &GString) -> Option { + match self { + InputTexture::Name(name) => { + let texture_path = format!("{texture_dir}/{name}.svg"); + + if !FileAccess::file_exists(&texture_path) { + logger::warn!("prompt texture {} does not exists!", texture_path); + return None; + } + + let svg = FileAccess::get_file_as_string(&texture_path); + + Some(svg) + } + InputTexture::Composed(cows) => { + let mut composed = Document::new(); + let mut x_offset = 0u32; + let mut y_height = 0u32; + + let new_root_id = composed.alloc(NodeKind::Element(Element { + name: "svg".into(), + prefix: None, + attributes: Vec::new(), + namespaces: Vec::new(), + })); + + composed.append_child(composed.root, new_root_id); + + for svg_item in cows { + let texture_path = format!("{texture_dir}/{svg_item}.svg"); + + if !FileAccess::file_exists(&texture_path) { + logger::warn!("prompt texture {} does not exists!", texture_path); + return None; + } + + let svg: String = FileAccess::get_file_as_string(&texture_path).into(); + + let doc = svgm_core::parser::parse(&svg).unwrap_or_else(|err| { + panic!("unable to parse svg string {svg_item:?}: {err}") + }); + let mut id_map = HashMap::with_capacity(doc.nodes.len()); + + for node_id in doc.traverse() { + let node = doc.node(node_id); + + match &node.kind { + NodeKind::Root => { + id_map.insert(node_id, new_root_id); + } + NodeKind::Element(element) => { + let mut new_element = Element { + name: element.name.clone(), + prefix: element.prefix.clone(), + attributes: element.attributes.clone(), + namespaces: element.namespaces.clone(), + }; + + if new_element.qualified_name() == "svg" { + new_element.name = String::from("g"); + new_element.attributes.push(Attribute { + prefix: None, + name: String::from("transform"), + value: format!("translate({x_offset})"), + }); + x_offset += new_element + .attr("width") + .map(|width| width.parse::().unwrap_or_default()) + .unwrap_or_default(); + + y_height = y_height.max( + new_element + .attr("height") + .map(|height| height.parse::().unwrap_or_default()) + .unwrap_or_default(), + ); + } + + let new_node_id = composed.alloc(NodeKind::Element(new_element)); + + id_map.insert(node_id, new_node_id); + + if let Some(parent_id) = node.parent { + let new_parent_id = id_map.get(&parent_id).unwrap(); + + composed.append_child(*new_parent_id, new_node_id); + } + } + NodeKind::Text(_) + | NodeKind::Comment(_) + | NodeKind::CData(_) + | NodeKind::ProcessingInstruction { .. } + | NodeKind::Doctype(_) => (), + } + } + } + + let NodeKind::Element(element) = &mut composed.node_mut(new_root_id).kind else { + unreachable!(); + }; + + element.attributes.push(Attribute { + prefix: None, + name: "width".into(), + value: x_offset.to_string(), + }); + + element.attributes.push(Attribute { + prefix: None, + name: "height".into(), + value: y_height.to_string(), + }); + + let composed_ser = svgm_core::serializer::serialize(&composed); + let composed_optimized = svgm_core::optimize(&composed_ser).unwrap().data; + + Some(GString::from(&composed_optimized)) + } + } + } +} + +#[derive(GodotClass)] +#[class(base = DpiTexture, init, tool)] +pub(crate) struct InputPromptTexture { + #[export(dir)] + #[var(set = set_texture_dir)] + texture_dir: GString, + + #[export] + #[var(set = set_device)] + device: OnEditor>, + + device_type_change_handle: Option, + + is_registered: bool, + + #[export] + #[var(hint = INPUT_NAME, set = set_action)] + action: StringName, + + base: Base, +} + +#[godot_api] +impl InputPromptTexture { + #[func] + fn set_texture_dir(&mut self, dir: GString) { + self.texture_dir = dir; + + if godot::init::is_main_thread() { + self.refresh_prompt_texture(); + } + } + + #[func] + fn set_action(&mut self, action: StringName) { + self.action = action; + + if godot::init::is_main_thread() { + self.refresh_prompt_texture(); + } + } + #[func] + fn set_device(&mut self, device: Gd) { + Var::var_pub_set(&mut self.device, device); + + if godot::init::is_main_thread() { + self.register(); + self.is_registered = true; + } + + if !self.is_registered { + let id = self.base().instance_id(); + + run_on_main(move || { + let mut gd = Gd::::from_instance_id(id); + + gd.bind_mut().register(); + }); + self.is_registered = true; + } + } + + /// Should only be called from the main thread. + fn subscribe_device_type_change(&mut self) { + if let Some(handle) = self.device_type_change_handle.take() { + handle.disconnect(); + } + + self.device_type_change_handle = Some( + self.device + .signals() + .device_type_changed() + .connect_other(self, Self::on_device_type_changed), + ); + } + + fn refresh_prompt_texture(&mut self) { + if Var::var_get(&self.device).is_none() { + return; + } + + if self.action.is_empty() { + return; + } + + if self.texture_dir.is_empty() { + return; + } + + let device_type = self.device.bind().device_type(); + let events = self.get_action_input_events(&self.action); + + let prompt_id = events.iter_shared().find_map(|event| match device_type { + DeviceType::Controller(ty) + if event.is_class(&InputEventJoypadButton::class_id().to_gstring()) => + { + let button = event + .cast::() + .get_button_index() + .as_str() + .to_lowercase(); + + let ty = if matches!(ty, ControllerType::Generic) { + ControllerType::Steam + } else { + ty + }; + + Some(InputTexture::Name(format!("{}_{}", ty.as_str(), button))) + } + DeviceType::Controller(ty) + if event.is_class(&InputEventJoypadMotion::class_id().to_gstring()) => + { + let event = event.cast::(); + let input = event.get_axis().as_str().to_lowercase(); + let sign = if event.get_axis_value().is_sign_negative() { + "neg" + } else { + "pos" + }; + + let ty = if matches!(ty, ControllerType::Generic) { + ControllerType::Xbox + } else { + ty + }; + + Some(InputTexture::Name(format!( + "{}_{input}_{sign}", + ty.as_str() + ))) + } + DeviceType::KeyboardMouse + if event.is_class(&InputEventKey::class_id().to_gstring()) => + { + let event = event.cast::(); + let mut key = event.get_keycode(); + + if key == Key::NONE { + key = DisplayServer::singleton() + .keyboard_get_keycode_from_physical(event.get_physical_keycode()); + } + + if event.is_alt_pressed() + || event.is_ctrl_pressed() + || event.is_shift_pressed() + || event.is_meta_pressed() + { + let mut textures = Vec::new(); + + if event.is_ctrl_pressed() { + textures.push("kbm_ctrl".into()); + } + + if event.is_meta_pressed() { + textures.push("kbm_meta".into()); + } + + if event.is_alt_pressed() { + textures.push("kbm_alt".into()); + } + + if event.is_shift_pressed() { + textures.push("kbm_shift".into()); + } + + textures.push(Cow::Owned(format!( + "kbm_{}", + Os::singleton().get_keycode_string(key).to_lower() + ))); + + return Some(InputTexture::Composed(textures)); + } + + Some(InputTexture::Name(format!( + "{}_{}", + "kbm", + Os::singleton().get_keycode_string(key).to_lower() + ))) + } + DeviceType::KeyboardMouse | DeviceType::Controller(_) => None, + }); + + let Some(tex) = prompt_id else { + logger::warn!("unable to determine current prompt texture!"); + self.base_mut().call_deferred("set_source", vslice![""]); + return; + }; + + let Some(svg) = tex.to_source(&self.texture_dir) else { + self.base_mut().call_deferred("set_source", vslice![""]); + return; + }; + + // Call to set_source would be reentrant. + self.base_mut().set_source(&svg); + // self.base_mut().call_deferred("set_source", vslice![svg]); + } + + fn get_action_input_events(&self, action: &StringName) -> Array> { + if godot::init::is_editor_hint() { + let action_var = ProjectSettings::singleton().get_setting(&format!("input/{action}")); + + if action_var.is_nil() { + logger::warn!("action {} does not exist!", action); + return Array::new(); + } + + let action = match action_var.try_to::>() { + Ok(action) => action, + Err(err) => { + logger::error!("{}", err); + return Array::new(); + } + }; + + let Some(events) = action.get("events") else { + logger::error!("input action has no events key!"); + return Array::new(); + }; + + return events + .to::>() + .iter_shared() + .map(|item| item.to::>()) + .collect(); + } + + InputMap::singleton().action_get_events(&self.action) + } + + fn on_device_type_changed(&mut self) { + if !godot::init::is_main_thread() { + logger::error!( + "InputPromptTexture::on_device_type_changed must be called from main-thread!\n{}", + Backtrace::force_capture() + ); + return; + } + + self.refresh_prompt_texture(); + } + + pub fn register(&mut self) { + self.subscribe_device_type_change(); + self.refresh_prompt_texture(); + } +} + +#[godot_api] +impl IDpiTexture for InputPromptTexture { + fn get_width(&self) -> i32 { + 64 + } + + fn get_height(&self) -> i32 { + 64 + } +} diff --git a/native/src/resources/input_prompt_texture.rs.uid b/native/src/resources/input_prompt_texture.rs.uid new file mode 100644 index 00000000..03ac8e4a --- /dev/null +++ b/native/src/resources/input_prompt_texture.rs.uid @@ -0,0 +1 @@ +uid://dyubpb5pl03bx diff --git a/native/src/resources/toml_loader.rs b/native/src/resources/toml_loader.rs new file mode 100644 index 00000000..9e9d57bf --- /dev/null +++ b/native/src/resources/toml_loader.rs @@ -0,0 +1,262 @@ +use std::collections::VecDeque; +use std::io::Read; + +use case::CaseExt; +use godot::builtin::{GString, PackedStringArray, StringName, Variant}; +use godot::classes::class_macros::private::class_macros::private::class_macros::meta::ToGodot; +use godot::classes::file_access::ModeFlags; +use godot::classes::{ + ClassDb, FileAccess, IResourceFormatLoader, IResourceFormatSaver, Object, Resource, +}; +use godot::global; +use godot::obj::{Gd, Singleton}; +use godot::prelude::{godot_api, GodotClass}; +use godot::tools::GFile; +use num::ToPrimitive; +use serde::Deserializer; + +use crate::util::logger; + +#[derive(GodotClass)] +#[class(base = ResourceFormatLoader, init)] +pub struct TomlResourceLoader {} + +#[godot_api] +impl IResourceFormatLoader for TomlResourceLoader { + fn get_recognized_extensions(&self) -> PackedStringArray { + let mut extensions = PackedStringArray::new(); + + extensions.push("toml"); + + extensions + } + + fn recognize_path(&self, path: GString, _type: StringName) -> bool { + path.get_extension() == "toml" + } + + fn handles_type(&self, ty: StringName) -> bool { + ClassDb::singleton().is_parent_class(&ty, "Resource") + } + + fn get_resource_type(&self, _path: GString) -> GString { + GString::from("Resource") + } + fn exists(&self, path: GString) -> bool { + FileAccess::file_exists(&path) + } + fn load( + &self, + path: GString, + _original_path: GString, + _use_sub_threads: bool, + _cache_mode: i32, + ) -> Variant { + logger::debug!("loading TOML resource..."); + let mut file = match GFile::open(&path, ModeFlags::READ) { + Ok(file) => file, + Err(err) => { + logger::error!("failed to open file: {}", err); + return Variant::nil(); + } + }; + + let mut buf = String::with_capacity(file.length().to_usize().unwrap()); + let result = file.read_to_string(&mut buf); + + if let Err(err) = result { + logger::error!("Failed to read toml file into buffer: {}", err); + return Variant::nil(); + } + + let toml = match toml::from_str::(&buf) { + Ok(value) => value, + Err(err) => { + logger::error!("TOML parse error: {}", err); + return Variant::nil(); + } + }; + + logger::debug!("parsed toml contents!"); + if toml.len() != 1 { + logger::error!("TOML file is expected to have a single top-level table!"); + return Variant::nil(); + } + + let Some((table_name, toml::Value::Table(contents))) = toml.into_iter().next() else { + logger::error!("TOML file is expected to have a single top-level table!"); + return Variant::nil(); + }; + + let class = table_name.to_camel(); + + logger::debug!("deserializing toml class: {}", class); + + if !ClassDb::singleton().class_exists(&class) { + logger::error!("toml file uses unknown class {}", class); + return Variant::nil(); + } + + let instance = ClassDb::singleton().instantiate(&class).to::>(); + + logger::debug!("created instance for toml class!"); + + let mut dyn_instance = match instance.try_dynify::() { + Ok(inst) => inst, + Err(inst) => { + logger::error!("class {class} does not implement toml deserialization"); + if !inst.is_class("RefCounted") { + inst.free(); + } + return Variant::nil(); + } + }; + + let result = dyn_instance.dyn_bind_mut().deserialize(contents); + + if let Some(err) = result { + logger::error!("failed to deserialize TOML class {class}: {}", err); + if !dyn_instance.is_class("RefCounted") { + dyn_instance.free(); + } + return Variant::nil(); + } + + dyn_instance.to_variant() + } +} + +pub trait SerializeTomlClass { + fn deserialize(&mut self, der: toml::Table) + -> Option<>::Error>; + + fn serialize(&self) -> Result; +} + +#[derive(GodotClass)] +#[class(init, base = ResourceFormatSaver)] +pub struct TomlResourceSaver; + +#[godot_api] +impl IResourceFormatSaver for TomlResourceSaver { + fn save( + &mut self, + resource: Option>, + path: GString, + _flags: u32, + ) -> global::Error { + let Some(resource) = resource else { + return global::Error::ERR_INVALID_PARAMETER; + }; + + let serializable = match resource.try_dynify::() { + Ok(val) => val, + Err(obj) => { + logger::error!( + "class {} does not implement TOML serialization!", + obj.get_class() + ); + return global::Error::ERR_INVALID_PARAMETER; + } + }; + + let table = match serializable.dyn_bind().serialize() { + Ok(table) => table, + Err(err) => { + logger::error!("failed to serialize resource: {}", err); + return global::Error::ERR_INVALID_DATA; + } + }; + + let mut envelope = toml::Table::new(); + + envelope.insert( + serializable.get_class().to_string().to_snake(), + toml::Value::Table(table), + ); + + let mut file = match GFile::open(&path, ModeFlags::WRITE) { + Ok(file) => file, + Err(err) => { + logger::error!("Failed to write file: {path} - {err}"); + return global::Error::ERR_FILE_CANT_WRITE; + } + }; + + let document = format_document(&envelope); + + if let Err(err) = file.write_gstring(&document) { + logger::error!("Failed to store setting file: {err}"); + return global::Error::ERR_FILE_CANT_WRITE; + } + + global::Error::OK + } + + fn recognize(&self, resource: Option>) -> bool { + let Some(res) = resource else { + return false; + }; + + res.try_dynify::().is_ok() + } + + fn get_recognized_extensions(&self, resource: Option>) -> PackedStringArray { + let mut list = PackedStringArray::new(); + + if !self.recognize(resource) { + return list; + } + + list.push("toml"); + list + } + + fn recognize_path(&self, resource: Option>, path: GString) -> bool { + if !self.recognize(resource) { + return false; + } + + path.get_extension() == "toml" + } +} +fn should_be_inline_table(table: &toml_edit::Table) -> bool { + table.len() == 2 && table.contains_key("x") && table.contains_key("y") +} + +fn should_not_be_inline_table(table: &toml_edit::InlineTable) -> bool { + table.len() != 2 || !(table.contains_key("x") && table.contains_key("y")) +} + +fn format_document(table: &toml::Table) -> String { + let mut serializer = + toml_edit::ser::to_document(&table).expect("should be able to convert table to document"); + let mut queue: VecDeque<_> = serializer.iter_mut().collect(); + + while let Some((key, item)) = queue.pop_front() { + match item { + toml_edit::Item::Table(table) if should_be_inline_table(table) => { + *item = toml_edit::Item::Value(toml_edit::Value::InlineTable( + table.clone().into_inline_table(), + )); + } + + toml_edit::Item::Table(table) => { + logger::debug!("table {key} is not inline!"); + queue.extend(table.iter_mut()); + } + + toml_edit::Item::Value(toml_edit::Value::InlineTable(table)) + if should_not_be_inline_table(table) => + { + *item = toml_edit::Item::Table(table.clone().into_table()); + + queue.extend(item.as_table_mut().unwrap().iter_mut()); + } + toml_edit::Item::None + | toml_edit::Item::Value(_) + | toml_edit::Item::ArrayOfTables(_) => (), + } + } + serializer.to_string() +} diff --git a/native/src/resources/toml_loader.rs.uid b/native/src/resources/toml_loader.rs.uid new file mode 100644 index 00000000..4b56190f --- /dev/null +++ b/native/src/resources/toml_loader.rs.uid @@ -0,0 +1 @@ +uid://cbsun5nha0k1m diff --git a/native/src/scripts/effects/water_decal.rs b/native/src/scripts/effects/water_decal.rs index 33a2b540..c417495a 100644 --- a/native/src/scripts/effects/water_decal.rs +++ b/native/src/scripts/effects/water_decal.rs @@ -9,7 +9,7 @@ use godot::builtin::{Callable, Color, NodePath}; use godot::classes::Decal; use godot::meta::ToGodot; use godot::obj::Gd; -use godot_rust_script::{godot_script_impl, CastToScript, Context, GodotScript, OnEditor, Rs}; +use godot_rust_script::{godot_script_impl, CastToScript, Context, GodotScript, OnEditor}; use crate::resources::WaterDecalTracker; use crate::util; @@ -52,7 +52,7 @@ impl WaterDecal { 1.0, ); - let mut script: Rs = base.clone().into_script(); + let mut script = base.clone().into_script::(); tween.tween_callback(&Callable::from_fn("water_decal_tween_out", move |_| { script.clean_up(); diff --git a/native/src/scripts/objects/building/fire.rs b/native/src/scripts/objects/building/fire.rs index 96c7cde7..bd7a2ac3 100644 --- a/native/src/scripts/objects/building/fire.rs +++ b/native/src/scripts/objects/building/fire.rs @@ -137,7 +137,7 @@ impl> BuildingFeature for FireFeature { * aabb.size) .abs(); - let mut script: Rs = scene_instance.to_script(); + let mut script = scene_instance.to_script::(); script.set_emission_points(Some(self.emission_points.clone())); script.set_emission_point_normals(Some(self.emission_point_normals.clone())); diff --git a/native/src/scripts/spawner/fire_spawner.rs b/native/src/scripts/spawner/fire_spawner.rs index 4f3dbd3e..2253288e 100644 --- a/native/src/scripts/spawner/fire_spawner.rs +++ b/native/src/scripts/spawner/fire_spawner.rs @@ -5,7 +5,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use std::ops::{Deref, DerefMut, Neg}; +use std::ops::Neg; use godot::builtin::math::ApproxEq; use godot::builtin::{Aabb, Array, GString, Transform3D, Vector3, Vector3Axis}; @@ -19,36 +19,7 @@ use godot_rust_script::{godot_script_impl, GodotScript, OnEditor}; use num::ToPrimitive; use crate::script_callable; -use crate::util::{logger, Uf32}; - -#[derive(Debug)] -struct OnReady(Option); - -impl OnReady { - fn init(&mut self, value: T) { - self.0 = Some(value); - } -} - -impl Default for OnReady { - fn default() -> Self { - Self(None) - } -} - -impl Deref for OnReady { - type Target = T; - - fn deref(&self) -> &Self::Target { - self.0.as_ref().unwrap() - } -} - -impl DerefMut for OnReady { - fn deref_mut(&mut self) -> &mut Self::Target { - self.0.as_mut().unwrap() - } -} +use crate::util::{logger, OnReady, Uf32}; #[derive(GodotScript, Debug)] #[script(base = Node, tool)] diff --git a/native/src/scripts/ui.rs b/native/src/scripts/ui.rs index 719dc2ae..ef64e9c0 100644 --- a/native/src/scripts/ui.rs +++ b/native/src/scripts/ui.rs @@ -1 +1,10 @@ +mod settings_footer; +mod settings_option_input; +mod settings_option_list; +mod settings_option_range; +mod settings_option_toggle; +mod settings_sound_tab; +mod settings_tab_bar; +mod settings_video_tab; +mod tab_controller; mod title_menu; diff --git a/native/src/scripts/ui/settings_audio_tab.rs.uid b/native/src/scripts/ui/settings_audio_tab.rs.uid new file mode 100644 index 00000000..d77df758 --- /dev/null +++ b/native/src/scripts/ui/settings_audio_tab.rs.uid @@ -0,0 +1 @@ +uid://c86cj547owwpx diff --git a/native/src/scripts/ui/settings_footer.rs b/native/src/scripts/ui/settings_footer.rs new file mode 100644 index 00000000..30f40021 --- /dev/null +++ b/native/src/scripts/ui/settings_footer.rs @@ -0,0 +1,56 @@ +use godot::classes::Control; +use godot::obj::Gd; +use godot::{builtin::Vector2, classes::notify::CanvasItemNotification}; +use godot_rust_script::{godot_script_impl, GodotScript}; + +use crate::util::logger; + +#[derive(GodotScript, Debug)] +#[script(base = Control, tool)] +struct SettingsFooter { + #[export(range(min = 0.0, max = 1.0, step = 0.001))] + #[prop(set = Self::set_animation_offset)] + pub animation_offset: f32, + + original_position: Option, + base: Gd, +} + +#[godot_script_impl] +impl SettingsFooter { + pub fn _notification(&mut self, what: i32) { + logger::debug!("footer notification: {}", what); + + if CanvasItemNotification::from(what) == CanvasItemNotification::TRANSFORM_CHANGED + && self.base.get_position() != Vector2::ZERO + { + self.original_position = Some(self.base.get_position()); + self.base.set_notify_transform(false); + } + } + + pub fn _ready(&mut self) { + self.base.set_notify_transform(true); + } + + pub fn _process(&mut self, _delta: f32) { + let original_position = self.base.get_position(); + + if original_position != Vector2::ZERO && self.original_position.is_none() { + self.original_position = Some(original_position); + } + } + + fn set_animation_offset(&mut self, value: f32) { + self.animation_offset = value; + + let Some(original_position) = self.original_position else { + return; + }; + + let offset = self.base.get_size().y * value; + + self.base + .set_position(original_position + Vector2::new(0.0, offset)); + } +} diff --git a/native/src/scripts/ui/settings_footer.rs.uid b/native/src/scripts/ui/settings_footer.rs.uid new file mode 100644 index 00000000..a8097f6f --- /dev/null +++ b/native/src/scripts/ui/settings_footer.rs.uid @@ -0,0 +1 @@ +uid://dyh6wa3o8aij8 diff --git a/native/src/scripts/ui/settings_option_input.rs b/native/src/scripts/ui/settings_option_input.rs new file mode 100644 index 00000000..d6d90745 --- /dev/null +++ b/native/src/scripts/ui/settings_option_input.rs @@ -0,0 +1,72 @@ +use godot::builtin::GString; +use godot::classes::{Control, Label, Texture2D, TextureRect}; +use godot::obj::Gd; +use godot::prelude::Var; +use godot_rust_script::{ + godot_script_impl, GodotScript, OnEditor, Rs, RsDynify, ScriptExportGroup, +}; + +use crate::resources::InputPromptTexture; +use crate::scripts::ui::tab_controller::SettingsControl; + +#[derive(ScriptExportGroup, Debug, Default)] +pub(crate) struct ChildNodes { + label: OnEditor>, + value: OnEditor>, +} + +#[derive(GodotScript, Debug)] +#[script(base = Control, tool)] +pub(crate) struct SettingsOptionInput { + #[export(flatten)] + pub nodes: ChildNodes, + + #[export] + #[prop(set = Self::set_label)] + pub label: GString, + + #[export] + #[prop(set = Self::set_texture)] + pub texture: OnEditor>, + + base: Gd, +} + +#[godot_script_impl] +impl SettingsOptionInput { + pub fn _ready(&mut self) { + self.set_label(self.label.clone()); + + if Var::var_get(&self.texture).is_some() { + self.set_texture(self.texture.clone()); + } + } + + fn set_label(&mut self, value: GString) { + if self.base.is_node_ready() { + self.nodes.label.set_text(&value); + } + + self.label = value; + } + + fn set_texture(&mut self, texture: Gd) { + if self.base.is_node_ready() { + self.nodes + .value + .set_texture(&texture.clone().upcast::()); + } + + Var::var_set(&mut self.texture, Some(texture)); + } +} + +impl SettingsControl for Rs { + fn grab_focus(&mut self) {} +} + +impl RsDynify for SettingsOptionInput { + fn coerce(source: Rs) -> Box { + Box::new(source) as _ + } +} diff --git a/native/src/scripts/ui/settings_option_input.rs.uid b/native/src/scripts/ui/settings_option_input.rs.uid new file mode 100644 index 00000000..bb10e348 --- /dev/null +++ b/native/src/scripts/ui/settings_option_input.rs.uid @@ -0,0 +1 @@ +uid://dgo04vq0hj0ju diff --git a/native/src/scripts/ui/settings_option_list.rs b/native/src/scripts/ui/settings_option_list.rs new file mode 100644 index 00000000..d13efb3f --- /dev/null +++ b/native/src/scripts/ui/settings_option_list.rs @@ -0,0 +1,124 @@ +use godot::builtin::{Array, GString, Signal}; +use godot::classes::{Control, Label, OptionButton}; +use godot::meta::ToGodot; +use godot::obj::Gd; +use godot::register::info::PropertyHint; +use godot_rust_script::{ + godot_script_impl, GodotScript, OnEditor, Rs, RsDynify, ScriptExportGroup, ScriptSignal, +}; +use num::ToPrimitive; + +use crate::script_callable; +use crate::scripts::ui::tab_controller::SettingsControl; + +#[derive(ScriptExportGroup, Debug, Default)] +pub(crate) struct ChildNodes { + label: OnEditor>, + value: OnEditor>, +} + +#[derive(GodotScript, Debug)] +#[script(base = Control, tool)] +pub(crate) struct SettingsOptionList { + #[signal] + pub selection_changed: ScriptSignal, + + /// Internal child node references. + #[export(flatten)] + pub nodes: ChildNodes, + + /// Label of the settings option. + #[export] + #[prop(set = Self::set_label)] + pub label: GString, + + /// Description of the settings option. + /// + /// This text will be displayed on the right-hand side of the settings screen. + #[allow(clippy::manual_string_new)] + #[export(custom(hint = PropertyHint::MULTILINE_TEXT, hint_string = ""))] + pub description: GString, + + /// Possible values for this settings option. + #[export] + #[prop(set = Self::set_values)] + pub values: Array, + + /// The index of the currently selected value. + #[export] + pub selected_index: u32, + + base: Gd, +} + +#[godot_script_impl] +impl SettingsOptionList { + pub fn _ready(&mut self) { + self.set_values(self.values.clone()); + self.set_label(self.label.clone()); + self.nodes + .value + .signals() + .item_selected() + .to_untyped() + .connect(&script_callable!(self, Self::on_selection_changed)); + } + + fn set_label(&mut self, value: GString) { + if self.base.is_node_ready() { + self.nodes.label.set_text(&value); + } + + self.label = value; + } + + #[allow(clippy::needless_pass_by_value)] + pub fn set_values(&mut self, values: Array) { + if self.base.is_node_ready() { + self.nodes + .value + .set_item_count(values.len().to_i32().unwrap()); + + for (idx, value) in values.iter_shared().enumerate() { + self.nodes + .value + .set_item_text(idx.to_i32().unwrap(), &value); + } + } + + self.values = values; + } + + pub fn set_selected(&mut self, index: u32) { + self.nodes.value.select(index.to_i32().unwrap()); + } + + pub fn get_selected(&mut self) -> u32 { + self.nodes.value.get_selected().to_u32().unwrap() + } + + pub fn on_focus(&mut self) { + self.nodes.value.grab_focus(); + } + + pub fn on_selection_changed(&mut self, value: u32) { + self.selected_index = value; + self.selection_changed.emit(value); + } + + pub fn selection_changed(&self) -> Signal { + self.selection_changed.to_godot() + } +} + +impl SettingsControl for Rs { + fn grab_focus(&mut self) { + self.on_focus(); + } +} + +impl RsDynify for SettingsOptionList { + fn coerce(source: godot_rust_script::Rs) -> Box { + Box::new(source) as Box + } +} diff --git a/native/src/scripts/ui/settings_option_list.rs.uid b/native/src/scripts/ui/settings_option_list.rs.uid new file mode 100644 index 00000000..5731dd31 --- /dev/null +++ b/native/src/scripts/ui/settings_option_list.rs.uid @@ -0,0 +1 @@ +uid://b35a3dqq1aw5s diff --git a/native/src/scripts/ui/settings_option_range.rs b/native/src/scripts/ui/settings_option_range.rs new file mode 100644 index 00000000..3b6701ad --- /dev/null +++ b/native/src/scripts/ui/settings_option_range.rs @@ -0,0 +1,145 @@ +use godot::builtin::{GString, Signal}; +use godot::classes::{Control, Label, Slider}; +use godot::meta::ToGodot; +use godot::obj::Gd; +use godot::register::info::PropertyHint; +use godot_rust_script::{ + godot_script_impl, GodotScript, OnEditor, Rs, RsDynify, ScriptExportGroup, ScriptSignal, +}; +use num::ToPrimitive; + +use crate::script_callable; +use crate::scripts::ui::tab_controller::SettingsControl; + +#[derive(ScriptExportGroup, Debug, Default)] +pub(crate) struct ChildNodes { + label: OnEditor>, + value: OnEditor>, +} + +#[derive(GodotScript, Debug)] +#[script(base = Control, tool)] +pub struct SettingsOptionRange { + #[signal] + pub value_changed: ScriptSignal, + + #[export(flatten)] + pub nodes: ChildNodes, + + #[export] + #[prop(set = Self::set_label)] + pub label: GString, + + #[allow(clippy::manual_string_new)] + #[export(custom(hint = PropertyHint::MULTILINE_TEXT, hint_string = ""))] + pub description: GString, + + #[export] + #[prop(set = Self::set_value)] + pub value: f64, + + #[export] + #[prop(set = Self::set_min)] + pub min: f64, + + #[export] + #[prop(set = Self::set_max)] + pub max: f64, + + #[export] + #[prop(set = Self::set_step)] + pub step: f64, + + base: Gd, +} + +#[godot_script_impl] +impl SettingsOptionRange { + pub fn _ready(&mut self) { + self.set_value(self.value); + self.set_label(self.label.clone()); + self.set_step(self.step); + + self.nodes + .value + .signals() + .value_changed() + .to_untyped() + .connect(&script_callable!(self, Self::on_value_changed)); + } + + fn set_label(&mut self, value: GString) { + if self.base.is_node_ready() { + self.nodes.label.set_text(&value); + } + + self.label = value; + } + + fn set_value(&mut self, value: f64) { + if self.base.is_node_ready() { + self.nodes.value.set_value(value); + } + + self.value = value; + } + + fn set_min(&mut self, value: f64) { + if self.base.is_node_ready() { + self.nodes.value.set_min(value); + } + + self.min = value; + } + + fn set_max(&mut self, value: f64) { + if self.base.is_node_ready() { + self.nodes.value.set_max(value); + } + + self.max = value; + } + + fn set_step(&mut self, value: f64) { + if self.base.is_node_ready() { + self.nodes.value.set_step(value); + + if value > 1.0 { + self.nodes + .value + .set_ticks(((self.max - self.min) / value).round().to_i32().unwrap() + 1); + self.nodes.value.set_ticks_on_borders(true); + } else { + self.nodes.value.set_ticks_on_borders(false); + self.nodes.value.set_ticks(0); + } + } + + self.step = value; + } + + pub fn grab_focus(&mut self) { + self.nodes.value.grab_focus(); + } + + pub fn on_value_changed(&mut self, value: f64) { + self.value = value; + self.value_changed.emit(value); + } + + pub fn value_changed(&self) -> Signal { + self.value_changed.to_godot() + } +} + +impl SettingsControl for Rs { + fn grab_focus(&mut self) { + ISettingsOptionRange::grab_focus(self); + } +} + +impl RsDynify for SettingsOptionRange { + fn coerce(source: Rs) -> Box { + Box::new(source) as Box + } +} diff --git a/native/src/scripts/ui/settings_option_range.rs.uid b/native/src/scripts/ui/settings_option_range.rs.uid new file mode 100644 index 00000000..5d249f99 --- /dev/null +++ b/native/src/scripts/ui/settings_option_range.rs.uid @@ -0,0 +1 @@ +uid://cf5coen440mfv diff --git a/native/src/scripts/ui/settings_option_toggle.rs b/native/src/scripts/ui/settings_option_toggle.rs new file mode 100644 index 00000000..5fabdc3a --- /dev/null +++ b/native/src/scripts/ui/settings_option_toggle.rs @@ -0,0 +1,98 @@ +use godot::builtin::{vslice, GString, Signal}; +use godot::classes::{CheckButton, Control, Label}; +use godot::meta::ToGodot; +use godot::obj::Gd; +use godot::register::info::PropertyHint; +use godot_rust_script::{ + godot_script_impl, GodotScript, OnEditor, Rs, RsDynify, ScriptExportGroup, ScriptSignal, +}; + +use crate::script_callable; +use crate::scripts::ui::tab_controller::SettingsControl; + +#[derive(ScriptExportGroup, Debug, Default)] +pub(crate) struct ChildNodes { + label: OnEditor>, + value: OnEditor>, +} + +#[derive(GodotScript, Debug)] +#[script(base = Control, tool)] +pub(crate) struct SettingsOptionToggle { + #[signal] + pub value_changed: ScriptSignal, + + #[export(flatten)] + pub nodes: ChildNodes, + + #[export] + #[prop(set = Self::set_label)] + pub label: GString, + + #[allow(clippy::manual_string_new)] + #[export(custom(hint = PropertyHint::MULTILINE_TEXT, hint_string = ""))] + pub description: GString, + + #[export] + #[prop(set = Self::set_value)] + pub value: bool, + + base: Gd, +} + +#[godot_script_impl] +impl SettingsOptionToggle { + pub fn _ready(&mut self) { + self.set_value(self.value); + self.set_label(self.label.clone()); + self.nodes + .value + .signals() + .toggled() + .to_untyped() + .connect(&script_callable!(self, Self::on_value_changed)); + } + + fn set_label(&mut self, value: GString) { + if self.base.is_node_ready() { + self.nodes.label.set_text(&value); + } + + self.label = value; + } + + pub fn set_value(&mut self, value: bool) { + if self.base.is_node_ready() { + self.nodes + .value + .call_deferred("set_pressed", vslice![value]); + } + + self.value = value; + } + + pub fn grab_focus(&mut self) { + self.nodes.value.grab_focus(); + } + + pub fn on_value_changed(&mut self, value: bool) { + self.value = value; + self.value_changed.emit(value); + } + + pub fn value_changed(&self) -> Signal { + self.value_changed.to_godot() + } +} + +impl SettingsControl for Rs { + fn grab_focus(&mut self) { + ISettingsOptionToggle::grab_focus(self); + } +} + +impl RsDynify for SettingsOptionToggle { + fn coerce(source: Rs) -> Box { + Box::new(source) as Box + } +} diff --git a/native/src/scripts/ui/settings_option_toggle.rs.uid b/native/src/scripts/ui/settings_option_toggle.rs.uid new file mode 100644 index 00000000..00bd0692 --- /dev/null +++ b/native/src/scripts/ui/settings_option_toggle.rs.uid @@ -0,0 +1 @@ +uid://bucso43mr7bv2 diff --git a/native/src/scripts/ui/settings_sound_tab.rs b/native/src/scripts/ui/settings_sound_tab.rs new file mode 100644 index 00000000..2f736140 --- /dev/null +++ b/native/src/scripts/ui/settings_sound_tab.rs @@ -0,0 +1,52 @@ +use godot::classes::Control; +use godot::obj::Gd; +use godot_rust_script::{godot_script_impl, GodotScript, OnEditor, Rs, RsDyn, RsDynify}; + +use crate::resources::GameSettings; +use crate::scripts::ui::settings_option_range::SettingsOptionRange; +use crate::scripts::ui::tab_controller::{SettingsControl, SettingsTab}; + +#[derive(GodotScript, Debug)] +#[script(base = Control)] +pub(crate) struct SettingsSoundTab { + #[export] + pub master_bus: OnEditor>, + + #[export] + pub env_bus: OnEditor>, + + #[export] + pub music_bus: OnEditor>, + + #[export] + pub focus_start: OnEditor>, + + game_settings: Option>, +} + +#[godot_script_impl] +impl SettingsSoundTab { + pub fn focus_start(&self) -> Gd { + self.focus_start.clone() + } + + pub fn set_game_settings(&mut self, settings: Gd) { + self.game_settings = Some(settings); + } +} + +impl SettingsTab for Rs { + fn focus_start(&mut self) -> Option> { + super::tab_controller::cast_settings_control(&ISettingsSoundTab::focus_start(self)) + } + + fn set_game_settings(&mut self, settings: Gd) { + ISettingsSoundTab::set_game_settings(self, settings); + } +} + +impl RsDynify for SettingsSoundTab { + fn coerce(source: Rs) -> Box { + Box::new(source) as _ + } +} diff --git a/native/src/scripts/ui/settings_sound_tab.rs.uid b/native/src/scripts/ui/settings_sound_tab.rs.uid new file mode 100644 index 00000000..d7534af2 --- /dev/null +++ b/native/src/scripts/ui/settings_sound_tab.rs.uid @@ -0,0 +1 @@ +uid://0xeykgj85b76 diff --git a/native/src/scripts/ui/settings_tab_bar.rs b/native/src/scripts/ui/settings_tab_bar.rs new file mode 100644 index 00000000..5e41cb97 --- /dev/null +++ b/native/src/scripts/ui/settings_tab_bar.rs @@ -0,0 +1,25 @@ +use godot::builtin::Vector2; +use godot::classes::Control; +use godot::obj::Gd; +use godot_rust_script::{godot_script_impl, GodotScript}; + +#[derive(GodotScript, Debug)] +#[script(base = Control, tool)] +struct SettingsTabBar { + #[prop(set = Self::set_animation_offset)] + #[export(range(min = 0.0, max = 1.0, step = 0.001))] + pub animation_offset: f32, + + base: Gd, +} + +#[godot_script_impl] +impl SettingsTabBar { + fn set_animation_offset(&mut self, value: f32) { + self.animation_offset = value; + + let offset = self.base.get_size().y * -value; + + self.base.set_position(Vector2::new(0.0, offset)); + } +} diff --git a/native/src/scripts/ui/settings_tab_bar.rs.uid b/native/src/scripts/ui/settings_tab_bar.rs.uid new file mode 100644 index 00000000..99b87971 --- /dev/null +++ b/native/src/scripts/ui/settings_tab_bar.rs.uid @@ -0,0 +1 @@ +uid://dv5y7u4tq2ep8 diff --git a/native/src/scripts/ui/settings_video_tab.rs b/native/src/scripts/ui/settings_video_tab.rs new file mode 100644 index 00000000..1433897b --- /dev/null +++ b/native/src/scripts/ui/settings_video_tab.rs @@ -0,0 +1,182 @@ +use std::collections::HashSet; + +use godot::builtin::{GString, Vector2i}; +use godot::classes::display_server::VSyncMode; +use godot::classes::{window, Control, DisplayServer}; +use godot::obj::{Gd, Singleton}; +use godot_rust_script::{godot_script_impl, GodotScript, OnEditor, Rs, RsDyn, RsDynify}; +use itertools::Itertools; +use num::ToPrimitive; + +use crate::resources::GameSettings; +use crate::script_callable; +use crate::scripts::ui::settings_option_list::{ISettingsOptionList, SettingsOptionList}; +use crate::scripts::ui::settings_option_toggle::{ISettingsOptionToggle, SettingsOptionToggle}; +use crate::scripts::ui::tab_controller::{SettingsControl, SettingsTab}; +use crate::util::logger; + +#[derive(GodotScript, Debug)] +#[script(base = Control)] +pub(crate) struct SettingsVideoTab { + #[export] + pub focus_start: OnEditor>, + + #[export] + pub resolution: OnEditor>, + + #[export] + pub fullscreen: OnEditor>, + + #[export] + pub vsync: OnEditor>, + + resolution_options: Vec, + + game_settings: Option>, + + base: Gd, +} + +#[godot_script_impl] +impl SettingsVideoTab { + pub fn _ready(&mut self) { + self.setup_resolution(); + self.setup_fullscreen(); + } + + pub fn focus_start(&self) -> Gd { + self.focus_start.clone() + } + + fn setup_resolution(&mut self) { + let mut native_resolution = DisplayServer::singleton().screen_get_size(); + + #[cfg(target_os = "macos")] + { + // Godot does not yet correctly support the MacBook display cutout. Temporary hardcoded inset until PR is merged: + // https://github.com/godotengine/godot/pull/119196 + native_resolution.y -= 76; + } + + logger::debug!( + "display safe area: {}", + DisplayServer::singleton().get_display_safe_area() + ); + logger::debug!( + "display cutouts: {}", + DisplayServer::singleton().get_display_cutouts() + ); + + let current_resolution = self.base.get_window().unwrap().get_content_scale_size(); + let aspect_ratio = f64::from(native_resolution.x) / f64::from(native_resolution.y); + + let mut resolution_set = HashSet::with_capacity(4); + resolution_set.insert(native_resolution); + resolution_set.insert(native_resolution * 2 / 3); + resolution_set.insert(native_resolution / 2); + resolution_set.insert(native_resolution * 2 / 5); + resolution_set.insert(native_resolution / 3); + resolution_set.insert(Vector2i::new(1920, 1080)); + resolution_set.insert(Vector2i::new( + (1080.0 * aspect_ratio).round().to_i32().unwrap(), + 1080, + )); + resolution_set.insert(Vector2i::new(1280, 720)); + resolution_set.insert(Vector2i::new( + (720.0 * aspect_ratio).round().to_i32().unwrap(), + 720, + )); + + let option_list: Vec = resolution_set.into_iter().sorted().rev().collect(); + let option_labels = option_list + .iter() + .map(|res| GString::from(&format!("{}x{}", res.x, res.y))) + .collect(); + let current = option_list + .iter() + .find_position(|item| **item == current_resolution) + .map_or_else(|| option_list.len() - 1, |(index, _)| index); + + logger::debug!("current resolution : {}", current_resolution); + + self.resolution.set_values(option_labels); + self.resolution.set_selected(current.to_u32().unwrap()); + self.resolution_options = option_list; + self.resolution + .selection_changed() + .connect(&script_callable!(self, Self::on_resolution_changed)); + } + + pub fn on_resolution_changed(&mut self, index: u32) { + let Some(game_settings) = self.game_settings.as_mut() else { + logger::warn!("Resolution changed but game settings are unset!"); + return; + }; + + let Some(res) = self.resolution_options.get(index as usize) else { + logger::error!("resolution control selected unknown option {}", index); + return; + }; + + logger::debug!("setting new resolution: {}", res); + + game_settings.bind_mut().set_video_resolution(*res); + } + + fn setup_fullscreen(&mut self) { + let is_fullscreen = self.base.get_window().unwrap().get_mode() == window::Mode::FULLSCREEN; + + self.fullscreen.set_value(is_fullscreen); + self.fullscreen + .value_changed() + .connect(&script_callable!(self, Self::on_fullscreen_changed)); + } + + pub fn on_fullscreen_changed(&mut self, value: bool) { + let Some(game_settings) = self.game_settings.as_mut() else { + return; + }; + logger::info!("vsync changed"); + + game_settings.bind_mut().set_video_fullscreen(value); + } + + pub fn setup_vsync(&mut self) { + let use_vsync = DisplayServer::singleton().window_get_vsync_mode() != VSyncMode::DISABLED; + + self.vsync.set_value(use_vsync); + self.vsync + .value_changed() + .connect(&script_callable!(self, Self::on_vsync_changed)); + } + + pub fn on_vsync_changed(&mut self, value: bool) { + let Some(game_settings) = self.game_settings.as_mut() else { + return; + }; + + logger::info!("vsync changed"); + + game_settings.bind_mut().set_video_vsync(value); + } + + pub fn set_game_settings(&mut self, settings: Gd) { + self.game_settings = Some(settings); + } +} + +impl SettingsTab for Rs { + fn focus_start(&mut self) -> Option> { + super::tab_controller::cast_settings_control(&ISettingsVideoTab::focus_start(self)) + } + + fn set_game_settings(&mut self, settings: Gd) { + ISettingsVideoTab::set_game_settings(self, settings); + } +} + +impl RsDynify for SettingsVideoTab { + fn coerce(source: Rs) -> Box { + Box::new(source) as _ + } +} diff --git a/native/src/scripts/ui/settings_video_tab.rs.uid b/native/src/scripts/ui/settings_video_tab.rs.uid new file mode 100644 index 00000000..929ccf43 --- /dev/null +++ b/native/src/scripts/ui/settings_video_tab.rs.uid @@ -0,0 +1 @@ +uid://djectio3deffb diff --git a/native/src/scripts/ui/tab_controller.rs b/native/src/scripts/ui/tab_controller.rs new file mode 100644 index 00000000..36a18d76 --- /dev/null +++ b/native/src/scripts/ui/tab_controller.rs @@ -0,0 +1,269 @@ +use godot::builtin::Signal; +use godot::classes::{AnimationPlayer, Button, CanvasItem, Control, InputEvent, TabBar}; +use godot::meta::ToGodot; +use godot::obj::{Gd, WithUserSignals}; +use godot_rust_script::{ + godot_script_impl, CastToScript, Context, GodotScript, OnEditor, RsDyn, ScriptExportGroup, + ScriptSignal, +}; + +use crate::resources::{GameSettings, InputDevice}; +use crate::script_callable; +use crate::scripts::ui::settings_option_input::SettingsOptionInput; +use crate::scripts::ui::settings_option_list::SettingsOptionList; +use crate::scripts::ui::settings_option_range::SettingsOptionRange; +use crate::scripts::ui::settings_option_toggle::SettingsOptionToggle; +use crate::scripts::ui::settings_sound_tab::SettingsSoundTab; +use crate::scripts::ui::settings_video_tab::SettingsVideoTab; +use crate::util::logger; + +pub(crate) trait SettingsTab { + fn focus_start(&mut self) -> Option>; + fn set_game_settings(&mut self, settings: Gd); +} + +pub(crate) trait SettingsControl { + fn grab_focus(&mut self); +} + +pub fn cast_settings_control(control: &Gd) -> Option> { + if let Ok(option) = control.try_to_script::() { + return Some(option.into_trait()); + } + + if let Ok(option) = control.try_to_script::() { + return Some(option.into_trait()); + } + + if let Ok(option) = control.try_to_script::() { + return Some(option.into_trait()); + } + + if let Ok(option) = control.try_to_script::() { + return Some(option.into_trait()); + } + + None +} + +fn cast_settings_tab(tab: &Gd) -> Option> { + if let Ok(script) = tab.try_to_script::() { + Some(script.into_trait()) + } else if let Ok(script) = tab.try_to_script::() { + Some(script.into_trait()) + } else { + None + } +} + +#[derive(ScriptExportGroup, Debug, Default)] +struct ChildNodes { + tab_control: OnEditor>, + tabs_container: OnEditor>, + accept: OnEditor>, + reset: OnEditor>, + cancel: OnEditor>, + animation_player: OnEditor>, +} + +#[derive(GodotScript, Debug)] +#[script(base = Control)] +pub struct TabController { + #[export] + pub input_device: OnEditor>, + + #[export(flatten)] + #[expect(private_interfaces)] + pub nodes: ChildNodes, + + settings: Option>, + + #[signal] + pub settings_closed: ScriptSignal<()>, + + base: Gd, +} + +#[godot_script_impl] +impl TabController { + pub fn _ready(&mut self) { + let tab_index = self.nodes.tab_control.get_current_tab(); + let Some(settings) = self.settings.clone() else { + logger::error!("Settings must be assigned before adding the UI to the tree!"); + return; + }; + + self.on_tab_change(tab_index); + self.nodes + .tab_control + .signals() + .tab_changed() + .to_untyped() + .connect(&script_callable!(self, Self::on_tab_change)); + + let on_next_tab = script_callable!(self, Self::on_next_tab); + let on_prev_tab = script_callable!(self, Self::on_prev_tab); + let mut input_device = self.input_device.bind_mut(); + + input_device + .signals() + .ui_tab_next() + .to_untyped() + .connect(&on_next_tab); + + input_device + .signals() + .ui_tab_prev() + .to_untyped() + .connect(&on_prev_tab); + + drop(input_device); + + self.nodes + .accept + .signals() + .pressed() + .to_untyped() + .connect(&script_callable!(self, Self::on_settings_accept)); + + self.nodes + .reset + .signals() + .pressed() + .to_untyped() + .connect(&script_callable!(self, Self::on_settings_reset)); + + self.nodes + .cancel + .signals() + .pressed() + .to_untyped() + .connect(&script_callable!(self, Self::on_settings_cancel)); + + for child in self.nodes.tabs_container.get_children().iter_shared() { + let Ok(control) = child.try_cast::() else { + continue; + }; + + let Some(mut tab) = cast_settings_tab(&control) else { + continue; + }; + + tab.set_game_settings(settings.clone()); + } + } + + pub fn _process(&mut self, _delta: f32) { + let dirty_settings = self + .settings + .as_ref() + .is_some_and(|settings| settings.bind().is_dirty()); + + self.nodes.accept.set_disabled(!dirty_settings); + } + + pub fn on_tab_change(&mut self, tab_index: i32) { + for tab in self.nodes.tabs_container.get_children().iter_shared() { + let Ok(mut tab) = tab.try_cast::() else { + continue; + }; + + tab.set_visible(false); + } + + if tab_index < 0 { + return; + } + + let Some(tab_container) = self.nodes.tabs_container.get_child(tab_index) else { + logger::error!("Tab index out of bounds!"); + return; + }; + + let mut tab_container = tab_container.try_cast::().unwrap(); + + tab_container.set_visible(true); + + let Some(mut settings_tab) = cast_settings_tab(&tab_container) else { + logger::warn!( + "Settings tab script {:?} is not one of the know tab types.", + tab_container + .get_script() + .map(|script| script.get_global_name()) + ); + return; + }; + + if let Some(mut control) = settings_tab.focus_start() { + control.grab_focus(); + } + } + + pub fn _unhandled_input(&mut self, event: Gd, mut context: Context) { + let mut input_device = self.input_device.clone(); + + context.reentrant_scope(self, |_base| { + input_device.bind_mut().capture(event); + }); + } + + pub fn on_next_tab(&mut self, pressed: bool, mut context: Context) { + if !pressed { + return; + } + + let mut tab_control = self.nodes.tab_control.clone(); + + context.reentrant_scope(self, |_base| { + tab_control.select_next_available(); + }); + } + + pub fn on_prev_tab(&mut self, pressed: bool, mut context: Context) { + if !pressed { + return; + } + + let mut tab_control = self.nodes.tab_control.clone(); + + context.reentrant_scope(self, |_base| { + tab_control.select_previous_available(); + }); + } + + fn close(&mut self) { + self.nodes.animation_player.play_ex().name("exit").done(); + } + + pub fn finalize_close(&mut self) { + self.base.queue_free(); + self.settings_closed.emit(()); + } + + pub fn on_settings_accept(&mut self) { + if let Some(settings) = &mut self.settings { + settings.bind_mut().apply(); + } else { + logger::warn!("No settings assigned to settings UI!"); + } + + self.close(); + } + + #[expect(clippy::unused_self)] + pub fn on_settings_reset(&self) { + logger::info!("reset pressed!"); + } + + pub fn on_settings_cancel(&mut self) { + self.close(); + } + + pub fn settings_closed(&self) -> Signal { + self.settings_closed.to_godot() + } + + pub fn set_settings(&mut self, settings: Gd) { + self.settings = Some(settings); + } +} diff --git a/native/src/scripts/ui/tab_controller.rs.uid b/native/src/scripts/ui/tab_controller.rs.uid new file mode 100644 index 00000000..533c10aa --- /dev/null +++ b/native/src/scripts/ui/tab_controller.rs.uid @@ -0,0 +1 @@ +uid://c5e50xbnlkiks diff --git a/native/src/scripts/ui/title_menu.rs b/native/src/scripts/ui/title_menu.rs index fa8ff073..815b25cc 100644 --- a/native/src/scripts/ui/title_menu.rs +++ b/native/src/scripts/ui/title_menu.rs @@ -1,6 +1,7 @@ use godot::builtin::math::ApproxEq; use godot::builtin::{GString, StringName, Vector2, Vector2i}; use godot::classes::input::MouseMode; +use godot::classes::object::ConnectFlags; use godot::classes::resource_loader::ThreadLoadStatus; use godot::classes::{ window, Animation, AnimationPlayer, BaseButton, Button, Control, DisplayServer, Engine, @@ -9,12 +10,15 @@ use godot::classes::{ use godot::global; use godot::meta::conv::ObjectToOwned; use godot::obj::{EngineEnum, Gd, Singleton as _}; -use godot_rust_script::{godot_script_impl, Context, GodotScript, OnEditor, ScriptExportGroup}; +use godot_rust_script::{ + godot_script_impl, CastToScript, Context, GodotScript, OnEditor, ScriptExportGroup, +}; use num::ToPrimitive; -use crate::resources::InputDevice; +use crate::resources::{GameSettings, InputDevice}; use crate::script_callable; -use crate::util::logger; +use crate::scripts::ui::tab_controller::{ITabController, TabController}; +use crate::util::{logger, OnReady}; #[derive(ScriptExportGroup, Debug, Default)] struct AnimationsGroup { @@ -22,31 +26,39 @@ struct AnimationsGroup { ui_activate: OnEditor>, } -#[derive(GodotScript, Debug)] -#[script(base = Node3D)] -struct TitleMenu { - #[export] +#[derive(ScriptExportGroup, Debug, Default)] +struct ChildNodes { pub scene_transitions: OnEditor>, - #[export] pub start_game: OnEditor>, - #[export] pub quit_game: OnEditor>, + pub settings: OnEditor>, + pub ui_sounds: OnEditor>, +} + +#[derive(GodotScript, Debug)] +#[script(base = Node3D)] +struct TitleMenu { #[export(file = ["*.tscn"])] pub main_scene: GString, - #[export] - pub ui_sounds: OnEditor>, + #[export(file = ["*.tscn"])] + pub settings_scene: GString, #[export(flatten)] pub animations: AnimationsGroup, + #[export(flatten)] + pub nodes: ChildNodes, + #[export] pub input_device: OnEditor>, ready: bool, + mute_ui: bool, + settings: OnReady>, base: Gd, } @@ -54,9 +66,12 @@ struct TitleMenu { #[godot_script_impl] impl TitleMenu { pub fn _ready(&mut self, mut context: Context<'_, Self>) { + let settings = GameSettings::load_or_new(); + + self.settings.init(settings); self.apply_ui_scale(); - let mut start_game = self.start_game.clone(); + let mut start_game = self.nodes.start_game.clone(); // Grab the focus of the first menu entry. context.reentrant_scope(self, |_base| { @@ -65,18 +80,27 @@ impl TitleMenu { logger::debug!("connecting button signals!"); - self.quit_game + self.nodes + .quit_game .signals() .pressed() .to_untyped() .connect(&script_callable!(self, Self::on_quit)); - self.start_game + self.nodes + .start_game .signals() .pressed() .to_untyped() .connect(&script_callable!(self, Self::on_start_game)); + self.nodes + .settings + .signals() + .pressed() + .to_untyped() + .connect(&script_callable!(self, Self::on_settings)); + self.ready = true; self.input_device .bind_mut() @@ -84,7 +108,8 @@ impl TitleMenu { } pub fn on_start_game(&mut self) { - self.scene_transitions + self.nodes + .scene_transitions .play_ex() .name("title_screen_ui/fade_out") .done(); @@ -99,7 +124,7 @@ impl TitleMenu { let scene_path = self.main_scene.clone(); let mut tree = self.base.get_tree(); - let animation_player = self.scene_transitions.clone(); + let animation_player = self.nodes.scene_transitions.clone(); godot::task::spawn(async move { loop { @@ -143,6 +168,75 @@ impl TitleMenu { }); } + pub fn on_settings(&mut self) { + let mut resource_loader = ResourceLoader::singleton(); + let scene_path = self.settings_scene.clone(); + let load_err = resource_loader.load_threaded_request(&scene_path); + let on_settings_closed = script_callable!(self, Self::on_settings_closed); + + if load_err != global::Error::OK { + logger::error!("failed to load settings UI scene: {}", load_err.as_str()); + return; + } + + let tree = self.base.get_tree(); + let settings = self.settings.clone(); + + godot::task::spawn(async move { + loop { + match resource_loader.load_threaded_get_status(&scene_path) { + ThreadLoadStatus::IN_PROGRESS => { + tree.signals().process_frame().to_future().await; + } + + ThreadLoadStatus::LOADED => { + let scene: Gd = resource_loader + .load_threaded_get(&scene_path) + .unwrap() + .cast(); + + let mut settings_ui = scene + .instantiate_as::() + .to_script::(); + settings_ui + .settings_closed() + .connect_flags(&on_settings_closed, ConnectFlags::ONE_SHOT); + settings_ui.set_settings(settings); + + tree.get_root().unwrap().add_child(&*settings_ui); + break; + } + + ThreadLoadStatus::INVALID_RESOURCE => { + logger::error!("Scene path {} is an invalid resource!", scene_path); + break; + } + + ThreadLoadStatus::FAILED => { + logger::error!("Failed to load scene: {}", scene_path); + break; + } + + _ => unreachable!(), + } + } + }); + } + + pub fn on_settings_closed(&mut self, context: Context) { + self.grab_ui_focus(self.nodes.settings.clone().upcast(), context); + } + + fn grab_ui_focus(&mut self, mut control: Gd, mut context: Context) { + self.mute_ui = true; + + context.reentrant_scope(self, |_base| { + control.grab_focus(); + }); + + self.mute_ui = false; + } + pub fn on_quit(&mut self) { let mut tree = self.base.get_tree(); @@ -174,22 +268,27 @@ impl TitleMenu { } fn play_ui_sound(&mut self, animation: &Gd) { - if !self.ready { + if !self.ready || self.mute_ui { return; } let animation = animation.get_name(); - if !self.ui_sounds.has_animation(&StringName::from(&animation)) { + if !self + .nodes + .ui_sounds + .has_animation(&StringName::from(&animation)) + { logger::error!( "Animation {} does not belong to Animation Player {}", animation, - self.ui_sounds.get_name() + self.nodes.ui_sounds.get_name() ); return; } - self.ui_sounds + self.nodes + .ui_sounds .play_ex() .name(&StringName::from(&animation)) .done(); @@ -220,17 +319,17 @@ impl TitleMenu { ) * scale; let window_position = window.get_position(); - logger::debug!( - "content size: {}, window size: {}", - window.get_content_scale_size(), - window_size - ); - window.set_size(Vector2i::new( scaled_window_size.x.to_i32().unwrap(), scaled_window_size.y.to_i32().unwrap(), )); window.set_position(window_position - window_size / 2); + + logger::debug!( + "content size: {}, window size: {}", + window.get_content_scale_size(), + window.get_size() + ); } } diff --git a/native/src/scripts/world/buildings.rs b/native/src/scripts/world/buildings.rs index cd03c62f..e8e17d93 100644 --- a/native/src/scripts/world/buildings.rs +++ b/native/src/scripts/world/buildings.rs @@ -16,7 +16,7 @@ use godot::obj::{Gd, NewAlloc, Singleton as _}; use godot::task; use godot::task::TaskHandle; use godot_rust_script::{ - godot_script_impl, CastToScript, Context, GodotScript, OnEditor, Rs, ScriptSignal, + godot_script_impl, CastToScript, Context, GodotScript, OnEditor, ScriptSignal, }; use crate::objects::scene_object_registry; @@ -71,7 +71,7 @@ impl Buildings { let (resolve, godot_future) = async_support::godot_future(); let handle = ctx.reentrant_scope(self, |mut base: Gd| { - let script_self_ref: Rs = base.to_script(); + let script_self_ref = base.to_script::(); let tree = base.get_tree(); task::spawn(async move { @@ -148,7 +148,7 @@ impl Buildings { &city_coords_feature, ); - base.to_script::().emit_spawn_point_encountered( + base.to_script::().emit_spawn_point_encountered( Array::from(&[building_origin.0, building_origin.1]), 2, spawn_tile.altitude, diff --git a/native/src/scripts/world/gi_probes.rs b/native/src/scripts/world/gi_probes.rs index 0cd31cb1..93139a17 100644 --- a/native/src/scripts/world/gi_probes.rs +++ b/native/src/scripts/world/gi_probes.rs @@ -14,7 +14,7 @@ use godot::classes::{ CameraAttributes, CameraAttributesPractical, MeshInstance3D, Node3D, VoxelGi, VoxelGiData, }; use godot::obj::{Gd, NewAlloc, NewGd}; -use godot_rust_script::{godot_script_impl, CastToScript, GodotScript, OnEditor, Rs, ScriptSignal}; +use godot_rust_script::{godot_script_impl, CastToScript, GodotScript, OnEditor, ScriptSignal}; use crate::{ resources::WorldConstants, @@ -116,7 +116,7 @@ impl GiProbes { let world_root = base.get_parent_node_3d().unwrap(); let scene_tree = base.get_tree(); - let mut script: Rs = base.to_script(); + let mut script = base.to_script::(); let probes = probe_coordinates .map(|xy| { diff --git a/native/src/util.rs b/native/src/util.rs index 76ebc512..9f9011fc 100644 --- a/native/src/util.rs +++ b/native/src/util.rs @@ -8,6 +8,7 @@ pub mod async_support; pub mod logger; mod numbers; +mod on_ready; #[cfg(debug_assertions)] use godot::builtin::{ @@ -17,15 +18,19 @@ use godot::builtin::{ Signal, StringName, Transform2D, Transform3D, VarArray, VarDictionary, Variant, VariantType, Vector2, Vector2i, Vector3i, Vector4, Vector4i, }; -use godot::builtin::{Basis, Vector3}; #[cfg(debug_assertions)] use godot::classes::Object; -use godot::classes::{SceneTree, SceneTreeTimer}; -use godot::obj::Gd; +use godot::classes::{Engine, SceneTree, SceneTreeTimer}; #[cfg(debug_assertions)] use godot::obj::NewAlloc; +use godot::obj::{Gd, Singleton}; +use godot::{ + builtin::{Basis, Vector3}, + classes::object::ConnectFlags, +}; pub use numbers::*; +pub(crate) use on_ready::*; /// Create a new in game one-shot timer in seconds. #[inline] @@ -154,3 +159,16 @@ macro_rules! debug_3d { $debugger.debug_data().set(stringify!($variable), $variable); }; } + +pub(crate) fn run_on_main(cb: impl FnMut() + Sync + Send + 'static) { + let tree = Engine::singleton() + .get_main_loop() + .expect("SceneTree must be available") + .cast::(); + + tree.signals() + .process_frame() + .builder() + .flags(ConnectFlags::ONE_SHOT) + .connect_sync(cb); +} diff --git a/native/src/util/on_ready.rs b/native/src/util/on_ready.rs new file mode 100644 index 00000000..8042a852 --- /dev/null +++ b/native/src/util/on_ready.rs @@ -0,0 +1,30 @@ +use std::ops::{Deref, DerefMut}; + +#[derive(Debug)] +pub(crate) struct OnReady(Option); + +impl OnReady { + pub fn init(&mut self, value: T) { + self.0 = Some(value); + } +} + +impl Default for OnReady { + fn default() -> Self { + Self(None) + } +} + +impl Deref for OnReady { + type Target = T; + + fn deref(&self) -> &Self::Target { + self.0.as_ref().unwrap() + } +} + +impl DerefMut for OnReady { + fn deref_mut(&mut self) -> &mut Self::Target { + self.0.as_mut().unwrap() + } +} diff --git a/native/src/util/on_ready.rs.uid b/native/src/util/on_ready.rs.uid new file mode 100644 index 00000000..1c011173 --- /dev/null +++ b/native/src/util/on_ready.rs.uid @@ -0,0 +1 @@ +uid://vkiglk6exv7j diff --git a/project.godot b/project.godot index 741c3fd3..3479292a 100644 --- a/project.godot +++ b/project.godot @@ -16,6 +16,10 @@ run/main_scene="uid://b0l6ccv01wtnb" config/features=PackedStringArray("4.6") boot_splash/bg_color=Color(0, 0, 0, 1) +[audio] + +buses/default_bus_layout="uid://c45r135brpaeb" + [debug] settings/profiler/max_timestamp_query_elements=500 @@ -38,7 +42,6 @@ window/stretch/mode="viewport" window/vsync/vsync_mode=2 window/size/viewport_height.editor=720 window/size/viewport_width.editor=1280 -window/vsync/use_vsync=true window/size/mode.editor=0 [editor] @@ -72,10 +75,14 @@ scene={ ui_accept={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194310,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":false,"script":null) +] +} +ui_select={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } ui_cancel={ @@ -106,7 +113,7 @@ forward={ back={ "deadzone": 0.1, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) -, null, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null) ] } left={ @@ -146,13 +153,13 @@ debug_cam={ } fire_primary={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":0,"key_label":4194309,"unicode":0,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } fire_secondary={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":0,"key_label":4194309,"unicode":0,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } @@ -183,6 +190,31 @@ debug_toggle_gi={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"command_or_control_autoremap":true,"alt_pressed":false,"shift_pressed":true,"pressed":false,"keycode":0,"physical_keycode":0,"key_label":71,"unicode":103,"location":0,"echo":false,"script":null) ] } +ui_tab_next={ +"deadzone": 0.2, +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +] +} +ui_tab_prev={ +"deadzone": 0.2, +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":9,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +] +} +ui_reset={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194308,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null) +] +} +ui_apply={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194310,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) +] +} [network] @@ -198,6 +230,8 @@ jolt_physics_3d/simulation/areas_detect_static_bodies=true [rendering] +rendering_device/staging_buffer/block_size_kb=3072 +rendering_device/staging_buffer/max_size_mb=1024 rendering_device/driver.macos="vulkan" textures/vram_compression/import_s3tc_bptc=true textures/vram_compression/import_etc2_astc=true @@ -211,7 +245,9 @@ global_illumination/voxel_gi/quality=1 textures/default_filters/anisotropic_filtering_level=3 environment/ssao/half_size=false environment/ssil/half_size=false +anti_aliasing/quality/msaa_3d=2 anti_aliasing/screen_space_roughness_limiter/enabled=false +scaling_3d/mode=2 scaling_3d/fsr_sharpness=0.2 textures/decals/filter=5 textures/light_projectors/filter=5 @@ -224,9 +260,9 @@ environment/volumetric_fog/volume_size=100 environment/volumetric_fog/volume_depth=100 limits/cluster_builder/max_clustered_elements=2048.0 occlusion_culling/use_occlusion_culling=true +mesh_lod/lod_change/threshold_pixels=10.0 environment/defaults/default_environment="res://resources/Environments/default_env.tres" shading/hdr_2d=false -environment/screen_space_reflection/roughness_quality=2 [shader_globals] diff --git a/resources/Config/primary_input_device.tres b/resources/Config/primary_input_device.tres index afc7cfc8..8bb1741f 100644 --- a/resources/Config/primary_input_device.tres +++ b/resources/Config/primary_input_device.tres @@ -1,3 +1,4 @@ [gd_resource type="InputDevice" format=3 uid="uid://bky2vkjjwnd0p"] [resource] +editor_device_type = "controller_generic" diff --git a/resources/Environments/title_screen_env.tres b/resources/Environments/title_screen_env.tres index 09fd0a44..a3ab4e28 100644 --- a/resources/Environments/title_screen_env.tres +++ b/resources/Environments/title_screen_env.tres @@ -6,7 +6,8 @@ background_intensity = 20000.0 reflected_light_source = 2 tonemap_mode = 4 ssr_enabled = true -ssr_depth_tolerance = 5.01 +ssr_max_steps = 256 +ssr_fade_out = 1.0 ssao_ao_channel_affect = 1.0 glow_enabled = true glow_levels/1 = 1.0 diff --git a/resources/Materials/ui_blur_material.tres b/resources/Materials/ui_blur_material.tres new file mode 100644 index 00000000..5c2f7711 --- /dev/null +++ b/resources/Materials/ui_blur_material.tres @@ -0,0 +1,6 @@ +[gd_resource type="ShaderMaterial" format=3 uid="uid://cyopsm3h2lthd"] + +[ext_resource type="Shader" uid="uid://boiajn7quq3o3" path="res://resources/Shaders/ui_shader.tres" id="1_fb4rc"] + +[resource] +shader = ExtResource("1_fb4rc") diff --git a/resources/Objects/Buildings/hangar_2.tscn b/resources/Objects/Buildings/hangar_2.tscn index e8de98ed..75e6ed53 100644 --- a/resources/Objects/Buildings/hangar_2.tscn +++ b/resources/Objects/Buildings/hangar_2.tscn @@ -234,6 +234,6 @@ distance_fade_enabled = true omni_range = 15.0 omni_attenuation = 0.5 -[node name="Light Occluder" parent="." index="21" unique_id=2039494598 groups=["light_occluder"]] +[node name="Light Occluder" parent="." index="21" unique_id=235945911 groups=["light_occluder"]] visible = false surface_material_override/0 = ExtResource("3_jr424") diff --git a/resources/Objects/Buildings/hangar_2/hangar_2.VoxelGI_data.res b/resources/Objects/Buildings/hangar_2/hangar_2.VoxelGI_data.res index f31ba042..ab5f04a0 100644 Binary files a/resources/Objects/Buildings/hangar_2/hangar_2.VoxelGI_data.res and b/resources/Objects/Buildings/hangar_2/hangar_2.VoxelGI_data.res differ diff --git a/resources/Shaders/ui_shader.tres b/resources/Shaders/ui_shader.tres new file mode 100644 index 00000000..88f6a58d --- /dev/null +++ b/resources/Shaders/ui_shader.tres @@ -0,0 +1,55 @@ +[gd_resource type="VisualShader" format=3 uid="uid://boiajn7quq3o3"] + +[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_5uwx5"] +parameter_name = "FloatParameter" +qualifier = 2 +hint = 2 +max = 10.0 +step = 0.5 +default_value_enabled = true +default_value = 3.5 + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_jj8t0"] +expanded_output_ports = [0] +input_name = "color" + +[sub_resource type="VisualShaderNodeColorConstant" id="VisualShaderNodeColorConstant_5uwx5"] +constant = Color(0, 0, 0, 1) + +[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_5uwx5"] +parameter_name = "Texture2DParameter" +texture_type = 1 +texture_filter = 4 +texture_source = 1 + +[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_nqw1x"] +source = 5 +texture_type = 1 + +[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_5uwx5"] +input_name = "screen_uv" + +[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_jj8t0"] +default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0, 1, 1), 2, Vector3(0.5, 0.5, 0.5)] +op_type = 3 + +[resource] +mode = 1 +flags/light_only = false +nodes/vertex/0/position = Vector2(970, 470) +nodes/fragment/0/position = Vector2(1670, 90) +nodes/fragment/5/node = SubResource("VisualShaderNodeTexture2DParameter_5uwx5") +nodes/fragment/5/position = Vector2(-400, 330) +nodes/fragment/6/node = SubResource("VisualShaderNodeTexture_nqw1x") +nodes/fragment/6/position = Vector2(40, 10) +nodes/fragment/8/node = SubResource("VisualShaderNodeInput_5uwx5") +nodes/fragment/8/position = Vector2(-390, -110) +nodes/fragment/9/node = SubResource("VisualShaderNodeMix_jj8t0") +nodes/fragment/9/position = Vector2(520, 60) +nodes/fragment/11/node = SubResource("VisualShaderNodeFloatParameter_5uwx5") +nodes/fragment/11/position = Vector2(-380, -10) +nodes/fragment/12/node = SubResource("VisualShaderNodeInput_jj8t0") +nodes/fragment/12/position = Vector2(60, 380) +nodes/fragment/13/node = SubResource("VisualShaderNodeColorConstant_5uwx5") +nodes/fragment/13/position = Vector2(160, 210) +nodes/fragment/connections = PackedInt32Array(5, 0, 6, 2, 8, 0, 6, 0, 11, 0, 6, 1, 6, 0, 9, 0, 9, 0, 0, 0, 12, 4, 0, 1, 13, 0, 9, 1, 12, 0, 9, 2) diff --git a/resources/Textures/control/actions/backward.tres b/resources/Textures/control/actions/backward.tres new file mode 100644 index 00000000..ad149f72 --- /dev/null +++ b/resources/Textures/control/actions/backward.tres @@ -0,0 +1,16 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://kpm378digbw7"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_gueli"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_gueli") +action = &"back" +_source = " + + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/fire_primary.tres b/resources/Textures/control/actions/fire_primary.tres new file mode 100644 index 00000000..285e67f5 --- /dev/null +++ b/resources/Textures/control/actions/fire_primary.tres @@ -0,0 +1,15 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://cw7r73l1j0j4m"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_mk0w8"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_mk0w8") +action = &"fire_primary" +_source = " + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/forward.tres b/resources/Textures/control/actions/forward.tres new file mode 100644 index 00000000..295ff254 --- /dev/null +++ b/resources/Textures/control/actions/forward.tres @@ -0,0 +1,16 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://dmno2ptclyybd"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_pp6f3"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_pp6f3") +action = &"forward" +_source = " + + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/land.tres b/resources/Textures/control/actions/land.tres new file mode 100644 index 00000000..90c0d735 --- /dev/null +++ b/resources/Textures/control/actions/land.tres @@ -0,0 +1,16 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://ucsgbn6ufftg"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_uwped"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_uwped") +action = &"land" +_source = " + + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/rise.tres b/resources/Textures/control/actions/rise.tres new file mode 100644 index 00000000..a4099f11 --- /dev/null +++ b/resources/Textures/control/actions/rise.tres @@ -0,0 +1,16 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://di0orkkqokp2l"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_21awe"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_21awe") +action = &"rise" +_source = " + + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/strafe_left.tres b/resources/Textures/control/actions/strafe_left.tres new file mode 100644 index 00000000..58ef5d7a --- /dev/null +++ b/resources/Textures/control/actions/strafe_left.tres @@ -0,0 +1,16 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://bdv56k4trtp8w"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_olenu"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_olenu") +action = &"strafe_left" +_source = " + + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/strafe_right.tres b/resources/Textures/control/actions/strafe_right.tres new file mode 100644 index 00000000..ad0d190c --- /dev/null +++ b/resources/Textures/control/actions/strafe_right.tres @@ -0,0 +1,16 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://bdc70ql0a6wde"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_w4v8p"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_w4v8p") +action = &"strafe_right" +_source = " + + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/turn_left.tres b/resources/Textures/control/actions/turn_left.tres new file mode 100644 index 00000000..7bff5aa5 --- /dev/null +++ b/resources/Textures/control/actions/turn_left.tres @@ -0,0 +1,16 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://ce8ue88wl2nvl"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_raofl"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_raofl") +action = &"turn_left" +_source = " + + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/turn_right.tres b/resources/Textures/control/actions/turn_right.tres new file mode 100644 index 00000000..9815a5a4 --- /dev/null +++ b/resources/Textures/control/actions/turn_right.tres @@ -0,0 +1,16 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://6fdcfbrvwq81"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_yw8kx"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_yw8kx") +action = &"turn_right" +_source = " + + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/ui_accept.tres b/resources/Textures/control/actions/ui_accept.tres new file mode 100644 index 00000000..d54a135a --- /dev/null +++ b/resources/Textures/control/actions/ui_accept.tres @@ -0,0 +1,15 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://c3m4tw7cc8jri"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_118x0"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_118x0") +action = &"ui_accept" +_source = " + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/ui_apply.tres b/resources/Textures/control/actions/ui_apply.tres new file mode 100644 index 00000000..2507b109 --- /dev/null +++ b/resources/Textures/control/actions/ui_apply.tres @@ -0,0 +1,15 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://dk2viso5nqih"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_t2efv"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_t2efv") +action = &"ui_apply" +_source = " + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/ui_cancel.tres b/resources/Textures/control/actions/ui_cancel.tres new file mode 100644 index 00000000..03818c53 --- /dev/null +++ b/resources/Textures/control/actions/ui_cancel.tres @@ -0,0 +1,15 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://cdkhyslrevupb"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_o4vat"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_o4vat") +action = &"ui_cancel" +_source = " + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/ui_reset.tres b/resources/Textures/control/actions/ui_reset.tres new file mode 100644 index 00000000..8581bcf1 --- /dev/null +++ b/resources/Textures/control/actions/ui_reset.tres @@ -0,0 +1,15 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://i8jsfqxxib0p"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_6j4w4"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_6j4w4") +action = &"ui_reset" +_source = " + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/ui_tab_next.tres b/resources/Textures/control/actions/ui_tab_next.tres new file mode 100644 index 00000000..73040126 --- /dev/null +++ b/resources/Textures/control/actions/ui_tab_next.tres @@ -0,0 +1,15 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://m7n7og30pq2k"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_6erac"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_6erac") +action = &"ui_tab_next" +_source = " + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/actions/ui_tab_prev.tres b/resources/Textures/control/actions/ui_tab_prev.tres new file mode 100644 index 00000000..5d3f9e3a --- /dev/null +++ b/resources/Textures/control/actions/ui_tab_prev.tres @@ -0,0 +1,15 @@ +[gd_resource type="InputPromptTexture" format=3 uid="uid://b301f4mt0pg0k"] + +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="1_j1y05"] + +[resource] +texture_dir = "res://resources/Textures/control" +device = ExtResource("1_j1y05") +action = &"ui_tab_prev" +_source = " + + + + +" +base_scale = 2.0 diff --git a/resources/Textures/control/kbm_a.svg b/resources/Textures/control/kbm_a.svg new file mode 100644 index 00000000..2cbe290b --- /dev/null +++ b/resources/Textures/control/kbm_a.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_a.svg.import b/resources/Textures/control/kbm_a.svg.import new file mode 100644 index 00000000..5b1b86c7 --- /dev/null +++ b/resources/Textures/control/kbm_a.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmupcm7at7dlt" +path="res://.godot/imported/kbm_a.svg-74708d34549eb7d88e61fe8fae8685f0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_a.svg" +dest_files=["res://.godot/imported/kbm_a.svg-74708d34549eb7d88e61fe8fae8685f0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_b.svg b/resources/Textures/control/kbm_b.svg new file mode 100644 index 00000000..0b60ebeb --- /dev/null +++ b/resources/Textures/control/kbm_b.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_b.svg.import b/resources/Textures/control/kbm_b.svg.import new file mode 100644 index 00000000..5e9f7beb --- /dev/null +++ b/resources/Textures/control/kbm_b.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://nc6kl4m0g4w4" +path="res://.godot/imported/kbm_b.svg-11d66dc7b573490ded3be2cbc5b29f97.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_b.svg" +dest_files=["res://.godot/imported/kbm_b.svg-11d66dc7b573490ded3be2cbc5b29f97.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_backspace.svg b/resources/Textures/control/kbm_backspace.svg new file mode 100644 index 00000000..2d8f87b2 --- /dev/null +++ b/resources/Textures/control/kbm_backspace.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_backspace.svg.import b/resources/Textures/control/kbm_backspace.svg.import new file mode 100644 index 00000000..09c3bfc1 --- /dev/null +++ b/resources/Textures/control/kbm_backspace.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjkrjlpkmaw8j" +path="res://.godot/imported/kbm_backspace.svg-c6cee8ada5c72e0a55373383e1c8d8f0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_backspace.svg" +dest_files=["res://.godot/imported/kbm_backspace.svg-c6cee8ada5c72e0a55373383e1c8d8f0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_c.svg b/resources/Textures/control/kbm_c.svg new file mode 100644 index 00000000..4cfc2e72 --- /dev/null +++ b/resources/Textures/control/kbm_c.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_c.svg.import b/resources/Textures/control/kbm_c.svg.import new file mode 100644 index 00000000..19f56377 --- /dev/null +++ b/resources/Textures/control/kbm_c.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://3svcfbencc7o" +path="res://.godot/imported/kbm_c.svg-c2e688bdf557f761e5ea2646ad10f32d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_c.svg" +dest_files=["res://.godot/imported/kbm_c.svg-c2e688bdf557f761e5ea2646ad10f32d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_ctrl.svg b/resources/Textures/control/kbm_ctrl.svg new file mode 100644 index 00000000..00ddce9f --- /dev/null +++ b/resources/Textures/control/kbm_ctrl.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_ctrl.svg.import b/resources/Textures/control/kbm_ctrl.svg.import new file mode 100644 index 00000000..3c31162a --- /dev/null +++ b/resources/Textures/control/kbm_ctrl.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://csnaweupx7bhl" +path="res://.godot/imported/kbm_ctrl.svg-268f04b354f768ca09dedd6486cfa0c7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_ctrl.svg" +dest_files=["res://.godot/imported/kbm_ctrl.svg-268f04b354f768ca09dedd6486cfa0c7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_d.svg b/resources/Textures/control/kbm_d.svg new file mode 100644 index 00000000..02b04bde --- /dev/null +++ b/resources/Textures/control/kbm_d.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_d.svg.import b/resources/Textures/control/kbm_d.svg.import new file mode 100644 index 00000000..6ced305f --- /dev/null +++ b/resources/Textures/control/kbm_d.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8ei3lb5fvbxe" +path="res://.godot/imported/kbm_d.svg-43974a8bb6db0d272c35dabe8ee80d83.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_d.svg" +dest_files=["res://.godot/imported/kbm_d.svg-43974a8bb6db0d272c35dabe8ee80d83.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_e.svg b/resources/Textures/control/kbm_e.svg new file mode 100644 index 00000000..f670fef0 --- /dev/null +++ b/resources/Textures/control/kbm_e.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_e.svg.import b/resources/Textures/control/kbm_e.svg.import new file mode 100644 index 00000000..5ab67fa7 --- /dev/null +++ b/resources/Textures/control/kbm_e.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cciur2f34f8fm" +path="res://.godot/imported/kbm_e.svg-9cff2ea8e307286160cdf84e0981f3d7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_e.svg" +dest_files=["res://.godot/imported/kbm_e.svg-9cff2ea8e307286160cdf84e0981f3d7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_enter.svg b/resources/Textures/control/kbm_enter.svg new file mode 100644 index 00000000..fab9a5bc --- /dev/null +++ b/resources/Textures/control/kbm_enter.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_enter.svg.import b/resources/Textures/control/kbm_enter.svg.import new file mode 100644 index 00000000..47921eca --- /dev/null +++ b/resources/Textures/control/kbm_enter.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dhvjlgdwmncts" +path="res://.godot/imported/kbm_enter.svg-785a8e1063184d587557790978f6a945.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_enter.svg" +dest_files=["res://.godot/imported/kbm_enter.svg-785a8e1063184d587557790978f6a945.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_escape.svg b/resources/Textures/control/kbm_escape.svg new file mode 100644 index 00000000..b7bd3f73 --- /dev/null +++ b/resources/Textures/control/kbm_escape.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_escape.svg.import b/resources/Textures/control/kbm_escape.svg.import new file mode 100644 index 00000000..e9d2aa82 --- /dev/null +++ b/resources/Textures/control/kbm_escape.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://epwrr08t5jlo" +path="res://.godot/imported/kbm_escape.svg-f5d28e1bcf19b93a746e7453d99675e9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_escape.svg" +dest_files=["res://.godot/imported/kbm_escape.svg-f5d28e1bcf19b93a746e7453d99675e9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_f.svg b/resources/Textures/control/kbm_f.svg new file mode 100644 index 00000000..ebc8bb11 --- /dev/null +++ b/resources/Textures/control/kbm_f.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_f.svg.import b/resources/Textures/control/kbm_f.svg.import new file mode 100644 index 00000000..28f61dc2 --- /dev/null +++ b/resources/Textures/control/kbm_f.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://4iekqwx4ikxf" +path="res://.godot/imported/kbm_f.svg-a1ceb3f20aa738c6ab84cb6a1e16cc7c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_f.svg" +dest_files=["res://.godot/imported/kbm_f.svg-a1ceb3f20aa738c6ab84cb6a1e16cc7c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_g.svg b/resources/Textures/control/kbm_g.svg new file mode 100644 index 00000000..06e5c527 --- /dev/null +++ b/resources/Textures/control/kbm_g.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_g.svg.import b/resources/Textures/control/kbm_g.svg.import new file mode 100644 index 00000000..183ca685 --- /dev/null +++ b/resources/Textures/control/kbm_g.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://34q3q1xith6m" +path="res://.godot/imported/kbm_g.svg-fda2f62dbd710595bd82b5b6a2c7ef2b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_g.svg" +dest_files=["res://.godot/imported/kbm_g.svg-fda2f62dbd710595bd82b5b6a2c7ef2b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_h.svg b/resources/Textures/control/kbm_h.svg new file mode 100644 index 00000000..e05b5b23 --- /dev/null +++ b/resources/Textures/control/kbm_h.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_h.svg.import b/resources/Textures/control/kbm_h.svg.import new file mode 100644 index 00000000..e7ea38c3 --- /dev/null +++ b/resources/Textures/control/kbm_h.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bg5k8yc0ewdav" +path="res://.godot/imported/kbm_h.svg-f7435b6ee26b37385b1aba9974ee0132.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_h.svg" +dest_files=["res://.godot/imported/kbm_h.svg-f7435b6ee26b37385b1aba9974ee0132.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_i.svg b/resources/Textures/control/kbm_i.svg new file mode 100644 index 00000000..418bdfe6 --- /dev/null +++ b/resources/Textures/control/kbm_i.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_i.svg.import b/resources/Textures/control/kbm_i.svg.import new file mode 100644 index 00000000..689128fa --- /dev/null +++ b/resources/Textures/control/kbm_i.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c6t81vq4aqjph" +path="res://.godot/imported/kbm_i.svg-11689768d819906dd3358bd82cbb5647.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_i.svg" +dest_files=["res://.godot/imported/kbm_i.svg-11689768d819906dd3358bd82cbb5647.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_j.svg b/resources/Textures/control/kbm_j.svg new file mode 100644 index 00000000..cc0b73ac --- /dev/null +++ b/resources/Textures/control/kbm_j.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_j.svg.import b/resources/Textures/control/kbm_j.svg.import new file mode 100644 index 00000000..fbc109be --- /dev/null +++ b/resources/Textures/control/kbm_j.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dq4ng1wwajavu" +path="res://.godot/imported/kbm_j.svg-8719c1f9a701364211a04312617d248c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_j.svg" +dest_files=["res://.godot/imported/kbm_j.svg-8719c1f9a701364211a04312617d248c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_k.svg b/resources/Textures/control/kbm_k.svg new file mode 100644 index 00000000..c6842d0b --- /dev/null +++ b/resources/Textures/control/kbm_k.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_k.svg.import b/resources/Textures/control/kbm_k.svg.import new file mode 100644 index 00000000..57c0efe9 --- /dev/null +++ b/resources/Textures/control/kbm_k.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://pvudvl7qsk17" +path="res://.godot/imported/kbm_k.svg-5266c08d6e4683e0ac2c1640b8291623.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_k.svg" +dest_files=["res://.godot/imported/kbm_k.svg-5266c08d6e4683e0ac2c1640b8291623.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_l.svg b/resources/Textures/control/kbm_l.svg new file mode 100644 index 00000000..1ec8058f --- /dev/null +++ b/resources/Textures/control/kbm_l.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_l.svg.import b/resources/Textures/control/kbm_l.svg.import new file mode 100644 index 00000000..26d64b09 --- /dev/null +++ b/resources/Textures/control/kbm_l.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d16me34bo7jll" +path="res://.godot/imported/kbm_l.svg-59eb5e4b2707aa6d1d977c501f240cce.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_l.svg" +dest_files=["res://.godot/imported/kbm_l.svg-59eb5e4b2707aa6d1d977c501f240cce.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_left.svg b/resources/Textures/control/kbm_left.svg new file mode 100644 index 00000000..190a16a3 --- /dev/null +++ b/resources/Textures/control/kbm_left.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_left.svg.import b/resources/Textures/control/kbm_left.svg.import new file mode 100644 index 00000000..fa269ca2 --- /dev/null +++ b/resources/Textures/control/kbm_left.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7wawmbrc0ws1" +path="res://.godot/imported/kbm_left.svg-02382eb368c1aa7229601fc53464d1f0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_left.svg" +dest_files=["res://.godot/imported/kbm_left.svg-02382eb368c1aa7229601fc53464d1f0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_m.svg b/resources/Textures/control/kbm_m.svg new file mode 100644 index 00000000..e57884b1 --- /dev/null +++ b/resources/Textures/control/kbm_m.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_m.svg.import b/resources/Textures/control/kbm_m.svg.import new file mode 100644 index 00000000..036283b2 --- /dev/null +++ b/resources/Textures/control/kbm_m.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bjx8ir3pk533q" +path="res://.godot/imported/kbm_m.svg-87a22027169f33fe351bc9bcf8697625.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_m.svg" +dest_files=["res://.godot/imported/kbm_m.svg-87a22027169f33fe351bc9bcf8697625.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_meta.svg b/resources/Textures/control/kbm_meta.svg new file mode 100644 index 00000000..6c1e927b --- /dev/null +++ b/resources/Textures/control/kbm_meta.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_meta.svg.import b/resources/Textures/control/kbm_meta.svg.import new file mode 100644 index 00000000..b38fe45e --- /dev/null +++ b/resources/Textures/control/kbm_meta.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cu0bpo75kx3w6" +path="res://.godot/imported/kbm_meta.svg-629675373abaf57009c04850566314fe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_meta.svg" +dest_files=["res://.godot/imported/kbm_meta.svg-629675373abaf57009c04850566314fe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_n.svg b/resources/Textures/control/kbm_n.svg new file mode 100644 index 00000000..dd5f2c54 --- /dev/null +++ b/resources/Textures/control/kbm_n.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_n.svg.import b/resources/Textures/control/kbm_n.svg.import new file mode 100644 index 00000000..c56eac21 --- /dev/null +++ b/resources/Textures/control/kbm_n.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cl26ax2744fcq" +path="res://.godot/imported/kbm_n.svg-03adfe7b67ae4d6625e7bafcd4f6078d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_n.svg" +dest_files=["res://.godot/imported/kbm_n.svg-03adfe7b67ae4d6625e7bafcd4f6078d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_o.svg b/resources/Textures/control/kbm_o.svg new file mode 100644 index 00000000..425b34de --- /dev/null +++ b/resources/Textures/control/kbm_o.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_o.svg.import b/resources/Textures/control/kbm_o.svg.import new file mode 100644 index 00000000..0032e8fa --- /dev/null +++ b/resources/Textures/control/kbm_o.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://yniibm4vkab3" +path="res://.godot/imported/kbm_o.svg-cae718c2347100401728011ea0dce37e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_o.svg" +dest_files=["res://.godot/imported/kbm_o.svg-cae718c2347100401728011ea0dce37e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_p.svg b/resources/Textures/control/kbm_p.svg new file mode 100644 index 00000000..70ace74f --- /dev/null +++ b/resources/Textures/control/kbm_p.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_p.svg.import b/resources/Textures/control/kbm_p.svg.import new file mode 100644 index 00000000..4b61cca3 --- /dev/null +++ b/resources/Textures/control/kbm_p.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bw6pfo8o0oj01" +path="res://.godot/imported/kbm_p.svg-ed066481df5aeb8d01440a76fdd853ac.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_p.svg" +dest_files=["res://.godot/imported/kbm_p.svg-ed066481df5aeb8d01440a76fdd853ac.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_q.svg b/resources/Textures/control/kbm_q.svg new file mode 100644 index 00000000..42b91ea0 --- /dev/null +++ b/resources/Textures/control/kbm_q.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_q.svg.import b/resources/Textures/control/kbm_q.svg.import new file mode 100644 index 00000000..9f98a977 --- /dev/null +++ b/resources/Textures/control/kbm_q.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://drwt801y8ryl6" +path="res://.godot/imported/kbm_q.svg-4e0fccc19b8b32d1c8137b18b92d3f53.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_q.svg" +dest_files=["res://.godot/imported/kbm_q.svg-4e0fccc19b8b32d1c8137b18b92d3f53.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_r.svg b/resources/Textures/control/kbm_r.svg new file mode 100644 index 00000000..07056fa0 --- /dev/null +++ b/resources/Textures/control/kbm_r.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_r.svg.import b/resources/Textures/control/kbm_r.svg.import new file mode 100644 index 00000000..64ba628d --- /dev/null +++ b/resources/Textures/control/kbm_r.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2v4pbo4yanq6" +path="res://.godot/imported/kbm_r.svg-ce98b89c1e90269585459b86f4284d91.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_r.svg" +dest_files=["res://.godot/imported/kbm_r.svg-ce98b89c1e90269585459b86f4284d91.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_right.svg b/resources/Textures/control/kbm_right.svg new file mode 100644 index 00000000..16868920 --- /dev/null +++ b/resources/Textures/control/kbm_right.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_right.svg.import b/resources/Textures/control/kbm_right.svg.import new file mode 100644 index 00000000..8d65fdf7 --- /dev/null +++ b/resources/Textures/control/kbm_right.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://da6ywi8d5lygg" +path="res://.godot/imported/kbm_right.svg-d59bb5dc3542ad5b3477140453a09bd5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_right.svg" +dest_files=["res://.godot/imported/kbm_right.svg-d59bb5dc3542ad5b3477140453a09bd5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_s.svg b/resources/Textures/control/kbm_s.svg new file mode 100644 index 00000000..93e71c85 --- /dev/null +++ b/resources/Textures/control/kbm_s.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_s.svg.import b/resources/Textures/control/kbm_s.svg.import new file mode 100644 index 00000000..1fe8fe27 --- /dev/null +++ b/resources/Textures/control/kbm_s.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://crxc308rf2fbs" +path="res://.godot/imported/kbm_s.svg-8a1ffe16e3642b0c5ff3bc016b099c0b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_s.svg" +dest_files=["res://.godot/imported/kbm_s.svg-8a1ffe16e3642b0c5ff3bc016b099c0b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_shift.svg b/resources/Textures/control/kbm_shift.svg new file mode 100644 index 00000000..4f63dea3 --- /dev/null +++ b/resources/Textures/control/kbm_shift.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_shift.svg.import b/resources/Textures/control/kbm_shift.svg.import new file mode 100644 index 00000000..09678a86 --- /dev/null +++ b/resources/Textures/control/kbm_shift.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxu464w320f5y" +path="res://.godot/imported/kbm_shift.svg-dbe10f4a609eb488da463c438a61cd2d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_shift.svg" +dest_files=["res://.godot/imported/kbm_shift.svg-dbe10f4a609eb488da463c438a61cd2d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_shift_g.svg b/resources/Textures/control/kbm_shift_g.svg new file mode 100644 index 00000000..ba006b9f --- /dev/null +++ b/resources/Textures/control/kbm_shift_g.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/resources/Textures/control/kbm_shift_g.svg.import b/resources/Textures/control/kbm_shift_g.svg.import new file mode 100644 index 00000000..a9c82cfb --- /dev/null +++ b/resources/Textures/control/kbm_shift_g.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bl88c31d0iann" +path="res://.godot/imported/kbm_shift_g.svg-e31ebedd0a35ca4c6d98a305d84ef604.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_shift_g.svg" +dest_files=["res://.godot/imported/kbm_shift_g.svg-e31ebedd0a35ca4c6d98a305d84ef604.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_space.svg b/resources/Textures/control/kbm_space.svg new file mode 100644 index 00000000..bd95f07d --- /dev/null +++ b/resources/Textures/control/kbm_space.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_space.svg.import b/resources/Textures/control/kbm_space.svg.import new file mode 100644 index 00000000..4f9a3372 --- /dev/null +++ b/resources/Textures/control/kbm_space.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b52fwlvh17b8l" +path="res://.godot/imported/kbm_space.svg-3955de5dc3bb99d2cd53b03760f3d70c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_space.svg" +dest_files=["res://.godot/imported/kbm_space.svg-3955de5dc3bb99d2cd53b03760f3d70c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_t.svg b/resources/Textures/control/kbm_t.svg new file mode 100644 index 00000000..e8a8216c --- /dev/null +++ b/resources/Textures/control/kbm_t.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_t.svg.import b/resources/Textures/control/kbm_t.svg.import new file mode 100644 index 00000000..d115d843 --- /dev/null +++ b/resources/Textures/control/kbm_t.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dcjlj4hmnmrgj" +path="res://.godot/imported/kbm_t.svg-86cfe6b00d7accfbfc3a718e149415cf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_t.svg" +dest_files=["res://.godot/imported/kbm_t.svg-86cfe6b00d7accfbfc3a718e149415cf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_u.svg b/resources/Textures/control/kbm_u.svg new file mode 100644 index 00000000..aec6727e --- /dev/null +++ b/resources/Textures/control/kbm_u.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_u.svg.import b/resources/Textures/control/kbm_u.svg.import new file mode 100644 index 00000000..62d8a8ba --- /dev/null +++ b/resources/Textures/control/kbm_u.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmxcji83mvjq0" +path="res://.godot/imported/kbm_u.svg-d0f3503d136fb2fe7dae384a00a5885e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_u.svg" +dest_files=["res://.godot/imported/kbm_u.svg-d0f3503d136fb2fe7dae384a00a5885e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_v.svg b/resources/Textures/control/kbm_v.svg new file mode 100644 index 00000000..53cee162 --- /dev/null +++ b/resources/Textures/control/kbm_v.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_v.svg.import b/resources/Textures/control/kbm_v.svg.import new file mode 100644 index 00000000..abea95fc --- /dev/null +++ b/resources/Textures/control/kbm_v.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bh6i68k62ssyc" +path="res://.godot/imported/kbm_v.svg-09cea84557bed6ee556d311c011710d2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_v.svg" +dest_files=["res://.godot/imported/kbm_v.svg-09cea84557bed6ee556d311c011710d2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_w.svg b/resources/Textures/control/kbm_w.svg new file mode 100644 index 00000000..ea84c946 --- /dev/null +++ b/resources/Textures/control/kbm_w.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_w.svg.import b/resources/Textures/control/kbm_w.svg.import new file mode 100644 index 00000000..203424db --- /dev/null +++ b/resources/Textures/control/kbm_w.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dpg20j6qxbnp1" +path="res://.godot/imported/kbm_w.svg-46365e7030abc59b3878d778fa353124.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_w.svg" +dest_files=["res://.godot/imported/kbm_w.svg-46365e7030abc59b3878d778fa353124.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_x.svg b/resources/Textures/control/kbm_x.svg new file mode 100644 index 00000000..18c0650e --- /dev/null +++ b/resources/Textures/control/kbm_x.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_x.svg.import b/resources/Textures/control/kbm_x.svg.import new file mode 100644 index 00000000..e2f7a9a7 --- /dev/null +++ b/resources/Textures/control/kbm_x.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b4b0mk5mir0qh" +path="res://.godot/imported/kbm_x.svg-2bd9c5459fcd790d2cab4c24b22c2ab3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_x.svg" +dest_files=["res://.godot/imported/kbm_x.svg-2bd9c5459fcd790d2cab4c24b22c2ab3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_y.svg b/resources/Textures/control/kbm_y.svg new file mode 100644 index 00000000..fbd4c87c --- /dev/null +++ b/resources/Textures/control/kbm_y.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_y.svg.import b/resources/Textures/control/kbm_y.svg.import new file mode 100644 index 00000000..b369eacd --- /dev/null +++ b/resources/Textures/control/kbm_y.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cg7w0hugb6k8y" +path="res://.godot/imported/kbm_y.svg-92a0da384b20b3ba13b17e8ec3a7e738.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_y.svg" +dest_files=["res://.godot/imported/kbm_y.svg-92a0da384b20b3ba13b17e8ec3a7e738.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/kbm_z.svg b/resources/Textures/control/kbm_z.svg new file mode 100644 index 00000000..ab68a94d --- /dev/null +++ b/resources/Textures/control/kbm_z.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/kbm_z.svg.import b/resources/Textures/control/kbm_z.svg.import new file mode 100644 index 00000000..69af4cc6 --- /dev/null +++ b/resources/Textures/control/kbm_z.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://sdf0f2ep7l7n" +path="res://.godot/imported/kbm_z.svg-1372c909c023471830ec2aa3bc92f759.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/kbm_z.svg" +dest_files=["res://.godot/imported/kbm_z.svg-1372c909c023471830ec2aa3bc92f759.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_gamecube_a.svg b/resources/Textures/control/nintendo_gamecube_a.svg new file mode 100644 index 00000000..81864ac4 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_a.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_gamecube_a.svg.import b/resources/Textures/control/nintendo_gamecube_a.svg.import new file mode 100644 index 00000000..90ecdffa --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_a.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1ua4c60vvwmc" +path="res://.godot/imported/nintendo_gamecube_a.svg-0501074e3f26bada8019acdf7c64ecdf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_gamecube_a.svg" +dest_files=["res://.godot/imported/nintendo_gamecube_a.svg-0501074e3f26bada8019acdf7c64ecdf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_gamecube_left_shoulder.svg b/resources/Textures/control/nintendo_gamecube_left_shoulder.svg new file mode 100644 index 00000000..e15d33a8 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_left_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_gamecube_left_shoulder.svg.import b/resources/Textures/control/nintendo_gamecube_left_shoulder.svg.import new file mode 100644 index 00000000..d6eec127 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_left_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5au1yu588xmy" +path="res://.godot/imported/nintendo_gamecube_left_shoulder.svg-42f415774d256837da38c7f003a5c4c7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_gamecube_left_shoulder.svg" +dest_files=["res://.godot/imported/nintendo_gamecube_left_shoulder.svg-42f415774d256837da38c7f003a5c4c7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_gamecube_left_x_neg.svg b/resources/Textures/control/nintendo_gamecube_left_x_neg.svg new file mode 100644 index 00000000..4c474df8 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_left_x_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_gamecube_left_x_neg.svg.import b/resources/Textures/control/nintendo_gamecube_left_x_neg.svg.import new file mode 100644 index 00000000..f6f90f7a --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_left_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfwiqn3dct4ni" +path="res://.godot/imported/nintendo_gamecube_left_x_neg.svg-e506ed909f4cd8606a355ad498ad6bc7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_gamecube_left_x_neg.svg" +dest_files=["res://.godot/imported/nintendo_gamecube_left_x_neg.svg-e506ed909f4cd8606a355ad498ad6bc7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_gamecube_left_x_pos.svg b/resources/Textures/control/nintendo_gamecube_left_x_pos.svg new file mode 100644 index 00000000..4f397300 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_left_x_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_gamecube_left_x_pos.svg.import b/resources/Textures/control/nintendo_gamecube_left_x_pos.svg.import new file mode 100644 index 00000000..272e89c7 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_left_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2775rft5fmfa" +path="res://.godot/imported/nintendo_gamecube_left_x_pos.svg-57857b9d3aa47b9f20398343d352931d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_gamecube_left_x_pos.svg" +dest_files=["res://.godot/imported/nintendo_gamecube_left_x_pos.svg-57857b9d3aa47b9f20398343d352931d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_gamecube_left_y_neg.svg b/resources/Textures/control/nintendo_gamecube_left_y_neg.svg new file mode 100644 index 00000000..ae959970 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_left_y_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_gamecube_left_y_neg.svg.import b/resources/Textures/control/nintendo_gamecube_left_y_neg.svg.import new file mode 100644 index 00000000..562d0d48 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_left_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://3x5y3gjebd2" +path="res://.godot/imported/nintendo_gamecube_left_y_neg.svg-5accc464267b1468ac8d5b06ba0bc17f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_gamecube_left_y_neg.svg" +dest_files=["res://.godot/imported/nintendo_gamecube_left_y_neg.svg-5accc464267b1468ac8d5b06ba0bc17f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_gamecube_left_y_pos.svg b/resources/Textures/control/nintendo_gamecube_left_y_pos.svg new file mode 100644 index 00000000..467b35bc --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_left_y_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_gamecube_left_y_pos.svg.import b/resources/Textures/control/nintendo_gamecube_left_y_pos.svg.import new file mode 100644 index 00000000..459b5bbf --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_left_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bnh4abc2eb786" +path="res://.godot/imported/nintendo_gamecube_left_y_pos.svg-1c442e26ab35746018ba34d54b0b32d6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_gamecube_left_y_pos.svg" +dest_files=["res://.godot/imported/nintendo_gamecube_left_y_pos.svg-1c442e26ab35746018ba34d54b0b32d6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_gamecube_right_shoulder.svg b/resources/Textures/control/nintendo_gamecube_right_shoulder.svg new file mode 100644 index 00000000..bea3d2a6 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_right_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_gamecube_right_shoulder.svg.import b/resources/Textures/control/nintendo_gamecube_right_shoulder.svg.import new file mode 100644 index 00000000..0cc50714 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_right_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dht5s5cqklukg" +path="res://.godot/imported/nintendo_gamecube_right_shoulder.svg-62dc552a6da241a1881ff9bdd5e3d35b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_gamecube_right_shoulder.svg" +dest_files=["res://.godot/imported/nintendo_gamecube_right_shoulder.svg-62dc552a6da241a1881ff9bdd5e3d35b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_gamecube_right_x_neg.svg b/resources/Textures/control/nintendo_gamecube_right_x_neg.svg new file mode 100644 index 00000000..4641d9cd --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_right_x_neg.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_gamecube_right_x_neg.svg.import b/resources/Textures/control/nintendo_gamecube_right_x_neg.svg.import new file mode 100644 index 00000000..8e23a538 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_right_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bd1olg6ncnl32" +path="res://.godot/imported/nintendo_gamecube_right_x_neg.svg-68cb7751081faed6a71cd66ec4423d0e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_gamecube_right_x_neg.svg" +dest_files=["res://.godot/imported/nintendo_gamecube_right_x_neg.svg-68cb7751081faed6a71cd66ec4423d0e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_gamecube_right_x_pos.svg b/resources/Textures/control/nintendo_gamecube_right_x_pos.svg new file mode 100644 index 00000000..583725bc --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_right_x_pos.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_gamecube_right_x_pos.svg.import b/resources/Textures/control/nintendo_gamecube_right_x_pos.svg.import new file mode 100644 index 00000000..7102e71e --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_right_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cud00l0invvo0" +path="res://.godot/imported/nintendo_gamecube_right_x_pos.svg-9d87502a8b9cf22a5b4061fe3e533710.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_gamecube_right_x_pos.svg" +dest_files=["res://.godot/imported/nintendo_gamecube_right_x_pos.svg-9d87502a8b9cf22a5b4061fe3e533710.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_gamecube_right_y_neg.svg b/resources/Textures/control/nintendo_gamecube_right_y_neg.svg new file mode 100644 index 00000000..31d32a26 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_right_y_neg.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_gamecube_right_y_neg.svg.import b/resources/Textures/control/nintendo_gamecube_right_y_neg.svg.import new file mode 100644 index 00000000..247b73d6 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_right_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1mtrdxcwa4u1" +path="res://.godot/imported/nintendo_gamecube_right_y_neg.svg-a396cf825c6f75e36cab446c87d68ee2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_gamecube_right_y_neg.svg" +dest_files=["res://.godot/imported/nintendo_gamecube_right_y_neg.svg-a396cf825c6f75e36cab446c87d68ee2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_gamecube_right_y_pos.svg b/resources/Textures/control/nintendo_gamecube_right_y_pos.svg new file mode 100644 index 00000000..e0e9e18f --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_right_y_pos.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_gamecube_right_y_pos.svg.import b/resources/Textures/control/nintendo_gamecube_right_y_pos.svg.import new file mode 100644 index 00000000..55b50a05 --- /dev/null +++ b/resources/Textures/control/nintendo_gamecube_right_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bjamyo82n0dlo" +path="res://.godot/imported/nintendo_gamecube_right_y_pos.svg-cd2b186ab4fcd69af1c37b921a016ec7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_gamecube_right_y_pos.svg" +dest_files=["res://.godot/imported/nintendo_gamecube_right_y_pos.svg-cd2b186ab4fcd69af1c37b921a016ec7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_2_a.svg b/resources/Textures/control/nintendo_switch_2_a.svg new file mode 120000 index 00000000..d8e17d31 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_a.svg @@ -0,0 +1 @@ +./nintendo_wii_u_a.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_2_a.svg.import b/resources/Textures/control/nintendo_switch_2_a.svg.import new file mode 100644 index 00000000..ceff762f --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_a.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ehl2ytrnrgts" +path="res://.godot/imported/nintendo_switch_2_a.svg-8764d8ffa2689670d3458d115de3b68a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_2_a.svg" +dest_files=["res://.godot/imported/nintendo_switch_2_a.svg-8764d8ffa2689670d3458d115de3b68a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_2_left_shoulder.svg b/resources/Textures/control/nintendo_switch_2_left_shoulder.svg new file mode 100644 index 00000000..c2b77648 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_left_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_2_left_shoulder.svg.import b/resources/Textures/control/nintendo_switch_2_left_shoulder.svg.import new file mode 100644 index 00000000..7397a5f3 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_left_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ya3i2p7oo6vp" +path="res://.godot/imported/nintendo_switch_2_left_shoulder.svg-e7182d4acf5a45de524843e1b8523e1e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_2_left_shoulder.svg" +dest_files=["res://.godot/imported/nintendo_switch_2_left_shoulder.svg-e7182d4acf5a45de524843e1b8523e1e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_2_left_x_neg.svg b/resources/Textures/control/nintendo_switch_2_left_x_neg.svg new file mode 120000 index 00000000..e3dc5d06 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_left_x_neg.svg @@ -0,0 +1 @@ +./xbox_left_x_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_2_left_x_neg.svg.import b/resources/Textures/control/nintendo_switch_2_left_x_neg.svg.import new file mode 100644 index 00000000..595f6fee --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_left_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://px43hcf15kh1" +path="res://.godot/imported/nintendo_switch_2_left_x_neg.svg-489b1a0fa21cd0dcfde3a9e49293d072.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_2_left_x_neg.svg" +dest_files=["res://.godot/imported/nintendo_switch_2_left_x_neg.svg-489b1a0fa21cd0dcfde3a9e49293d072.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_2_left_x_pos.svg b/resources/Textures/control/nintendo_switch_2_left_x_pos.svg new file mode 120000 index 00000000..986ecbe2 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_left_x_pos.svg @@ -0,0 +1 @@ +./xbox_left_x_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_2_left_x_pos.svg.import b/resources/Textures/control/nintendo_switch_2_left_x_pos.svg.import new file mode 100644 index 00000000..dc898a3d --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_left_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://daxl71ts477u1" +path="res://.godot/imported/nintendo_switch_2_left_x_pos.svg-fd862c2515b949dd8dd2c15763989f33.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_2_left_x_pos.svg" +dest_files=["res://.godot/imported/nintendo_switch_2_left_x_pos.svg-fd862c2515b949dd8dd2c15763989f33.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_2_left_y_neg.svg b/resources/Textures/control/nintendo_switch_2_left_y_neg.svg new file mode 120000 index 00000000..7fa42126 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_left_y_neg.svg @@ -0,0 +1 @@ +./xbox_left_y_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_2_left_y_neg.svg.import b/resources/Textures/control/nintendo_switch_2_left_y_neg.svg.import new file mode 100644 index 00000000..b4a2e456 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_left_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://blfmpgrrbutb2" +path="res://.godot/imported/nintendo_switch_2_left_y_neg.svg-21f6400c989e01f5f1714e67d2072633.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_2_left_y_neg.svg" +dest_files=["res://.godot/imported/nintendo_switch_2_left_y_neg.svg-21f6400c989e01f5f1714e67d2072633.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_2_left_y_pos.svg b/resources/Textures/control/nintendo_switch_2_left_y_pos.svg new file mode 120000 index 00000000..832f9fb2 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_left_y_pos.svg @@ -0,0 +1 @@ +./xbox_left_y_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_2_left_y_pos.svg.import b/resources/Textures/control/nintendo_switch_2_left_y_pos.svg.import new file mode 100644 index 00000000..221e1b88 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_left_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://buoh7kps1pm8c" +path="res://.godot/imported/nintendo_switch_2_left_y_pos.svg-29a5b5e9f8c7aa3be8dddbb162ad0e17.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_2_left_y_pos.svg" +dest_files=["res://.godot/imported/nintendo_switch_2_left_y_pos.svg-29a5b5e9f8c7aa3be8dddbb162ad0e17.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_2_right_shoulder.svg b/resources/Textures/control/nintendo_switch_2_right_shoulder.svg new file mode 100644 index 00000000..6356a4ef --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_right_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_2_right_shoulder.svg.import b/resources/Textures/control/nintendo_switch_2_right_shoulder.svg.import new file mode 100644 index 00000000..e23087e4 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_right_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5ybpxujv8b0f" +path="res://.godot/imported/nintendo_switch_2_right_shoulder.svg-6ddcd8172ba08a6f0d712560f2663062.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_2_right_shoulder.svg" +dest_files=["res://.godot/imported/nintendo_switch_2_right_shoulder.svg-6ddcd8172ba08a6f0d712560f2663062.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_2_right_x_neg.svg b/resources/Textures/control/nintendo_switch_2_right_x_neg.svg new file mode 120000 index 00000000..45779c05 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_right_x_neg.svg @@ -0,0 +1 @@ +./xbox_right_x_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_2_right_x_neg.svg.import b/resources/Textures/control/nintendo_switch_2_right_x_neg.svg.import new file mode 100644 index 00000000..215b0159 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_right_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ci0l6m8ghfcra" +path="res://.godot/imported/nintendo_switch_2_right_x_neg.svg-b8a70e65e4cffc473e3b471b0b96d7f4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_2_right_x_neg.svg" +dest_files=["res://.godot/imported/nintendo_switch_2_right_x_neg.svg-b8a70e65e4cffc473e3b471b0b96d7f4.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_2_right_x_pos.svg b/resources/Textures/control/nintendo_switch_2_right_x_pos.svg new file mode 120000 index 00000000..9362d0c2 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_right_x_pos.svg @@ -0,0 +1 @@ +./xbox_right_x_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_2_right_x_pos.svg.import b/resources/Textures/control/nintendo_switch_2_right_x_pos.svg.import new file mode 100644 index 00000000..6babb23e --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_right_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dng5d3ot0baqq" +path="res://.godot/imported/nintendo_switch_2_right_x_pos.svg-a401496bf54600a6d93803d64711e8b9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_2_right_x_pos.svg" +dest_files=["res://.godot/imported/nintendo_switch_2_right_x_pos.svg-a401496bf54600a6d93803d64711e8b9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_2_right_y_neg.svg b/resources/Textures/control/nintendo_switch_2_right_y_neg.svg new file mode 120000 index 00000000..500d6c06 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_right_y_neg.svg @@ -0,0 +1 @@ +./xbox_right_y_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_2_right_y_neg.svg.import b/resources/Textures/control/nintendo_switch_2_right_y_neg.svg.import new file mode 100644 index 00000000..2317fa28 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_right_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1pxf7awyr631" +path="res://.godot/imported/nintendo_switch_2_right_y_neg.svg-579cde1badfa093369af2fd55ad44f97.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_2_right_y_neg.svg" +dest_files=["res://.godot/imported/nintendo_switch_2_right_y_neg.svg-579cde1badfa093369af2fd55ad44f97.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_2_right_y_pos.svg b/resources/Textures/control/nintendo_switch_2_right_y_pos.svg new file mode 120000 index 00000000..47f82ea0 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_right_y_pos.svg @@ -0,0 +1 @@ +./xbox_right_y_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_2_right_y_pos.svg.import b/resources/Textures/control/nintendo_switch_2_right_y_pos.svg.import new file mode 100644 index 00000000..dd156529 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_2_right_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bbaridvl3q8uu" +path="res://.godot/imported/nintendo_switch_2_right_y_pos.svg-73f7b200123c47da9be091a3b64ad395.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_2_right_y_pos.svg" +dest_files=["res://.godot/imported/nintendo_switch_2_right_y_pos.svg-73f7b200123c47da9be091a3b64ad395.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_a.svg b/resources/Textures/control/nintendo_switch_a.svg new file mode 120000 index 00000000..d8e17d31 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_a.svg @@ -0,0 +1 @@ +./nintendo_wii_u_a.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_a.svg.import b/resources/Textures/control/nintendo_switch_a.svg.import new file mode 100644 index 00000000..cf792445 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_a.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://p8cvudwp87u5" +path="res://.godot/imported/nintendo_switch_a.svg-94ce76c199ebcd656e8a00cfda5131de.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_a.svg" +dest_files=["res://.godot/imported/nintendo_switch_a.svg-94ce76c199ebcd656e8a00cfda5131de.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_left_shoulder.svg b/resources/Textures/control/nintendo_switch_left_shoulder.svg new file mode 100644 index 00000000..19288f92 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_left_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_left_shoulder.svg.import b/resources/Textures/control/nintendo_switch_left_shoulder.svg.import new file mode 100644 index 00000000..51ae3da4 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_left_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dmmds43cw58hq" +path="res://.godot/imported/nintendo_switch_left_shoulder.svg-60cf474120e5a08f6ec2d3a2942e3548.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_left_shoulder.svg" +dest_files=["res://.godot/imported/nintendo_switch_left_shoulder.svg-60cf474120e5a08f6ec2d3a2942e3548.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_left_x_neg.svg b/resources/Textures/control/nintendo_switch_left_x_neg.svg new file mode 100644 index 00000000..bdcf4d81 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_left_x_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_left_x_neg.svg.import b/resources/Textures/control/nintendo_switch_left_x_neg.svg.import new file mode 100644 index 00000000..bea74607 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_left_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://btq3x8c4054aw" +path="res://.godot/imported/nintendo_switch_left_x_neg.svg-c00965f55bb163270539c88250713c96.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_left_x_neg.svg" +dest_files=["res://.godot/imported/nintendo_switch_left_x_neg.svg-c00965f55bb163270539c88250713c96.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_left_x_pos.svg b/resources/Textures/control/nintendo_switch_left_x_pos.svg new file mode 100644 index 00000000..b58a654d --- /dev/null +++ b/resources/Textures/control/nintendo_switch_left_x_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_left_x_pos.svg.import b/resources/Textures/control/nintendo_switch_left_x_pos.svg.import new file mode 100644 index 00000000..dedce1ee --- /dev/null +++ b/resources/Textures/control/nintendo_switch_left_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dtjj0k4xiinx0" +path="res://.godot/imported/nintendo_switch_left_x_pos.svg-cc3224faaa1b9560f3485332050405a5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_left_x_pos.svg" +dest_files=["res://.godot/imported/nintendo_switch_left_x_pos.svg-cc3224faaa1b9560f3485332050405a5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_left_y_neg.svg b/resources/Textures/control/nintendo_switch_left_y_neg.svg new file mode 100644 index 00000000..9739070b --- /dev/null +++ b/resources/Textures/control/nintendo_switch_left_y_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_left_y_neg.svg.import b/resources/Textures/control/nintendo_switch_left_y_neg.svg.import new file mode 100644 index 00000000..06c3dd85 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_left_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bokxtb0g0ugot" +path="res://.godot/imported/nintendo_switch_left_y_neg.svg-abc1abe5f702142aeafa3dbc3ce25a91.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_left_y_neg.svg" +dest_files=["res://.godot/imported/nintendo_switch_left_y_neg.svg-abc1abe5f702142aeafa3dbc3ce25a91.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_left_y_pos.svg b/resources/Textures/control/nintendo_switch_left_y_pos.svg new file mode 100644 index 00000000..0463ff83 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_left_y_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_left_y_pos.svg.import b/resources/Textures/control/nintendo_switch_left_y_pos.svg.import new file mode 100644 index 00000000..3f4fc500 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_left_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://1fshfstjad41" +path="res://.godot/imported/nintendo_switch_left_y_pos.svg-8c734030aa43913d284afc2022a8bd68.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_left_y_pos.svg" +dest_files=["res://.godot/imported/nintendo_switch_left_y_pos.svg-8c734030aa43913d284afc2022a8bd68.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_right_shoulder.svg b/resources/Textures/control/nintendo_switch_right_shoulder.svg new file mode 100644 index 00000000..24ec3904 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_right_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_right_shoulder.svg.import b/resources/Textures/control/nintendo_switch_right_shoulder.svg.import new file mode 100644 index 00000000..b45eea29 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_right_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbw13sljj5ypb" +path="res://.godot/imported/nintendo_switch_right_shoulder.svg-c13495a84c2e0710b2afb746b54d729d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_right_shoulder.svg" +dest_files=["res://.godot/imported/nintendo_switch_right_shoulder.svg-c13495a84c2e0710b2afb746b54d729d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_right_x_neg.svg b/resources/Textures/control/nintendo_switch_right_x_neg.svg new file mode 120000 index 00000000..45779c05 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_right_x_neg.svg @@ -0,0 +1 @@ +./xbox_right_x_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_right_x_neg.svg.import b/resources/Textures/control/nintendo_switch_right_x_neg.svg.import new file mode 100644 index 00000000..aecc2d39 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_right_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b34m4fw5qcs3h" +path="res://.godot/imported/nintendo_switch_right_x_neg.svg-684745ca3514bfa678a796d9613a538e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_right_x_neg.svg" +dest_files=["res://.godot/imported/nintendo_switch_right_x_neg.svg-684745ca3514bfa678a796d9613a538e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_right_x_pos.svg b/resources/Textures/control/nintendo_switch_right_x_pos.svg new file mode 120000 index 00000000..9362d0c2 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_right_x_pos.svg @@ -0,0 +1 @@ +./xbox_right_x_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_right_x_pos.svg.import b/resources/Textures/control/nintendo_switch_right_x_pos.svg.import new file mode 100644 index 00000000..5107902e --- /dev/null +++ b/resources/Textures/control/nintendo_switch_right_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://blq6hksrm76r3" +path="res://.godot/imported/nintendo_switch_right_x_pos.svg-a41599b0a5739792cc7303dabbecf972.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_right_x_pos.svg" +dest_files=["res://.godot/imported/nintendo_switch_right_x_pos.svg-a41599b0a5739792cc7303dabbecf972.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_right_y_neg.svg b/resources/Textures/control/nintendo_switch_right_y_neg.svg new file mode 120000 index 00000000..500d6c06 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_right_y_neg.svg @@ -0,0 +1 @@ +./xbox_right_y_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_right_y_neg.svg.import b/resources/Textures/control/nintendo_switch_right_y_neg.svg.import new file mode 100644 index 00000000..ccf7098e --- /dev/null +++ b/resources/Textures/control/nintendo_switch_right_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2bhom8gptl1p" +path="res://.godot/imported/nintendo_switch_right_y_neg.svg-153482d596fce0ca24d195cab2551868.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_right_y_neg.svg" +dest_files=["res://.godot/imported/nintendo_switch_right_y_neg.svg-153482d596fce0ca24d195cab2551868.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_switch_right_y_pos.svg b/resources/Textures/control/nintendo_switch_right_y_pos.svg new file mode 120000 index 00000000..47f82ea0 --- /dev/null +++ b/resources/Textures/control/nintendo_switch_right_y_pos.svg @@ -0,0 +1 @@ +./xbox_right_y_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_switch_right_y_pos.svg.import b/resources/Textures/control/nintendo_switch_right_y_pos.svg.import new file mode 100644 index 00000000..a8b6551a --- /dev/null +++ b/resources/Textures/control/nintendo_switch_right_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://drsmau6newnjt" +path="res://.godot/imported/nintendo_switch_right_y_pos.svg-917a21e5acbe1667bb60d7305e6f8c9d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_switch_right_y_pos.svg" +dest_files=["res://.godot/imported/nintendo_switch_right_y_pos.svg-917a21e5acbe1667bb60d7305e6f8c9d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_a.svg b/resources/Textures/control/nintendo_wii_a.svg new file mode 100644 index 00000000..7d316ef5 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_a.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_a.svg.import b/resources/Textures/control/nintendo_wii_a.svg.import new file mode 100644 index 00000000..8ad40b4d --- /dev/null +++ b/resources/Textures/control/nintendo_wii_a.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7n1h0qr7xjwy" +path="res://.godot/imported/nintendo_wii_a.svg-e69966e07b709086d9aa43964fb6a4d2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_a.svg" +dest_files=["res://.godot/imported/nintendo_wii_a.svg-e69966e07b709086d9aa43964fb6a4d2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_left_shoulder.svg b/resources/Textures/control/nintendo_wii_left_shoulder.svg new file mode 100644 index 00000000..6f4b38cb --- /dev/null +++ b/resources/Textures/control/nintendo_wii_left_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_left_shoulder.svg.import b/resources/Textures/control/nintendo_wii_left_shoulder.svg.import new file mode 100644 index 00000000..6a822a8d --- /dev/null +++ b/resources/Textures/control/nintendo_wii_left_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://nd08egmxg6cv" +path="res://.godot/imported/nintendo_wii_left_shoulder.svg-52f712bbe9603100231163e95bb79e71.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_left_shoulder.svg" +dest_files=["res://.godot/imported/nintendo_wii_left_shoulder.svg-52f712bbe9603100231163e95bb79e71.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_left_x_neg.svg b/resources/Textures/control/nintendo_wii_left_x_neg.svg new file mode 120000 index 00000000..de8682ee --- /dev/null +++ b/resources/Textures/control/nintendo_wii_left_x_neg.svg @@ -0,0 +1 @@ +./nintendo_wii_u_left_x_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_left_x_neg.svg.import b/resources/Textures/control/nintendo_wii_left_x_neg.svg.import new file mode 100644 index 00000000..acaae1a7 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_left_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://pu08e20sb3lr" +path="res://.godot/imported/nintendo_wii_left_x_neg.svg-a8b84f795ae1194bc127f63dc6226d1c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_left_x_neg.svg" +dest_files=["res://.godot/imported/nintendo_wii_left_x_neg.svg-a8b84f795ae1194bc127f63dc6226d1c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_left_x_pos.svg b/resources/Textures/control/nintendo_wii_left_x_pos.svg new file mode 120000 index 00000000..01822ca1 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_left_x_pos.svg @@ -0,0 +1 @@ +./nintendo_wii_u_left_x_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_left_x_pos.svg.import b/resources/Textures/control/nintendo_wii_left_x_pos.svg.import new file mode 100644 index 00000000..701b9fd7 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_left_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8g7ygjr4fble" +path="res://.godot/imported/nintendo_wii_left_x_pos.svg-446a22e0e4420a97b18943e572a9f61e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_left_x_pos.svg" +dest_files=["res://.godot/imported/nintendo_wii_left_x_pos.svg-446a22e0e4420a97b18943e572a9f61e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_left_y_neg.svg b/resources/Textures/control/nintendo_wii_left_y_neg.svg new file mode 120000 index 00000000..9aa5d9aa --- /dev/null +++ b/resources/Textures/control/nintendo_wii_left_y_neg.svg @@ -0,0 +1 @@ +./nintendo_wii_u_left_y_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_left_y_neg.svg.import b/resources/Textures/control/nintendo_wii_left_y_neg.svg.import new file mode 100644 index 00000000..019ec0d0 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_left_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bua7347bw2umy" +path="res://.godot/imported/nintendo_wii_left_y_neg.svg-da60c9587f33af304d0fca0ef771276f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_left_y_neg.svg" +dest_files=["res://.godot/imported/nintendo_wii_left_y_neg.svg-da60c9587f33af304d0fca0ef771276f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_left_y_pos.svg b/resources/Textures/control/nintendo_wii_left_y_pos.svg new file mode 120000 index 00000000..fb881a08 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_left_y_pos.svg @@ -0,0 +1 @@ +./nintendo_wii_u_left_y_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_left_y_pos.svg.import b/resources/Textures/control/nintendo_wii_left_y_pos.svg.import new file mode 100644 index 00000000..8bd7a8b0 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_left_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://boaxkpmmcmxvm" +path="res://.godot/imported/nintendo_wii_left_y_pos.svg-1f6d3850294d07165c10d7cc975568da.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_left_y_pos.svg" +dest_files=["res://.godot/imported/nintendo_wii_left_y_pos.svg-1f6d3850294d07165c10d7cc975568da.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_right_shoulder.svg b/resources/Textures/control/nintendo_wii_right_shoulder.svg new file mode 100644 index 00000000..30293f76 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_right_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_right_shoulder.svg.import b/resources/Textures/control/nintendo_wii_right_shoulder.svg.import new file mode 100644 index 00000000..21a7a218 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_right_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5ct1sqy1et6p" +path="res://.godot/imported/nintendo_wii_right_shoulder.svg-5ec94a7d83d6ec30017c97a2a3131a31.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_right_shoulder.svg" +dest_files=["res://.godot/imported/nintendo_wii_right_shoulder.svg-5ec94a7d83d6ec30017c97a2a3131a31.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_right_x_neg.svg b/resources/Textures/control/nintendo_wii_right_x_neg.svg new file mode 120000 index 00000000..45779c05 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_right_x_neg.svg @@ -0,0 +1 @@ +./xbox_right_x_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_right_x_neg.svg.import b/resources/Textures/control/nintendo_wii_right_x_neg.svg.import new file mode 100644 index 00000000..6ecfaa4d --- /dev/null +++ b/resources/Textures/control/nintendo_wii_right_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnu3hfkhtkig2" +path="res://.godot/imported/nintendo_wii_right_x_neg.svg-e5ce81bb6277806f1feca5afd8568b97.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_right_x_neg.svg" +dest_files=["res://.godot/imported/nintendo_wii_right_x_neg.svg-e5ce81bb6277806f1feca5afd8568b97.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_right_x_pos.svg b/resources/Textures/control/nintendo_wii_right_x_pos.svg new file mode 120000 index 00000000..9362d0c2 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_right_x_pos.svg @@ -0,0 +1 @@ +./xbox_right_x_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_right_x_pos.svg.import b/resources/Textures/control/nintendo_wii_right_x_pos.svg.import new file mode 100644 index 00000000..718a1037 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_right_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkbc46u4w123n" +path="res://.godot/imported/nintendo_wii_right_x_pos.svg-a3922412c27281a5f84fce6895bda5f5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_right_x_pos.svg" +dest_files=["res://.godot/imported/nintendo_wii_right_x_pos.svg-a3922412c27281a5f84fce6895bda5f5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_right_y_neg.svg b/resources/Textures/control/nintendo_wii_right_y_neg.svg new file mode 120000 index 00000000..500d6c06 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_right_y_neg.svg @@ -0,0 +1 @@ +./xbox_right_y_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_right_y_neg.svg.import b/resources/Textures/control/nintendo_wii_right_y_neg.svg.import new file mode 100644 index 00000000..6a34c4ac --- /dev/null +++ b/resources/Textures/control/nintendo_wii_right_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bh2uwu8sg1src" +path="res://.godot/imported/nintendo_wii_right_y_neg.svg-fd25ff05896612cf762dc0ab0ea3503b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_right_y_neg.svg" +dest_files=["res://.godot/imported/nintendo_wii_right_y_neg.svg-fd25ff05896612cf762dc0ab0ea3503b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_right_y_pos.svg b/resources/Textures/control/nintendo_wii_right_y_pos.svg new file mode 120000 index 00000000..47f82ea0 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_right_y_pos.svg @@ -0,0 +1 @@ +./xbox_right_y_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_right_y_pos.svg.import b/resources/Textures/control/nintendo_wii_right_y_pos.svg.import new file mode 100644 index 00000000..21922c1b --- /dev/null +++ b/resources/Textures/control/nintendo_wii_right_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://caixb0qd7ak2f" +path="res://.godot/imported/nintendo_wii_right_y_pos.svg-cb366cd52015c766fd3aed1770d947ee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_right_y_pos.svg" +dest_files=["res://.godot/imported/nintendo_wii_right_y_pos.svg-cb366cd52015c766fd3aed1770d947ee.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_u_a.svg b/resources/Textures/control/nintendo_wii_u_a.svg new file mode 100644 index 00000000..bc6493f9 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_a.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_u_a.svg.import b/resources/Textures/control/nintendo_wii_u_a.svg.import new file mode 100644 index 00000000..6f5ddb47 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_a.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c4ddf15ivmaod" +path="res://.godot/imported/nintendo_wii_u_a.svg-aa5bc3b87501ab2850a7f7c2dc3174f8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_u_a.svg" +dest_files=["res://.godot/imported/nintendo_wii_u_a.svg-aa5bc3b87501ab2850a7f7c2dc3174f8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_u_left_shoulder.svg b/resources/Textures/control/nintendo_wii_u_left_shoulder.svg new file mode 100644 index 00000000..d539fe77 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_left_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_u_left_shoulder.svg.import b/resources/Textures/control/nintendo_wii_u_left_shoulder.svg.import new file mode 100644 index 00000000..bac275f5 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_left_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccd0gxopvpidm" +path="res://.godot/imported/nintendo_wii_u_left_shoulder.svg-21b247af2df917410cc83dd7901b5dd8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_u_left_shoulder.svg" +dest_files=["res://.godot/imported/nintendo_wii_u_left_shoulder.svg-21b247af2df917410cc83dd7901b5dd8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_u_left_x_neg.svg b/resources/Textures/control/nintendo_wii_u_left_x_neg.svg new file mode 120000 index 00000000..e3dc5d06 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_left_x_neg.svg @@ -0,0 +1 @@ +./xbox_left_x_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_u_left_x_neg.svg.import b/resources/Textures/control/nintendo_wii_u_left_x_neg.svg.import new file mode 100644 index 00000000..e3e2a26b --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_left_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwik65gsudmv3" +path="res://.godot/imported/nintendo_wii_u_left_x_neg.svg-5430ab80a26e3d9d7d1be3bf114ed2ff.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_u_left_x_neg.svg" +dest_files=["res://.godot/imported/nintendo_wii_u_left_x_neg.svg-5430ab80a26e3d9d7d1be3bf114ed2ff.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_u_left_x_pos.svg b/resources/Textures/control/nintendo_wii_u_left_x_pos.svg new file mode 120000 index 00000000..986ecbe2 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_left_x_pos.svg @@ -0,0 +1 @@ +./xbox_left_x_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_u_left_x_pos.svg.import b/resources/Textures/control/nintendo_wii_u_left_x_pos.svg.import new file mode 100644 index 00000000..749c9192 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_left_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dje0p0cagwbuf" +path="res://.godot/imported/nintendo_wii_u_left_x_pos.svg-2143e36a7d8c514a4bdeeb88bf6876f5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_u_left_x_pos.svg" +dest_files=["res://.godot/imported/nintendo_wii_u_left_x_pos.svg-2143e36a7d8c514a4bdeeb88bf6876f5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_u_left_y_neg.svg b/resources/Textures/control/nintendo_wii_u_left_y_neg.svg new file mode 120000 index 00000000..7fa42126 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_left_y_neg.svg @@ -0,0 +1 @@ +./xbox_left_y_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_u_left_y_neg.svg.import b/resources/Textures/control/nintendo_wii_u_left_y_neg.svg.import new file mode 100644 index 00000000..774e9095 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_left_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dvg15k1x8s7" +path="res://.godot/imported/nintendo_wii_u_left_y_neg.svg-1873554e3a55f28e9b73c50df76872ff.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_u_left_y_neg.svg" +dest_files=["res://.godot/imported/nintendo_wii_u_left_y_neg.svg-1873554e3a55f28e9b73c50df76872ff.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_u_left_y_pos.svg b/resources/Textures/control/nintendo_wii_u_left_y_pos.svg new file mode 120000 index 00000000..832f9fb2 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_left_y_pos.svg @@ -0,0 +1 @@ +./xbox_left_y_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_u_left_y_pos.svg.import b/resources/Textures/control/nintendo_wii_u_left_y_pos.svg.import new file mode 100644 index 00000000..efb91998 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_left_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dayqvbni4l0sb" +path="res://.godot/imported/nintendo_wii_u_left_y_pos.svg-d0703925a991ba0d863d80ef84d53bfa.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_u_left_y_pos.svg" +dest_files=["res://.godot/imported/nintendo_wii_u_left_y_pos.svg-d0703925a991ba0d863d80ef84d53bfa.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_u_right_shoulder.svg b/resources/Textures/control/nintendo_wii_u_right_shoulder.svg new file mode 100644 index 00000000..56ce87d5 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_right_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_u_right_shoulder.svg.import b/resources/Textures/control/nintendo_wii_u_right_shoulder.svg.import new file mode 100644 index 00000000..1251e437 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_right_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c3gpys8anhl6k" +path="res://.godot/imported/nintendo_wii_u_right_shoulder.svg-c397bdded16f69465068139c9dab07f2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_u_right_shoulder.svg" +dest_files=["res://.godot/imported/nintendo_wii_u_right_shoulder.svg-c397bdded16f69465068139c9dab07f2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_u_right_x_neg.svg b/resources/Textures/control/nintendo_wii_u_right_x_neg.svg new file mode 120000 index 00000000..45779c05 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_right_x_neg.svg @@ -0,0 +1 @@ +./xbox_right_x_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_u_right_x_neg.svg.import b/resources/Textures/control/nintendo_wii_u_right_x_neg.svg.import new file mode 100644 index 00000000..98c64dd4 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_right_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bhqi0nb4uqmsu" +path="res://.godot/imported/nintendo_wii_u_right_x_neg.svg-7fcdc17e6d7d3712c862da02f115d413.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_u_right_x_neg.svg" +dest_files=["res://.godot/imported/nintendo_wii_u_right_x_neg.svg-7fcdc17e6d7d3712c862da02f115d413.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_u_right_x_pos.svg b/resources/Textures/control/nintendo_wii_u_right_x_pos.svg new file mode 120000 index 00000000..9362d0c2 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_right_x_pos.svg @@ -0,0 +1 @@ +./xbox_right_x_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_u_right_x_pos.svg.import b/resources/Textures/control/nintendo_wii_u_right_x_pos.svg.import new file mode 100644 index 00000000..de09d8fd --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_right_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0gstxdvm8sfe" +path="res://.godot/imported/nintendo_wii_u_right_x_pos.svg-62b43f2daa39e3815feae8ec4dbcc0d0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_u_right_x_pos.svg" +dest_files=["res://.godot/imported/nintendo_wii_u_right_x_pos.svg-62b43f2daa39e3815feae8ec4dbcc0d0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_u_right_y_neg.svg b/resources/Textures/control/nintendo_wii_u_right_y_neg.svg new file mode 120000 index 00000000..500d6c06 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_right_y_neg.svg @@ -0,0 +1 @@ +./xbox_right_y_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_u_right_y_neg.svg.import b/resources/Textures/control/nintendo_wii_u_right_y_neg.svg.import new file mode 100644 index 00000000..85deaf91 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_right_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dyuyo0tn61a1" +path="res://.godot/imported/nintendo_wii_u_right_y_neg.svg-9fb8951e11b26e91220b702e0f4c51ee.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_u_right_y_neg.svg" +dest_files=["res://.godot/imported/nintendo_wii_u_right_y_neg.svg-9fb8951e11b26e91220b702e0f4c51ee.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/nintendo_wii_u_right_y_pos.svg b/resources/Textures/control/nintendo_wii_u_right_y_pos.svg new file mode 120000 index 00000000..47f82ea0 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_right_y_pos.svg @@ -0,0 +1 @@ +./xbox_right_y_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/nintendo_wii_u_right_y_pos.svg.import b/resources/Textures/control/nintendo_wii_u_right_y_pos.svg.import new file mode 100644 index 00000000..9b93f709 --- /dev/null +++ b/resources/Textures/control/nintendo_wii_u_right_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bkt3rjyuve8gp" +path="res://.godot/imported/nintendo_wii_u_right_y_pos.svg-29c459e052317ba652602fd292d852db.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/nintendo_wii_u_right_y_pos.svg" +dest_files=["res://.godot/imported/nintendo_wii_u_right_y_pos.svg-29c459e052317ba652602fd292d852db.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_a.svg b/resources/Textures/control/play_station_a.svg new file mode 100644 index 00000000..5be61007 --- /dev/null +++ b/resources/Textures/control/play_station_a.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/play_station_a.svg.import b/resources/Textures/control/play_station_a.svg.import new file mode 100644 index 00000000..48e18271 --- /dev/null +++ b/resources/Textures/control/play_station_a.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7u32h53xiobi" +path="res://.godot/imported/play_station_a.svg-6757714b1565b37f38f842555eb55a82.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_a.svg" +dest_files=["res://.godot/imported/play_station_a.svg-6757714b1565b37f38f842555eb55a82.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_b.svg b/resources/Textures/control/play_station_b.svg new file mode 100644 index 00000000..eb708b3d --- /dev/null +++ b/resources/Textures/control/play_station_b.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/play_station_b.svg.import b/resources/Textures/control/play_station_b.svg.import new file mode 100644 index 00000000..331396a1 --- /dev/null +++ b/resources/Textures/control/play_station_b.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://crodqlsgimcmm" +path="res://.godot/imported/play_station_b.svg-8847c651ef30144a50752c683a5f8a12.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_b.svg" +dest_files=["res://.godot/imported/play_station_b.svg-8847c651ef30144a50752c683a5f8a12.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_left_shoulder.svg b/resources/Textures/control/play_station_left_shoulder.svg new file mode 100644 index 00000000..071ba426 --- /dev/null +++ b/resources/Textures/control/play_station_left_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/play_station_left_shoulder.svg.import b/resources/Textures/control/play_station_left_shoulder.svg.import new file mode 100644 index 00000000..7ed6cf8a --- /dev/null +++ b/resources/Textures/control/play_station_left_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dp3apgq2uh1ww" +path="res://.godot/imported/play_station_left_shoulder.svg-7e464708100b08745ce0cdae47657cbb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_left_shoulder.svg" +dest_files=["res://.godot/imported/play_station_left_shoulder.svg-7e464708100b08745ce0cdae47657cbb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_left_x_neg.svg b/resources/Textures/control/play_station_left_x_neg.svg new file mode 120000 index 00000000..e3dc5d06 --- /dev/null +++ b/resources/Textures/control/play_station_left_x_neg.svg @@ -0,0 +1 @@ +./xbox_left_x_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/play_station_left_x_neg.svg.import b/resources/Textures/control/play_station_left_x_neg.svg.import new file mode 100644 index 00000000..24f1d423 --- /dev/null +++ b/resources/Textures/control/play_station_left_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://5b2rqjdev0lp" +path="res://.godot/imported/play_station_left_x_neg.svg-10b4781a194915293fd0cce257e1c383.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_left_x_neg.svg" +dest_files=["res://.godot/imported/play_station_left_x_neg.svg-10b4781a194915293fd0cce257e1c383.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_left_x_pos.svg b/resources/Textures/control/play_station_left_x_pos.svg new file mode 120000 index 00000000..986ecbe2 --- /dev/null +++ b/resources/Textures/control/play_station_left_x_pos.svg @@ -0,0 +1 @@ +./xbox_left_x_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/play_station_left_x_pos.svg.import b/resources/Textures/control/play_station_left_x_pos.svg.import new file mode 100644 index 00000000..b84fb483 --- /dev/null +++ b/resources/Textures/control/play_station_left_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hus051xiqg61" +path="res://.godot/imported/play_station_left_x_pos.svg-3ed2903cb63d045c6b6a9bfe6f7b7cbb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_left_x_pos.svg" +dest_files=["res://.godot/imported/play_station_left_x_pos.svg-3ed2903cb63d045c6b6a9bfe6f7b7cbb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_left_y_neg.svg b/resources/Textures/control/play_station_left_y_neg.svg new file mode 120000 index 00000000..7fa42126 --- /dev/null +++ b/resources/Textures/control/play_station_left_y_neg.svg @@ -0,0 +1 @@ +./xbox_left_y_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/play_station_left_y_neg.svg.import b/resources/Textures/control/play_station_left_y_neg.svg.import new file mode 100644 index 00000000..40d16553 --- /dev/null +++ b/resources/Textures/control/play_station_left_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://baew5jmiajcda" +path="res://.godot/imported/play_station_left_y_neg.svg-f6fc1b426269a9bc324641640c693b0b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_left_y_neg.svg" +dest_files=["res://.godot/imported/play_station_left_y_neg.svg-f6fc1b426269a9bc324641640c693b0b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_left_y_pos.svg b/resources/Textures/control/play_station_left_y_pos.svg new file mode 120000 index 00000000..832f9fb2 --- /dev/null +++ b/resources/Textures/control/play_station_left_y_pos.svg @@ -0,0 +1 @@ +./xbox_left_y_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/play_station_left_y_pos.svg.import b/resources/Textures/control/play_station_left_y_pos.svg.import new file mode 100644 index 00000000..55a96bcf --- /dev/null +++ b/resources/Textures/control/play_station_left_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cpbkxnxllxknq" +path="res://.godot/imported/play_station_left_y_pos.svg-2df1cf28b61cd3a5941999416ad866a3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_left_y_pos.svg" +dest_files=["res://.godot/imported/play_station_left_y_pos.svg-2df1cf28b61cd3a5941999416ad866a3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_right_shoulder.svg b/resources/Textures/control/play_station_right_shoulder.svg new file mode 100644 index 00000000..c216bc11 --- /dev/null +++ b/resources/Textures/control/play_station_right_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/play_station_right_shoulder.svg.import b/resources/Textures/control/play_station_right_shoulder.svg.import new file mode 100644 index 00000000..338da1b1 --- /dev/null +++ b/resources/Textures/control/play_station_right_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkedsi265xf4y" +path="res://.godot/imported/play_station_right_shoulder.svg-d67d7caeb1e2fa2a3661723d934ae4f8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_right_shoulder.svg" +dest_files=["res://.godot/imported/play_station_right_shoulder.svg-d67d7caeb1e2fa2a3661723d934ae4f8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_right_x_neg.svg b/resources/Textures/control/play_station_right_x_neg.svg new file mode 120000 index 00000000..45779c05 --- /dev/null +++ b/resources/Textures/control/play_station_right_x_neg.svg @@ -0,0 +1 @@ +./xbox_right_x_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/play_station_right_x_neg.svg.import b/resources/Textures/control/play_station_right_x_neg.svg.import new file mode 100644 index 00000000..916b7e7d --- /dev/null +++ b/resources/Textures/control/play_station_right_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://debd1e40yik7d" +path="res://.godot/imported/play_station_right_x_neg.svg-c7a4e557877b8dc2d5539129c99967ec.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_right_x_neg.svg" +dest_files=["res://.godot/imported/play_station_right_x_neg.svg-c7a4e557877b8dc2d5539129c99967ec.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_right_x_pos.svg b/resources/Textures/control/play_station_right_x_pos.svg new file mode 120000 index 00000000..9362d0c2 --- /dev/null +++ b/resources/Textures/control/play_station_right_x_pos.svg @@ -0,0 +1 @@ +./xbox_right_x_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/play_station_right_x_pos.svg.import b/resources/Textures/control/play_station_right_x_pos.svg.import new file mode 100644 index 00000000..6ef3a56d --- /dev/null +++ b/resources/Textures/control/play_station_right_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dx5xqopbp3deh" +path="res://.godot/imported/play_station_right_x_pos.svg-23bf9703b1d0f63d41ac82c1ec3841d2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_right_x_pos.svg" +dest_files=["res://.godot/imported/play_station_right_x_pos.svg-23bf9703b1d0f63d41ac82c1ec3841d2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_right_y_neg.svg b/resources/Textures/control/play_station_right_y_neg.svg new file mode 120000 index 00000000..500d6c06 --- /dev/null +++ b/resources/Textures/control/play_station_right_y_neg.svg @@ -0,0 +1 @@ +./xbox_right_y_neg.svg \ No newline at end of file diff --git a/resources/Textures/control/play_station_right_y_neg.svg.import b/resources/Textures/control/play_station_right_y_neg.svg.import new file mode 100644 index 00000000..1d2d1754 --- /dev/null +++ b/resources/Textures/control/play_station_right_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://871qrj73jvhn" +path="res://.godot/imported/play_station_right_y_neg.svg-467787a4dde76674c8aed16faa9ea5e8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_right_y_neg.svg" +dest_files=["res://.godot/imported/play_station_right_y_neg.svg-467787a4dde76674c8aed16faa9ea5e8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_right_y_pos.svg b/resources/Textures/control/play_station_right_y_pos.svg new file mode 120000 index 00000000..47f82ea0 --- /dev/null +++ b/resources/Textures/control/play_station_right_y_pos.svg @@ -0,0 +1 @@ +./xbox_right_y_pos.svg \ No newline at end of file diff --git a/resources/Textures/control/play_station_right_y_pos.svg.import b/resources/Textures/control/play_station_right_y_pos.svg.import new file mode 100644 index 00000000..11fdd837 --- /dev/null +++ b/resources/Textures/control/play_station_right_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djlro03flvepr" +path="res://.godot/imported/play_station_right_y_pos.svg-790d8a1afe6167c2802de5d8406f5e8e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_right_y_pos.svg" +dest_files=["res://.godot/imported/play_station_right_y_pos.svg-790d8a1afe6167c2802de5d8406f5e8e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_x.svg b/resources/Textures/control/play_station_x.svg new file mode 100644 index 00000000..18333d5a --- /dev/null +++ b/resources/Textures/control/play_station_x.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/play_station_x.svg.import b/resources/Textures/control/play_station_x.svg.import new file mode 100644 index 00000000..bd04d955 --- /dev/null +++ b/resources/Textures/control/play_station_x.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b07awuregfhri" +path="res://.godot/imported/play_station_x.svg-347230c629e710b580571144a1c3292d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_x.svg" +dest_files=["res://.godot/imported/play_station_x.svg-347230c629e710b580571144a1c3292d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/play_station_y.svg b/resources/Textures/control/play_station_y.svg new file mode 100644 index 00000000..37411539 --- /dev/null +++ b/resources/Textures/control/play_station_y.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/play_station_y.svg.import b/resources/Textures/control/play_station_y.svg.import new file mode 100644 index 00000000..bb4727e6 --- /dev/null +++ b/resources/Textures/control/play_station_y.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cb31c8pwlwd0h" +path="res://.godot/imported/play_station_y.svg-c1b1f8caaa4af0e2340b157995c46a23.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/play_station_y.svg" +dest_files=["res://.godot/imported/play_station_y.svg-c1b1f8caaa4af0e2340b157995c46a23.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_a.svg b/resources/Textures/control/steam_a.svg new file mode 120000 index 00000000..019f3cf4 --- /dev/null +++ b/resources/Textures/control/steam_a.svg @@ -0,0 +1 @@ +./xbox_a.svg \ No newline at end of file diff --git a/resources/Textures/control/steam_a.svg.import b/resources/Textures/control/steam_a.svg.import new file mode 100644 index 00000000..92c2d333 --- /dev/null +++ b/resources/Textures/control/steam_a.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2vpm0o6afemy" +path="res://.godot/imported/steam_a.svg-9b10d6263277906efbe6e86289c2a3a7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_a.svg" +dest_files=["res://.godot/imported/steam_a.svg-9b10d6263277906efbe6e86289c2a3a7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_b.svg b/resources/Textures/control/steam_b.svg new file mode 120000 index 00000000..96391670 --- /dev/null +++ b/resources/Textures/control/steam_b.svg @@ -0,0 +1 @@ +./xbox_b.svg \ No newline at end of file diff --git a/resources/Textures/control/steam_b.svg.import b/resources/Textures/control/steam_b.svg.import new file mode 100644 index 00000000..dc0f481e --- /dev/null +++ b/resources/Textures/control/steam_b.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://df5gmcg7bc74j" +path="res://.godot/imported/steam_b.svg-7b7e57a7aa31df27dac4e69f3b098ce3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_b.svg" +dest_files=["res://.godot/imported/steam_b.svg-7b7e57a7aa31df27dac4e69f3b098ce3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_a.svg b/resources/Textures/control/steam_deck_a.svg new file mode 100644 index 00000000..17121c7f --- /dev/null +++ b/resources/Textures/control/steam_deck_a.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_a.svg.import b/resources/Textures/control/steam_deck_a.svg.import new file mode 100644 index 00000000..23f3f914 --- /dev/null +++ b/resources/Textures/control/steam_deck_a.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://4r5wyrkisecb" +path="res://.godot/imported/steam_deck_a.svg-5ad25e3dced8a8e972822b4500034f2a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_a.svg" +dest_files=["res://.godot/imported/steam_deck_a.svg-5ad25e3dced8a8e972822b4500034f2a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_b.svg b/resources/Textures/control/steam_deck_b.svg new file mode 100644 index 00000000..bc6493f9 --- /dev/null +++ b/resources/Textures/control/steam_deck_b.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_b.svg.import b/resources/Textures/control/steam_deck_b.svg.import new file mode 100644 index 00000000..cf04c924 --- /dev/null +++ b/resources/Textures/control/steam_deck_b.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://o1s61h1ghalk" +path="res://.godot/imported/steam_deck_b.svg-f12b36ca50b402159b09c86b213c3637.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_b.svg" +dest_files=["res://.godot/imported/steam_deck_b.svg-f12b36ca50b402159b09c86b213c3637.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_left_shoulder.svg b/resources/Textures/control/steam_deck_left_shoulder.svg new file mode 100644 index 00000000..77618a2c --- /dev/null +++ b/resources/Textures/control/steam_deck_left_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_left_shoulder.svg.import b/resources/Textures/control/steam_deck_left_shoulder.svg.import new file mode 100644 index 00000000..7700766c --- /dev/null +++ b/resources/Textures/control/steam_deck_left_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0ofqdwsayd5y" +path="res://.godot/imported/steam_deck_left_shoulder.svg-7248e24fb5bd399a35e7c2ced5413684.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_left_shoulder.svg" +dest_files=["res://.godot/imported/steam_deck_left_shoulder.svg-7248e24fb5bd399a35e7c2ced5413684.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_left_x_neg.svg b/resources/Textures/control/steam_deck_left_x_neg.svg new file mode 100644 index 00000000..bdcf4d81 --- /dev/null +++ b/resources/Textures/control/steam_deck_left_x_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_left_x_neg.svg.import b/resources/Textures/control/steam_deck_left_x_neg.svg.import new file mode 100644 index 00000000..84a55831 --- /dev/null +++ b/resources/Textures/control/steam_deck_left_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5y6dqvbtc1dm" +path="res://.godot/imported/steam_deck_left_x_neg.svg-955958fba23fb51848e4f4d315e1e11d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_left_x_neg.svg" +dest_files=["res://.godot/imported/steam_deck_left_x_neg.svg-955958fba23fb51848e4f4d315e1e11d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_left_x_pos.svg b/resources/Textures/control/steam_deck_left_x_pos.svg new file mode 100644 index 00000000..b58a654d --- /dev/null +++ b/resources/Textures/control/steam_deck_left_x_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_left_x_pos.svg.import b/resources/Textures/control/steam_deck_left_x_pos.svg.import new file mode 100644 index 00000000..60c01aee --- /dev/null +++ b/resources/Textures/control/steam_deck_left_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdhvhyospdnu2" +path="res://.godot/imported/steam_deck_left_x_pos.svg-88144cd08352368f49cd6194a8fdf485.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_left_x_pos.svg" +dest_files=["res://.godot/imported/steam_deck_left_x_pos.svg-88144cd08352368f49cd6194a8fdf485.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_left_y_neg.svg b/resources/Textures/control/steam_deck_left_y_neg.svg new file mode 100644 index 00000000..9739070b --- /dev/null +++ b/resources/Textures/control/steam_deck_left_y_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_left_y_neg.svg.import b/resources/Textures/control/steam_deck_left_y_neg.svg.import new file mode 100644 index 00000000..43b13f00 --- /dev/null +++ b/resources/Textures/control/steam_deck_left_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cyg0w04qbqsrw" +path="res://.godot/imported/steam_deck_left_y_neg.svg-3e67706dda4916d437ef8f5ce77ffd33.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_left_y_neg.svg" +dest_files=["res://.godot/imported/steam_deck_left_y_neg.svg-3e67706dda4916d437ef8f5ce77ffd33.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_left_y_pos.svg b/resources/Textures/control/steam_deck_left_y_pos.svg new file mode 100644 index 00000000..0463ff83 --- /dev/null +++ b/resources/Textures/control/steam_deck_left_y_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_left_y_pos.svg.import b/resources/Textures/control/steam_deck_left_y_pos.svg.import new file mode 100644 index 00000000..6ba8d1b3 --- /dev/null +++ b/resources/Textures/control/steam_deck_left_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djpwd4u1irvf4" +path="res://.godot/imported/steam_deck_left_y_pos.svg-0fab779a96babac8744f330ac88fe291.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_left_y_pos.svg" +dest_files=["res://.godot/imported/steam_deck_left_y_pos.svg-0fab779a96babac8744f330ac88fe291.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_right_shoulder.svg b/resources/Textures/control/steam_deck_right_shoulder.svg new file mode 100644 index 00000000..bb52b84f --- /dev/null +++ b/resources/Textures/control/steam_deck_right_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_right_shoulder.svg.import b/resources/Textures/control/steam_deck_right_shoulder.svg.import new file mode 100644 index 00000000..d7873133 --- /dev/null +++ b/resources/Textures/control/steam_deck_right_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1tojuel581ex" +path="res://.godot/imported/steam_deck_right_shoulder.svg-ccf66410f0a11b534804a9aa29a59789.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_right_shoulder.svg" +dest_files=["res://.godot/imported/steam_deck_right_shoulder.svg-ccf66410f0a11b534804a9aa29a59789.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_right_x_neg.svg b/resources/Textures/control/steam_deck_right_x_neg.svg new file mode 100644 index 00000000..fc1b87d6 --- /dev/null +++ b/resources/Textures/control/steam_deck_right_x_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_right_x_neg.svg.import b/resources/Textures/control/steam_deck_right_x_neg.svg.import new file mode 100644 index 00000000..3dc86e91 --- /dev/null +++ b/resources/Textures/control/steam_deck_right_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddi0foajr0bh1" +path="res://.godot/imported/steam_deck_right_x_neg.svg-5d394249574142028d68acdea417847e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_right_x_neg.svg" +dest_files=["res://.godot/imported/steam_deck_right_x_neg.svg-5d394249574142028d68acdea417847e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_right_x_pos.svg b/resources/Textures/control/steam_deck_right_x_pos.svg new file mode 100644 index 00000000..2ccf01c4 --- /dev/null +++ b/resources/Textures/control/steam_deck_right_x_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_right_x_pos.svg.import b/resources/Textures/control/steam_deck_right_x_pos.svg.import new file mode 100644 index 00000000..cbcd3f3c --- /dev/null +++ b/resources/Textures/control/steam_deck_right_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://i5de628mitg4" +path="res://.godot/imported/steam_deck_right_x_pos.svg-c99ce7da539be7861d2f911b4f663fb9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_right_x_pos.svg" +dest_files=["res://.godot/imported/steam_deck_right_x_pos.svg-c99ce7da539be7861d2f911b4f663fb9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_right_y_neg.svg b/resources/Textures/control/steam_deck_right_y_neg.svg new file mode 100644 index 00000000..d4f93774 --- /dev/null +++ b/resources/Textures/control/steam_deck_right_y_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_right_y_neg.svg.import b/resources/Textures/control/steam_deck_right_y_neg.svg.import new file mode 100644 index 00000000..82960780 --- /dev/null +++ b/resources/Textures/control/steam_deck_right_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cguenyamis4oo" +path="res://.godot/imported/steam_deck_right_y_neg.svg-28cbfbe7c0f08ecf19fb25fee80abe79.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_right_y_neg.svg" +dest_files=["res://.godot/imported/steam_deck_right_y_neg.svg-28cbfbe7c0f08ecf19fb25fee80abe79.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_deck_right_y_pos.svg b/resources/Textures/control/steam_deck_right_y_pos.svg new file mode 100644 index 00000000..4a578c33 --- /dev/null +++ b/resources/Textures/control/steam_deck_right_y_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_deck_right_y_pos.svg.import b/resources/Textures/control/steam_deck_right_y_pos.svg.import new file mode 100644 index 00000000..01179f29 --- /dev/null +++ b/resources/Textures/control/steam_deck_right_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpcluhey8g5gv" +path="res://.godot/imported/steam_deck_right_y_pos.svg-296a5d27e630c677d25482b9995aec16.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_deck_right_y_pos.svg" +dest_files=["res://.godot/imported/steam_deck_right_y_pos.svg-296a5d27e630c677d25482b9995aec16.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_left_shoulder.svg b/resources/Textures/control/steam_left_shoulder.svg new file mode 100644 index 00000000..21fe1b96 --- /dev/null +++ b/resources/Textures/control/steam_left_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_left_shoulder.svg.import b/resources/Textures/control/steam_left_shoulder.svg.import new file mode 100644 index 00000000..d50273aa --- /dev/null +++ b/resources/Textures/control/steam_left_shoulder.svg.import @@ -0,0 +1,18 @@ +[remap] + +importer="svg" +type="DPITexture" +uid="uid://csmwl8ojo4uae" +path="res://.godot/imported/steam_left_shoulder.svg-f2a30e127ec2fb8f4abbf7b3d20d7864.dpitex" + +[deps] + +source_file="res://resources/Textures/control/steam_left_shoulder.svg" +dest_files=["res://.godot/imported/steam_left_shoulder.svg-f2a30e127ec2fb8f4abbf7b3d20d7864.dpitex"] + +[params] + +base_scale=2.0 +saturation=1.0 +color_map={} +compress=true diff --git a/resources/Textures/control/steam_left_x_neg.svg b/resources/Textures/control/steam_left_x_neg.svg new file mode 100644 index 00000000..633c9013 --- /dev/null +++ b/resources/Textures/control/steam_left_x_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_left_x_neg.svg.import b/resources/Textures/control/steam_left_x_neg.svg.import new file mode 100644 index 00000000..dcd83713 --- /dev/null +++ b/resources/Textures/control/steam_left_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3qa5anuxrnii" +path="res://.godot/imported/steam_left_x_neg.svg-4ff95b9c6fabde061857f10247110fa6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_left_x_neg.svg" +dest_files=["res://.godot/imported/steam_left_x_neg.svg-4ff95b9c6fabde061857f10247110fa6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_left_x_pos.svg b/resources/Textures/control/steam_left_x_pos.svg new file mode 100644 index 00000000..2416eb01 --- /dev/null +++ b/resources/Textures/control/steam_left_x_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_left_x_pos.svg.import b/resources/Textures/control/steam_left_x_pos.svg.import new file mode 100644 index 00000000..feccb5bd --- /dev/null +++ b/resources/Textures/control/steam_left_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ccmksb1sc6h36" +path="res://.godot/imported/steam_left_x_pos.svg-75f06d2cf0af21db749ddbc8d88dc155.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_left_x_pos.svg" +dest_files=["res://.godot/imported/steam_left_x_pos.svg-75f06d2cf0af21db749ddbc8d88dc155.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_left_y_neg.svg b/resources/Textures/control/steam_left_y_neg.svg new file mode 100644 index 00000000..9a3c488e --- /dev/null +++ b/resources/Textures/control/steam_left_y_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_left_y_neg.svg.import b/resources/Textures/control/steam_left_y_neg.svg.import new file mode 100644 index 00000000..e6b24486 --- /dev/null +++ b/resources/Textures/control/steam_left_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bsdi1jtuuhi7o" +path="res://.godot/imported/steam_left_y_neg.svg-e7c431da1c9a9a03b260ce42245c95ef.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_left_y_neg.svg" +dest_files=["res://.godot/imported/steam_left_y_neg.svg-e7c431da1c9a9a03b260ce42245c95ef.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_left_y_pos.svg b/resources/Textures/control/steam_left_y_pos.svg new file mode 100644 index 00000000..9858ab57 --- /dev/null +++ b/resources/Textures/control/steam_left_y_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_left_y_pos.svg.import b/resources/Textures/control/steam_left_y_pos.svg.import new file mode 100644 index 00000000..117cf7ea --- /dev/null +++ b/resources/Textures/control/steam_left_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjth77xwqbfr3" +path="res://.godot/imported/steam_left_y_pos.svg-3f8f8cb84e5885e34e41d6c308a8da21.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_left_y_pos.svg" +dest_files=["res://.godot/imported/steam_left_y_pos.svg-3f8f8cb84e5885e34e41d6c308a8da21.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_pad_center.svg b/resources/Textures/control/steam_pad_center.svg new file mode 100644 index 00000000..f853b48a --- /dev/null +++ b/resources/Textures/control/steam_pad_center.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_pad_center.svg.import b/resources/Textures/control/steam_pad_center.svg.import new file mode 100644 index 00000000..4d1a2520 --- /dev/null +++ b/resources/Textures/control/steam_pad_center.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bhahj7gyjwas6" +path="res://.godot/imported/steam_pad_center.svg-c4adc8e37a7e81862199303f7d4c7006.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_pad_center.svg" +dest_files=["res://.godot/imported/steam_pad_center.svg-c4adc8e37a7e81862199303f7d4c7006.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_right_shoulder.svg b/resources/Textures/control/steam_right_shoulder.svg new file mode 100644 index 00000000..fa60e64d --- /dev/null +++ b/resources/Textures/control/steam_right_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_right_shoulder.svg.import b/resources/Textures/control/steam_right_shoulder.svg.import new file mode 100644 index 00000000..d8dfa75e --- /dev/null +++ b/resources/Textures/control/steam_right_shoulder.svg.import @@ -0,0 +1,18 @@ +[remap] + +importer="svg" +type="DPITexture" +uid="uid://dso3xkc178yt8" +path="res://.godot/imported/steam_right_shoulder.svg-1e80e29ce7eecac92d681fb52c5848fa.dpitex" + +[deps] + +source_file="res://resources/Textures/control/steam_right_shoulder.svg" +dest_files=["res://.godot/imported/steam_right_shoulder.svg-1e80e29ce7eecac92d681fb52c5848fa.dpitex"] + +[params] + +base_scale=2.0 +saturation=1.0 +color_map={} +compress=true diff --git a/resources/Textures/control/steam_right_x_neg.svg b/resources/Textures/control/steam_right_x_neg.svg new file mode 100644 index 00000000..9753f7a2 --- /dev/null +++ b/resources/Textures/control/steam_right_x_neg.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_right_x_neg.svg.import b/resources/Textures/control/steam_right_x_neg.svg.import new file mode 100644 index 00000000..e526f423 --- /dev/null +++ b/resources/Textures/control/steam_right_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ikyyhksfmvnj" +path="res://.godot/imported/steam_right_x_neg.svg-459dd8b9d948f56ff9b033da40d50b34.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_right_x_neg.svg" +dest_files=["res://.godot/imported/steam_right_x_neg.svg-459dd8b9d948f56ff9b033da40d50b34.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_right_x_pos.svg b/resources/Textures/control/steam_right_x_pos.svg new file mode 100644 index 00000000..34564e03 --- /dev/null +++ b/resources/Textures/control/steam_right_x_pos.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_right_x_pos.svg.import b/resources/Textures/control/steam_right_x_pos.svg.import new file mode 100644 index 00000000..cccd4ce4 --- /dev/null +++ b/resources/Textures/control/steam_right_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bv8ky2rnd0t7m" +path="res://.godot/imported/steam_right_x_pos.svg-9ec4eed33abe3296afc1a01924c7794d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_right_x_pos.svg" +dest_files=["res://.godot/imported/steam_right_x_pos.svg-9ec4eed33abe3296afc1a01924c7794d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_right_y_neg.svg b/resources/Textures/control/steam_right_y_neg.svg new file mode 100644 index 00000000..c62084dc --- /dev/null +++ b/resources/Textures/control/steam_right_y_neg.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_right_y_neg.svg.import b/resources/Textures/control/steam_right_y_neg.svg.import new file mode 100644 index 00000000..6b1768bf --- /dev/null +++ b/resources/Textures/control/steam_right_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dvu2e0cwkdlol" +path="res://.godot/imported/steam_right_y_neg.svg-5d61471868adac9fde3649180fc40e0d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_right_y_neg.svg" +dest_files=["res://.godot/imported/steam_right_y_neg.svg-5d61471868adac9fde3649180fc40e0d.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_right_y_pos.svg b/resources/Textures/control/steam_right_y_pos.svg new file mode 100644 index 00000000..10e6908f --- /dev/null +++ b/resources/Textures/control/steam_right_y_pos.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_right_y_pos.svg.import b/resources/Textures/control/steam_right_y_pos.svg.import new file mode 100644 index 00000000..629780be --- /dev/null +++ b/resources/Textures/control/steam_right_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dgpd6hbsylmjh" +path="res://.godot/imported/steam_right_y_pos.svg-3f244370de19da13f94d0e73041ef34e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_right_y_pos.svg" +dest_files=["res://.godot/imported/steam_right_y_pos.svg-3f244370de19da13f94d0e73041ef34e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_stick_l_press.svg b/resources/Textures/control/steam_stick_l_press.svg new file mode 100644 index 00000000..0fdc5476 --- /dev/null +++ b/resources/Textures/control/steam_stick_l_press.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_stick_l_press.svg.import b/resources/Textures/control/steam_stick_l_press.svg.import new file mode 100644 index 00000000..7db11ee4 --- /dev/null +++ b/resources/Textures/control/steam_stick_l_press.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqvtj23kmbi2t" +path="res://.godot/imported/steam_stick_l_press.svg-140eba7351e9b53117fb112a5b391100.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_stick_l_press.svg" +dest_files=["res://.godot/imported/steam_stick_l_press.svg-140eba7351e9b53117fb112a5b391100.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_stick_side_l.svg b/resources/Textures/control/steam_stick_side_l.svg new file mode 100644 index 00000000..329d6c5f --- /dev/null +++ b/resources/Textures/control/steam_stick_side_l.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steam_stick_side_l.svg.import b/resources/Textures/control/steam_stick_side_l.svg.import new file mode 100644 index 00000000..1af7623d --- /dev/null +++ b/resources/Textures/control/steam_stick_side_l.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://4j21u1uummol" +path="res://.godot/imported/steam_stick_side_l.svg-9e07473c0e860ea7e66d66a49794bc9b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_stick_side_l.svg" +dest_files=["res://.godot/imported/steam_stick_side_l.svg-9e07473c0e860ea7e66d66a49794bc9b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_x.svg b/resources/Textures/control/steam_x.svg new file mode 120000 index 00000000..c3b83269 --- /dev/null +++ b/resources/Textures/control/steam_x.svg @@ -0,0 +1 @@ +./xbox_x.svg \ No newline at end of file diff --git a/resources/Textures/control/steam_x.svg.import b/resources/Textures/control/steam_x.svg.import new file mode 100644 index 00000000..f5ab74eb --- /dev/null +++ b/resources/Textures/control/steam_x.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dx6j1vy6srej" +path="res://.godot/imported/steam_x.svg-3e617b62cce7c50f17d3d0c8c5812ee6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_x.svg" +dest_files=["res://.godot/imported/steam_x.svg-3e617b62cce7c50f17d3d0c8c5812ee6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steam_y.svg b/resources/Textures/control/steam_y.svg new file mode 120000 index 00000000..0823e8d0 --- /dev/null +++ b/resources/Textures/control/steam_y.svg @@ -0,0 +1 @@ +./xbox_y.svg \ No newline at end of file diff --git a/resources/Textures/control/steam_y.svg.import b/resources/Textures/control/steam_y.svg.import new file mode 100644 index 00000000..56d0f163 --- /dev/null +++ b/resources/Textures/control/steam_y.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://84x0iijc5ksm" +path="res://.godot/imported/steam_y.svg-27f1c6628f920550ef32e7b48c34ebd2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steam_y.svg" +dest_files=["res://.godot/imported/steam_y.svg-27f1c6628f920550ef32e7b48c34ebd2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steamdeck_button_x_outline.svg b/resources/Textures/control/steamdeck_button_x_outline.svg new file mode 100644 index 00000000..8a0644c4 --- /dev/null +++ b/resources/Textures/control/steamdeck_button_x_outline.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steamdeck_button_x_outline.svg.import b/resources/Textures/control/steamdeck_button_x_outline.svg.import new file mode 100644 index 00000000..ea69275f --- /dev/null +++ b/resources/Textures/control/steamdeck_button_x_outline.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://becg1btyfdlfa" +path="res://.godot/imported/steamdeck_button_x_outline.svg-8baff3af989fdc878256bcd82c312296.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steamdeck_button_x_outline.svg" +dest_files=["res://.godot/imported/steamdeck_button_x_outline.svg-8baff3af989fdc878256bcd82c312296.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/steamdeck_button_y_outline.svg b/resources/Textures/control/steamdeck_button_y_outline.svg new file mode 100644 index 00000000..ac30d3cf --- /dev/null +++ b/resources/Textures/control/steamdeck_button_y_outline.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/steamdeck_button_y_outline.svg.import b/resources/Textures/control/steamdeck_button_y_outline.svg.import new file mode 100644 index 00000000..214878ab --- /dev/null +++ b/resources/Textures/control/steamdeck_button_y_outline.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b7j15s34dm8m0" +path="res://.godot/imported/steamdeck_button_y_outline.svg-b8b1298efc589d60ece95b45bfeca996.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/steamdeck_button_y_outline.svg" +dest_files=["res://.godot/imported/steamdeck_button_y_outline.svg-b8b1298efc589d60ece95b45bfeca996.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_a.svg b/resources/Textures/control/xbox_a.svg new file mode 100644 index 00000000..10b96583 --- /dev/null +++ b/resources/Textures/control/xbox_a.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_a.svg.import b/resources/Textures/control/xbox_a.svg.import new file mode 100644 index 00000000..c7ff5d8d --- /dev/null +++ b/resources/Textures/control/xbox_a.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dp7o4h7rkmtlo" +path="res://.godot/imported/xbox_a.svg-c4d969180c782164ca5179971d38e019.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_a.svg" +dest_files=["res://.godot/imported/xbox_a.svg-c4d969180c782164ca5179971d38e019.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_b.svg b/resources/Textures/control/xbox_b.svg new file mode 100644 index 00000000..b684be5b --- /dev/null +++ b/resources/Textures/control/xbox_b.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_b.svg.import b/resources/Textures/control/xbox_b.svg.import new file mode 100644 index 00000000..3163adfd --- /dev/null +++ b/resources/Textures/control/xbox_b.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://7lhhyl0k8aex" +path="res://.godot/imported/xbox_b.svg-d9373780c89e8af29b33a251d977381a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_b.svg" +dest_files=["res://.godot/imported/xbox_b.svg-d9373780c89e8af29b33a251d977381a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_left_shoulder.svg b/resources/Textures/control/xbox_left_shoulder.svg new file mode 100644 index 00000000..34447407 --- /dev/null +++ b/resources/Textures/control/xbox_left_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_left_shoulder.svg.import b/resources/Textures/control/xbox_left_shoulder.svg.import new file mode 100644 index 00000000..10f6ba2d --- /dev/null +++ b/resources/Textures/control/xbox_left_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bk6lu04lv1buv" +path="res://.godot/imported/xbox_left_shoulder.svg-128891316f4382d7065af1de288debeb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_left_shoulder.svg" +dest_files=["res://.godot/imported/xbox_left_shoulder.svg-128891316f4382d7065af1de288debeb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_left_x_neg.svg b/resources/Textures/control/xbox_left_x_neg.svg new file mode 100644 index 00000000..bdcf4d81 --- /dev/null +++ b/resources/Textures/control/xbox_left_x_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_left_x_neg.svg.import b/resources/Textures/control/xbox_left_x_neg.svg.import new file mode 100644 index 00000000..5f063e0b --- /dev/null +++ b/resources/Textures/control/xbox_left_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://df23bkixja0t5" +path="res://.godot/imported/xbox_left_x_neg.svg-98633eccc107550b9ffb6e81cab6e088.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_left_x_neg.svg" +dest_files=["res://.godot/imported/xbox_left_x_neg.svg-98633eccc107550b9ffb6e81cab6e088.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_left_x_pos.svg b/resources/Textures/control/xbox_left_x_pos.svg new file mode 100644 index 00000000..b58a654d --- /dev/null +++ b/resources/Textures/control/xbox_left_x_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_left_x_pos.svg.import b/resources/Textures/control/xbox_left_x_pos.svg.import new file mode 100644 index 00000000..33602fa5 --- /dev/null +++ b/resources/Textures/control/xbox_left_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cp4x2qyafsxfs" +path="res://.godot/imported/xbox_left_x_pos.svg-a2828de333f0af134941268a8e3eb311.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_left_x_pos.svg" +dest_files=["res://.godot/imported/xbox_left_x_pos.svg-a2828de333f0af134941268a8e3eb311.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_left_y_neg.svg b/resources/Textures/control/xbox_left_y_neg.svg new file mode 100644 index 00000000..9739070b --- /dev/null +++ b/resources/Textures/control/xbox_left_y_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_left_y_neg.svg.import b/resources/Textures/control/xbox_left_y_neg.svg.import new file mode 100644 index 00000000..7283fdd2 --- /dev/null +++ b/resources/Textures/control/xbox_left_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbdoiprtpy7j0" +path="res://.godot/imported/xbox_left_y_neg.svg-68761e0b454d8d6aebc576f33c821049.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_left_y_neg.svg" +dest_files=["res://.godot/imported/xbox_left_y_neg.svg-68761e0b454d8d6aebc576f33c821049.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_left_y_pos.svg b/resources/Textures/control/xbox_left_y_pos.svg new file mode 100644 index 00000000..0463ff83 --- /dev/null +++ b/resources/Textures/control/xbox_left_y_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_left_y_pos.svg.import b/resources/Textures/control/xbox_left_y_pos.svg.import new file mode 100644 index 00000000..a77cca98 --- /dev/null +++ b/resources/Textures/control/xbox_left_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cj8ogf2iphn1k" +path="res://.godot/imported/xbox_left_y_pos.svg-a1dcb268097c52a2468a82afa8cb5a07.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_left_y_pos.svg" +dest_files=["res://.godot/imported/xbox_left_y_pos.svg-a1dcb268097c52a2468a82afa8cb5a07.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_right_shoulder.svg b/resources/Textures/control/xbox_right_shoulder.svg new file mode 100644 index 00000000..c7678842 --- /dev/null +++ b/resources/Textures/control/xbox_right_shoulder.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_right_shoulder.svg.import b/resources/Textures/control/xbox_right_shoulder.svg.import new file mode 100644 index 00000000..2cef5e3e --- /dev/null +++ b/resources/Textures/control/xbox_right_shoulder.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfpp0ws0q3aul" +path="res://.godot/imported/xbox_right_shoulder.svg-879447af21bc93b9f21a7fd9222956b3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_right_shoulder.svg" +dest_files=["res://.godot/imported/xbox_right_shoulder.svg-879447af21bc93b9f21a7fd9222956b3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_right_x_neg.svg b/resources/Textures/control/xbox_right_x_neg.svg new file mode 100644 index 00000000..fc1b87d6 --- /dev/null +++ b/resources/Textures/control/xbox_right_x_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_right_x_neg.svg.import b/resources/Textures/control/xbox_right_x_neg.svg.import new file mode 100644 index 00000000..1c965375 --- /dev/null +++ b/resources/Textures/control/xbox_right_x_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxuxjas65hvcm" +path="res://.godot/imported/xbox_right_x_neg.svg-c63e5d52718b7a68c4c5de056e9db30b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_right_x_neg.svg" +dest_files=["res://.godot/imported/xbox_right_x_neg.svg-c63e5d52718b7a68c4c5de056e9db30b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_right_x_pos.svg b/resources/Textures/control/xbox_right_x_pos.svg new file mode 100644 index 00000000..2ccf01c4 --- /dev/null +++ b/resources/Textures/control/xbox_right_x_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_right_x_pos.svg.import b/resources/Textures/control/xbox_right_x_pos.svg.import new file mode 100644 index 00000000..7c02cf55 --- /dev/null +++ b/resources/Textures/control/xbox_right_x_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0dqsghgl4aqs" +path="res://.godot/imported/xbox_right_x_pos.svg-7efd8c4cd3ae073a9aa4433744f67c14.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_right_x_pos.svg" +dest_files=["res://.godot/imported/xbox_right_x_pos.svg-7efd8c4cd3ae073a9aa4433744f67c14.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_right_y_neg.svg b/resources/Textures/control/xbox_right_y_neg.svg new file mode 100644 index 00000000..d4f93774 --- /dev/null +++ b/resources/Textures/control/xbox_right_y_neg.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_right_y_neg.svg.import b/resources/Textures/control/xbox_right_y_neg.svg.import new file mode 100644 index 00000000..590caaa8 --- /dev/null +++ b/resources/Textures/control/xbox_right_y_neg.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bqqorbtij260e" +path="res://.godot/imported/xbox_right_y_neg.svg-c7ea850e169cead2782520d7ccc6419c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_right_y_neg.svg" +dest_files=["res://.godot/imported/xbox_right_y_neg.svg-c7ea850e169cead2782520d7ccc6419c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_right_y_pos.svg b/resources/Textures/control/xbox_right_y_pos.svg new file mode 100644 index 00000000..4a578c33 --- /dev/null +++ b/resources/Textures/control/xbox_right_y_pos.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_right_y_pos.svg.import b/resources/Textures/control/xbox_right_y_pos.svg.import new file mode 100644 index 00000000..0099521e --- /dev/null +++ b/resources/Textures/control/xbox_right_y_pos.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0c1uwjs61xwc" +path="res://.godot/imported/xbox_right_y_pos.svg-dd9f47e41cacbee6836808cf8c731d07.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_right_y_pos.svg" +dest_files=["res://.godot/imported/xbox_right_y_pos.svg-dd9f47e41cacbee6836808cf8c731d07.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_x.svg b/resources/Textures/control/xbox_x.svg new file mode 100644 index 00000000..5cb7114e --- /dev/null +++ b/resources/Textures/control/xbox_x.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_x.svg.import b/resources/Textures/control/xbox_x.svg.import new file mode 100644 index 00000000..2d007c84 --- /dev/null +++ b/resources/Textures/control/xbox_x.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://clgspirmnh05y" +path="res://.godot/imported/xbox_x.svg-ca2d681a3bd73be1e38ad9085f30536c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_x.svg" +dest_files=["res://.godot/imported/xbox_x.svg-ca2d681a3bd73be1e38ad9085f30536c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/control/xbox_y.svg b/resources/Textures/control/xbox_y.svg new file mode 100644 index 00000000..202af117 --- /dev/null +++ b/resources/Textures/control/xbox_y.svg @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/resources/Textures/control/xbox_y.svg.import b/resources/Textures/control/xbox_y.svg.import new file mode 100644 index 00000000..4d6a5247 --- /dev/null +++ b/resources/Textures/control/xbox_y.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bcqbs88n6hbma" +path="res://.godot/imported/xbox_y.svg-33d466956d9b06947e68d365516a3ad8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://resources/Textures/control/xbox_y.svg" +dest_files=["res://.godot/imported/xbox_y.svg-33d466956d9b06947e68d365516a3ad8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/resources/Textures/ui/background.tres b/resources/Textures/ui/background.tres new file mode 100644 index 00000000..d9f69273 --- /dev/null +++ b/resources/Textures/ui/background.tres @@ -0,0 +1,23 @@ +[gd_resource type="NoiseTexture2D" format=3 uid="uid://do1no8ci35ysh"] + +[sub_resource type="Gradient" id="Gradient_hk5p3"] +offsets = PackedFloat32Array(0.10539216, 0.43382353, 0.6838235, 0.8455882) +colors = PackedColorArray(0.6190317, 0.4529869, 0.33808485, 1, 0.24398571, 0.20719498, 0.19205788, 1, 0.63052285, 0.3254623, 0.23461041, 1, 0.38635558, 0.23145154, 0.055926025, 1) + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_hk5p3"] +noise_type = 5 +frequency = 0.0226 +fractal_octaves = 3 +fractal_lacunarity = 0.5 +fractal_gain = 1.0 +domain_warp_enabled = true +domain_warp_type = 2 +domain_warp_amplitude = 50.0 +domain_warp_frequency = 0.06 +domain_warp_fractal_octaves = 2 + +[resource] +width = 1024 +height = 1024 +noise = SubResource("FastNoiseLite_hk5p3") +color_ramp = SubResource("Gradient_hk5p3") diff --git a/resources/title_screen.tscn b/resources/title_screen.tscn index e741272e..5d1e3976 100644 --- a/resources/title_screen.tscn +++ b/resources/title_screen.tscn @@ -9,6 +9,7 @@ [ext_resource type="Material" uid="uid://d22y3mrstykx1" path="res://resources/Materials/schweizer_300_green_paint.tres" id="4_scex8"] [ext_resource type="Material" uid="uid://m6cr6gd6bycq" path="res://resources/Materials/schweizer_300_orange_paint.tres" id="5_gbrg3"] [ext_resource type="Material" uid="uid://pugv3tibcyst" path="res://resources/Materials/schweizer_300_windows.tres" id="6_4ijke"] +[ext_resource type="Material" uid="uid://cyopsm3h2lthd" path="res://resources/Materials/ui_blur_material.tres" id="6_cv2q5"] [ext_resource type="PackedScene" uid="uid://cnqfo57vlyy3w" path="res://resources/Meshes/Helis/schweizer_300/rotor.gltf" id="7_xv2f0"] [ext_resource type="PackedScene" uid="uid://bbcfwjl2304l5" path="res://resources/Meshes/Helis/schweizer_300/tail_rotor.gltf" id="8_ecj1i"] [ext_resource type="Theme" uid="uid://rumvfyg8qyrj" path="res://resources/ui_themes/title_menu_theme.tres" id="10_scex8"] @@ -58,11 +59,6 @@ tracks/0/keys = { } tracks/0/use_blend = true -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wq8ws"] -bg_color = Color(0.6, 0.6, 0.6, 0) -border_width_right = 1 -border_color = Color(0.54901963, 0.6666667, 0.87058824, 0.4627451) - [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_h6837"] bg_color = Color(0, 0, 0, 1) @@ -184,10 +180,58 @@ tracks/1/keys = { "update": 0, "values": [Color(1, 1, 1, 1)] } +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("GridContainer:position:x") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("GridContainer:position:y") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} + +[sub_resource type="Animation" id="Animation_cv2q5"] +resource_name = "title_menu_out" +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("GridContainer:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(2, 0), +"points": PackedFloat32Array(0, 0, 0, 0.3, 0, -256, -0.3, 0, 0.3, 0), +"times": PackedFloat32Array(0, 1) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("GridContainer:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(2, 0), +"points": PackedFloat32Array(0, 0, 0, 0.25, 0, 0, 0, 0, 0.25, 0), +"times": PackedFloat32Array(0, 1) +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_1w7u6"] _data = { -&"RESET": SubResource("Animation_ecj1i") +&"RESET": SubResource("Animation_ecj1i"), +&"title_menu_out": SubResource("Animation_cv2q5") } [sub_resource type="AnimationLibrary" id="AnimationLibrary_m8ej5"] @@ -196,15 +240,17 @@ _data = { &"select": SubResource("Animation_1w7u6") } -[node name="Root" type="Node3D" unique_id=2066082292 node_paths=PackedStringArray("scene_transitions", "start_game", "quit_game", "ui_sounds")] +[node name="Root" type="Node3D" unique_id=2066082292 node_paths=PackedStringArray("nodes_scene_transitions", "nodes_start_game", "nodes_quit_game", "nodes_settings", "nodes_ui_sounds")] script = ExtResource("1_4ijke") -scene_transitions = NodePath("SceneTransitionPlayer") -start_game = NodePath("GridContainer/PanelContainer/Panel/VBoxContainer/New Game") -quit_game = NodePath("GridContainer/PanelContainer/Panel/VBoxContainer/Quit") main_scene = "uid://cvh54xiw8586b" -ui_sounds = NodePath("UISoundPlayer") +settings_scene = "uid://bioq71ppnncw5" animations_ui_select = SubResource("Animation_1w7u6") animations_ui_activate = SubResource("Animation_m8ej5") +nodes_scene_transitions = NodePath("SceneTransitionPlayer") +nodes_start_game = NodePath("GridContainer/BorderContainer/VBoxContainer/New Game") +nodes_quit_game = NodePath("GridContainer/BorderContainer/VBoxContainer/Quit") +nodes_settings = NodePath("GridContainer/BorderContainer/VBoxContainer/Settings") +nodes_ui_sounds = NodePath("UISoundPlayer") input_device = ExtResource("4_5mv2j") [node name="GridContainer" type="GridContainer" parent="." unique_id=25898047] @@ -216,31 +262,24 @@ grow_vertical = 2 theme = ExtResource("10_scex8") columns = 5 -[node name="PanelContainer" type="PanelContainer" parent="GridContainer" unique_id=281565182] +[node name="BorderContainer" type="PanelContainer" parent="GridContainer" unique_id=281565182] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 -theme_override_styles/panel = SubResource("StyleBoxFlat_wq8ws") +theme_type_variation = &"BorderContainer" -[node name="Panel" type="Panel" parent="GridContainer/PanelContainer" unique_id=2085032994] +[node name="PanelBackground" type="Panel" parent="GridContainer/BorderContainer" unique_id=2085032994] +material = ExtResource("6_cv2q5") layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 theme = ExtResource("10_scex8") -[node name="VBoxContainer" type="VBoxContainer" parent="GridContainer/PanelContainer/Panel" unique_id=1992182300] -layout_mode = 1 -anchors_preset = 14 -anchor_top = 0.5 -anchor_right = 1.0 -anchor_bottom = 0.5 -offset_top = -157.0 -offset_bottom = 157.0 -grow_horizontal = 2 -grow_vertical = 2 +[node name="VBoxContainer" type="VBoxContainer" parent="GridContainer/BorderContainer" unique_id=1992182300] +layout_mode = 2 size_flags_vertical = 4 -[node name="Continue" type="Button" parent="GridContainer/PanelContainer/Panel/VBoxContainer" unique_id=1762317769] +[node name="Continue" type="Button" parent="GridContainer/BorderContainer/VBoxContainer" unique_id=1762317769] layout_mode = 2 focus_neighbor_bottom = NodePath("../New Game") focus_next = NodePath("../New Game") @@ -249,13 +288,13 @@ disabled = true button_mask = 0 text = "Continue" -[node name="New Game" type="Button" parent="GridContainer/PanelContainer/Panel/VBoxContainer" unique_id=346531914] +[node name="New Game" type="Button" parent="GridContainer/BorderContainer/VBoxContainer" unique_id=346531914] layout_mode = 2 -focus_neighbor_bottom = NodePath("../Quit") -focus_next = NodePath("../Quit") +focus_neighbor_bottom = NodePath("../Settings") +focus_next = NodePath("../Settings") text = "New Game" -[node name="Load Game" type="Button" parent="GridContainer/PanelContainer/Panel/VBoxContainer" unique_id=1845106796] +[node name="Load Game" type="Button" parent="GridContainer/BorderContainer/VBoxContainer" unique_id=1845106796] layout_mode = 2 focus_neighbor_top = NodePath("../New Game") focus_neighbor_bottom = NodePath("../Settings") @@ -266,28 +305,25 @@ disabled = true button_mask = 0 text = "Load Game" -[node name="Settings" type="Button" parent="GridContainer/PanelContainer/Panel/VBoxContainer" unique_id=1139425955] +[node name="Settings" type="Button" parent="GridContainer/BorderContainer/VBoxContainer" unique_id=1139425955] layout_mode = 2 -focus_neighbor_top = NodePath("../Load Game") +focus_neighbor_top = NodePath("../New Game") focus_neighbor_bottom = NodePath("../Quit") focus_next = NodePath("../Quit") -focus_previous = NodePath("../Load Game") -focus_mode = 0 -disabled = true -button_mask = 0 +focus_previous = NodePath("../New Game") text = "Settings" -[node name="Credits" type="Button" parent="GridContainer/PanelContainer/Panel/VBoxContainer" unique_id=1550277427] +[node name="Credits" type="Button" parent="GridContainer/BorderContainer/VBoxContainer" unique_id=1550277427] layout_mode = 2 focus_mode = 0 disabled = true button_mask = 0 text = "Credits" -[node name="Quit" type="Button" parent="GridContainer/PanelContainer/Panel/VBoxContainer" unique_id=934364022] +[node name="Quit" type="Button" parent="GridContainer/BorderContainer/VBoxContainer" unique_id=934364022] layout_mode = 2 -focus_neighbor_top = NodePath("../New Game") -focus_previous = NodePath("../New Game") +focus_neighbor_top = NodePath("../Settings") +focus_previous = NodePath("../Settings") text = "Quit" [node name="Black Cover" type="Panel" parent="." unique_id=230169948] @@ -298,7 +334,7 @@ grow_horizontal = 2 grow_vertical = 2 theme_override_styles/panel = SubResource("StyleBoxFlat_h6837") -[node name="hangar_2" parent="." unique_id=1321286550 instance=ExtResource("1_lejt8")] +[node name="hangar_2" parent="." unique_id=1035202761 instance=ExtResource("1_lejt8")] [node name="Path3D" type="Path3D" parent="hangar_2" unique_id=493704069] curve = SubResource("Curve3D_ip0tl") @@ -357,24 +393,24 @@ size = Vector3(26, 11.985107, 29) camera_attributes = ExtResource("3_gbrg3") data = ExtResource("14_1w7u6") -[connection signal="focus_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/Continue" to="." method="on_ui_select"] -[connection signal="mouse_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/Continue" to="." method="on_ui_hover" flags=18] -[connection signal="pressed" from="GridContainer/PanelContainer/Panel/VBoxContainer/Continue" to="." method="on_ui_activate"] -[connection signal="focus_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/New Game" to="." method="on_ui_select"] -[connection signal="mouse_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/New Game" to="." method="on_ui_hover" flags=18] -[connection signal="pressed" from="GridContainer/PanelContainer/Panel/VBoxContainer/New Game" to="." method="on_ui_activate"] -[connection signal="focus_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/Load Game" to="." method="on_ui_select"] -[connection signal="mouse_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/Load Game" to="." method="on_ui_hover" flags=18] -[connection signal="pressed" from="GridContainer/PanelContainer/Panel/VBoxContainer/Load Game" to="." method="on_ui_activate"] -[connection signal="focus_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/Settings" to="." method="on_ui_select"] -[connection signal="mouse_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/Settings" to="." method="on_ui_hover" flags=18] -[connection signal="pressed" from="GridContainer/PanelContainer/Panel/VBoxContainer/Settings" to="." method="on_ui_activate"] -[connection signal="focus_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/Credits" to="." method="on_ui_select"] -[connection signal="mouse_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/Credits" to="." method="on_ui_hover" flags=18] -[connection signal="pressed" from="GridContainer/PanelContainer/Panel/VBoxContainer/Credits" to="." method="on_ui_activate"] -[connection signal="focus_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/Quit" to="." method="on_ui_select"] -[connection signal="mouse_entered" from="GridContainer/PanelContainer/Panel/VBoxContainer/Quit" to="." method="on_ui_hover" flags=18] -[connection signal="pressed" from="GridContainer/PanelContainer/Panel/VBoxContainer/Quit" to="." method="on_ui_activate"] +[connection signal="focus_entered" from="GridContainer/BorderContainer/VBoxContainer/Continue" to="." method="on_ui_select"] +[connection signal="mouse_entered" from="GridContainer/BorderContainer/VBoxContainer/Continue" to="." method="on_ui_hover" flags=18] +[connection signal="pressed" from="GridContainer/BorderContainer/VBoxContainer/Continue" to="." method="on_ui_activate"] +[connection signal="focus_entered" from="GridContainer/BorderContainer/VBoxContainer/New Game" to="." method="on_ui_select"] +[connection signal="mouse_entered" from="GridContainer/BorderContainer/VBoxContainer/New Game" to="." method="on_ui_hover" flags=18] +[connection signal="pressed" from="GridContainer/BorderContainer/VBoxContainer/New Game" to="." method="on_ui_activate"] +[connection signal="focus_entered" from="GridContainer/BorderContainer/VBoxContainer/Load Game" to="." method="on_ui_select"] +[connection signal="mouse_entered" from="GridContainer/BorderContainer/VBoxContainer/Load Game" to="." method="on_ui_hover" flags=18] +[connection signal="pressed" from="GridContainer/BorderContainer/VBoxContainer/Load Game" to="." method="on_ui_activate"] +[connection signal="focus_entered" from="GridContainer/BorderContainer/VBoxContainer/Settings" to="." method="on_ui_select"] +[connection signal="mouse_entered" from="GridContainer/BorderContainer/VBoxContainer/Settings" to="." method="on_ui_hover" flags=18] +[connection signal="pressed" from="GridContainer/BorderContainer/VBoxContainer/Settings" to="." method="on_ui_activate"] +[connection signal="focus_entered" from="GridContainer/BorderContainer/VBoxContainer/Credits" to="." method="on_ui_select"] +[connection signal="mouse_entered" from="GridContainer/BorderContainer/VBoxContainer/Credits" to="." method="on_ui_hover" flags=18] +[connection signal="pressed" from="GridContainer/BorderContainer/VBoxContainer/Credits" to="." method="on_ui_activate"] +[connection signal="focus_entered" from="GridContainer/BorderContainer/VBoxContainer/Quit" to="." method="on_ui_select"] +[connection signal="mouse_entered" from="GridContainer/BorderContainer/VBoxContainer/Quit" to="." method="on_ui_hover" flags=18] +[connection signal="pressed" from="GridContainer/BorderContainer/VBoxContainer/Quit" to="." method="on_ui_activate"] [editable path="hangar_2"] [editable path="hangar_2/Helicopter/main"] diff --git a/resources/ui/settings.tscn b/resources/ui/settings.tscn new file mode 100644 index 00000000..f5344137 --- /dev/null +++ b/resources/ui/settings.tscn @@ -0,0 +1,555 @@ +[gd_scene format=3 uid="uid://bioq71ppnncw5"] + +[ext_resource type="Theme" uid="uid://dw1b3gtetxdgl" path="res://resources/ui_themes/settings_menu_theme.tres" id="1_rv0ww"] +[ext_resource type="Material" uid="uid://cyopsm3h2lthd" path="res://resources/Materials/ui_blur_material.tres" id="1_rys2v"] +[ext_resource type="Script" uid="uid://c5e50xbnlkiks" path="res://native/src/scripts/ui/tab_controller.rs" id="2_aim2s"] +[ext_resource type="InputDevice" uid="uid://bky2vkjjwnd0p" path="res://resources/Config/primary_input_device.tres" id="3_3jfrj"] +[ext_resource type="Texture2D" uid="uid://b301f4mt0pg0k" path="res://resources/Textures/control/actions/ui_tab_prev.tres" id="4_aim2s"] +[ext_resource type="Texture2D" uid="uid://m7n7og30pq2k" path="res://resources/Textures/control/actions/ui_tab_next.tres" id="5_3jfrj"] +[ext_resource type="PackedScene" uid="uid://bivg14j2kt501" path="res://resources/ui/settings_option_list.tscn" id="5_5e4gs"] +[ext_resource type="Script" uid="uid://dv5y7u4tq2ep8" path="res://native/src/scripts/ui/settings_tab_bar.rs" id="5_caf5k"] +[ext_resource type="PackedScene" uid="uid://6wucddao00pd" path="res://resources/ui/settings_option_toggle.tscn" id="6_rv0ww"] +[ext_resource type="Script" uid="uid://djectio3deffb" path="res://native/src/scripts/ui/settings_video_tab.rs" id="7_dx68r"] +[ext_resource type="PackedScene" uid="uid://cs8hk84y2lecw" path="res://resources/ui/settings_option_range.tscn" id="7_rv0ww"] +[ext_resource type="PackedScene" uid="uid://bsls8nq8sr7q" path="res://resources/ui/settings_option_input.tscn" id="10_0k1u1"] +[ext_resource type="Script" uid="uid://0xeykgj85b76" path="res://native/src/scripts/ui/settings_sound_tab.rs" id="10_e1xug"] +[ext_resource type="Texture2D" uid="uid://i8jsfqxxib0p" path="res://resources/Textures/control/actions/ui_reset.tres" id="10_upnh1"] +[ext_resource type="Texture2D" uid="uid://dmno2ptclyybd" path="res://resources/Textures/control/actions/forward.tres" id="11_44bim"] +[ext_resource type="Texture2D" uid="uid://kpm378digbw7" path="res://resources/Textures/control/actions/backward.tres" id="12_1dh6r"] +[ext_resource type="Texture2D" uid="uid://dk2viso5nqih" path="res://resources/Textures/control/actions/ui_apply.tres" id="12_dx68r"] +[ext_resource type="Texture2D" uid="uid://cdkhyslrevupb" path="res://resources/Textures/control/actions/ui_cancel.tres" id="12_fs4m5"] +[ext_resource type="Texture2D" uid="uid://ce8ue88wl2nvl" path="res://resources/Textures/control/actions/turn_left.tres" id="13_im2bc"] +[ext_resource type="Texture2D" uid="uid://6fdcfbrvwq81" path="res://resources/Textures/control/actions/turn_right.tres" id="14_gtb17"] +[ext_resource type="Texture2D" uid="uid://bdv56k4trtp8w" path="res://resources/Textures/control/actions/strafe_left.tres" id="15_3qjbt"] +[ext_resource type="Texture2D" uid="uid://bdc70ql0a6wde" path="res://resources/Textures/control/actions/strafe_right.tres" id="16_8frbw"] +[ext_resource type="Texture2D" uid="uid://di0orkkqokp2l" path="res://resources/Textures/control/actions/rise.tres" id="17_8frbw"] +[ext_resource type="Texture2D" uid="uid://ucsgbn6ufftg" path="res://resources/Textures/control/actions/land.tres" id="18_rvtar"] +[ext_resource type="Texture2D" uid="uid://cw7r73l1j0j4m" path="res://resources/Textures/control/actions/fire_primary.tres" id="19_xv08n"] +[ext_resource type="Script" uid="uid://dyh6wa3o8aij8" path="res://native/src/scripts/ui/settings_footer.rs" id="23_ghp0l"] + +[sub_resource type="InputEventAction" id="InputEventAction_fs4m5"] +action = &"ui_reset" + +[sub_resource type="Shortcut" id="Shortcut_dx68r"] +events = [SubResource("InputEventAction_fs4m5")] + +[sub_resource type="InputEventAction" id="InputEventAction_dx68r"] +action = &"ui_apply" + +[sub_resource type="Shortcut" id="Shortcut_e1xug"] +events = [SubResource("InputEventAction_dx68r")] + +[sub_resource type="InputEventAction" id="InputEventAction_e1xug"] +action = &"ui_cancel" + +[sub_resource type="Shortcut" id="Shortcut_caf5k"] +events = [SubResource("InputEventAction_e1xug")] + +[sub_resource type="Animation" id="Animation_caf5k"] +length = 0.001 +step = 0.016666668 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TabBar:animation_offset") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Footer:animation_offset") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("TabContainer:modulate:r") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("TabContainer:modulate:g") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/4/type = "bezier" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("TabContainer:modulate:b") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} +tracks/5/type = "bezier" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("TabContainer:modulate:a") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.25, 0, 0.25, 0), +"times": PackedFloat32Array(0) +} + +[sub_resource type="Animation" id="Animation_e1xug"] +resource_name = "enter" +length = 0.4 +step = 0.016666668 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TabBar:animation_offset") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, 0, 0, 0.064, -1, 0, -0.066, 0, 0, 0), +"times": PackedFloat32Array(0, 0.4) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Footer:animation_offset") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, 0, 0, 0.066, -1, 0, -0.064, 0, 0, 0), +"times": PackedFloat32Array(0, 0.4) +} +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("TabContainer:modulate:r") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.1, 0, 0.1, 0, 1, -0.1, 0, 0.1, 0), +"times": PackedFloat32Array(0, 0.4) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("TabContainer:modulate:g") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.1, 0, 0.1, 0, 1, -0.1, 0, 0.1, 0), +"times": PackedFloat32Array(0, 0.4) +} +tracks/4/type = "bezier" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("TabContainer:modulate:b") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, -0.1, 0, 0.1, 0, 1, -0.1, 0, 0.1, 0), +"times": PackedFloat32Array(0, 0.4) +} +tracks/5/type = "bezier" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("TabContainer:modulate:a") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(0, 0, 0, 0.064, 1, 1, -0.066, 0, 0, 0), +"times": PackedFloat32Array(0, 0.4) +} + +[sub_resource type="Animation" id="Animation_ghp0l"] +resource_name = "exit" +length = 0.4 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TabBar:animation_offset") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(0, 0, 0, 0.064, 0, 1, -0.066, -1, 0, 0), +"times": PackedFloat32Array(0, 0.39999998) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Footer:animation_offset") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(0, 0, 0, 0.064, 0, 1, -0.066, -1, 0, 0), +"times": PackedFloat32Array(0, 0.39999998) +} +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("TabContainer:modulate:r") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, 0, 0, 0.1, 0, 1, 0, 0, 0.1, 0), +"times": PackedFloat32Array(0, 0.39999998) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("TabContainer:modulate:g") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, 0, 0, 0.1, 0, 1, 0, 0, 0.1, 0), +"times": PackedFloat32Array(0, 0.39999998) +} +tracks/4/type = "bezier" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("TabContainer:modulate:b") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, 0, 0, 0.1, 0, 1, 0, 0, 0.1, 0), +"times": PackedFloat32Array(0, 0.39999998) +} +tracks/5/type = "bezier" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("TabContainer:modulate:a") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"handle_modes": PackedInt32Array(0, 0), +"points": PackedFloat32Array(1, 0, 0, 0.064, 0, 0, -0.066, 1, 0, 0), +"times": PackedFloat32Array(0, 0.35833332) +} +tracks/6/type = "method" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath(".") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0.39999998), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"finalize_close" +}] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ghp0l"] +_data = { +&"RESET": SubResource("Animation_caf5k"), +&"enter": SubResource("Animation_e1xug"), +&"exit": SubResource("Animation_ghp0l") +} + +[node name="Root" type="VBoxContainer" unique_id=760692856 node_paths=PackedStringArray("nodes_tab_control", "nodes_tabs_container", "nodes_accept", "nodes_reset", "nodes_cancel", "nodes_animation_player")] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_rv0ww") +theme_type_variation = &"RootLayout" +script = ExtResource("2_aim2s") +input_device = ExtResource("3_3jfrj") +nodes_tab_control = NodePath("TabBar/TabBarLayout/TabControl") +nodes_tabs_container = NodePath("TabContainer") +nodes_accept = NodePath("Footer/HBoxContainer/Apply") +nodes_reset = NodePath("Footer/HBoxContainer/Reset") +nodes_cancel = NodePath("Footer/HBoxContainer/Cancel") +nodes_animation_player = NodePath("AnimationPlayer") + +[node name="TabBar" type="PanelContainer" parent="." unique_id=653839119] +material = ExtResource("1_rys2v") +layout_mode = 2 +theme_type_variation = &"SettingsTabBar" +script = ExtResource("5_caf5k") +animation_offset = 0.0 + +[node name="TabBarLayout" type="HBoxContainer" parent="TabBar" unique_id=1527806700] +layout_mode = 2 + +[node name="ControlIconPrev" type="TextureRect" parent="TabBar/TabBarLayout" unique_id=2036855831] +layout_mode = 2 +texture = ExtResource("4_aim2s") +expand_mode = 2 + +[node name="TabControl" type="TabBar" parent="TabBar/TabBarLayout" unique_id=1274291699] +layout_mode = 2 +size_flags_horizontal = 3 +focus_mode = 0 +current_tab = 0 +tab_alignment = 1 +clip_tabs = false +close_with_middle_mouse = false +switch_on_drag_hover = false +tab_count = 3 +tab_0/title = "Video" +tab_1/title = "Sound" +tab_2/title = "Controls" + +[node name="ControlIconNext" type="TextureRect" parent="TabBar/TabBarLayout" unique_id=252960043] +layout_mode = 2 +texture = ExtResource("5_3jfrj") +expand_mode = 2 + +[node name="TabContainer" type="Control" parent="." unique_id=1898272863] +clip_children = 1 +layout_mode = 2 +size_flags_vertical = 3 + +[node name="VideoTab" type="PanelContainer" parent="TabContainer" unique_id=848077711 node_paths=PackedStringArray("focus_start", "resolution", "fullscreen")] +material = ExtResource("1_rys2v") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_type_variation = &"SettingsTabContainer" +script = ExtResource("7_dx68r") +focus_start = NodePath("HBoxContainer/VBoxContainer/Resolution") +resolution = NodePath("HBoxContainer/VBoxContainer/Resolution") +fullscreen = NodePath("HBoxContainer/VBoxContainer/Fullscreen") + +[node name="HBoxContainer" type="HBoxContainer" parent="TabContainer/VideoTab" unique_id=398757456] +layout_mode = 2 +theme_type_variation = &"SettingsSplit" + +[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/VideoTab/HBoxContainer" unique_id=789120246] +layout_mode = 2 +size_flags_horizontal = 3 +theme_type_variation = &"SettingsOptionList" + +[node name="Resolution" parent="TabContainer/VideoTab/HBoxContainer/VBoxContainer" unique_id=475406479 instance=ExtResource("5_5e4gs")] +layout_mode = 2 +label = "Resolution" +values = Array[String](["1920x1080"]) + +[node name="Fullscreen" parent="TabContainer/VideoTab/HBoxContainer/VBoxContainer" unique_id=1464865732 instance=ExtResource("6_rv0ww")] +layout_mode = 2 +label = "Fullscreen" +value = true + +[node name="VSync" parent="TabContainer/VideoTab/HBoxContainer/VBoxContainer" unique_id=1702919599 instance=ExtResource("6_rv0ww")] +layout_mode = 2 +label = "V-Sync" + +[node name="RichTextLabel" type="RichTextLabel" parent="TabContainer/VideoTab/HBoxContainer" unique_id=81097026] +layout_mode = 2 +size_flags_horizontal = 3 +theme_type_variation = &"SettingsDescription" +text = "The option description goes here." + +[node name="SoundTab" type="PanelContainer" parent="TabContainer" unique_id=1395524084 node_paths=PackedStringArray("master_bus", "env_bus", "music_bus", "focus_start")] +visible = false +material = ExtResource("1_rys2v") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_type_variation = &"SettingsTabContainer" +script = ExtResource("10_e1xug") +master_bus = NodePath("HBoxContainer/VBoxContainer/Master") +env_bus = NodePath("HBoxContainer/VBoxContainer/Environment") +music_bus = NodePath("HBoxContainer/VBoxContainer/Music") +focus_start = NodePath("HBoxContainer/VBoxContainer/Master") + +[node name="HBoxContainer" type="HBoxContainer" parent="TabContainer/SoundTab" unique_id=479791197] +layout_mode = 2 +theme_type_variation = &"SettingsSplit" + +[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/SoundTab/HBoxContainer" unique_id=1134410152] +layout_mode = 2 +size_flags_horizontal = 3 +theme_type_variation = &"SettingsOptionList" + +[node name="Master" parent="TabContainer/SoundTab/HBoxContainer/VBoxContainer" unique_id=494687550 instance=ExtResource("7_rv0ww")] +layout_mode = 2 +label = "Master" +value = 100.0 +step = 1.0 + +[node name="Environment" parent="TabContainer/SoundTab/HBoxContainer/VBoxContainer" unique_id=1433328046 instance=ExtResource("7_rv0ww")] +layout_mode = 2 +label = "Environment" +value = 100.0 +step = 1.0 + +[node name="Music" parent="TabContainer/SoundTab/HBoxContainer/VBoxContainer" unique_id=1850795348 instance=ExtResource("7_rv0ww")] +layout_mode = 2 +label = "Music" +value = 100.0 +step = 1.0 + +[node name="RichTextLabel" type="RichTextLabel" parent="TabContainer/SoundTab/HBoxContainer" unique_id=709038937] +layout_mode = 2 +size_flags_horizontal = 3 +theme_type_variation = &"SettingsDescription" +text = "The option description goes here." + +[node name="ControlsTab" type="PanelContainer" parent="TabContainer" unique_id=1763255928] +material = ExtResource("1_rys2v") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 +theme_type_variation = &"SettingsTabContainer" + +[node name="HBoxContainer" type="HBoxContainer" parent="TabContainer/ControlsTab" unique_id=678384332] +layout_mode = 2 +theme_type_variation = &"SettingsSplit" + +[node name="VBoxContainerLeft" type="VBoxContainer" parent="TabContainer/ControlsTab/HBoxContainer" unique_id=1441648826] +layout_mode = 2 +size_flags_horizontal = 3 +theme_type_variation = &"SettingsOptionList" + +[node name="MoveForward" parent="TabContainer/ControlsTab/HBoxContainer/VBoxContainerLeft" unique_id=510698977 instance=ExtResource("10_0k1u1")] +layout_mode = 2 +label = "Move Forward" +texture = ExtResource("11_44bim") + +[node name="MoveBackward" parent="TabContainer/ControlsTab/HBoxContainer/VBoxContainerLeft" unique_id=1211399512 instance=ExtResource("10_0k1u1")] +layout_mode = 2 +label = "Move Backward" +texture = ExtResource("12_1dh6r") + +[node name="TurnLeft" parent="TabContainer/ControlsTab/HBoxContainer/VBoxContainerLeft" unique_id=353676701 instance=ExtResource("10_0k1u1")] +layout_mode = 2 +label = "Turn Left" +texture = ExtResource("13_im2bc") + +[node name="TurnRight" parent="TabContainer/ControlsTab/HBoxContainer/VBoxContainerLeft" unique_id=946461237 instance=ExtResource("10_0k1u1")] +layout_mode = 2 +label = "Turn Right" +texture = ExtResource("14_gtb17") + +[node name="StrafeLeft" parent="TabContainer/ControlsTab/HBoxContainer/VBoxContainerLeft" unique_id=1446559392 instance=ExtResource("10_0k1u1")] +layout_mode = 2 +label = "Strafe Left" +texture = ExtResource("15_3qjbt") + +[node name="StrafeRight" parent="TabContainer/ControlsTab/HBoxContainer/VBoxContainerLeft" unique_id=1604071926 instance=ExtResource("10_0k1u1")] +layout_mode = 2 +label = "Strafe Right" +texture = ExtResource("16_8frbw") + +[node name="VBoxContainerRight" type="VBoxContainer" parent="TabContainer/ControlsTab/HBoxContainer" unique_id=1104573068] +layout_mode = 2 +size_flags_horizontal = 3 +theme_type_variation = &"SettingsOptionList" + +[node name="Rise" parent="TabContainer/ControlsTab/HBoxContainer/VBoxContainerRight" unique_id=866588137 instance=ExtResource("10_0k1u1")] +layout_mode = 2 +label = "Rise" +texture = ExtResource("17_8frbw") + +[node name="Land" parent="TabContainer/ControlsTab/HBoxContainer/VBoxContainerRight" unique_id=696704535 instance=ExtResource("10_0k1u1")] +layout_mode = 2 +label = "Land" +texture = ExtResource("18_rvtar") + +[node name="FirePrimary" parent="TabContainer/ControlsTab/HBoxContainer/VBoxContainerRight" unique_id=1495686467 instance=ExtResource("10_0k1u1")] +layout_mode = 2 +label = "Fire Primary" +texture = ExtResource("19_xv08n") + +[node name="Footer" type="PanelContainer" parent="." unique_id=1664705594] +material = ExtResource("1_rys2v") +layout_mode = 2 +theme_type_variation = &"SettingsFooter" +script = ExtResource("23_ghp0l") +animation_offset = 0.0 + +[node name="HBoxContainer" type="HBoxContainer" parent="Footer" unique_id=575406343] +layout_mode = 2 +alignment = 2 + +[node name="Reset" type="Button" parent="Footer/HBoxContainer" unique_id=755848797 node_paths=PackedStringArray("shortcut_context")] +layout_mode = 2 +size_flags_horizontal = 8 +focus_mode = 0 +shortcut_context = NodePath("../../..") +theme_type_variation = &"FlatButton" +shortcut = SubResource("Shortcut_dx68r") +shortcut_in_tooltip = false +text = "Reset" +icon = ExtResource("10_upnh1") +flat = true + +[node name="Apply" type="Button" parent="Footer/HBoxContainer" unique_id=1140458030 node_paths=PackedStringArray("shortcut_context")] +layout_mode = 2 +size_flags_horizontal = 8 +focus_mode = 0 +shortcut_context = NodePath("../../..") +theme_type_variation = &"FlatButton" +shortcut = SubResource("Shortcut_e1xug") +shortcut_in_tooltip = false +text = "Apply" +icon = ExtResource("12_dx68r") +flat = true + +[node name="Cancel" type="Button" parent="Footer/HBoxContainer" unique_id=261888583 node_paths=PackedStringArray("shortcut_context")] +layout_mode = 2 +size_flags_horizontal = 8 +focus_mode = 0 +shortcut_context = NodePath("../../..") +theme_type_variation = &"FlatButton" +shortcut = SubResource("Shortcut_caf5k") +shortcut_in_tooltip = false +text = "Cancel +" +icon = ExtResource("12_fs4m5") +flat = true + +[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1460947898] +libraries/ = SubResource("AnimationLibrary_ghp0l") +autoplay = &"enter" diff --git a/resources/ui/settings_option.tscn b/resources/ui/settings_option.tscn new file mode 100644 index 00000000..5ebd8e34 --- /dev/null +++ b/resources/ui/settings_option.tscn @@ -0,0 +1,16 @@ +[gd_scene format=3 uid="uid://dyskwp1x1hl4i"] + +[node name="SettingsOption" type="PanelContainer" unique_id=475406479] +custom_minimum_size = Vector2(500, 0) +theme_type_variation = &"SettingsOption" + +[node name="HBoxContainer" type="HBoxContainer" parent="." unique_id=1874205364] +layout_mode = 2 + +[node name="Label" type="Label" parent="HBoxContainer" unique_id=894782315] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Label" + +[node name="VSeparator" type="VSeparator" parent="HBoxContainer" unique_id=415780805] +layout_mode = 2 diff --git a/resources/ui/settings_option_input.tscn b/resources/ui/settings_option_input.tscn new file mode 100644 index 00000000..21faa0ea --- /dev/null +++ b/resources/ui/settings_option_input.tscn @@ -0,0 +1,24 @@ +[gd_scene format=3 uid="uid://bsls8nq8sr7q"] + +[ext_resource type="PackedScene" uid="uid://dyskwp1x1hl4i" path="res://resources/ui/settings_option.tscn" id="1_4j1qn"] +[ext_resource type="Script" uid="uid://dgo04vq0hj0ju" path="res://native/src/scripts/ui/settings_option_input.rs" id="2_4j1qn"] + +[node name="SettingsOptionInput" unique_id=475406479 node_paths=PackedStringArray("nodes_label", "nodes_value") instance=ExtResource("1_4j1qn")] +script = ExtResource("2_4j1qn") +nodes_label = NodePath("HBoxContainer/Label") +nodes_value = NodePath("HBoxContainer/PanelContainer/TextureRect") +label = "" +texture = null + +[node name="Label" parent="HBoxContainer" parent_id_path=PackedInt32Array(1874205364) index="0" unique_id=894782315] +text = "" + +[node name="PanelContainer" type="PanelContainer" parent="HBoxContainer" parent_id_path=PackedInt32Array(1874205364) index="2" unique_id=184170336] +layout_mode = 2 +size_flags_horizontal = 3 +theme_type_variation = &"KeyBindBox" + +[node name="TextureRect" type="TextureRect" parent="HBoxContainer/PanelContainer" index="0" unique_id=1939482685] +layout_mode = 2 +size_flags_horizontal = 8 +expand_mode = 3 diff --git a/resources/ui/settings_option_list.tscn b/resources/ui/settings_option_list.tscn new file mode 100644 index 00000000..e4d81041 --- /dev/null +++ b/resources/ui/settings_option_list.tscn @@ -0,0 +1,23 @@ +[gd_scene format=3 uid="uid://bivg14j2kt501"] + +[ext_resource type="PackedScene" uid="uid://dyskwp1x1hl4i" path="res://resources/ui/settings_option.tscn" id="1_utvo5"] +[ext_resource type="Script" uid="uid://b35a3dqq1aw5s" path="res://native/src/scripts/ui/settings_option_list.rs" id="2_kfpgn"] + +[node name="SettingsOptionList" unique_id=475406479 node_paths=PackedStringArray("nodes_label", "nodes_value") instance=ExtResource("1_utvo5")] +script = ExtResource("2_kfpgn") +nodes_label = NodePath("HBoxContainer/Label") +nodes_value = NodePath("HBoxContainer/Value") +label = "" +description = "" +values = Array[String]([]) +selected_index = 0 + +[node name="Value" type="OptionButton" parent="HBoxContainer" parent_id_path=PackedInt32Array(1874205364) index="2" unique_id=390909681] +layout_mode = 2 +size_flags_horizontal = 3 +accessibility_labeled_by_nodes = Array[NodePath]([NodePath("../Label")]) +selected = 0 +allow_reselect = true +item_count = 1 +popup/item_0/text = "1920x1080" +popup/item_0/id = 0 diff --git a/resources/ui/settings_option_range.tscn b/resources/ui/settings_option_range.tscn new file mode 100644 index 00000000..2928913b --- /dev/null +++ b/resources/ui/settings_option_range.tscn @@ -0,0 +1,30 @@ +[gd_scene format=3 uid="uid://cs8hk84y2lecw"] + +[ext_resource type="PackedScene" uid="uid://dyskwp1x1hl4i" path="res://resources/ui/settings_option.tscn" id="1_ntsf4"] +[ext_resource type="Script" uid="uid://cf5coen440mfv" path="res://native/src/scripts/ui/settings_option_range.rs" id="2_ntsf4"] + +[node name="SettingsOptionRange" unique_id=475406479 node_paths=PackedStringArray("nodes_label", "nodes_value", "nodes_focus") instance=ExtResource("1_ntsf4")] +script = ExtResource("2_ntsf4") +nodes_label = NodePath("HBoxContainer/Label") +nodes_value = NodePath("HBoxContainer/PanelContainer/HSlider") +nodes_focus = NodePath("HBoxContainer/PanelContainer") +label = "" +description = "" +value = 0.0 +min = 0.0 +max = 100.0 +step = 0.0 + +[node name="Label" parent="HBoxContainer" parent_id_path=PackedInt32Array(1874205364) index="0" unique_id=894782315] +text = "" + +[node name="PanelContainer" type="PanelContainer" parent="HBoxContainer" parent_id_path=PackedInt32Array(1874205364) index="2" unique_id=2054884024] +layout_mode = 2 +size_flags_horizontal = 3 +theme_type_variation = &"RangeSliderBox" + +[node name="HSlider" type="HSlider" parent="HBoxContainer/PanelContainer" index="0" unique_id=1083830632] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 4 +step = 0.0 diff --git a/resources/ui/settings_option_toggle.tscn b/resources/ui/settings_option_toggle.tscn new file mode 100644 index 00000000..cef8a00e --- /dev/null +++ b/resources/ui/settings_option_toggle.tscn @@ -0,0 +1,17 @@ +[gd_scene format=3 uid="uid://6wucddao00pd"] + +[ext_resource type="PackedScene" uid="uid://dyskwp1x1hl4i" path="res://resources/ui/settings_option.tscn" id="1_5vqew"] +[ext_resource type="Script" uid="uid://bucso43mr7bv2" path="res://native/src/scripts/ui/settings_option_toggle.rs" id="2_prj7c"] + +[node name="SettingsOptionToggle" unique_id=475406479 node_paths=PackedStringArray("nodes_label", "nodes_value") instance=ExtResource("1_5vqew")] +script = ExtResource("2_prj7c") +nodes_label = NodePath("HBoxContainer/Label") +nodes_value = NodePath("HBoxContainer/Value") +label = "" +description = "" +value = false + +[node name="Value" type="CheckButton" parent="HBoxContainer" parent_id_path=PackedInt32Array(1874205364) index="2" unique_id=1649214532] +layout_mode = 2 +size_flags_horizontal = 3 +accessibility_labeled_by_nodes = Array[NodePath]([NodePath("../Label")]) diff --git a/resources/ui_themes/settings_menu_theme.tres b/resources/ui_themes/settings_menu_theme.tres new file mode 100644 index 00000000..33484986 --- /dev/null +++ b/resources/ui_themes/settings_menu_theme.tres @@ -0,0 +1,207 @@ +[gd_resource type="Theme" format=3 uid="uid://dw1b3gtetxdgl"] + +[sub_resource type="DPITexture" id="DPITexture_l1efq"] +_source = " +" +base_scale = 2.0 + +[sub_resource type="DPITexture" id="DPITexture_tyf3o"] +_source = " +" +base_scale = 2.0 + +[sub_resource type="DPITexture" id="DPITexture_rv0ww"] +_source = " +" +base_scale = 2.0 + +[sub_resource type="DPITexture" id="DPITexture_aim2s"] +_source = " +" +base_scale = 2.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_aim2s"] +content_margin_left = 16.0 +content_margin_right = 16.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_f8f7k"] +content_margin_left = 4.0 +content_margin_top = 8.0 +content_margin_right = 8.0 +content_margin_bottom = 8.0 + +[sub_resource type="DPITexture" id="DPITexture_3jfrj"] +_source = " +" +base_scale = 2.0 + +[sub_resource type="DPITexture" id="DPITexture_0k1u1"] +_source = " +" +base_scale = 2.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rv0ww"] +content_margin_left = 4.0 +content_margin_top = 4.0 +content_margin_right = 4.0 +content_margin_bottom = 4.0 +bg_color = Color(1, 1, 1, 0.6745098) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 6 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0k1u1"] +content_margin_left = 8.0 +content_margin_top = 8.0 +content_margin_right = 8.0 +content_margin_bottom = 8.0 +bg_color = Color(0.1, 0.1, 0.1, 0.6) +corner_radius_top_left = 4 +corner_radius_top_right = 4 +corner_radius_bottom_right = 4 +corner_radius_bottom_left = 4 +corner_detail = 6 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_40g8j"] +content_margin_left = 24.0 +content_margin_top = 4.0 +content_margin_right = 24.0 +content_margin_bottom = 4.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_tyf3o"] +content_margin_left = 16.0 +content_margin_top = 16.0 +content_margin_right = 16.0 +content_margin_bottom = 16.0 + +[sub_resource type="DPITexture" id="DPITexture_5e4gs"] +_source = " +" +base_scale = 3.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_rv0ww"] +content_margin_left = 16.0 +content_margin_top = 16.0 +content_margin_right = 16.0 +content_margin_bottom = 16.0 + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_44bim"] +content_margin_left = 24.0 +content_margin_right = 24.0 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_aim2s"] +content_margin_left = 24.0 +content_margin_top = 24.0 +content_margin_right = 24.0 +content_margin_bottom = 24.0 +bg_color = Color(1, 1, 1, 0.16862746) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_40g8j"] +bg_color = Color(0.62763536, 0.62763536, 0.62763536, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3jfrj"] +bg_color = Color(1, 1, 1, 0.16862746) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_l1efq"] +content_margin_left = 24.0 +content_margin_right = 24.0 +bg_color = Color(0.627451, 0.627451, 0.627451, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_3d3gr"] +content_margin_left = 24.0 +content_margin_top = 24.0 +content_margin_right = 24.0 +content_margin_bottom = 24.0 +bg_color = Color(0.50980395, 0.50980395, 0.50980395, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5e4gs"] +content_margin_left = 24.0 +content_margin_top = 24.0 +content_margin_right = 24.0 +content_margin_bottom = 24.0 +bg_color = Color(1, 1, 1, 0.23529412) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rys2v"] +content_margin_left = 24.0 +content_margin_top = 24.0 +content_margin_right = 24.0 +content_margin_bottom = 24.0 +bg_color = Color(0.234, 0.43420005, 0.78, 0.4627451) + +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_l1efq"] +content_margin_left = 24.0 +content_margin_top = 24.0 +content_margin_right = 24.0 +content_margin_bottom = 24.0 + +[sub_resource type="StyleBoxLine" id="StyleBoxLine_0k1u1"] +content_margin_left = 0.0 +content_margin_top = 4.0 +content_margin_right = 0.0 +content_margin_bottom = 4.0 +color = Color(1, 1, 1, 1) +grow_begin = 0.0 +grow_end = 0.0 +thickness = 2 +vertical = true + +[resource] +CheckButton/icons/checked = SubResource("DPITexture_l1efq") +CheckButton/icons/checked_disabled = SubResource("DPITexture_tyf3o") +CheckButton/icons/unchecked = SubResource("DPITexture_rv0ww") +CheckButton/icons/unchecked_disabled = SubResource("DPITexture_aim2s") +CheckButton/styles/normal = SubResource("StyleBoxEmpty_aim2s") +FlatButton/colors/font_color = Color(0.7058867, 0.7058868, 0.7058867, 1) +FlatButton/colors/font_hover_color = Color(0.8453288, 0.8453288, 0.84532875, 1) +FlatButton/colors/font_pressed_color = Color(1, 1, 1, 1) +FlatButton/constants/icon_max_width = 32 +FlatButton/font_sizes/font_size = 16 +FlatButton/styles/hover = SubResource("StyleBoxEmpty_f8f7k") +FlatButton/styles/normal = SubResource("StyleBoxEmpty_f8f7k") +FlatButton/styles/pressed = SubResource("StyleBoxEmpty_f8f7k") +HSlider/constants/center_grabber = 1 +HSlider/icons/grabber = SubResource("DPITexture_3jfrj") +HSlider/icons/grabber_highlight = SubResource("DPITexture_0k1u1") +HSlider/styles/grabber_area = SubResource("StyleBoxFlat_rv0ww") +HSlider/styles/slider = SubResource("StyleBoxFlat_0k1u1") +KeyBindBox/base_type = &"PanelContainer" +KeyBindBox/styles/panel = SubResource("StyleBoxEmpty_40g8j") +Label/font_sizes/font_size = 24 +Label/styles/normal = SubResource("StyleBoxEmpty_tyf3o") +OptionButton/constants/arrow_margin = 16 +OptionButton/font_sizes/font_size = 24 +OptionButton/icons/arrow = SubResource("DPITexture_5e4gs") +OptionButton/styles/normal = SubResource("StyleBoxEmpty_rv0ww") +RangeSliderBox/base_type = &"PanelContainer" +RangeSliderBox/styles/panel = SubResource("StyleBoxEmpty_44bim") +RootLayout/base_type = &"VBoxContainer" +RootLayout/constants/separation = 0 +SettingsDescription/base_type = &"RichTextLabel" +SettingsDescription/font_sizes/normal_font_size = 32 +SettingsDescription/styles/normal = SubResource("StyleBoxFlat_aim2s") +SettingsFooter/base_type = &"PanelContainer" +SettingsFooter/styles/panel = SubResource("StyleBoxFlat_40g8j") +SettingsOption/base_type = &"PanelContainer" +SettingsOption/styles/panel = SubResource("StyleBoxFlat_3jfrj") +SettingsOptionList/base_type = &"VBoxContainer" +SettingsOptionList/constants/separation = 0 +SettingsSplit/base_type = &"HBoxContainer" +SettingsSplit/constants/separation = 24 +SettingsTabBar/base_type = &"PanelContainer" +SettingsTabBar/styles/panel = SubResource("StyleBoxFlat_l1efq") +SettingsTabContainer/base_type = &"PanelContainer" +SettingsTabContainer/styles/panel = SubResource("StyleBoxFlat_3d3gr") +TabBar/colors/font_unselected_color = Color(0.8431839, 0.8431839, 0.84318376, 1) +TabBar/colors/icon_unselected_color = Color(1, 1, 1, 1) +TabBar/font_sizes/font_size = 24 +TabBar/styles/tab_hovered = SubResource("StyleBoxFlat_5e4gs") +TabBar/styles/tab_selected = SubResource("StyleBoxFlat_rys2v") +TabBar/styles/tab_unselected = SubResource("StyleBoxEmpty_l1efq") +VSeparator/constants/separation = 2 +VSeparator/styles/separator = SubResource("StyleBoxLine_0k1u1") diff --git a/resources/ui_themes/title_menu_theme.tres b/resources/ui_themes/title_menu_theme.tres index f822078b..c15d9016 100644 --- a/resources/ui_themes/title_menu_theme.tres +++ b/resources/ui_themes/title_menu_theme.tres @@ -1,5 +1,10 @@ [gd_resource type="Theme" format=3 uid="uid://rumvfyg8qyrj"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wq8ws"] +bg_color = Color(0, 0, 0, 0) +border_width_right = 1 +border_color = Color(0.5921569, 0.5921569, 0.5921569, 0.2627451) + [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_hk5p3"] content_margin_left = 5.0 content_margin_top = 5.0 @@ -21,30 +26,19 @@ content_margin_bottom = 5.0 bg_color = Color(0.31, 0.31, 0.31, 0.19607843) [sub_resource type="Gradient" id="Gradient_hk5p3"] -offsets = PackedFloat32Array(0, 0.9981413) -colors = PackedColorArray(0.5481, 0.66613007, 0.87, 0.4627451, 0.2, 0.2, 0.2, 0.43529412) - -[sub_resource type="FastNoiseLite" id="FastNoiseLite_hk5p3"] -noise_type = 5 -frequency = 0.0226 -fractal_octaves = 3 -fractal_lacunarity = 0.5 -fractal_gain = 1.0 -domain_warp_enabled = true -domain_warp_type = 2 -domain_warp_amplitude = 50.0 -domain_warp_frequency = 0.06 -domain_warp_fractal_octaves = 3 - -[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_skxmj"] -noise = SubResource("FastNoiseLite_hk5p3") -color_ramp = SubResource("Gradient_hk5p3") +colors = PackedColorArray(0.75686276, 0.75686276, 0.75686276, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_skxmj"] +gradient = SubResource("Gradient_hk5p3") [sub_resource type="StyleBoxTexture" id="StyleBoxTexture_vhryd"] -texture = SubResource("NoiseTexture2D_skxmj") +texture = SubResource("GradientTexture1D_skxmj") axis_stretch_horizontal = 1 +axis_stretch_vertical = 1 [resource] +BorderContainer/base_type = &"PanelContainer" +BorderContainer/styles/panel = SubResource("StyleBoxFlat_wq8ws") Button/colors/font_disabled_color = Color(0.796243, 0.796243, 0.796243, 0.45490196) Button/constants/h_separation = 0 Button/font_sizes/font_size = 28