< Summary

Class:DCL.DataStoreRef[T]
Assembly:DataStore
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/DataStore/DataStore.cs
Covered lines:1
Uncovered lines:0
Coverable lines:1
Total lines:83
Line coverage:100% (1 of 1)
Covered branches:0
Total branches:0

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/DataStore/DataStore.cs

#LineLine coverage
 1using DCL.ServerTime;
 2using System;
 3using System.Collections.Generic;
 4
 5namespace DCL
 6{
 7    public enum AppMode
 8    {
 9        DEFAULT,
 10        BUILDER_IN_WORLD_EDITION,
 11    }
 12
 13    public class DataStore
 14    {
 15        public static DataStore i { get; private set; } = new ();
 16
 17        private readonly Dictionary<Type, object> dataStores = new ();
 18
 19        public void Set<T>(T data) where T: class
 20        {
 21            if (!dataStores.ContainsKey(typeof(T)))
 22                dataStores.Add(typeof(T), data);
 23            else
 24                dataStores[typeof(T)] = data;
 25        }
 26
 27        public T Get<T>() where T: class, new()
 28        {
 29            if (!dataStores.ContainsKey(typeof(T)))
 30                Set(new T());
 31
 32            return dataStores[typeof(T)] as T;
 33        }
 34
 35        public static void Clear() =>
 36            i = new DataStore();
 37
 38        public DataStore_World world => i.Get<DataStore_World>();
 39        public DataStore_Common common => i.Get<DataStore_Common>();
 40        public DataStore_Realm realm => i.Get<DataStore_Realm>();
 41        public DebugConfig debugConfig => i.Get<DebugConfig>();
 42        public DataStore_Quests Quests => i.Get<DataStore_Quests>();
 43        public DataStore_HUDs HUDs => i.Get<DataStore_HUDs>();
 44        public DataStore_Player player => i.Get<DataStore_Player>();
 45        public DataStore_AvatarsLOD avatarsLOD => i.Get<DataStore_AvatarsLOD>();
 46        public DataStore_VirtualAudioMixer virtualAudioMixer => i.Get<DataStore_VirtualAudioMixer>();
 47        public DataStore_Screen screen => i.Get<DataStore_Screen>();
 48        public DataStore_WSCommunication wsCommunication => i.Get<DataStore_WSCommunication>();
 49        public DataStore_WorldObjects sceneWorldObjects => i.Get<DataStore_WorldObjects>();
 50        public DataStore_ExploreV2 exploreV2 => i.Get<DataStore_ExploreV2>();
 51        public DataStore_FeatureFlag featureFlags => i.Get<DataStore_FeatureFlag>();
 52        public DataStore_Camera camera => i.Get<DataStore_Camera>();
 53        public DataStore_Settings settings => i.Get<DataStore_Settings>();
 54        public DataStore_SkyboxConfig skyboxConfig => i.Get<DataStore_SkyboxConfig>();
 55        public WorldTimer worldTimer => i.Get<WorldTimer>();
 56        public DataStore_Performance performance => i.Get<DataStore_Performance>();
 57        public DataStore_ExperiencesViewer experiencesViewer => i.Get<DataStore_ExperiencesViewer>();
 58        public DataStore_Emotes emotes => i.Get<DataStore_Emotes>();
 59        public DataStore_EmotesCustomization emotesCustomization => i.Get<DataStore_EmotesCustomization>();
 60        public DataStore_SceneBoundariesChecker sceneBoundariesChecker => i.Get<DataStore_SceneBoundariesChecker>();
 61        public DataStore_ECS7 ecs7 => i.Get<DataStore_ECS7>();
 62        public DataStore_VoiceChat voiceChat => i.Get<DataStore_VoiceChat>();
 63        public DataStore_TextureConfig textureConfig => i.Get<DataStore_TextureConfig>();
 64        public DataStore_FriendNotifications friendNotifications => i.Get<DataStore_FriendNotifications>();
 65        public DataStore_AvatarConfig avatarConfig => i.Get<DataStore_AvatarConfig>();
 66        public DataStore_Rpc rpc => i.Get<DataStore_Rpc>();
 67        public DataStore_Channels channels => i.Get<DataStore_Channels>();
 68        public DataStore_WorldBlockers worldBlockers => i.Get<DataStore_WorldBlockers>();
 69        public DataStore_Notifications notifications => i.Get<DataStore_Notifications>();
 70        public DataStore_Outliner outliner => i.Get<DataStore_Outliner>();
 71    }
 72
 73    public struct DataStoreRef<T> where T: class, new()
 74    {
 75        private T @ref;
 76
 1418877        public T Ref => @ref ??= DataStore.i.Get<T>();
 78    }
 79
 80}
 81
 82
 83

Methods/Properties

Ref()