From 8a1cb627975559893fa54341ae394847346aaa20 Mon Sep 17 00:00:00 2001 From: Jovan Gerodetti Date: Sun, 30 Aug 2026 23:59:43 +0200 Subject: [PATCH 1/2] Upgrade gdext to 0.5.5 --- native/Cargo.lock | 96 +++++++-------------------- native/Cargo.toml | 4 +- native/src/scripts/world/buildings.rs | 2 +- 3 files changed, 27 insertions(+), 75 deletions(-) diff --git a/native/Cargo.lock b/native/Cargo.lock index d28c660b..911ac820 100644 --- a/native/Cargo.lock +++ b/native/Cargo.lock @@ -187,20 +187,9 @@ checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "gdextension-api" -version = "0.3.3" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5383f33a2772746bbc83e5b0480862dd1eedfd0518b976f37f3db11c81e71a6a" - -[[package]] -name = "getrandom" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] +checksum = "3489a9e7463353467db3cfe3eb12de31c9b6200e4f928bde4959bf5db5b31d2f" [[package]] name = "getrandom" @@ -228,9 +217,9 @@ checksum = "f70749695b063ecbf6b62949ccccde2e733ec3ecbbd71d467dca4e5c6c97cca0" [[package]] name = "godot" -version = "0.5.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8908958eb739fbef2bac361032abacd92d7f8509aa874a4e1202d5003ac99591" +checksum = "e21dfe3a0c8c253cb293a4f915f2359fdb4cf45a4d0557cb1841ea99aae4edfb" dependencies = [ "godot-core", "godot-macros", @@ -238,38 +227,37 @@ dependencies = [ [[package]] name = "godot-bindings" -version = "0.5.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca73b7685c6e12a50ef7770611f32f5eaa026f367b277fb181c1bbb911d6456" +checksum = "7ce6fed360f27cc44ee188246880bb842cdb96bf13aec1d0ec31cccfa50b1cf6" dependencies = [ "gdextension-api", ] [[package]] name = "godot-cell" -version = "0.5.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf31e3be55b2fc80566f095d15f0dd2c096c9130f4bb005767b7beeb6ca7f08" +checksum = "edc4695597110f27de8f0adbdf3afd01692e3596cc89de2aaa2a42d31b93bfc4" [[package]] name = "godot-codegen" -version = "0.5.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db70e51cb6f24599c27af83608d136ee5e6bbfefafddcf68165d69813f27938" +checksum = "08409103fba47d9cb5b64dcb0b679b06ba3153d9c96d5e918bb97f065d553c60" dependencies = [ "godot-bindings", "heck", "nanoserde", "proc-macro2", "quote", - "regex", ] [[package]] name = "godot-core" -version = "0.5.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146df09dbac1d0e9bf9144497f85453d8cb5ab2694cb0a60e0fda52fdc6cd696" +checksum = "40ab630dbc7ce797f09eda29025ebadab1b700778c988ad19c47bddc51874a90" dependencies = [ "glam", "godot-bindings", @@ -280,9 +268,9 @@ dependencies = [ [[package]] name = "godot-ffi" -version = "0.5.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b6b1f65a0bf7da76543954a0c27087257883dba1524c0390732c7ed09f6ba7" +checksum = "18c296047c042d74828b2cb2e71bbadd22dd4ff98346c696b6c0a4a5decbf57f" dependencies = [ "godot-bindings", "godot-codegen", @@ -291,9 +279,9 @@ dependencies = [ [[package]] name = "godot-macros" -version = "0.5.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24e4c4320ee46c25bd2470c752c793d195dc91d087685e57f8ac7ff6152e5fa2" +checksum = "c9ffca7ec0dfad5885a96b3819b3dafc1014c36d2931464f96d9ab0bee87b52e" dependencies = [ "godot-bindings", "litrs", @@ -306,7 +294,7 @@ dependencies = [ [[package]] name = "godot-rust-script" version = "0.1.0" -source = "git+https://github.com/titannano/godot-rust-script?rev=ca89cf182f6b9e051b66e1e52e23489e25f9077c#ca89cf182f6b9e051b66e1e52e23489e25f9077c" +source = "git+https://github.com/titannano/godot-rust-script?rev=e63d2e01cf1c02a46091463b5675576630b65659#e63d2e01cf1c02a46091463b5675576630b65659" dependencies = [ "const-str", "convert_case", @@ -316,14 +304,14 @@ dependencies = [ "godot-rust-script-derive", "itertools", "once_cell", - "rand 0.8.5", + "rand", "thiserror", ] [[package]] name = "godot-rust-script-derive" version = "0.1.0" -source = "git+https://github.com/titannano/godot-rust-script?rev=ca89cf182f6b9e051b66e1e52e23489e25f9077c#ca89cf182f6b9e051b66e1e52e23489e25f9077c" +source = "git+https://github.com/titannano/godot-rust-script?rev=e63d2e01cf1c02a46091463b5675576630b65659#e63d2e01cf1c02a46091463b5675576630b65659" dependencies = [ "darling", "itertools", @@ -483,7 +471,7 @@ dependencies = [ "num", "num_enum", "pomsky-macro", - "rand 0.9.3", + "rand", "rayon", "regex", "thiserror", @@ -664,35 +652,14 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ec095654a25171c2124e9e3393a930bddbffdc939556c914957a4c3e0a87166" dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "rand_chacha", + "rand_core", ] [[package]] @@ -702,16 +669,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.10", + "rand_core", ] [[package]] @@ -720,7 +678,7 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.4", + "getrandom", ] [[package]] @@ -877,12 +835,6 @@ dependencies = [ "quote", ] -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - [[package]] name = "wasip2" version = "1.0.1+wasi-0.2.4" diff --git a/native/Cargo.toml b/native/Cargo.toml index a4700549..4d80f81e 100644 --- a/native/Cargo.toml +++ b/native/Cargo.toml @@ -7,8 +7,8 @@ edition = "2021" crate-type = ["cdylib"] [dependencies] -godot = { version = "0.5.0", features = ["experimental-threads", "api-4-5", "register-docs"] } -godot-rust-script = { git = "https://github.com/titannano/godot-rust-script", rev = "ca89cf182f6b9e051b66e1e52e23489e25f9077c" } +godot = { version = "0.5.5", features = ["experimental-threads", "api-4-5", "register-docs"] } +godot-rust-script = { git = "https://github.com/titannano/godot-rust-script", rev = "e63d2e01cf1c02a46091463b5675576630b65659" } lerp = "0.4.0" backtrace = "0.3.64" num = "0.4.0" diff --git a/native/src/scripts/world/buildings.rs b/native/src/scripts/world/buildings.rs index 45e961db..4c324a71 100644 --- a/native/src/scripts/world/buildings.rs +++ b/native/src/scripts/world/buildings.rs @@ -148,7 +148,7 @@ impl Buildings { &city_coords_feature, ); - CastToScript::::to_script(&base).emit_spawn_point_encountered( + base.to_script::().emit_spawn_point_encountered( Array::from(&[building_origin.0, building_origin.1]), 2, spawn_tile.altitude, From cc129478b4081d23eeac8be0cf622e75ad78687d Mon Sep 17 00:00:00 2001 From: Jovan Gerodetti Date: Mon, 31 Aug 2026 00:22:39 +0200 Subject: [PATCH 2/2] fix errors --- native/src/editor/ui/progress_dialog.rs | 2 +- native/src/scripts/effects/water_decal.rs | 4 ++-- native/src/scripts/objects/agents/car.rs | 4 ++-- native/src/scripts/objects/building/fire.rs | 8 ++++---- native/src/scripts/objects/camera.rs | 4 ++-- native/src/scripts/objects/water_jet.rs | 4 ++-- native/src/scripts/world/buildings.rs | 4 ++-- native/src/scripts/world/gi_probes.rs | 6 ++---- native/src/terrain_builder.rs | 2 +- native/src/terrain_builder/tile_surface.rs | 2 +- 10 files changed, 19 insertions(+), 21 deletions(-) diff --git a/native/src/editor/ui/progress_dialog.rs b/native/src/editor/ui/progress_dialog.rs index 0034cc0c..60f743b8 100644 --- a/native/src/editor/ui/progress_dialog.rs +++ b/native/src/editor/ui/progress_dialog.rs @@ -130,7 +130,7 @@ impl ProgressDialog { // No host window found, use main window. EditorInterface::singleton() .popup_dialog_centered_ex(&*base) - .minsize(ms.cast_int()) + .minsize(ms.to_vector2i()) .done(); } } diff --git a/native/src/scripts/effects/water_decal.rs b/native/src/scripts/effects/water_decal.rs index 52c9730e..33a2b540 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, RsRef}; +use godot_rust_script::{godot_script_impl, CastToScript, Context, GodotScript, OnEditor, Rs}; use crate::resources::WaterDecalTracker; use crate::util; @@ -52,7 +52,7 @@ impl WaterDecal { 1.0, ); - let mut script: RsRef = base.clone().into_script(); + let mut script: Rs = 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/agents/car.rs b/native/src/scripts/objects/agents/car.rs index 64c83c86..155f49ab 100644 --- a/native/src/scripts/objects/agents/car.rs +++ b/native/src/scripts/objects/agents/car.rs @@ -14,7 +14,7 @@ use godot::classes::{ }; use godot::meta::ToGodot; use godot::obj::{Gd, Singleton as _}; -use godot_rust_script::{godot_script_impl, GodotScript, OnEditor, RsRef}; +use godot_rust_script::{godot_script_impl, GodotScript, OnEditor, Rs}; use crate::debug_3d; use crate::project_settings::CustomProjectSettings; @@ -95,7 +95,7 @@ struct Car { /// Optional [`Debugger3D`] to inspect the internal state of the car. #[export] - pub debugger: Option>, + pub debugger: Option>, base: Gd<::Base>, } diff --git a/native/src/scripts/objects/building/fire.rs b/native/src/scripts/objects/building/fire.rs index 273eb3dd..96c7cde7 100644 --- a/native/src/scripts/objects/building/fire.rs +++ b/native/src/scripts/objects/building/fire.rs @@ -9,7 +9,7 @@ use godot::builtin::{math::ApproxEq, Transform3D, Vector3}; use godot::classes::{MeshInstance3D, Node, Node3D, PackedScene, Texture2D, Time}; use godot::obj::{Gd, Inherits, Singleton as _}; use godot::tools::load; -use godot_rust_script::{CastToScript, RsRef}; +use godot_rust_script::{CastToScript, Rs}; use num::ToPrimitive; use rand::Rng; @@ -22,7 +22,7 @@ use super::{BuildingFeature, BuildingNotification}; #[derive(Debug)] pub(super) struct FireFeature { packed_fire_scene: Gd, - fire_scene: Option>, + fire_scene: Option>, last_fire: u64, fire_strength: f32, last_fire_strength: f32, @@ -67,7 +67,7 @@ impl FireFeature { !self.is_dead() && self.fire_strength - self.last_fire_strength >= 0.0 } - pub fn update_fire_strength(&mut self, fire: &mut RsRef) { + pub fn update_fire_strength(&mut self, fire: &mut Rs) { if self.fire_strength.approx_eq(&self.last_fire_strength) { return; } @@ -137,7 +137,7 @@ impl> BuildingFeature for FireFeature { * aabb.size) .abs(); - let mut script: RsRef = scene_instance.to_script(); + let mut script: Rs = 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/objects/camera.rs b/native/src/scripts/objects/camera.rs index 2d37872f..471dfe99 100644 --- a/native/src/scripts/objects/camera.rs +++ b/native/src/scripts/objects/camera.rs @@ -10,7 +10,7 @@ use std::f32; use godot::builtin::math::{ApproxEq, FloatExt}; use godot::classes::{Camera3D, CameraAttributesPhysical, Node3D}; use godot::obj::Gd; -use godot_rust_script::{godot_script_impl, GodotScript, OnEditor, RsRef}; +use godot_rust_script::{godot_script_impl, GodotScript, OnEditor, Rs}; use itertools::Itertools; use crate::scripts::world::solar_setup::{ISolarSetup, SolarSetup}; @@ -20,7 +20,7 @@ use crate::util::logger; #[script(base = Camera3D)] struct Camera { #[export] - pub solar_setup: OnEditor>, + pub solar_setup: OnEditor>, #[export] pub focus_target: Option>, diff --git a/native/src/scripts/objects/water_jet.rs b/native/src/scripts/objects/water_jet.rs index 5f00d5d3..d7c1916d 100644 --- a/native/src/scripts/objects/water_jet.rs +++ b/native/src/scripts/objects/water_jet.rs @@ -16,7 +16,7 @@ use godot::classes::{ use godot::meta::ToGodot; use godot::obj::{Gd, Inherits}; use godot::prelude::{GodotClass, NodePath}; -use godot_rust_script::{godot_script_impl, GodotScript, OnEditor, RsRef}; +use godot_rust_script::{godot_script_impl, GodotScript, OnEditor, Rs}; use crate::ext::node_3d::Node3DExt; use crate::resources::WaterDecalTracker; @@ -38,7 +38,7 @@ struct WaterJet { pub decal: OnEditor>, #[export] - pub debugger: Option>, + pub debugger: Option>, #[export] pub decal_tracker: OnEditor>, diff --git a/native/src/scripts/world/buildings.rs b/native/src/scripts/world/buildings.rs index 4c324a71..cd03c62f 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, RsRef, ScriptSignal, + godot_script_impl, CastToScript, Context, GodotScript, OnEditor, Rs, 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 mut script_self_ref: RsRef = base.to_script(); + let script_self_ref: Rs = base.to_script(); let tree = base.get_tree(); task::spawn(async move { diff --git a/native/src/scripts/world/gi_probes.rs b/native/src/scripts/world/gi_probes.rs index 9a1a98da..0cd31cb1 100644 --- a/native/src/scripts/world/gi_probes.rs +++ b/native/src/scripts/world/gi_probes.rs @@ -14,9 +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, RsRef, ScriptSignal, -}; +use godot_rust_script::{godot_script_impl, CastToScript, GodotScript, OnEditor, Rs, ScriptSignal}; use crate::{ resources::WorldConstants, @@ -118,7 +116,7 @@ impl GiProbes { let world_root = base.get_parent_node_3d().unwrap(); let scene_tree = base.get_tree(); - let mut script: RsRef = base.to_script(); + let mut script: Rs = base.to_script(); let probes = probe_coordinates .map(|xy| { diff --git a/native/src/terrain_builder.rs b/native/src/terrain_builder.rs index e2740a5c..8efd1661 100644 --- a/native/src/terrain_builder.rs +++ b/native/src/terrain_builder.rs @@ -519,7 +519,7 @@ fn generate_tile_surfaces( tile_surface.apply_slope( tile_data.terrain.slope, - rotation, + *rotation, context.tile_height.into(), ); diff --git a/native/src/terrain_builder/tile_surface.rs b/native/src/terrain_builder/tile_surface.rs index 44251da7..dc29544d 100644 --- a/native/src/terrain_builder/tile_surface.rs +++ b/native/src/terrain_builder/tile_surface.rs @@ -99,7 +99,7 @@ impl TileSurface { } #[expect(clippy::too_many_lines)] - pub fn apply_slope(&mut self, slope: TerrainSlope, rotation: &TerrainRotation, height: f32) { + pub fn apply_slope(&mut self, slope: TerrainSlope, rotation: TerrainRotation, height: f32) { match slope { TerrainSlope::None => (), TerrainSlope::North => {