public void FillPosRect(int ix, int iz) { SceneEntityPosRect entityRect; IntVector2 idx = IntVector2.Tmp; idx.x = ix; idx.y = iz; if (!_entityRects.TryGetValue(idx, out entityRect)) { int cntNpc = SceneEntityPosRect.EntityNpcNum; int cntMonster = SceneEntityPosRect.EntityMonsterNum; IntVector2 key = new IntVector2(ix, iz); if (!_posRectNpcCnt.TryGetValue(key, out cntNpc)) { cntNpc = SceneEntityPosRect.EntityNpcNum; _posRectNpcCnt[key] = cntNpc; } if (SceneEntityPosRect.EntityNpcNum != 0 && Mathf.Abs(ix) > 16 || Mathf.Abs(iz) > 16) // Add limitation on npc's count { cntNpc = 0; } entityRect = new SceneEntityPosRect(ix, iz); entityRect.Fill(cntNpc, cntMonster); _entityRects[key] = entityRect; } }