All files / player/rendering ascii-renderer.ts

41.67% Statements 5/12
66.67% Branches 4/6
66.67% Functions 2/3
41.67% Lines 5/12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 391x               1x       3x 3x                 2x                                
import { Renderer, IRendererParameters } from "./renderer";
import { PanelFrame } from "../../types";
 
export interface AsciiRendererParameter extends IRendererParameters  {
  characterBitOn?: string,
  characterBitOff?: string
}
 
export default class AsciiRenderer extends Renderer {
  protected _parameters: AsciiRendererParameter;
 
  constructor(parameters: AsciiRendererParameter) {
    super(parameters);
    this._parameters = {
      elementId: parameters.elementId,
      element: parameters.element,
      characterBitOn: parameters.characterBitOn ? parameters.characterBitOn : "X",
      characterBitOff: parameters.characterBitOff ? parameters.characterBitOff : " "
    };
  }
 
  public get parameters() {
    return this._parameters;
  }
 
  render(display: PanelFrame): void {
    super.render(display);
    let output = "";
    for(var i = 0; i < display.length; i++) {
        for(var j = 0; j < display[i].length; j++) {
          output += display[i][j] == 1 ? 
            this._parameters.characterBitOn: 
            this._parameters.characterBitOff;
        }
      output += '\n';
    }
    this._parameters.element.innerHTML = output; 
  }
}