mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-23 14:01:37 +00:00
Refactor syncback logic for camera removal handling
- Simplified the logic for removing the current camera by using a default value for sync_current_camera, improving code readability. - Enhanced the handling of camera references within the syncback loop, ensuring that the camera is only removed when explicitly set to do so. - Updated comments for clarity on the default behavior regarding camera removal in the syncback process.
This commit is contained in:
parent
fe2bf358e7
commit
44344f4014
1 changed files with 18 additions and 14 deletions
|
|
@ -174,21 +174,25 @@ pub fn syncback_loop_with_stats(
|
|||
}
|
||||
|
||||
// Handle removing the current camera.
|
||||
if let Some(syncback_rules) = &project.syncback_rules {
|
||||
if !syncback_rules.sync_current_camera.unwrap_or_default() {
|
||||
log::debug!("Removing CurrentCamera from new DOM");
|
||||
let mut camera_ref = None;
|
||||
for child_ref in new_tree.root().children() {
|
||||
let inst = new_tree.get_by_ref(*child_ref).unwrap();
|
||||
if inst.class == "Workspace" {
|
||||
camera_ref = inst.properties.get(&ustr("CurrentCamera"));
|
||||
break;
|
||||
}
|
||||
// syncCurrentCamera defaults to false, meaning we remove the camera by default
|
||||
let sync_current_camera = project
|
||||
.syncback_rules
|
||||
.as_ref()
|
||||
.and_then(|s| s.sync_current_camera)
|
||||
.unwrap_or(false);
|
||||
if !sync_current_camera {
|
||||
log::debug!("Removing CurrentCamera from new DOM");
|
||||
let mut camera_ref = None;
|
||||
for child_ref in new_tree.root().children() {
|
||||
let inst = new_tree.get_by_ref(*child_ref).unwrap();
|
||||
if inst.class == "Workspace" {
|
||||
camera_ref = inst.properties.get(&ustr("CurrentCamera"));
|
||||
break;
|
||||
}
|
||||
if let Some(Variant::Ref(camera_ref)) = camera_ref {
|
||||
if new_tree.get_by_ref(*camera_ref).is_some() {
|
||||
new_tree.destroy(*camera_ref);
|
||||
}
|
||||
}
|
||||
if let Some(Variant::Ref(camera_ref)) = camera_ref {
|
||||
if new_tree.get_by_ref(*camera_ref).is_some() {
|
||||
new_tree.destroy(*camera_ref);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue