From 2e0c6b2b62af2ec6850caa37caaed5ac52ce314e Mon Sep 17 00:00:00 2001 From: "NG (Graham)" Date: Sun, 4 Jan 2026 16:48:18 -0500 Subject: [PATCH] Switch factory trait over to i32 IDs --- rc_core/src/factory/adapter_enum.rs | 2 +- rc_core/src/persist/config/traits.rs | 2 +- rc_core/src/persist/garage.rs | 2 +- rc_core/src/persist/user/account_json.rs | 2 +- rc_factory/src/arc/adapter.rs | 6 +++--- rc_factory/src/traits.rs | 2 +- rc_services_room/src/operations/crf_purchase.rs | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/rc_core/src/factory/adapter_enum.rs b/rc_core/src/factory/adapter_enum.rs index 5419c80..99f8fa1 100644 --- a/rc_core/src/factory/adapter_enum.rs +++ b/rc_core/src/factory/adapter_enum.rs @@ -6,7 +6,7 @@ pub enum Factory { #[async_trait::async_trait] impl oj_rc_factory::VehicleFactoryAdapter for Factory { - async fn vehicle(&self, id: u32) -> Result, Box> { + async fn vehicle(&self, id: i32) -> Result, Box> { match self { Self::Arc(x) => x.vehicle(id).await, Self::Custom(x) => x.vehicle(id).await, diff --git a/rc_core/src/persist/config/traits.rs b/rc_core/src/persist/config/traits.rs index 4cae703..967e299 100644 --- a/rc_core/src/persist/config/traits.rs +++ b/rc_core/src/persist/config/traits.rs @@ -311,7 +311,7 @@ pub struct VehicleInfo { #[derive(Clone, Debug)] pub enum VehicleDescriptor { Factory { - factory: u32, + factory: i32, }, Database { garage: i32, diff --git a/rc_core/src/persist/garage.rs b/rc_core/src/persist/garage.rs index f68c751..e642568 100644 --- a/rc_core/src/persist/garage.rs +++ b/rc_core/src/persist/garage.rs @@ -200,7 +200,7 @@ impl PrefabVehicle { pub enum PrefabId { Factory { #[serde(alias="crf")] - factory: u32, + factory: i32, }, Database { garage: i32, diff --git a/rc_core/src/persist/user/account_json.rs b/rc_core/src/persist/user/account_json.rs index c189d6b..0598ce1 100644 --- a/rc_core/src/persist/user/account_json.rs +++ b/rc_core/src/persist/user/account_json.rs @@ -451,7 +451,7 @@ impl UserData { Ok(Some(factory_vehicle)) => { let uuid_i64 = crate::persist::user::uuid_sanitize( standard_uuid_uniqueness - ^ crate::persist::user::i64_join((1 << 30, *factory_id)) + ^ crate::persist::user::i64_join((1 << 30, *factory_id as u32)) ); let uuid_str = crate::persist::user::i64_as_uuid_str(uuid_i64); let weapons_guess = weapon_order.guess_weapons(&mut std::io::Cursor::new(&factory_vehicle.0.cube_data)); diff --git a/rc_factory/src/arc/adapter.rs b/rc_factory/src/arc/adapter.rs index 78a343f..8d7fe4c 100644 --- a/rc_factory/src/arc/adapter.rs +++ b/rc_factory/src/arc/adapter.rs @@ -50,10 +50,10 @@ impl ArcAdapter { #[async_trait::async_trait] impl crate::VehicleFactoryAdapter for ArcAdapter { - async fn vehicle(&self, id: u32) -> Result, Box> { + async fn vehicle(&self, id: i32) -> Result, Box> { log::debug!("Get vehicle by id {}", id); - let cubes = super::entities::robot_cubes::Entity::find_by_id(id).one(&self.orm); - let meta = super::entities::robot_metadata::Entity::find_by_id(id).one(&self.orm); + let cubes = super::entities::robot_cubes::Entity::find_by_id(id as u32).one(&self.orm); + let meta = super::entities::robot_metadata::Entity::find_by_id(id as u32).one(&self.orm); let cubes = cubes.await?; let meta = meta.await?; if let (Some(cubes), Some(meta)) = (cubes, meta) { diff --git a/rc_factory/src/traits.rs b/rc_factory/src/traits.rs index 0aa0dbe..6f8f850 100644 --- a/rc_factory/src/traits.rs +++ b/rc_factory/src/traits.rs @@ -1,6 +1,6 @@ #[async_trait::async_trait] pub trait VehicleFactoryAdapter: Send + Sync + 'static { - async fn vehicle(&self, id: u32) -> Result, Box>; + async fn vehicle(&self, id: i32) -> Result, Box>; async fn list(&self, query: libfj::robocraft::ListQuery) -> Result, Box>; async fn upload(&self, vehicle: VehicleUploadInfo) -> Result>; async fn rate_vehicle(&self, id: i32, combat: i32, cosmetic: i32) -> Result<(), Box>; diff --git a/rc_services_room/src/operations/crf_purchase.rs b/rc_services_room/src/operations/crf_purchase.rs index 3850b8f..715fb0b 100644 --- a/rc_services_room/src/operations/crf_purchase.rs +++ b/rc_services_room/src/operations/crf_purchase.rs @@ -27,7 +27,7 @@ async fn do_handling(params: ParameterTable<()>, user: &crate::UserTy, factory: if paid_cost < 0 { return Err(oj_rc_core::data::error_codes::WebServicesError::NotEnoughMoney as i16); } - let vehicle = factory.vehicle(factory_id as _).await.map_err(|e| { + let vehicle = factory.vehicle(factory_id).await.map_err(|e| { log::error!("Failed to retrieve vehicle {} (for copy-construct) from factory: {}", factory_id, e); oj_rc_core::data::error_codes::WebServicesError::DatabaseError as i16 })?;