void UpdateRenderedSpriteInner(CPos cell) { if (RenderContent.Contains(cell)) { UpdateRenderedSpriteInner(cell, RenderContent[cell]); } }
bool CellContainsMaxDensity(CPos c, ResourceType t) { if (!RenderContent.Contains(c)) { return(false); } if (FindClearSides(t, c) != ClearSides.None) { return(false); } var tile = RenderContent[c]; return(tile.Density > tile.Type.Info.MaxDensity / 2); }
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; }
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; } RenderContent[p] = t; }
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) { var sprites = Variants[t.Variant]; var frame = t.Density > t.Type.Info.MaxDensity / 2 ? 1 : 0; t.Sprite = t.Type.Variants.First().Value[sprites[frame]]; } else if (SpriteMap.TryGetValue(clear, out index)) { t.Sprite = t.Type.Variants.First().Value[index]; } else { t.Sprite = null; } } else { t.Sprite = null; } RenderContent[p] = t; }
bool CellContains(CPos c, ResourceType t) { return(RenderContent.Contains(c) && RenderContent[c].Type == t); }