< Summary

Class:BIWSaveController
Assembly:BuilderInWorld
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/BuilderMode/Controllers/BIWSaveController.cs
Covered lines:29
Uncovered lines:13
Coverable lines:42
Total lines:89
Line coverage:69% (29 of 42)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
BIWSaveController()0%110100%
Init()0%3.213071.43%
ExitEditMode()0%2100%
OnDestroy()0%3.333066.67%
ResetSaveTime()0%2100%
ResetNumberOfSaves()0%2100%
EnterEditMode(...)0%110100%
SetSaveActivation(...)0%220100%
CanSave()0%330100%
TryToSave()0%220100%
ForceSave()0%4.054085.71%
SaveSceneInfo(...)0%2100%
ConfirmPublishScene(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/BuilderMode/Controllers/BIWSaveController.cs

#LineLine coverage
 1using DCL.Controllers;
 2using UnityEngine;
 3
 4public class BIWSaveController : BIWController
 5{
 6    [SerializeField]
 2017    private float msBetweenSaves = 5000f;
 8
 9    [Header("Prefab reference")]
 10    public BuilderInWorldBridge builderInWorldBridge;
 11
 012    public int numberOfSaves { get; private set; } = 0;
 13
 14    private float nextTimeToSave;
 20115    private bool canActivateSave = true;
 16
 17    public override void Init()
 18    {
 1219        base.Init();
 20
 1221        if (builderInWorldBridge != null)
 322            builderInWorldBridge.OnKernelUpdated += TryToSave;
 23
 1224        if (HUDController.i.builderInWorldMainHud != null)
 25        {
 026            HUDController.i.builderInWorldMainHud.OnSaveSceneInfoAction += SaveSceneInfo;
 027            HUDController.i.builderInWorldMainHud.OnConfirmPublishAction += ConfirmPublishScene;
 28        }
 1229    }
 30
 31    public override void ExitEditMode()
 32    {
 033        ForceSave();
 034        base.ExitEditMode();
 035    }
 36
 37    private void OnDestroy()
 38    {
 339        if (builderInWorldBridge != null)
 340            builderInWorldBridge.OnKernelUpdated -= TryToSave;
 41
 342        if (HUDController.i.builderInWorldMainHud != null)
 43        {
 044            HUDController.i.builderInWorldMainHud.OnSaveSceneInfoAction -= SaveSceneInfo;
 045            HUDController.i.builderInWorldMainHud.OnConfirmPublishAction -= ConfirmPublishScene;
 46        }
 347    }
 48
 049    public void ResetSaveTime() { nextTimeToSave = 0; }
 50
 051    public void ResetNumberOfSaves() { numberOfSaves = 0; }
 52
 53    public override void EnterEditMode(ParcelScene scene)
 54    {
 355        base.EnterEditMode(scene);
 356        nextTimeToSave = DCLTime.realtimeSinceStartup + msBetweenSaves / 1000f;
 357        ResetNumberOfSaves();
 358    }
 59
 60    public void SetSaveActivation(bool isActive, bool tryToSave = false)
 61    {
 462        canActivateSave = isActive;
 463        if (tryToSave)
 264            TryToSave();
 465    }
 66
 1267    public bool CanSave() { return DCLTime.realtimeSinceStartup >= nextTimeToSave && isEditModeActive && canActivateSave
 68
 69    public void TryToSave()
 70    {
 971        if (CanSave())
 172            ForceSave();
 973    }
 74
 75    public void ForceSave()
 76    {
 277        if (!isEditModeActive || !canActivateSave)
 078            return;
 79
 280        builderInWorldBridge.SaveSceneState(sceneToEdit);
 281        nextTimeToSave = DCLTime.realtimeSinceStartup + msBetweenSaves / 1000f;
 282        HUDController.i.builderInWorldMainHud?.SceneSaved();
 283        numberOfSaves++;
 284    }
 85
 086    public void SaveSceneInfo(string sceneName, string sceneDescription, string sceneScreenshot) { builderInWorldBridge.
 87
 088    void ConfirmPublishScene(string sceneName, string sceneDescription, string sceneScreenshot) { ResetNumberOfSaves(); 
 89}