< Summary

Class:BIWSaveController
Assembly:BuilderInWorld
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/BuilderMode/Controllers/BIWSaveController.cs
Covered lines:33
Uncovered lines:14
Coverable lines:47
Total lines:108
Line coverage:70.2% (33 of 47)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
BIWSaveController()0%2100%
GetSaveTimes()0%110100%
Initialize(...)0%330100%
Dispose()0%330100%
ResetSaveTime()0%2100%
ResetNumberOfSaves()0%2100%
EnterEditMode(...)0%110100%
ExitEditMode()0%4.123050%
SetSaveActivation(...)0%6200%
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 System;
 2using DCL;
 3using DCL.Controllers;
 4using UnityEngine;
 5
 6public interface IBIWSaveController : IBIWController
 7{
 8    int GetSaveTimes();
 9    void SetSaveActivation(bool isActive, bool tryToSave = false);
 10    void TryToSave();
 11    void ForceSave();
 12}
 13
 14public class BIWSaveController : BIWController, IBIWSaveController
 15{
 16    private const float MS_BETWEEN_SAVES = 5000f;
 17
 018    public int numberOfSaves { get; set; } = 0;
 19
 20    private BuilderInWorldBridge bridge;
 21
 22    private float nextTimeToSave;
 023    private bool canActivateSave = true;
 124    public int GetSaveTimes() { return numberOfSaves; }
 25
 26    public override void Initialize(BIWContext context)
 27    {
 2828        base.Initialize(context);
 29
 2830        bridge = context.sceneReferences.builderInWorldBridge;
 2831        if (bridge != null)
 2832            bridge.OnKernelUpdated += TryToSave;
 33
 2834        if (HUDController.i.builderInWorldMainHud != null)
 35        {
 2536            HUDController.i.builderInWorldMainHud.OnSaveSceneInfoAction += SaveSceneInfo;
 2537            HUDController.i.builderInWorldMainHud.OnConfirmPublishAction += ConfirmPublishScene;
 38        }
 2839    }
 40
 41    public override void Dispose()
 42    {
 2543        base.Dispose();
 44
 2545        if (bridge != null)
 2546            bridge.OnKernelUpdated -= TryToSave;
 47
 2548        if (HUDController.i.builderInWorldMainHud != null)
 49        {
 2550            HUDController.i.builderInWorldMainHud.OnSaveSceneInfoAction -= SaveSceneInfo;
 2551            HUDController.i.builderInWorldMainHud.OnConfirmPublishAction -= ConfirmPublishScene;
 52        }
 2553    }
 54
 055    public void ResetSaveTime() { nextTimeToSave = 0; }
 56
 057    public void ResetNumberOfSaves() { numberOfSaves = 0; }
 58
 59    public override void EnterEditMode(IParcelScene scene)
 60    {
 1161        base.EnterEditMode(scene);
 1162        nextTimeToSave = DCLTime.realtimeSinceStartup + MS_BETWEEN_SAVES / 1000f;
 1163        ResetNumberOfSaves();
 1164    }
 65
 66    public override void ExitEditMode()
 67    {
 468        if (numberOfSaves > 0)
 69        {
 070            ForceSave();
 71
 072            HUDController.i.builderInWorldMainHud?.SaveSceneInfo();
 073            ResetNumberOfSaves();
 74        }
 75
 476        base.ExitEditMode();
 477    }
 78
 79    public void SetSaveActivation(bool isActive, bool tryToSave = false)
 80    {
 081        canActivateSave = isActive;
 082        if (tryToSave)
 083            TryToSave();
 084    }
 85
 686    public bool CanSave() { return DCLTime.realtimeSinceStartup >= nextTimeToSave && isEditModeActive && canActivateSave
 87
 88    public void TryToSave()
 89    {
 390        if (CanSave())
 291            ForceSave();
 392    }
 93
 94    public void ForceSave()
 95    {
 396        if (!isEditModeActive || !canActivateSave)
 097            return;
 98
 399        bridge.SaveSceneState(sceneToEdit);
 3100        nextTimeToSave = DCLTime.realtimeSinceStartup + MS_BETWEEN_SAVES / 1000f;
 3101        HUDController.i.builderInWorldMainHud?.SceneSaved();
 3102        numberOfSaves++;
 3103    }
 104
 0105    public void SaveSceneInfo(string sceneName, string sceneDescription, string sceneScreenshot) { bridge.SaveSceneInfo(
 106
 0107    internal void ConfirmPublishScene(string sceneName, string sceneDescription, string sceneScreenshot) { ResetNumberOf
 108}