diff --git a/rbx_binary/src/serializer/state.rs b/rbx_binary/src/serializer/state.rs index acecadca8..504403914 100644 --- a/rbx_binary/src/serializer/state.rs +++ b/rbx_binary/src/serializer/state.rs @@ -449,7 +449,7 @@ impl<'dom, 'db, W: Write> SerializerState<'dom, 'db, W> { // There's no assurance that the default SharedString value // will actually get serialized inside of the SSTR chunk, so we // check here just to make sure. - if let Cow::Owned(Variant::SharedString(sstr)) = &default_value { + if let Variant::SharedString(sstr) = default_value.borrow() { if !self.shared_string_ids.contains_key(sstr) { self.shared_string_ids.insert(sstr.clone(), 0); self.shared_strings.push(sstr.clone()); diff --git a/rbx_dom_lua/src/database.json b/rbx_dom_lua/src/database.json index 4047d1b81..6066ab1d8 100644 --- a/rbx_dom_lua/src/database.json +++ b/rbx_dom_lua/src/database.json @@ -511,6 +511,9 @@ ] } }, + "ModelMeshData": { + "SharedString": "" + }, "ModelMeshSize": { "Vector3": [ 0.0, @@ -22232,6 +22235,9 @@ ] } }, + "ModelMeshData": { + "SharedString": "" + }, "ModelMeshSize": { "Vector3": [ 0.0, @@ -27034,6 +27040,9 @@ ] } }, + "ModelMeshData": { + "SharedString": "" + }, "ModelMeshSize": { "Vector3": [ 0.0, @@ -30797,6 +30806,9 @@ "Superclass": "PartOperation", "Properties": {}, "DefaultProperties": { + "AeroMeshData": { + "SharedString": "" + }, "Anchored": { "Bool": false }, @@ -30877,6 +30889,9 @@ "ChildData": { "BinaryString": "" }, + "ChildData2": { + "SharedString": "" + }, "CollisionGroup": { "String": "Default" }, @@ -30954,6 +30969,12 @@ "MeshData": { "BinaryString": "" }, + "MeshData2": { + "SharedString": "" + }, + "PhysicalConfigData": { + "SharedString": "" + }, "PhysicsData": { "BinaryString": "" }, @@ -35598,6 +35619,9 @@ } }, "DefaultProperties": { + "AeroMeshData": { + "SharedString": "" + }, "Anchored": { "Bool": false }, @@ -35762,6 +35786,9 @@ "MeshId": { "Content": "" }, + "PhysicalConfigData": { + "SharedString": "" + }, "PhysicsData": { "BinaryString": "" }, @@ -36534,6 +36561,9 @@ ] } }, + "ModelMeshData": { + "SharedString": "" + }, "ModelMeshSize": { "Vector3": [ 0.0, @@ -37314,6 +37344,9 @@ "Superclass": "PartOperation", "Properties": {}, "DefaultProperties": { + "AeroMeshData": { + "SharedString": "" + }, "Anchored": { "Bool": true }, @@ -37394,6 +37427,9 @@ "ChildData": { "BinaryString": "" }, + "ChildData2": { + "SharedString": "" + }, "CollisionGroup": { "String": "Default" }, @@ -37471,6 +37507,12 @@ "MeshData": { "BinaryString": "" }, + "MeshData2": { + "SharedString": "" + }, + "PhysicalConfigData": { + "SharedString": "" + }, "PhysicsData": { "BinaryString": "" }, @@ -39644,6 +39686,9 @@ } }, "DefaultProperties": { + "AeroMeshData": { + "SharedString": "" + }, "Anchored": { "Bool": false }, @@ -39724,6 +39769,9 @@ "ChildData": { "BinaryString": "" }, + "ChildData2": { + "SharedString": "" + }, "CollisionGroup": { "String": "Default" }, @@ -39801,6 +39849,12 @@ "MeshData": { "BinaryString": "" }, + "MeshData2": { + "SharedString": "" + }, + "PhysicalConfigData": { + "SharedString": "" + }, "PhysicsData": { "BinaryString": "" }, @@ -65305,6 +65359,9 @@ ] } }, + "ModelMeshData": { + "SharedString": "" + }, "ModelMeshSize": { "Vector3": [ 0.0, @@ -68951,6 +69008,9 @@ "Superclass": "PartOperation", "Properties": {}, "DefaultProperties": { + "AeroMeshData": { + "SharedString": "" + }, "Anchored": { "Bool": false }, @@ -69031,6 +69091,9 @@ "ChildData": { "BinaryString": "" }, + "ChildData2": { + "SharedString": "" + }, "CollisionGroup": { "String": "Default" }, @@ -69108,6 +69171,12 @@ "MeshData": { "BinaryString": "" }, + "MeshData2": { + "SharedString": "" + }, + "PhysicalConfigData": { + "SharedString": "" + }, "PhysicsData": { "BinaryString": "" }, @@ -74842,6 +74911,9 @@ ] } }, + "ModelMeshData": { + "SharedString": "" + }, "ModelMeshSize": { "Vector3": [ 0.0, @@ -75024,6 +75096,9 @@ ] } }, + "ModelMeshData": { + "SharedString": "" + }, "ModelMeshSize": { "Vector3": [ 0.0, @@ -75128,6 +75203,12 @@ "HSRAssetId": { "Content": "" }, + "HSRData": { + "SharedString": "" + }, + "HSRMeshIdData": { + "SharedString": "" + }, "HistoryId": { "UniqueId": "00000000000000000000000000000000" }, @@ -75422,6 +75503,12 @@ "HSRAssetId": { "Content": "" }, + "HSRData": { + "SharedString": "" + }, + "HSRMeshIdData": { + "SharedString": "" + }, "HistoryId": { "UniqueId": "00000000000000000000000000000000" }, @@ -75602,6 +75689,12 @@ "HSRAssetId": { "Content": "" }, + "HSRData": { + "SharedString": "" + }, + "HSRMeshIdData": { + "SharedString": "" + }, "HistoryId": { "UniqueId": "00000000000000000000000000000000" }, diff --git a/rbx_reflection_database/CHANGELOG.md b/rbx_reflection_database/CHANGELOG.md index 769ac318e..cbdb9a31e 100644 --- a/rbx_reflection_database/CHANGELOG.md +++ b/rbx_reflection_database/CHANGELOG.md @@ -3,7 +3,9 @@ ## Unreleased Changes * Update to Roblox version 647. * `Model.WorldPivotData`'s default value is now `null`. ([#450]) +* `SharedString` properties now have default values. ([#458]) +[#458]: https://github.com/rojo-rbx/rbx-dom/pull/458 [#450]: https://github.com/rojo-rbx/rbx-dom/pull/450 ## 0.2.12+roblox-638 (2024-08-22) diff --git a/rbx_reflection_database/database.msgpack b/rbx_reflection_database/database.msgpack index 2aeee98d9..f28eaf475 100644 Binary files a/rbx_reflection_database/database.msgpack and b/rbx_reflection_database/database.msgpack differ diff --git a/rbx_reflector/src/defaults.rs b/rbx_reflector/src/defaults.rs index f62976023..fadf0462b 100644 --- a/rbx_reflector/src/defaults.rs +++ b/rbx_reflector/src/defaults.rs @@ -62,8 +62,8 @@ fn apply_instance_defaults(database: &mut ReflectionDatabase, instance: &Instanc let property_name = Cow::Owned(property_name.clone()); match property_value.ty() { - // We skip these types because their defaults aren't useful. - VariantType::Ref | VariantType::SharedString => continue, + // We skip the Ref type because its default value is not useful. + VariantType::Ref => continue, _ => class .default_properties