tm-essentials
Version:
A lightweight library in Node.js that provides formatting features and little additions for any development related to Trackmania.
96 lines (65 loc) • 2.82 kB
Markdown
# Trackmania Essentials (for Node.js)
[](https://npmjs.com/tm-essentials)
[](https://github.com/GreepTheSheep/node-tm-essentials/releases/latest)
[](https://github.com/GreepTheSheep/node-tm-essentials/actions/workflows/test.yml)
A light-weight library that provides formatting features for Trackmania games.
## Installation
### Node.js
```bash
npm install tm-essentials
```
Then you can retrieve the library with:
```js
const TMEssentials = require('tm-essentials');
```
### Browser
```html
<script src="https://unpkg.com/tm-essentials"></script>
```
Then you can retrieve the library from the global variable `TMEssentials`
## Text formatting
`TextFormatter.deformat()`
```js
let formatted = "$F00T$D01M$C13U$A14.$815K$727r$528a$329z$23By$03CC$03Co$04Bl$059o$068r$077s$085 $094v$0A30$0B1.$0C01";
let deformatted = TextFormatter.deformat(formatted);
console.log(deformatted);
// Output: TMU.KrazyColors v0.1
```
`TextFormatter.formatAnsi()`
Will parse the color formatting and convert it to ANSI escape codes. Works best on console output.
```js
let formatted = "$F00T$D01M$C13U$A14.$815K$727r$528a$329z$23By$03CC$03Co$04Bl$059o$068r$077s$085 $094v$0A30$0B1.$0C01";
let ansiFormat = TextFormatter.formatAnsi(formatted);
console.log(deformatted);
```
This will not deformat basic formatting codes, but you can combine them with `TextFormatter.deformat()` to get the original text.
```js
let formatted = "$F00T$D01M$C13U$A14.$815K$727r$528a$329z$23By$03CC$03Co$04Bl$059o$068r$077s$085 $094v$0A30$0B1.$0C01";
let ansiFormat = TextFormatter.deformat(TextFormatter.formatAnsi(formatted));
console.log(deformatted);
```
## Time formatting
`Time.time` - Total milliseconds as integer value.
`Time.toTmString()`
```js
Time.fromMilliseconds(1337).toTmString(); // "0:01.337"
Time.fromMilliseconds(1337).toTmString(true); // Will use hundredths as output: "0:01.33"
Time.fromSeconds(13.37).toTmString(); // "0:13.370"
Time.fromMinutes(13.37).toTmString(); // "13:37.000"
Time.fromHours(13.37).toTmString(); // "13:37:00.000"
Time.noTime.toTmString(); // "-:--.---"
```
## Accounts formatting
`Accounts.toAccountId()`
```js
Accounts.toAccountId("Jtmn3kBnSSadky_mLNhp_A") // "26d9a7de-4067-4926-9d93-2fe62cd869fc"
```
`Accounts.toLogin()`
```js
Accounts.toLogin("26d9a7de-4067-4926-9d93-2fe62cd869fc") // "Jtmn3kBnSSadky_mLNhp_A"
```
---
# Contributions
<div align="center">

</div>