mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-23 22:11:38 +00:00
Implement live syncback fixes addressing multiple issues
- Added explicit encoding for Workspace attributes and tags in `encodeService.lua` to prevent data loss during syncback. - Filtered non-serializable properties, including `ClockTime`, in `build_dom_from_chunks` to ensure accurate data handling. - Resolved a leak of `Rojo_Ref_CurrentCamera` by filtering deferred referents after camera destruction in `syncback_loop`. - Truncated float values to f32 precision in `UnresolvedValue::from_variant` to match rbxl storage format, improving data consistency. These changes enhance the reliability and accuracy of the live syncback process, addressing critical issues identified in previous implementations.
This commit is contained in:
parent
a75a1443c0
commit
7dc4f52793
6 changed files with 180 additions and 5 deletions
|
|
@ -149,6 +149,17 @@ pub struct RefLinks {
|
|||
pub placeholder_to_source_and_target: HashMap<String, (Ref, Ref)>,
|
||||
}
|
||||
|
||||
impl RefLinks {
|
||||
pub fn remove_ref(&mut self, source: Ref, prop_name: &str) {
|
||||
if let Some(links) = self.path_links.get_mut(&source) {
|
||||
links.retain(|link| link.name.as_str() != prop_name);
|
||||
}
|
||||
if let Some(links) = self.id_links.get_mut(&source) {
|
||||
links.retain(|link| link.name.as_str() != prop_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Eq)]
|
||||
struct PathRefLink {
|
||||
name: Ustr,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue