« get me outta code hell

use ESM module syntax & minor cleanups - tui-lib - Pure Node.js library for making visual command-line programs (ala vim, ncdu)
about summary refs log tree commit diff
path: root/ui/Sprite.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-05-12 17:42:09 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-05-13 12:48:36 -0300
commit6ea74c268a12325296a1d2e7fc31b02030ddb8bc (patch)
tree5da94d93acb64e7ab650d240d6cb23c659ad02ca /ui/Sprite.js
parente783bcf8522fa68e6b221afd18469c3c265b1bb7 (diff)
use ESM module syntax & minor cleanups
The biggest change here is moving various element classes under
more scope-specific directories, which helps to avoid circular
dependencies and is just cleaner to navigate and expand in the
future.

Otherwise this is a largely uncritical port to ESM module syntax!
There are probably a number of changes and other cleanups that
remain much needed.

Whenever I make changes to tui-lib it's hard to believe it's
already been <INSERT COUNTING NUMBER HERE> years since the
previous time. First commits are from January 2017, and the
code originates a month earlier in KAaRMNoD!
Diffstat (limited to 'ui/Sprite.js')
-rw-r--r--ui/Sprite.js69
1 files changed, 0 insertions, 69 deletions
diff --git a/ui/Sprite.js b/ui/Sprite.js
deleted file mode 100644
index 701f1b8..0000000
--- a/ui/Sprite.js
+++ /dev/null
@@ -1,69 +0,0 @@
-const ansi = require('../util/ansi')
-
-const DisplayElement = require('./DisplayElement')
-
-module.exports = class Sprite extends DisplayElement {
-  // "A sprite is a two-dimensional bitmap that is integrated into a larger
-  // scene." - Wikipedia
-  //
-  // Sprites are display objects that have a single texture that will not
-  // render outside of their parent.
-  //
-  // Sprites have a "real" position which overrides their "integer" position.
-  // This is so that motion can be more fluid (i.e., sprites don't need to
-  // move a whole number of terminal characters at a time).
-
-  constructor() {
-    super()
-
-    this.texture = []
-
-    this.realX = 0
-    this.realY = 0
-  }
-
-  set x(newX) { this.realX = newX }
-  set y(newY) { this.realY = newY }
-  get x() { return Math.round(this.realX) }
-  get y() { return Math.round(this.realY) }
-
-  drawTo(writable) {
-    if (this.textureAttributes) {
-      writable.write(ansi.setAttributes(this.textureAttributes))
-    }
-
-    for (let y = 0; y < this.textureHeight; y++) {
-      // Don't render above or below the parent's content area.
-      if (this.y + y >= this.parent.contentH || this.y + y < 0) continue
-
-      const right = this.x + this.textureWidth
-
-      const start = (this.x < 0) ? -this.x : 0
-      const end = (
-        (right > this.parent.contentW)
-        ? this.parent.contentW - right
-        : right)
-      const text = this.texture[y].slice(start, end)
-
-      writable.write(ansi.moveCursor(this.absY + y, this.absX + start))
-      writable.write(text)
-    }
-
-    if (this.textureAttributes) {
-      writable.write(ansi.resetAttributes())
-    }
-  }
-
-  fixLayout() {
-    this.w = this.textureWidth
-    this.h = this.textureHeight
-  }
-
-  get textureWidth() {
-    return Math.max(...this.texture.map(row => ansi.measureColumns(row)))
-  }
-
-  get textureHeight() {
-    return this.texture.length
-  }
-}