diff options
Diffstat (limited to 'socket.js')
| -rw-r--r-- | socket.js | 9 | 
1 files changed, 5 insertions, 4 deletions
| @@ -52,21 +52,22 @@ class Socket extends retryws {        this.send(`{"fetchRectangles":${JSON.stringify(coords)},"kind":"fetch","v":"3"}`);      } -    this.write = function(chars){ //chars is an list of triplets [ tile coordinate (y/x), pixel coordinate (y/x < 16), char ] +    this.write = function(chars){ //chars is an list of pairs [ pixel coordinate (y/x < 16), char ]        if (chars.length > 200){          throw "Too many characters to write";        }        for (var i=0; i<chars.length; i++){          let char = chars[i] -        chars[i] = [char[0][0],char[0][1],char[1][0],char[1][1],char[2]]; +        let coord = char[0]; +        chars[i] = [Math.floor(coord[0]/8),Math.floor(coord[1]/16),(coord[0] % 8),(coord[1] % 16),char[1]];          chars[i].splice(4,0,0);          chars[i].push(i);        }        this.send(`{"edits":${JSON.stringify(chars)},"kind":"write"}`);      } -    this.cursor = function(coords){ //coords is just one quadruplet analagous to fetch; I think the api could handle more, but it's unnecessary for now. -      this.send(`"kind":"cursor","positions":[${JSON.stringify(coords)}]}`); +    this.cursor = function(coords){ //coords is just one pair of char coords; I think the api could handle more, but it's unnecessary for now. +      this.send(`{"kind":"cursor","positions":[{"tileY":${Math.floor(coords[0]/8)},"tileX":${Math.floor(coords[1]/16)},"charY":${coords[0] % 8},"charX":${coords[1] % 16}}]}`);      }    } | 
