Created
October 4, 2018 20:32
-
-
Save edg-l/dce550680ad7f90e7025e0da2b6d5349 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function(context, a) | |
{ | |
a = a || {} | |
var internalBuffer = [] | |
var charPatterns = { | |
a: [ | |
[0, 0, 1, 0, 0], | |
[0, 1, 0, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 1, 1, 1, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1] | |
], | |
b: [ | |
[1, 1, 1, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 1, 1, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 1, 1, 1, 0] | |
], | |
c: [ | |
[0, 1, 1, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0] | |
], | |
d: [ | |
[1, 1, 1, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 1, 1, 1, 0] | |
], | |
e: [ | |
[1, 1, 1, 1, 1], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 1, 1, 1, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 1, 1, 1, 1] | |
], | |
f: [ | |
[1, 1, 1, 1, 1], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 1, 1, 1, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0] | |
], | |
g: [ | |
[0, 1, 1, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 1, 1, 1], | |
[1, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0] | |
], | |
h: [ | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 1, 1, 1, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1] | |
], | |
i: [ | |
[1, 1, 1, 1, 1], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[1, 1, 1, 1, 1] | |
], | |
j: [ | |
[1, 1, 1, 1, 1], | |
[0, 0, 0, 1, 0], | |
[0, 0, 0, 1, 0], | |
[0, 0, 0, 1, 0], | |
[1, 0, 0, 1, 0], | |
[1, 0, 0, 1, 0], | |
[0, 1, 1, 0, 0] | |
], | |
k: [ | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 1, 0], | |
[1, 0, 1, 0, 0], | |
[1, 1, 0, 0, 0], | |
[1, 0, 1, 0, 0], | |
[1, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1] | |
], | |
l: [ | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 1, 1, 1, 1] | |
], | |
m: [ | |
[1, 0, 0, 0, 1], | |
[1, 1, 0, 1, 1], | |
[1, 0, 1, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1] | |
], | |
n: [ | |
[1, 0, 0, 0, 1], | |
[1, 1, 0, 0, 1], | |
[1, 0, 1, 0, 1], | |
[1, 0, 0, 1, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1] | |
], | |
o: [ | |
[0, 1, 1, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0] | |
], | |
p: [ | |
[1, 1, 1, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 1, 1, 1, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0] | |
], | |
q: [ | |
[0, 1, 1, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 1, 0, 1], | |
[1, 0, 0, 1, 1], | |
[0, 1, 1, 1, 0] | |
], | |
r: [ | |
[1, 1, 1, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 1, 1, 1, 0], | |
[1, 0, 1, 0, 0], | |
[1, 0, 0, 1, 0], | |
[1, 0, 0, 0, 1] | |
], | |
s: [ | |
[0, 1, 1, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 0], | |
[0, 1, 1, 1, 0], | |
[0, 0, 0, 0, 1], | |
[0, 0, 0, 0, 1], | |
[1, 1, 1, 1, 0] | |
], | |
t: [ | |
[1, 1, 1, 1, 1], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0] | |
], | |
u: [ | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[0, 1, 1, 1, 0] | |
], | |
v: [ | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[0, 1, 0, 1, 0], | |
[0, 0, 1, 0, 0] | |
], | |
w: [ | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[1, 0, 1, 0, 1], | |
[1, 0, 1, 0, 1], | |
[1, 0, 1, 0, 1], | |
[0, 1, 0, 1, 0] | |
], | |
x: [ | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[0, 1, 0, 1, 0], | |
[0, 0, 1, 0, 0], | |
[0, 1, 0, 1, 0], | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1] | |
], | |
y: [ | |
[1, 0, 0, 0, 1], | |
[1, 0, 0, 0, 1], | |
[0, 1, 0, 1, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0] | |
], | |
z: [ | |
[1, 1, 1, 1, 1], | |
[0, 0, 0, 0, 1], | |
[0, 0, 0, 1, 0], | |
[0, 0, 1, 0, 0], | |
[0, 1, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 1, 1, 1, 1] | |
], | |
"!": [ | |
[0, 1, 0, 0, 0], | |
[0, 1, 0, 0, 0], | |
[0, 1, 0, 0, 0], | |
[0, 1, 0, 0, 0], | |
[0, 1, 0, 0, 0], | |
[0, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0] | |
], | |
"'": [ | |
[0, 1, 1, 0, 0], | |
[0, 1, 0, 0, 0], | |
[0, 1, 0, 0, 0], | |
[0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0] | |
], | |
")": [ | |
[1, 0, 0, 0, 0], | |
[0, 1, 0, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 1, 0, 0, 0], | |
[1, 0, 0, 0, 0] | |
], | |
"(": [ | |
[0, 0, 0, 0, 1], | |
[0, 0, 0, 1, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 1, 0, 0], | |
[0, 0, 0, 1, 0], | |
[0, 0, 0, 0, 1] | |
], | |
"[": [ | |
[1, 1, 1, 1, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 0, 0, 0, 0], | |
[1, 1, 1, 1, 0] | |
], | |
"]": [ | |
[1, 1, 1, 1, 0], | |
[0, 0, 0, 1, 0], | |
[0, 0, 0, 1, 0], | |
[0, 0, 0, 1, 0], | |
[0, 0, 0, 1, 0], | |
[0, 0, 0, 1, 0], | |
[0, 0, 0, 1, 0], | |
[0, 0, 0, 1, 0], | |
[1, 1, 1, 1, 0] | |
] | |
} | |
var Renderer = { | |
initialize(x, y, fill = " ") { | |
internalBuffer = new Array(y) | |
for(var i = 0; i < y; i++) { | |
internalBuffer[i] = new Array(x).fill(fill) | |
} | |
}, | |
isCoordInDisplay(x, y) { | |
if(x < 0 || y < 0 || x >= internalBuffer[0].length || y >= internalBuffer.length) | |
return false | |
else | |
return true | |
}, | |
get displaySize() { | |
return { | |
y: internalBuffer.length, | |
x: internalBuffer[0].length | |
} | |
}, | |
render() { | |
let str = "" | |
for(var x in internalBuffer) { | |
str += internalBuffer[x].join("") | |
str += "\n" | |
} | |
return str | |
}, | |
clear(clearChar = " ") { | |
for(var i = 0; i < internalBuffer.length; i++) { | |
internalBuffer[i] = new Array(internalBuffer[i].length).fill(clearChar) | |
} | |
}, | |
setPixel(x, y, char, color) { | |
if(Renderer.isCoordInDisplay(x, y)) | |
internalBuffer[y][x] = "`" + color + char + "`" | |
}, | |
draw(drawable) { | |
switch(drawable.type) { | |
case "BASE_RECT": { | |
for(var i = drawable.y; i < (drawable.y + drawable.h); i++) { | |
for(var j = drawable.x; j < (drawable.x + drawable.w); j++) { | |
if(i == drawable.y || i == (drawable.y + drawable.h - 1) || j == drawable.x || j == (drawable.x + drawable.w - 1)) { | |
Renderer.setPixel(j, i, drawable.char, drawable.color) | |
} | |
} | |
} | |
break | |
} | |
case "FILL_RECT": { | |
for(var i = drawable.y; i < (drawable.y + drawable.h); i++) { | |
for(var j = drawable.x; j < (drawable.x + drawable.w); j++) { | |
Renderer.setPixel(j, i, drawable.char, drawable.color) | |
} | |
} | |
break | |
} | |
case "BASE_CIRCLE": { | |
// https://en.wikipedia.org/wiki/Midpoint_circle_algorithm | |
var x = drawable.radius - 1 | |
var y = 0 | |
var dx = 1 | |
var dy = 1 | |
var err = dx - (drawable.radius << 1) | |
while(x >= y) { | |
Renderer.setPixel(center.x + x, drawable.y + y, drawable.char, drawable.char) | |
Renderer.setPixel(drawable.x + y, drawable.y + x, drawable.char, drawable.char) | |
Renderer.setPixel(drawable.x - y, drawable.y + x, drawable.char, drawable.char) | |
Renderer.setPixel(drawable.x - x, drawable.y + y, drawable.char, drawable.char) | |
Renderer.setPixel(drawable.x - x, drawable.y - y, drawable.char, drawable.char) | |
Renderer.setPixel(drawable.x - y, drawable.y - x, drawable.char, drawable.char) | |
Renderer.setPixel(drawable.x + y, drawable.y - x, drawable.char, drawable.char) | |
Renderer.setPixel(drawable.x + x, drawable.y - y, drawable.char, drawable.char) | |
if(err <= 0) { | |
y++ | |
err += dy | |
dy += 2 | |
} | |
if(err > 0) { | |
x-- | |
dx += 2 | |
err += dx - (drawable.radius << 1) | |
} | |
} | |
break | |
} | |
case "BASE_LINE": { | |
var from = Renderer.createPoint(drawable.x, drawable.y) | |
var to = Renderer.createPoint(drawable.x1, drawable.y1) | |
if(from.x > to.x) { | |
var temp = from | |
from = to | |
to = temp | |
} | |
let deltax = to.x - from.x | |
let deltay = to.y - from.y | |
if(from.x === to.x) { | |
/* Vertical line */ | |
for(var y = from.y; y <= to.y; y++) { | |
Renderer.setPixel(from.x, y, drawable.char, drawable.color) | |
} | |
return | |
} | |
let deltaerr = Math.abs(deltay / deltax) /* Assume deltax != 0 i.e line is not vertical */ | |
let error = 0 /* no error at start */ | |
var y = from.y | |
for(var x = from.x; x <= to.x; x++) { | |
Renderer.setPixel(x, y, drawable.char, drawable.color) | |
error += deltaerr | |
if(error >= 0.5) { | |
y += Math.sign(deltay) * 1 | |
error -= 1.0 | |
} | |
} | |
break | |
} | |
case "PATTERN": { | |
for(var i = 0; i < drawable.pattern.length; i++) { | |
for(var j = 0; j < drawable.pattern[0].length; j++) { | |
if(drawable.pattern[i][j] > 0) { | |
Renderer.setPixel(drawable.x + j, drawable.y + i, drawable.chars[drawable.pattern[i][j] - 1], drawable.color) | |
} | |
} | |
} | |
break | |
} | |
case "BASE_STRING": { | |
var lines = drawable.str.split("\n") | |
var y = drawable.y | |
var index = 0 | |
for(var i in lines) { | |
var line = lines[i] | |
index = 0 | |
for(var x = drawable.x; x < drawable.x + line.length; x++) { | |
Renderer.setPixel(x, y, line[index], drawable.color) | |
index++ | |
} | |
y++ | |
} | |
break | |
} | |
case "ASCII_STRING": { | |
var curpos = Renderer.createPoint(drawable.x, drawable.y) | |
for(var i = 0; i < drawable.str.length; i++) { | |
var c = drawable.str[i].toLowerCase(); | |
if("\n ()[]".indexOf(c) !== -1) { | |
if(c === "\n") { | |
curpos.y += 9 | |
curpos.x = drawable.x | |
} | |
if(c === " ") { | |
curpos.x += 2 | |
} | |
if("()[]".indexOf(c) !== -1) { | |
var pattern = charPatterns[c] | |
Renderer.drawPattern(pattern, Renderer.createPoint(curpos.x, curpos.y - 1), drawable.char, drawable.color) | |
curpos.x += 6 | |
} | |
} else { | |
var pattern = charPatterns[c] | |
Renderer.drawPattern(pattern, curpos, drawable.char, drawable.color) | |
curpos.x += 6 | |
} | |
} | |
break | |
} | |
} | |
}, | |
Rect(x, y, w, h, char = "0", color = "F") { | |
return { | |
x: x, | |
y: y, | |
w: w, | |
h: h, | |
char: char, | |
color: color, | |
type: "BASE_RECT" | |
} | |
}, | |
FilledRect(x, y, w, h, char = "0", color = "F") { | |
return { | |
x: x, | |
y: y, | |
w: w, | |
h: h, | |
char: char, | |
color: color, | |
type: "FILL_RECT" | |
} | |
}, | |
Point(x, y) { | |
return { | |
x: x, | |
y: y, | |
type: "BASE_POINT" | |
} | |
}, | |
Line(x, y, x1, y1, char = "0", color = "F") { | |
return { | |
x: x, | |
y: y, | |
x1: x1, | |
y1: y1, | |
char: char, | |
color: color, | |
type: "BASE_LINE" | |
} | |
}, | |
Circle(x, y, radius, char = "0", color = "F") { | |
return { | |
x: x, | |
y: y, | |
radius: radius, | |
char: char, | |
color: color, | |
type: "BASE_CIRCLE" | |
} | |
}, | |
Pattern(x, y, array_2d, chars = ["0"], color = "F") { | |
return { | |
x: x, | |
y: y, | |
pattern: array_2d, | |
chars: chars, | |
color: color, | |
type: "PATTERN" | |
} | |
}, | |
AsciiString(x, y, str, char = "0", color = "F") { | |
return { | |
x: x, | |
y: y, | |
str: str, | |
char: char, | |
color: color, | |
type: "ASCII_STRING" | |
} | |
}, | |
String(x, y, str, color = "F") { | |
return { | |
x: x, | |
y: y, | |
str: str, | |
color: color, | |
type: "BASE_STRING" | |
} | |
} | |
} | |
if(context.calling_script !== null) { | |
return Renderer | |
} | |
return ` | |
\`FThis script is intended to be used within a script for now.\` | |
\`FFeel free to donate to \`\`Tryo\`\`F if you like the script :)\` | |
\`CVersion\`: \`T1.2.0\` | |
\`ADocumentation\`: | |
\`Finitialize\`(\`Nwidth\`: \`snumber\`, \`Nheight\`: \`snumber\`, \`Nfill?\`: \`sstring\`): \`Avoid\`; | |
\`FisCoordInDisplay\`(\`Nx\`: \`snumber\`, \`Ny\`: \`snumber\`): \`Aboolean\`; | |
\`Treadonly\` \`FdisplaySize\`: \`S{\` | |
[\`Nx\`: \`sstring\`]: \`sany\`; | |
\`Ny\`: \`snumber\`; | |
\`Nx\`: \`snumber\`; | |
}; | |
\`Frender\`(): \`sstring\`; | |
\`Fclear\`(\`NclearChar?\`: \`sstring\`): \`Avoid\`; | |
\`Fdraw\`(\`Ndrawable\`: \`sany\`): \`Avoid\`; | |
\`FsetPixel\`(\`Nx\`: \`snumber\`, \`Ny\`: \`snumber\`, \`Nchar\`: \`sstring\`, \`Ncolor\`: \`sstring\`): \`Avoid\`; | |
\`ADrawables:\` | |
\`LRect\`(\`Nx\`: \`snumber\`, \`Ny\`: \`snumber\`, \`Nw\`: \`snumber\`, \`Nh\` \`snumber\`, \`Nchar?\`: \`sstring\`, \`Ncolor?\`: \`sstring\`): { | |
[\`Nx\`: \`sstring\`]: \`sany\`; | |
\`Nx\`: \`snumber\`; | |
\`Ny\`: \`snumber\`; | |
\`Nw\`: \`snumber\`; | |
\`Nh\` \`snumber\`; | |
\`Nchar\`: \`sstring\`; | |
\`Ncolor\`: \`sstring\`; | |
\`Ntype\`: \`sstring\`; | |
}; | |
\`LFilledRect\`(\`Nx\`: \`snumber\`, \`Ny\`: \`snumber\`, \`Nw\`: \`snumber\`, \`Nh\` \`snumber\`, \`Nchar?\`: \`sstring\`, \`Ncolor?\`: \`sstring\`): { | |
[\`Nx\`: \`sstring\`]: \`sany\`; | |
\`Nx\`: \`snumber\`; | |
\`Ny\`: \`snumber\`; | |
\`Nw\`: \`snumber\`; | |
\`Nh\`: \`snumber\`; | |
\`Nchar\`: \`sstring\`; | |
\`Ncolor\`: \`sstring\`; | |
\`Ntype\`: \`sstring\`; | |
}; | |
\`LPoint\`(\`Nx\`: \`snumber\`, \`Ny\`: \`snumber\`): { | |
[\`Nx\`: \`sstring\`]: \`sany\`; | |
\`Nx\`: \`snumber\`; | |
\`Ny\`: \`snumber\`; | |
\`Ntype\`: \`sstring\`; | |
}; | |
\`LLine\`(\`Nx\`: \`snumber\`, \`Ny\`: \`snumber\`, \`Nx1\`: \`snumber\`, \`Ny1\`: \`snumber\`, \`Nchar?\`: \`sstring\`, \`Ncolor?\`: \`sstring\`): { | |
[\`Nx\`: \`sstring\`]: \`sany\`; | |
\`Nx\`: \`snumber\`; | |
\`Ny\`: \`snumber\`; | |
\`Nx1\`: \`snumber\`; | |
\`Ny1\`: \`snumber\`; | |
\`Nchar\`: \`sstring\`; | |
\`Ncolor\`: \`sstring\`; | |
\`Ntype\`: \`sstring\`; | |
}; | |
\`LCircle\`(\`Nx\`: \`snumber\`, \`Ny\`: \`snumber\`, \`Nradius\`: \`snumber\`, \`Nchar?\`: \`sstring\`, \`Ncolor?\`: \`sstring\`): { | |
[\`Nx\`: \`sstring\`]: \`sany\`; | |
\`Nx\`: \`snumber\`; | |
\`Ny\`: \`snumber\`; | |
\`Nradius\`: \`snumber\`; | |
\`Nchar\`: \`sstring\`; | |
\`Ncolor\`: \`sstring\`; | |
\`Ntype\`: \`sstring\`; | |
}; | |
\`LPattern\`(\`Nx\`: \`snumber\`, \`Ny\`: \`snumber\`, \`Narray_2d\`: \`sany[]\`, \`Nchars?\`: \`sstring[]\`, \`Ncolor?\`: \`sstring\`): { | |
[\`Nx\`: \`sstring\`]: \`sany\`; | |
\`Nx\`: \`snumber\`; | |
\`Ny\`: \`snumber\`; | |
\`Npattern\`: \`sany[]\`; | |
\`Nchars\`: \`sstring[]\`; | |
\`Ncolor\`: \`sstring\`; | |
\`Ntype\`: \`sstring\`; | |
}; | |
\`LAsciiString\`(\`Nx\`: \`snumber\`, \`Ny\`: \`snumber\`, \`Nstr\`: \`sstring\`, \`Nchar?\`: \`sstring\`, \`Ncolor?\`: \`sstring\`): { | |
[\`Nx\`: \`sstring\`]: \`sany\`; | |
\`Nx\`: \`snumber\`; | |
\`Ny\`: \`snumber\`; | |
\`Nstr\`: \`sstring\`; | |
\`Nchar\`: \`sstring\`; | |
\`Ncolor\`: \`sstring\`; | |
\`Ntype\`: \`sstring\`; | |
}; | |
\`LString\`(\`Nx\`: \`snumber\`, \`Ny\`: \`snumber\`, \`Nstr\`: \`sstring\`, \`Ncolor?\`: \`sstring\`): { | |
[\`Nx\`: \`sstring\`]: \`sany\`; | |
\`Nx\`: \`snumber\`; | |
\`Ny\`: \`snumber\`; | |
\`Nstr\`: \`sstring\`; | |
\`Ncolor\`: \`sstring\`; | |
\`Ntype\`: \`sstring\`; | |
}; | |
` | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment