r6operators
Version:
r6operators is a collection of high-quality vectorized Rainbow Six: Siege Operator icons & metadata for Node.js
200 lines (152 loc) • 7.79 kB
Markdown

# r6operators

[](https://github.com/marcopixel/r6operators/stargazers)
[](https://github.com/marcopixel/r6operators/network)
[](https://github.com/marcopixel/r6operators)
r6operators is a collection of high-quality vectorized Rainbow Six: Siege Operator icons & metadata for Node.js.
This project started as way for people to get high-resolution operator icons for Rainbow Six: Siege operators, especially as vector graphics gained popularity in web development in the recent years. All icons have been remade by hand and they got the same aspect ratio & alignment for more consistent usage.
[https://r6operators.marcopixel.eu/](https://r6operators.marcopixel.eu/)
## Usage
#### 1. Install
Install the package with [npm](https://docs.npmjs.com/getting-started/what-is-npm):
```shell
npm install r6operators
```
#### 2. Use it
```js
import r6operators from "r6operators"
// default export
import { ace, getSVGIcon } from "r6operators"
// named exports
r6operators.alibi
// {
// id: 'alibi',
// name: 'Alibi',
// role: 'Defender',
// org: 'GIS',
// squad: 'VIPERSTRIKE',
// ratings: {
// health: 1,
// speed: 3,
// difficulty: 3
// },
// meta: {
// gender: 'f',
// country: 'it',
// season: 'Y3S2',
// height: 171,
// weight: 63,
// price: 10000
// },
// bio: {
// real_name: 'Aria de Luca',
// birthplace: 'Tripoli, Lybia'
// },
// svg: {
// contents: [SVG Contents],
// attributes: {
// xmlns: 'http://www.w3.org/2000/svg',
// viewBox: '0 0 350 350',
// style: 'enable-background:new 0 0 350 350',
// space: 'preserve',
// class: 'r6operators r6operators-alibi'
// }
// },
// toSVG: [Function]
// }
r6operators.alibi.toSVG()
// <svg class="r6operators r6operators-alibi" ... >...</svg>
r6operators.alibi.toSVG({ class: "large", "stroke-width": 2, color: "red" })
// <svg class="r6operators r6operators-alibi large" stroke-width="2" color="red" ... >...</svg>
```
You can also access the optimized SVG icons directly from `node_modules\r6operators\dist\icons` if you desire.
## Reference
### `r6operators.[name]`
An object containing all data about the operator, including the svg contents and attributes.
> Note: You can find all possible operator names in the [operators/index.ts](https://github.com/marcopixel/r6operators/blob/master/operators/index.ts) file
>
> Please keep in mind that the properties `bio`, `meta` and `ratings` are not available on recruits.
##### Example:
```js
r6operators.alibi
// {
// id: 'alibi',
// name: 'Alibi',
// role: 'Defender',
// org: 'GIS',
// squad: 'VIPERSTRIKE',
// ratings: {
// health: 1,
// speed: 3,
// difficulty: 3
// },
// meta: {
// gender: 'f',
// country: 'it',
// season: 'Y3S2',
// height: 171,
// weight: 63,
// price: 10000
// },
// bio: {
// real_name: 'Aria de Luca',
// birthplace: 'Tripoli, Lybia'
// },
// svg: {
// contents: [SVG Contents],
// attributes: {
// xmlns: 'http://www.w3.org/2000/svg',
// viewBox: '0 0 350 350',
// style: 'enable-background:new 0 0 350 350',
// space: 'preserve',
// class: 'r6operators r6operators-alibi'
// }
// },
// toSVG: [Function]
// }
r6operators.alibi.unit.toString()
// GIS
```
---
### `r6operators.[name].toSVG([attrs])`
Returns an SVG string of the operator icon.
#### Parameters
| Name | Type | Description |
| ------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `attrs` (optional) | Object | Key-value pairs in the `attrs` object will be mapped to HTML attributes on the `<svg>` tag (e.g. `{ foo: 'bar' }` maps to `foo="bar"`). All default attributes on the `<svg>` tag can be overridden with the `attrs` object. |
```js
r6operators.alibi.toSVG()
// <svg class="r6operators r6operators-alibi" ... >...</svg>
r6operators.alibi.toSVG({ class: "large" })
// <svg class="r6operators r6operators-alibi large" ... >...</svg>
r6operators.alibi.toSVG({ "stroke-width": 2, color: "red" })
// <svg class="r6operators r6operators-alibi" stroke-width="2" color="red" ... >...</svg>
```
---
### `getSVGIcon([op], [attrs])`
Returns an SVG string of the operator icon.
#### Parameters
| Name | Type | Description |
| ------------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `op` | Operator | Operator object |
| `attrs` (optional) | Object | Key-value pairs in the `attrs` object will be mapped to HTML attributes on the `<svg>` tag (e.g. `{ foo: 'bar' }` maps to `foo="bar"`). All default attributes on the `<svg>` tag can be overridden with the `attrs` object. |
```js
import { alibi, getSVGIcon } from "r6operators"
getSVGIcon(alibi)
// <svg class="r6operators r6operators-alibi" ... >...</svg>
getSVGIcon(alibi, { class: "large" })
// <svg class="r6operators r6operators-alibi large" ... >...</svg>
```
## Contributing
For more info on how to contribute please see the [contribution guidelines](https://github.com/marcopixel/r6operators/blob/master/CONTRIBUTING.md).
Caught a mistake or want to contribute to the documentation? [Edit this page on Github](https://github.com/marcopixel/r6operators/blob/master/README.md)
## Credits
- [@colebemis](https://github.com/colebemis) for his work on [feather](https://github.com/feathericons/feather), which gave me an awesome reference for this project.
- [@dtSniper](https://twitter.com/sniperdt) for creating the IQ, Thatcher, Fuze, Glaz, Bandit, Kapkan, Tachanka, Pulse, Sledge and Doc icons.
- [@joeyfjj](https://twitter.com/joeyfjj) for creating the Goyo, Mute, Smoke, Jäger and Blitz icons.
- [@danielwerg](https://github.com/danielwerg/) for creating the Fenrir, Brava and Solis icons and his awesome price calculator function.
- [@LaxisB](https://github.com/LaxisB/), [@NaughtyMuppet](https://github.com/NaughtyMuppet) & [@danielwerg](https://github.com/danielwerg) for general help on this project. <3
## License
r6operators is licensed under the [MIT License](https://github.com/marcopixel/r6operators/blob/master/LICENSE).
This project is not affiliated with Ubisoft Entertainment. Tom Clancy’s, Rainbow Six, The Soldier Icon, Ubisoft and the Ubisoft logo are trademarks of Ubisoft Entertainment.