Exemplo n.º 1
0
        private IEnumerator ClearCacheQueue()
        {
            yield return(0);

            do
            {
                var list = clearCacheQueue.ToList();
                foreach (var buildingId in list)
                {
                    if (--cooldown > 0)
                    {
                        yield return(0);
                    }
                    if (BoardsContainers[buildingId, 0, 0] is BoardBunchContainerBuilding[] bbcb)
                    {
                        foreach (var item in bbcb)
                        {
                            item.ClearCache();
                        }
                    }
                    WTSBuildingDataCaches.PurgeBuildingCache(buildingId);
                    clearCacheQueue.Remove(buildingId);
                    yield return(0);
                }
            } while (clearCacheQueue.Count > 0);
            currentCacheCoroutine = null;
        }
Exemplo n.º 2
0
#pragma warning disable IDE0051 // Remover membros privados não utilizados
        private static void OnNodeChanged(ref ushort node)
        {
            ushort node_ = node;

            SimulationManager.instance.AddAction(() => EventNodeChanged?.Invoke(node_)).Execute();

            WTSBuildingDataCaches.PurgeStopCache(node);
        }
        public static void BeforeRemoveStop(ref TransportLine __instance, int index, ushort lineID)
        {
            if ((__instance.m_flags & TransportLine.Flags.Temporary) != TransportLine.Flags.None || __instance.m_stops > NetManager.MAX_NODE_COUNT)
            {
                return;
            }
            ushort num;

            if (index == -1)
            {
                index += __instance.CountStops(lineID);
            }
            num = __instance.m_stops;
            for (int i = 0; i < index && num <= NetManager.MAX_NODE_COUNT; i++)
            {
                num = TransportLine.GetNextStop(num);
                if (num == __instance.m_stops)
                {
                    break;
                }
            }
            WTSBuildingDataCaches.PurgeStopCache(num);
        }
 public static void AfterRemoveLine(ushort lineID) => WTSBuildingDataCaches.PurgeLineCache(lineID);