public static void AssignForceChangeMethod(IDataBlockType blockTypeCache)
        {
            //TODO: Better Support
            switch (blockTypeCache.GetShortName().ToLower())
            {
            case "fogsettings":
                blockTypeCache.RegisterOnChangeEvent(() =>
                {
                    if (Builder.CurrentFloor.IsBuilt)
                    {
                        Logger.Error("Fog Transition Code is not working properly, Skipping this one");
                        return;

                        var instance = EnvironmentStateManager.Current;
                        Logger.Error("Read Replicator");
                        var replicator = instance.m_stateReplicator;
                        Logger.Error("Read State");
                        var state = replicator.State;
                        Logger.Error("Read FogState");
                        var fogState = state.FogState;
                        Logger.Error("Read ID");
                        var id = fogState.FogDataID;
                        Logger.Error($"FogTransition {id}");

                        if (!GameDataBlockBase <FogSettingsDataBlock> .HasBlock(id))
                        {
                            id = RundownManager.ActiveExpedition.Expedition.FogSettings;
                        }

                        if (GameDataBlockBase <FogSettingsDataBlock> .HasBlock(id))
                        {
                            EnvironmentStateManager.SetFogSettingsLocal(id);
                        }
                    }
                });
                break;

            case "lightsettings":
                blockTypeCache.RegisterOnChangeEvent(() =>
                {
                    if (!Builder.CurrentFloor.IsBuilt)
                    {
                        return;
                    }

                    foreach (var zone in Builder.CurrentFloor.allZones)
                    {
                        foreach (var node in zone.m_courseNodes)
                        {
                            LG_BuildZoneLightsJob.ApplyLightSettings(node.m_lightsInNode, zone.m_lightSettings, false);
                        }
                    }
                });
                break;
            }
        }
        public static bool TryFindCache(string blockTypeName, out IDataBlockType cache)
        {
            var index = GetIndex(blockTypeName);

            if (index != -1)
            {
                cache = _DataBlockCache[index];
                return(true);
            }

            cache = null;
            return(false);
        }
 public PartialDataCache(IDataBlockType dbTypeCache)
 {
     DataBlockType = dbTypeCache;
 }