diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/README.md b/README.md deleted file mode 100644 index 6671109..0000000 --- a/README.md +++ /dev/null @@ -1,95 +0,0 @@ -## Tomato Sauce - -Draw stuff via telnet - -## How to run - -You will need [Node.js][node] installed, at least version 8. Install -dependencies by running `npm install` from the root of the project -and start the server by running `npm start`. It will listen on port 9999 -by default. - -## Configuration variables - -Tomato Sauce can be configured using env variables: - -* `TOMATO_SAUCE_PORT`: The port to listen on. Defauts to 9999. -* `TOMATO_SAUCE_FREQUENCY`: How often it will send a screen in - miliseconds. Defaults to 333. -* `TOMATO_SAUCE_MODULATION`: How much the modulation counter will - increase per round. Defaults to 5. -* `TOMATO_SAUCE_SCREEN_PATH`: Path from which we will load screens. It - defaults to `{project_root}/lib/screens` -* `TOMATO_SAUCE_RENDERER_PATH`: Path from which we will load renderers. It - defaults to `{project_root}/lib/renderers` - -## Make your own screens - -A screen is a function that will receive a modulation value from 0-255, -the width of the viewport, the height of the viewport, and a renderer -function, and it returns a string that consists of the commands that -will be sent to the socket. - - * `IScreen(modulation <int>, width <int>, height <int>, renderer - <IRenderer>) -> payload <string>` - -It should output the required commands that telnet needs to move the -cursor and draw. For convenience, a renderer function is passed so -calculating color should not be a part of the screen, just moving the -cursor around and calling specific colors. - -## Make your own renderers - -The included renderers are wrappers to some common ways of obtaining -colors in the terminal: ANSI, 256 colors, 24-bit colors, and a fake -color string that uses incorrect color strings to generate random -variations. - -You can build your own renderer by building a function that receives a -red, green, and blue component from 0 to 255 and returns the escape -codes to generate the color. - - * `IRenderer(red <int>, green <int>, blue <int>) -> - colorString <string>` - -## Using as a library - -The binary just serves as a wrapper to read configuration, and as a -bridge to the console. It consumes `lib/tomato_sauce`. All configuration -is optional, and should be passed as an object on instantiation. The -instance is an event emitter that will emit a `listening` event with -the server data, and an `error` event in case something goes wrong. - -``` -const TomatoSauce = require('tomato-sauce'); - -const tomatoSauce = new TomatoSauce(config); - -tomatoSauce.on('listening', () => { - - const address = event.data.server.address(); - console.log(`Tomato Sauce listening on: ${address.address}:${address.port}`); -}); - -tomatoSauce.on('error', (error) => { - - console.error(error); -}); - -tomatoSauce.run(); -``` - -### Configuration Values - -The config object should be a simple object with these keys (All are -optional.) - - * `port`: The port to listen on (Defaults to 9999) - * `frequency`: How often we'll send a new frame in milliseconds - (Defaults to 333) - * `modulation`: How fast the modulation counter will be increased - (Defaults to 5) - * `screens`: An array containing the screen functions (Defaults to []) - * `renderers`: An array containing the renderer functions (Defaults to []) - -[node]: https://nodejs.org/en/ |