Exemple #1
0
        public static void OnOutputFinalized_WriteLocksInThread(Type type, TileData tileData, IApplyData applyData, StopToken stop)
        {
            Dictionary <Lock, LockDataSet> lockDatasDict;

            if (!lockDatas.TryGetValue(tileData, out lockDatasDict))
            {
                return;
            }

            foreach (var kvp in lockDatasDict)
            {
                Lock        lk       = kvp.Key;
                LockDataSet lockData = kvp.Value;

                if (!lk.locked)
                {
                    continue;
                }

                bool relativeHeight = lk.relativeHeight;
                if (lk.IsIntersecting(tileData.area.active) && !lk.IsContained(tileData.area.active))
                {
                    relativeHeight = false;
                }

                lockData.WriteInThread(applyData, relativeHeight);
            }
        }