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; }