Esempio n. 1
0
        void UpdateRenderedTileInner(CPos p)
        {
            if (!RenderContent.Contains(p))
            {
                return;
            }

            var t = RenderContent[p];

            if (t.Density > 0)
            {
                var clear = FindClearSides(t.Type, p);
                int index;

                if (clear == ClearSides.None && CellContainsMaxDensity(p, t.Type))
                {
                    var maxDensityClear = FindMaxDensityClearSides(t.Type, p);
                    if (SpriteMap.TryGetValue(maxDensityClear, out index))
                    {
                        t.Sprite = t.Type.Variants.First().Value[16 + index];
                    }

                    else
                    {
                        t.Sprite = null;                         //ресурс закончился. ничего не рендерим
                    }
                }
                else if (SpriteMap.TryGetValue(clear, out index))
                {
                    t.Sprite = t.Type.Variants.First().Value[index];
                }

                else
                {
                    t.Sprite = null;                      //ресурс закончился. ничего не рендерим
                }
            }
            else
            {
                t.Sprite = null;                  //ресурс закончился. ничего не рендерим
            }
            int temp = RenderContent.Index(p);

            RenderContent.entries[temp].Sprite = t.Sprite;
        }