ticbuild 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +323 -5
  2. package/dist/backend/importUtils.d.ts +1 -0
  3. package/dist/backend/importUtils.d.ts.map +1 -1
  4. package/dist/backend/importUtils.js +4 -0
  5. package/dist/backend/importUtils.js.map +1 -1
  6. package/dist/backend/importers/LuaCodeImporter.d.ts +4 -1
  7. package/dist/backend/importers/LuaCodeImporter.d.ts.map +1 -1
  8. package/dist/backend/importers/LuaCodeImporter.js +6 -3
  9. package/dist/backend/importers/LuaCodeImporter.js.map +1 -1
  10. package/dist/backend/luaPreprocessor.d.ts +11 -0
  11. package/dist/backend/luaPreprocessor.d.ts.map +1 -1
  12. package/dist/backend/luaPreprocessor.js +131 -45
  13. package/dist/backend/luaPreprocessor.js.map +1 -1
  14. package/dist/backend/sourceMap.d.ts +31 -0
  15. package/dist/backend/sourceMap.d.ts.map +1 -0
  16. package/dist/backend/sourceMap.js +155 -0
  17. package/dist/backend/sourceMap.js.map +1 -0
  18. package/dist/backend/sourceMap.test.d.ts +2 -0
  19. package/dist/backend/sourceMap.test.d.ts.map +1 -0
  20. package/dist/backend/sourceMap.test.js +36 -0
  21. package/dist/backend/sourceMap.test.js.map +1 -0
  22. package/dist/backend/symbolIndex.d.ts +67 -0
  23. package/dist/backend/symbolIndex.d.ts.map +1 -0
  24. package/dist/backend/symbolIndex.js +905 -0
  25. package/dist/backend/symbolIndex.js.map +1 -0
  26. package/dist/backend/symbolIndex.test.d.ts +2 -0
  27. package/dist/backend/symbolIndex.test.d.ts.map +1 -0
  28. package/dist/backend/symbolIndex.test.js +198 -0
  29. package/dist/backend/symbolIndex.test.js.map +1 -0
  30. package/dist/backend/tic80Controller/discovery.d.ts +19 -0
  31. package/dist/backend/tic80Controller/discovery.d.ts.map +1 -0
  32. package/dist/backend/tic80Controller/discovery.js +181 -0
  33. package/dist/backend/tic80Controller/discovery.js.map +1 -0
  34. package/dist/backend/tic80Controller/discovery.test.d.ts +2 -0
  35. package/dist/backend/tic80Controller/discovery.test.d.ts.map +1 -0
  36. package/dist/backend/tic80Controller/discovery.test.js +132 -0
  37. package/dist/backend/tic80Controller/discovery.test.js.map +1 -0
  38. package/dist/buildInfo.d.ts +4 -4
  39. package/dist/buildInfo.js +4 -4
  40. package/dist/frontend/core.d.ts.map +1 -1
  41. package/dist/frontend/core.js +10 -0
  42. package/dist/frontend/core.js.map +1 -1
  43. package/dist/frontend/terminal.d.ts +10 -0
  44. package/dist/frontend/terminal.d.ts.map +1 -0
  45. package/dist/frontend/terminal.js +321 -0
  46. package/dist/frontend/terminal.js.map +1 -0
  47. package/dist/frontend/terminal.test.d.ts +2 -0
  48. package/dist/frontend/terminal.test.d.ts.map +1 -0
  49. package/dist/frontend/terminal.test.js +15 -0
  50. package/dist/frontend/terminal.test.js.map +1 -0
  51. package/dist/index.js +49 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/obj/build.log +5 -5
  54. package/dist/utils/console.d.ts.map +1 -1
  55. package/dist/utils/console.js +15 -7
  56. package/dist/utils/console.js.map +1 -1
  57. package/dist/utils/help.d.ts +3 -0
  58. package/dist/utils/help.d.ts.map +1 -1
  59. package/dist/utils/help.js +15 -0
  60. package/dist/utils/help.js.map +1 -1
  61. package/dist/utils/lua/lua_doc.d.ts +4 -0
  62. package/dist/utils/lua/lua_doc.d.ts.map +1 -0
  63. package/dist/utils/lua/lua_doc.js +31 -0
  64. package/dist/utils/lua/lua_doc.js.map +1 -0
  65. package/dist/utils/utils.d.ts +2 -0
  66. package/dist/utils/utils.d.ts.map +1 -1
  67. package/dist/utils/utils.js +10 -0
  68. package/dist/utils/utils.js.map +1 -1
  69. package/package.json +1 -1
  70. package/templates/TIC-80-ticbuild/tic80.exe +0 -0
  71. package/templates/builtins/tic80.lua +316 -0
  72. package/templates/help/disco.txt +11 -0
  73. package/templates/help/main.txt +3 -0
  74. package/templates/help/terminal.txt +18 -0
  75. package/templates/help/tic80.txt +5 -1
  76. package/templates/help/tt.txt +17 -0
