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}}]}`); } } |