@@ -1 +1 @@
1
- {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/utils/console.ts"],"names":[],"mappings":"AAKA,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAExD;AAED,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAE1C;AAYD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG3C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAOD,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG1C;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGzC;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG1C;AAED,wBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKxC"}
1
+ {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../src/utils/console.ts"],"names":[],"mappings":"AAeA,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAExD;AAED,wBAAgB,UAAU,IAAI,MAAM,GAAG,IAAI,CAE1C;AAYD,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG3C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG7C;AAOD,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG1C;AAED,wBAAgB,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGzC;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG1C;AAED,wBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKxC"}
@@ -15,6 +15,14 @@ exports.h1 = h1;
15
15
  const chalk_1 = __importDefault(require("chalk"));
16
16
  const node_fs_1 = require("node:fs");
17
17
  let logFilePath = null;
18
+ function isTestEnv() {
19
+ return process.env.NODE_ENV === "test" || process.env.JEST_WORKER_ID !== undefined;
20
+ }
21
+ function consoleLogExceptInTestEnv(message) {
22
+ if (!isTestEnv()) {
23
+ console.log(message);
24
+ }
25
+ }
18
26
  function setLogFile(filePath) {
19
27
  logFilePath = filePath;
20
28
  }
@@ -30,15 +38,15 @@ function writeToLog(level, message) {
30
38
  (0, node_fs_1.appendFileSync)(logFilePath, logLine, "utf-8");
31
39
  }
32
40
  function success(message) {
33
- console.log(chalk_1.default.green(message));
41
+ consoleLogExceptInTestEnv(chalk_1.default.green(message));
34
42
  writeToLog("SUCCESS", message);
35
43
  }
36
44
  function error(message) {
37
- console.error(chalk_1.default.red(message));
45
+ consoleLogExceptInTestEnv(chalk_1.default.red(message));
38
46
  writeToLog("ERROR", message);
39
47
  }
40
48
  function warning(message) {
41
- console.warn(chalk_1.default.bgHex(`#FFA500`).black(`WARNING: ${message}`));
49
+ consoleLogExceptInTestEnv(chalk_1.default.bgHex(`#FFA500`).black(`WARNING: ${message}`));
42
50
  writeToLog("WARNING", message);
43
51
  }
44
52
  // export function info(message: string): void {
@@ -46,21 +54,21 @@ function warning(message) {
46
54
  // writeToLog("INFO", message);
47
55
  // }
48
56
  function info(message) {
49
- console.log(message);
57
+ consoleLogExceptInTestEnv(chalk_1.default.blue(message));
50
58
  writeToLog("INFO", message);
51
59
  }
52
60
  function dim(message) {
53
- console.log(chalk_1.default.gray(message));
61
+ consoleLogExceptInTestEnv(chalk_1.default.gray(message));
54
62
  writeToLog("DEBUG", message);
55
63
  }
56
64
  function bold(message) {
57
- console.log(chalk_1.default.bold(message));
65
+ consoleLogExceptInTestEnv(chalk_1.default.bold(message));
58
66
  writeToLog("INFO", message);
59
67
  }
60
68
  function h1(message) {
61
69
  //const decorated = chalk.bold.underline(message);
62
70
  const decorated = chalk_1.default.cyanBright(`${message}`);
63
- console.log(decorated);
71
+ consoleLogExceptInTestEnv(decorated);
64
72
  writeToLog("INFO", message);
65
73
  }
66
74
  //# sourceMappingURL=console.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/utils/console.ts"],"names":[],"mappings":";;;;;AAKA,gCAEC;AAED,gCAEC;AAYD,0BAGC;AAED,sBAGC;AAED,0BAGC;AAOD,oBAGC;AAED,kBAGC;AAED,oBAGC;AAED,gBAKC;AA/DD,kDAA0B;AAC1B,qCAAyC;AAEzC,IAAI,WAAW,GAAkB,IAAI,CAAC;AAEtC,SAAgB,UAAU,CAAC,QAAuB;IAChD,WAAW,GAAG,QAAQ,CAAC;AACzB,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,OAAe;IAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,SAAS,MAAM,KAAK,KAAK,OAAO,IAAI,CAAC;IACzD,IAAA,wBAAc,EAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,OAAO,CAAC,OAAe;IACrC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,SAAgB,KAAK,CAAC,OAAe;IACnC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,OAAO,CAAC,OAAe;IACrC,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;IAClE,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,gDAAgD;AAChD,sCAAsC;AACtC,iCAAiC;AACjC,IAAI;AAEJ,SAAgB,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,GAAG,CAAC,OAAe;IACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACjC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACjC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,EAAE,CAAC,OAAe;IAChC,kDAAkD;IAClD,MAAM,SAAS,GAAG,eAAK,CAAC,UAAU,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../../src/utils/console.ts"],"names":[],"mappings":";;;;;AAeA,gCAEC;AAED,gCAEC;AAYD,0BAGC;AAED,sBAGC;AAED,0BAGC;AAOD,oBAGC;AAED,kBAGC;AAED,oBAGC;AAED,gBAKC;AAzED,kDAA0B;AAC1B,qCAAyC;AAEzC,IAAI,WAAW,GAAkB,IAAI,CAAC;AAEtC,SAAS,SAAS;IAChB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC;AACrF,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAY;IAC7C,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CAAC,QAAuB;IAChD,WAAW,GAAG,QAAQ,CAAC;AACzB,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,OAAe;IAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,SAAS,MAAM,KAAK,KAAK,OAAO,IAAI,CAAC;IACzD,IAAA,wBAAc,EAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,OAAO,CAAC,OAAe;IACrC,yBAAyB,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,SAAgB,KAAK,CAAC,OAAe;IACnC,yBAAyB,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,OAAO,CAAC,OAAe;IACrC,yBAAyB,CAAC,eAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/E,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,gDAAgD;AAChD,sCAAsC;AACtC,iCAAiC;AACjC,IAAI;AAEJ,SAAgB,IAAI,CAAC,OAAe;IAClC,yBAAyB,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,GAAG,CAAC,OAAe;IACjC,yBAAyB,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,IAAI,CAAC,OAAe;IAClC,yBAAyB,CAAC,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,EAAE,CAAC,OAAe;IAChC,kDAAkD;IAClD,MAAM,SAAS,GAAG,eAAK,CAAC,UAAU,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC;IACjD,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACrC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC"}
@@ -6,4 +6,7 @@ export declare function printInitHelp(): void;
6
6
  export declare function printReplHelp(): void;
7
7
  export declare function printTemplateListHelp(): void;
8
8
  export declare function printTic80Help(): void;
9
+ export declare function printTic80TerminalHelp(): void;
10
+ export declare function printTerminalHelp(): void;
11
+ export declare function printDiscoHelp(): void;
9
12
  //# sourceMappingURL=help.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/utils/help.ts"],"names":[],"mappings":"AAwBA,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,wBAAgB,cAAc,IAAI,IAAI,CAGrC"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/utils/help.ts"],"names":[],"mappings":"AAwBA,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAED,wBAAgB,cAAc,IAAI,IAAI,CAGrC"}
@@ -41,6 +41,9 @@ exports.printInitHelp = printInitHelp;
41
41
  exports.printReplHelp = printReplHelp;
42
42
  exports.printTemplateListHelp = printTemplateListHelp;
43
43
  exports.printTic80Help = printTic80Help;
44
+ exports.printTic80TerminalHelp = printTic80TerminalHelp;
45
+ exports.printTerminalHelp = printTerminalHelp;
46
+ exports.printDiscoHelp = printDiscoHelp;
44
47
  const fs = __importStar(require("node:fs"));
45
48
  const path = __importStar(require("node:path"));
46
49
  const buildInfo_1 = require("../buildInfo");
@@ -94,4 +97,16 @@ function printTic80Help() {
94
97
  const help = renderHelpTemplate("tic80");
95
98
  console.log(help);
96
99
  }
100
+ function printTic80TerminalHelp() {
101
+ const help = renderHelpTemplate("tt");
102
+ console.log(help);
103
+ }
104
+ function printTerminalHelp() {
105
+ const help = renderHelpTemplate("terminal");
106
+ console.log(help);
107
+ }
108
+ function printDiscoHelp() {
109
+ const help = renderHelpTemplate("disco");
110
+ console.log(help);
111
+ }
97
112
  //# sourceMappingURL=help.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/utils/help.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,sCAGC;AAED,wCAGC;AAED,oCAGC;AAED,wCAGC;AAED,sCAGC;AAED,sCAGC;AAED,sDAGC;AAED,wCAGC;AA9DD,4CAA8B;AAC9B,gDAAkC;AAClC,4CAAyC;AACzC,mDAAqD;AACrD,2CAAqD;AAErD,SAAS,gBAAgB,CAAC,YAAoB;IAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,YAAY,MAAM,CAAC,CAAC;IACrG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,kBAAkB,CAAC,YAAoB;IAC9C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,SAAS,GAA2B;QACxC,OAAO,EAAE,IAAA,kCAAkB,EAAC,qBAAS,CAAC;QACtC,WAAW,EAAE,qBAAS,CAAC,UAAU,IAAI,SAAS;QAC9C,UAAU,EAAE,qBAAS,CAAC,SAAS,IAAI,SAAS;KAC7C,CAAC;IACF,OAAO,IAAA,kCAAsB,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,aAAa;IAC3B,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,YAAY;IAC1B,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,aAAa;IAC3B,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,aAAa;IAC3B,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,qBAAqB;IACnC,MAAM,IAAI,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/utils/help.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function isLuaDocCommentText(text: string): boolean;
2
+ export declare function isWhitespaceText(text: string): boolean;
3
+ export declare function collectDocCommentAbove(lines: string[], lineIndex: number): string[] | undefined;
4
+ //# sourceMappingURL=lua_doc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lua_doc.d.ts","sourceRoot":"","sources":["../../../src/utils/lua/lua_doc.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASzD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAa/F"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isLuaDocCommentText = isLuaDocCommentText;
4
+ exports.isWhitespaceText = isWhitespaceText;
5
+ exports.collectDocCommentAbove = collectDocCommentAbove;
6
+ function isLuaDocCommentText(text) {
7
+ const trimmed = text.trimStart();
8
+ return (trimmed.startsWith("---") ||
9
+ trimmed.startsWith("--@") ||
10
+ trimmed.startsWith("-- @") ||
11
+ trimmed.startsWith("--[[") ||
12
+ trimmed.startsWith("--[="));
13
+ }
14
+ function isWhitespaceText(text) {
15
+ return /^\s*$/.test(text);
16
+ }
17
+ function collectDocCommentAbove(lines, lineIndex) {
18
+ const docLines = [];
19
+ for (let i = lineIndex - 1; i >= 0; i--) {
20
+ const line = lines[i];
21
+ if (isWhitespaceText(line)) {
22
+ break;
23
+ }
24
+ if (!isLuaDocCommentText(line)) {
25
+ break;
26
+ }
27
+ docLines.unshift(line);
28
+ }
29
+ return docLines.length > 0 ? docLines : undefined;
30
+ }
31
+ //# sourceMappingURL=lua_doc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lua_doc.js","sourceRoot":"","sources":["../../../src/utils/lua/lua_doc.ts"],"names":[],"mappings":";;AAAA,kDASC;AAED,4CAEC;AAED,wDAaC;AA5BD,SAAgB,mBAAmB,CAAC,IAAY;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACjC,OAAO,CACH,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAC1B,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAC1B,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAC7B,CAAC;AACN,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAY;IACzC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,sBAAsB,CAAC,KAAe,EAAE,SAAiB;IACrE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM;QACV,CAAC;QACD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM;QACV,CAAC;QACD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC"}
@@ -11,4 +11,6 @@ export declare function makeMapSerializable<K, V>(map: Map<K, V>): object;
11
11
  export declare function deserializeMap<K, V>(obj: object): Map<K, V>;
12
12
  export declare function CoalesceBool(value: boolean | null | undefined, defaultValue: boolean): boolean;
13
13
  export declare function trimTrailingZeros(data: Uint8Array): Uint8Array;
14
+ export declare function hashTextSha1(text: string): string;
15
+ export declare function sleep(ms: number): Promise<void>;
14
16
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAWrD;AAED,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,GAAG,IAAI,WAK3C,CAAC;AAIF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,MAAM,MAAM,OAAO,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAI7C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAyBvE;AAiCD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5E;AAGD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAEhE;AACD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAE3D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAK9F;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAM9D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,aAAa,CAAC;AAEnC,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAWrD;AAED,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,GAAG,IAAI,WAK3C,CAAC;AAIF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,MAAM,MAAM,OAAO,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAC;AAI7C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAyBvE;AAiCD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5E;AAGD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAEhE;AACD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAE3D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAK9F;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAM9D;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAGD,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
@@ -9,6 +9,9 @@ exports.makeMapSerializable = makeMapSerializable;
9
9
  exports.deserializeMap = deserializeMap;
10
10
  exports.CoalesceBool = CoalesceBool;
11
11
  exports.trimTrailingZeros = trimTrailingZeros;
12
+ exports.hashTextSha1 = hashTextSha1;
13
+ exports.sleep = sleep;
14
+ const node_crypto_1 = require("node:crypto");
12
15
  exports.kNullKey = "__NULL__";
13
16
  function TryParseInt(value) {
14
17
  if (typeof value === "number" && isFinite(value)) {
@@ -114,4 +117,11 @@ function trimTrailingZeros(data) {
114
117
  }
115
118
  return data.slice(0, end);
116
119
  }
120
+ function hashTextSha1(text) {
121
+ const hash = (0, node_crypto_1.createHash)("sha1").update(text, "utf-8").digest("hex");
122
+ return `sha1:${hash}`;
123
+ }
124
+ function sleep(ms) {
125
+ return new Promise((resolve) => setTimeout(resolve, ms));
126
+ }
117
127
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":";;;AAEA,kCAWC;AAWD,wCAEC;AAMD,4CAyBC;AAiCD,gEAEC;AAGD,kDAEC;AACD,wCAEC;AAED,oCAKC;AAGD,8CAMC;AApHY,QAAA,QAAQ,GAAG,UAAU,CAAC;AAEnC,SAAgB,WAAW,CAAC,KAAU;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,MAAM,WAAW,GAAG,CAAC,CAAgB,EAAE,EAAE;IAC9C,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1D,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAChD,CAAC,CAAC;AALW,QAAA,WAAW,eAKtB;AAEF,+CAA+C;AAC/C,oCAAoC;AACpC,SAAgB,cAAc,CAAC,QAAgB;IAC7C,OAAO,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC;AAGD,yGAAyG;AAEzG,uDAAuD;AACvD,SAAgB,gBAAgB,CAAC,MAAe,EAAE,MAAe;IAC/D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,uDAAuD;QACvD,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,CAAC;QACD,iCAAiC;aAC5B,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAChG,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC;YACD,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;QACD,sBAAsB;aACjB,CAAC;YACJ,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,SAAS,2BAA2B,CAAC,GAAY,EAAE,MAA0B;IAC3E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAElD,6CAA6C;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QACD,oCAAoC;aAC/B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrD,MAAM,SAAS,GAAG,2BAA2B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC9D,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;gBACzC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,8BAA8B;aACzB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC/C,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6DAA6D;AAC7D,SAAgB,0BAA0B,CAAC,GAAY;IACrD,OAAO,2BAA2B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,uCAAuC;AACvC,SAAgB,mBAAmB,CAAO,GAAc;IACtD,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC;AACD,SAAgB,cAAc,CAAO,GAAW;IAC9C,OAAO,IAAI,GAAG,CAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAa,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,YAAY,CAAC,KAAiC,EAAE,YAAqB;IACnF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,SAAgB,iBAAiB,CAAC,IAAgB;IAChD,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACtB,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,GAAG,IAAI,CAAC,CAAC;IACX,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ticbuild",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "description": "A build & watch system for TIC-80",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
Binary file
@@ -0,0 +1,316 @@
1
+ -- TIC-80 builtins stubs for symbol indexing.
2
+ -- Signatures based on the TIC-80 API wiki.
3
+
4
+ --- Main callback called every frame (60 FPS).
5
+ function TIC() end
6
+
7
+ --- Called once on cartridge boot for initialization.
8
+ function BOOT() end
9
+
10
+ --- Called before each scanline (0..143).
11
+ -- @param scanline number scanline index
12
+ function BDR(scanline) end
13
+
14
+ --- Called before each scanline (deprecated, use BDR).
15
+ -- @param scanline number scanline index
16
+ function SCN(scanline) end
17
+
18
+ --- Called after scanlines on overlay layer (deprecated).
19
+ function OVR() end
20
+
21
+ --- Handles menu callbacks.
22
+ -- @param index number menu item index
23
+ function MENU(index) end
24
+
25
+ --- Clears screen with palette color.
26
+ -- @param color number palette index
27
+ function cls(color) end
28
+
29
+ --- Resets or sets clipping region.
30
+ -- @param x number left
31
+ -- @param y number top
32
+ -- @param width number width
33
+ -- @param height number height
34
+ function clip(x, y, width, height) end
35
+
36
+ --- Gets or sets a pixel color.
37
+ -- @param x number x position
38
+ -- @param y number y position
39
+ -- @param color number palette index (optional for get)
40
+ -- @return number color at pixel when color omitted
41
+ function pix(x, y, color) end
42
+
43
+ --- Draws a sprite.
44
+ -- @param id number sprite id
45
+ -- @param x number x position
46
+ -- @param y number y position
47
+ -- @param colorkey number transparent color
48
+ -- @param scale number scale factor
49
+ -- @param flip number flip flags
50
+ -- @param rotate number rotation
51
+ -- @param w number width in sprites
52
+ -- @param h number height in sprites
53
+ function spr(id, x, y, colorkey, scale, flip, rotate, w, h) end
54
+
55
+ --- Draws a map region.
56
+ -- @param x number map x
57
+ -- @param y number map y
58
+ -- @param w number width in tiles
59
+ -- @param h number height in tiles
60
+ -- @param sx number screen x
61
+ -- @param sy number screen y
62
+ -- @param colorkey number transparent color
63
+ -- @param scale number scale factor
64
+ -- @param remap function tile remap callback
65
+ function map(x, y, w, h, sx, sy, colorkey, scale, remap) end
66
+
67
+ --- Draws a line.
68
+ -- @param x0 number start x
69
+ -- @param y0 number start y
70
+ -- @param x1 number end x
71
+ -- @param y1 number end y
72
+ -- @param color number palette index
73
+ function line(x0, y0, x1, y1, color) end
74
+
75
+ --- Draws a filled rectangle.
76
+ -- @param x number left
77
+ -- @param y number top
78
+ -- @param width number width
79
+ -- @param height number height
80
+ -- @param color number palette index
81
+ function rect(x, y, width, height, color) end
82
+
83
+ --- Draws a rectangle border.
84
+ -- @param x number left
85
+ -- @param y number top
86
+ -- @param width number width
87
+ -- @param height number height
88
+ -- @param color number palette index
89
+ function rectb(x, y, width, height, color) end
90
+
91
+ --- Draws a filled circle.
92
+ -- @param x number center x
93
+ -- @param y number center y
94
+ -- @param radius number radius
95
+ -- @param color number palette index
96
+ function circ(x, y, radius, color) end
97
+
98
+ --- Draws a circle border.
99
+ -- @param x number center x
100
+ -- @param y number center y
101
+ -- @param radius number radius
102
+ -- @param color number palette index
103
+ function circb(x, y, radius, color) end
104
+
105
+ --- Draws a filled ellipse.
106
+ -- @param x number center x
107
+ -- @param y number center y
108
+ -- @param a number radius x
109
+ -- @param b number radius y
110
+ -- @param color number palette index
111
+ function elli(x, y, a, b, color) end
112
+
113
+ --- Draws an ellipse border.
114
+ -- @param x number center x
115
+ -- @param y number center y
116
+ -- @param a number radius x
117
+ -- @param b number radius y
118
+ -- @param color number palette index
119
+ function ellib(x, y, a, b, color) end
120
+
121
+ --- Draws a filled triangle.
122
+ -- @param x1 number x1
123
+ -- @param y1 number y1
124
+ -- @param x2 number x2
125
+ -- @param y2 number y2
126
+ -- @param x3 number x3
127
+ -- @param y3 number y3
128
+ -- @param color number palette index
129
+ function tri(x1, y1, x2, y2, x3, y3, color) end
130
+
131
+ --- Draws a triangle border.
132
+ -- @param x1 number x1
133
+ -- @param y1 number y1
134
+ -- @param x2 number x2
135
+ -- @param y2 number y2
136
+ -- @param x3 number x3
137
+ -- @param y3 number y3
138
+ -- @param color number palette index
139
+ function trib(x1, y1, x2, y2, x3, y3, color) end
140
+
141
+ --- Draws a textured triangle.
142
+ -- @param x1 number x1
143
+ -- @param y1 number y1
144
+ -- @param x2 number x2
145
+ -- @param y2 number y2
146
+ -- @param x3 number x3
147
+ -- @param y3 number y3
148
+ -- @param u1 number u1
149
+ -- @param v1 number v1
150
+ -- @param u2 number u2
151
+ -- @param v2 number v2
152
+ -- @param u3 number u3
153
+ -- @param v3 number v3
154
+ -- @param texsrc number texture source
155
+ -- @param chromakey number transparent color
156
+ -- @param z1 number z1
157
+ -- @param z2 number z2
158
+ -- @param z3 number z3
159
+ function ttri(x1, y1, x2, y2, x3, y3, u1, v1, u2, v2, u3, v3, texsrc, chromakey, z1, z2, z3) end
160
+
161
+ --- Draws text with system font.
162
+ -- @param text string text
163
+ -- @param x number x position
164
+ -- @param y number y position
165
+ -- @param color number palette index
166
+ -- @param fixed boolean fixed width
167
+ -- @param scale number scale
168
+ -- @param smallfont boolean use small font
169
+ -- @return number rendered width
170
+ function print(text, x, y, color, fixed, scale, smallfont) end
171
+
172
+ --- Draws text with sprite font.
173
+ -- @param text string text
174
+ -- @param x number x position
175
+ -- @param y number y position
176
+ -- @param transcolor number transparent color
177
+ -- @param width number character width
178
+ -- @param height number character height
179
+ -- @param fixed boolean fixed width
180
+ -- @param scale number scale
181
+ -- @param alt boolean use alternate font
182
+ -- @return number rendered width
183
+ function font(text, x, y, transcolor, width, height, fixed, scale, alt) end
184
+
185
+ --- Plays a sound effect.
186
+ -- @param id number sfx id
187
+ -- @param note number note
188
+ -- @param duration number duration
189
+ -- @param channel number channel
190
+ -- @param volume number volume
191
+ -- @param speed number speed
192
+ function sfx(id, note, duration, channel, volume, speed) end
193
+
194
+ --- Plays a music track.
195
+ -- @param track number track id
196
+ -- @param frame number frame index
197
+ -- @param row number row index
198
+ -- @param loop boolean loop playback
199
+ -- @param sustain boolean sustain notes
200
+ -- @param tempo number tempo override
201
+ -- @param speed number speed override
202
+ function music(track, frame, row, loop, sustain, tempo, speed) end
203
+
204
+ --- Reads gamepad button state.
205
+ -- @param id number button id
206
+ -- @return boolean is pressed when id provided
207
+ function btn(id) end
208
+
209
+ --- Reads gamepad button press.
210
+ -- @param id number button id
211
+ -- @param hold number hold frames
212
+ -- @param period number repeat period
213
+ -- @return boolean pressed
214
+ function btnp(id, hold, period) end
215
+
216
+ --- Reads keyboard state.
217
+ -- @param code number key code
218
+ -- @return boolean pressed
219
+ function key(code) end
220
+
221
+ --- Reads keyboard press.
222
+ -- @param code number key code
223
+ -- @param hold number hold frames
224
+ -- @param period number repeat period
225
+ -- @return boolean pressed
226
+ function keyp(code, hold, period) end
227
+
228
+ --- Gets mouse state.
229
+ -- @return number mouse x
230
+ function mouse() end
231
+
232
+ --- Copies a block of RAM.
233
+ -- @param to number destination address
234
+ -- @param from number source address
235
+ -- @param length number bytes
236
+ function memcpy(to, from, length) end
237
+
238
+ --- Fills a block of RAM.
239
+ -- @param addr number address
240
+ -- @param value number value
241
+ -- @param length number bytes
242
+ function memset(addr, value, length) end
243
+
244
+ --- Reads or writes persistent memory.
245
+ -- @param index number slot index
246
+ -- @param value number value to write
247
+ -- @return number stored or previous value
248
+ function pmem(index, value) end
249
+
250
+ --- Reads memory.
251
+ -- @param addr number address
252
+ -- @param bits number bit width
253
+ -- @return number value
254
+ function peek(addr, bits) end
255
+
256
+ --- Reads 4-bit memory.
257
+ -- @param addr number address (nibble)
258
+ -- @return number value
259
+ function peek4(addr) end
260
+
261
+ --- Reads 2-bit memory.
262
+ -- @param addr number address
263
+ -- @return number value
264
+ function peek2(addr) end
265
+
266
+ --- Reads a single bit.
267
+ -- @param addr number bit address
268
+ -- @return number value
269
+ function peek1(addr) end
270
+
271
+ --- Writes memory.
272
+ -- @param addr number address
273
+ -- @param value number value
274
+ -- @param bits number bit width
275
+ function poke(addr, value, bits) end
276
+
277
+ --- Writes 4-bit memory.
278
+ -- @param addr number address (nibble)
279
+ -- @param value number value
280
+ function poke4(addr, value) end
281
+
282
+ --- Writes 2-bit memory.
283
+ -- @param addr number address
284
+ -- @param value number value
285
+ function poke2(addr, value) end
286
+
287
+ --- Writes a single bit.
288
+ -- @param addr number bit address
289
+ -- @param value number bit value
290
+ function poke1(addr, value) end
291
+
292
+ --- Syncs runtime RAM with cartridge banks.
293
+ -- @param mask number chunk mask
294
+ -- @param bank number bank index
295
+ -- @param tocart boolean write to cart
296
+ function sync(mask, bank, tocart) end
297
+
298
+ --- Selects the VRAM bank.
299
+ -- @param id number bank id
300
+ function vbank(id) end
301
+
302
+ --- Returns milliseconds since start.
303
+ -- @return number time ms
304
+ function time() end
305
+
306
+ --- Returns Unix timestamp (seconds).
307
+ -- @return number timestamp
308
+ function tstamp() end
309
+
310
+ --- Prints a debug message.
311
+ -- @param message string message
312
+ -- @param color number palette index
313
+ function trace(message, color) end
314
+
315
+ --- Exits to menu.
316
+ function exit() end
@@ -0,0 +1,11 @@
1
+
2
+ ticbuild disco
3
+
4
+ usage: ticbuild disco
5
+
6
+ List discovered running TIC-80 remoting sessions.
7
+
8
+ Discovery sources:
9
+
10
+ - %LOCALAPPDATA%\TIC-80\remoting\sessions
11
+ - .ticbuild\remoting\sessions in the current project
@@ -19,6 +19,9 @@ Common commands:
19
19
  Other commands:
20
20
 
21
21
  tic80, t Launch TIC-80 directly
22
+ tt Launch TIC-80 and attach terminal mode
23
+ terminal [host:port] Connect terminal client to TIC-80 remoting
24
+ disco List discovered TIC-80 remoting sessions
22
25
  help [command] Show help for a specific command
23
26
 
24
27
  Use 'ticbuild help <command>' or 'ticbuild <command> --help' for detailed help.
@@ -0,0 +1,18 @@
1
+
2
+ ticbuild terminal
3
+
4
+ usage: ticbuild terminal [host:port]
5
+
6
+ Connect to the TIC-80 remoting terminal server.
7
+
8
+ If host:port is omitted:
9
+
10
+ - with 0 discovered running sessions, exits immediately
11
+ - with 1 discovered running session, connects automatically
12
+ - with multiple sessions, shows a list and prompts for selection
13
+
14
+ In terminal mode, you type commands one line at a time. Each line should begin with
15
+ the request ID. Example:
16
+
17
+ > 1 hello
18
+ 1 OK "TIC-80 remoting v1"
@@ -1,12 +1,16 @@
1
1
 
2
2
  ticbuild tic80
3
3
 
4
- usage: ticbuild tic80
4
+ usage: ticbuild tic80 [--terminal]
5
5
 
6
6
  Launch TIC-80 directly without building a cart
7
7
 
8
8
  This is a convenience command to quickly open TIC-80.
9
9
 
10
+ Options:
11
+
12
+ --terminal Launch TIC-80, discover launched remoting session, and enter terminal mode
13
+
10
14
  Forwarding to TIC-80:
11
15
 
12
16
  Use "--" to pass arguments through to TIC-80.
@@ -0,0 +1,17 @@
1
+
2
+ ticbuild tt
3
+
4
+ usage: ticbuild tt
5
+
6
+ Launch TIC-80 and automatically attach terminal mode.
7
+
8
+ This is a shortcut for:
9
+
10
+ ticbuild tic80 --terminal
11
+
12
+ Forwarding to TIC-80:
13
+
14
+ Use "--" to pass arguments through to TIC-80.
15
+
16
+ Example:
17
+ ticbuild tt -- --remoting-port=55111