Initial
This commit is contained in:
		
						commit
						2f4aec6544
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,2 @@
 | 
			
		|||
/node_modules
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										192
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										192
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,192 @@
 | 
			
		|||
{
 | 
			
		||||
  "name": "keypados",
 | 
			
		||||
  "version": "1.0.0",
 | 
			
		||||
  "lockfileVersion": 3,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "packages": {
 | 
			
		||||
    "": {
 | 
			
		||||
      "name": "keypados",
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "license": "ISC",
 | 
			
		||||
      "devDependencies": {
 | 
			
		||||
        "typescript": "^5.5.2",
 | 
			
		||||
        "typescript-to-lua": "^1.26.2"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@typescript-to-lua/language-extensions": {
 | 
			
		||||
      "version": "1.19.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@typescript-to-lua/language-extensions/-/language-extensions-1.19.0.tgz",
 | 
			
		||||
      "integrity": "sha512-Os5wOKwviTD4LeqI29N0btYOjokSJ97iCf45EOjIABlb5IwNQy7AE/AqZJobRw3ywHH8+KzJUMkEirWPzh2tUA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/enhanced-resolve": {
 | 
			
		||||
      "version": "5.17.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
 | 
			
		||||
      "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "graceful-fs": "^4.2.4",
 | 
			
		||||
        "tapable": "^2.2.0"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=10.13.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/function-bind": {
 | 
			
		||||
      "version": "1.1.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
 | 
			
		||||
      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/graceful-fs": {
 | 
			
		||||
      "version": "4.2.11",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
 | 
			
		||||
      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "ISC"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/hasown": {
 | 
			
		||||
      "version": "2.0.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
 | 
			
		||||
      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "function-bind": "^1.1.2"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 0.4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/is-core-module": {
 | 
			
		||||
      "version": "2.15.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz",
 | 
			
		||||
      "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "hasown": "^2.0.2"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 0.4"
 | 
			
		||||
      },
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/path-parse": {
 | 
			
		||||
      "version": "1.0.7",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
 | 
			
		||||
      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/picomatch": {
 | 
			
		||||
      "version": "2.3.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
 | 
			
		||||
      "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=8.6"
 | 
			
		||||
      },
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "url": "https://github.com/sponsors/jonschlinkert"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/resolve": {
 | 
			
		||||
      "version": "1.22.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
 | 
			
		||||
      "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "is-core-module": "^2.13.0",
 | 
			
		||||
        "path-parse": "^1.0.7",
 | 
			
		||||
        "supports-preserve-symlinks-flag": "^1.0.0"
 | 
			
		||||
      },
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "resolve": "bin/resolve"
 | 
			
		||||
      },
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/source-map": {
 | 
			
		||||
      "version": "0.7.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
 | 
			
		||||
      "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "BSD-3-Clause",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 8"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/supports-preserve-symlinks-flag": {
 | 
			
		||||
      "version": "1.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
 | 
			
		||||
      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 0.4"
 | 
			
		||||
      },
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/tapable": {
 | 
			
		||||
      "version": "2.2.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
 | 
			
		||||
      "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=6"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/typescript": {
 | 
			
		||||
      "version": "5.5.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz",
 | 
			
		||||
      "integrity": "sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "Apache-2.0",
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "tsc": "bin/tsc",
 | 
			
		||||
        "tsserver": "bin/tsserver"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=14.17"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/typescript-to-lua": {
 | 
			
		||||
      "version": "1.26.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/typescript-to-lua/-/typescript-to-lua-1.26.2.tgz",
 | 
			
		||||
      "integrity": "sha512-nmlYhi0mlXOKK5q3GumstC/fk30xPSILQTK5GHcTovSiCzSovLUq0F6NNBnSMskmw9ENjUwdMtHUl2IpfeiGrw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@typescript-to-lua/language-extensions": "1.19.0",
 | 
			
		||||
        "enhanced-resolve": "^5.8.2",
 | 
			
		||||
        "picomatch": "^2.3.1",
 | 
			
		||||
        "resolve": "^1.15.1",
 | 
			
		||||
        "source-map": "^0.7.3"
 | 
			
		||||
      },
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "tstl": "dist/tstl.js"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=16.10.0"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "typescript": "5.5.2"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										15
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
{
 | 
			
		||||
  "name": "keypados",
 | 
			
		||||
  "version": "1.0.0",
 | 
			
		||||
  "main": "index.js",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "test": "echo \"Error: no test specified\" && exit 1"
 | 
			
		||||
  },
 | 
			
		||||
  "author": "",
 | 
			
		||||
  "license": "ISC",
 | 
			
		||||
  "description": "",
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "typescript": "^5.5.2",
 | 
			
		||||
    "typescript-to-lua": "^1.26.2"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/index.ts
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function main() {
 | 
			
		||||
    const d: peripheral = peripheral.wrap("disk") as peripheral;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main()
 | 
			
		||||
							
								
								
									
										859
									
								
								src/types/cct.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										859
									
								
								src/types/cct.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,859 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
declare function print(s: string): number;
 | 
			
		||||
declare function write(s: string): number;
 | 
			
		||||
declare function sleep(time: number): void;
 | 
			
		||||
declare function printError(...values: any): void;
 | 
			
		||||
declare function read(replaceChar?: string, history?: string[], completeFn?: (par: string) => string[]): void;
 | 
			
		||||
declare function Command(args: string): [boolean, string[], number|null];
 | 
			
		||||
declare function AsyncCommand(args: string): number;
 | 
			
		||||
 | 
			
		||||
declare const _HOST: string;
 | 
			
		||||
declare const _CC_DEFAULT_SETTINGS: string;
 | 
			
		||||
 | 
			
		||||
type Color = number;
 | 
			
		||||
type Coords = [number, number, number];
 | 
			
		||||
type CoordsNullable = [number|null, number|null, number|null];
 | 
			
		||||
 | 
			
		||||
declare class colors {
 | 
			
		||||
    /// White: Written as **`0`** in paint files and term.blit, has a default terminal color of #F0F0F0
 | 
			
		||||
    public static white: Color;
 | 
			
		||||
    /// Orange: Written as **`1`** in paint files and term.blit, has a default terminal color of #F2B233.
 | 
			
		||||
    public static orange: Color;
 | 
			
		||||
    // Magenta: Written as **`2`** in paint files and term.blit, has a default terminal color of #E57FD8.
 | 
			
		||||
    public static magenta: Color;
 | 
			
		||||
    // LightBlue: Written as **`3`** in paint files and `term.blit`, has a default terminal color of #99B2F2.
 | 
			
		||||
    public static lightBlue: Color;
 | 
			
		||||
    // Yellow: Written as **`4`** in paint files and `term.blit`, has a default terminal color of #DEDE6C.
 | 
			
		||||
    public static yellow: Color;
 | 
			
		||||
    // Lime: Written as **`5`** in paint files and `term.blit`, has a default terminal color of #7FCC19.
 | 
			
		||||
    public static lime: Color;
 | 
			
		||||
    // Pink: Written as **`6`** in paint files and `term.blit`, has a default terminal color of #F2B2CC.
 | 
			
		||||
    public static pink: Color;
 | 
			
		||||
    // Gray: Written as **`7`** in paint files and `term.blit`, has a default terminal color of #4C4C4C.
 | 
			
		||||
    public static gray: Color;
 | 
			
		||||
    // LightGray: Written as **`8`** in paint files and `term.blit`, has a default terminal color of #999999.
 | 
			
		||||
    public static lightGray: Color;
 | 
			
		||||
    // Cyan: Written as **`9`** in paint files and `term.blit`, has a default terminal color of #4C99B2.
 | 
			
		||||
    public static cyan: Color;
 | 
			
		||||
    // Purple: Written as **`a`** in paint files and `term.blit`, has a default terminal color of #B266E5.
 | 
			
		||||
    public static purple: Color;
 | 
			
		||||
    // Blue: Written as **`b`** in paint files and `term.blit`, has a default terminal color of #3366CC.
 | 
			
		||||
    public static blue: Color;
 | 
			
		||||
    // Brown: Written as **`c`** in paint files and `term.blit`, has a default terminal color of #7F664C.
 | 
			
		||||
    public static brown: Color;
 | 
			
		||||
    // Green: Written as **`d`** in paint files and `term.blit`, has a default terminal color of #57A64E.
 | 
			
		||||
    public static green: Color;
 | 
			
		||||
    /// Red: Written as **`e`** in paint files and `term.blit`, has a default terminal color of #CC4C4C.
 | 
			
		||||
    public static red: Color;
 | 
			
		||||
    /// Black: Written as **`f`** in paint files and `term.blit`, has a default terminal color of #111111.
 | 
			
		||||
    public static black: Color;
 | 
			
		||||
 | 
			
		||||
    static combine(...colors: Color[]): Color;
 | 
			
		||||
    static subtract(from: Color, what: Color): Color;
 | 
			
		||||
    static test(from: Color, what: Color): boolean;
 | 
			
		||||
    static packRGB(r: number, g: number, b: number): Color;
 | 
			
		||||
    static unpackRGB(rgb: Color): [number, number, number];
 | 
			
		||||
    static toBlit(color: Color): string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class BlockInfo extends Map<string, any> {
 | 
			
		||||
    public static name: string;
 | 
			
		||||
    public static state: Map<string, any>;
 | 
			
		||||
    public static tags: Map<string, boolean>;
 | 
			
		||||
    public static nbt: Map<string, any>;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class native {
 | 
			
		||||
    static exec(command: string): [boolean, string[], number|null];
 | 
			
		||||
    static execAsync(command: string): number;
 | 
			
		||||
    static list(...subcommand: string[]): string[];
 | 
			
		||||
    static getBlockPosition(): Coords;
 | 
			
		||||
    static getBlockInfos(minX: number, minY: number, minZ: number, 
 | 
			
		||||
                         maxX: number, maxY: number, maxZ: number, dimension?: string): BlockInfo[];
 | 
			
		||||
    static getBlockInfo(x: number, y: number, z: number, dimension: string): BlockInfo;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class async {
 | 
			
		||||
    static exec(command: string): number;
 | 
			
		||||
    static execAsync(command: string): number;
 | 
			
		||||
    static list(...subcommand: string[]): number;
 | 
			
		||||
    static getBlockPosition(): number;
 | 
			
		||||
    static getBlockInfos(minX: number, minY: number, minZ: number, 
 | 
			
		||||
                         maxX: number, maxY: number, maxZ: number, dimension?: string): number;
 | 
			
		||||
    static getBlockInfo(x: number, y: number, z: number, dimension: string): number;
 | 
			
		||||
}
 | 
			
		||||
declare class commands {
 | 
			
		||||
    public static native: native;
 | 
			
		||||
    public static async: async;
 | 
			
		||||
    static exec(command: string): [boolean, string[], number|null];
 | 
			
		||||
    static execAsync(command: string): number;
 | 
			
		||||
    static list(...subcommand: string[]): string[];
 | 
			
		||||
    static getBlockPosition(): Coords;
 | 
			
		||||
    static getBlockInfos(minX: number, minY: number, minZ: number, 
 | 
			
		||||
                         maxX: number, maxY: number, maxZ: number, dimension?: string): BlockInfo[];
 | 
			
		||||
    static getBlockInfo(x: number, y: number, z: number, dimension: string): BlockInfo;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type AnyPeripheral = command | computer | drive | modem | Monitor | printer | speaker | BigReactors;
 | 
			
		||||
 | 
			
		||||
declare class peripheral {
 | 
			
		||||
    /**
 | 
			
		||||
     * Provides a list of all peripherals available.
 | 
			
		||||
     * If a device is located directly next to the system, 
 | 
			
		||||
     * then its name will be listed as the side it is attached to. 
 | 
			
		||||
     * If a device is attached via a Wired Modem, 
 | 
			
		||||
     * then it'll be reported according to its name on the wired network.
 | 
			
		||||
     */
 | 
			
		||||
    static getNames(): string[];
 | 
			
		||||
    /**
 | 
			
		||||
     * Determines if a peripheral is present with the given name.
 | 
			
		||||
     */
 | 
			
		||||
    static isPresent(name: string): boolean;
 | 
			
		||||
 | 
			
		||||
    static getType(peripheral: string|peripheral): string|null;
 | 
			
		||||
 | 
			
		||||
    static hasType(peripheral: string|peripheral, peripheral_type: string): boolean|null;
 | 
			
		||||
 | 
			
		||||
    static getMethods(name: string): string[]|null;
 | 
			
		||||
    
 | 
			
		||||
    static getName(peripheral: peripheral): string;
 | 
			
		||||
 | 
			
		||||
    static call(name: string, method: string, ...arguments: unknown[]): unknown;
 | 
			
		||||
 | 
			
		||||
    static wrap(name: string): peripheral| null;
 | 
			
		||||
 | 
			
		||||
    static find(ty: string, 
 | 
			
		||||
                filter: (name: string, wrapped: peripheral) => boolean
 | 
			
		||||
               ): [peripheral, peripheral|null, peripheral|null, peripheral|null];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class inventory {
 | 
			
		||||
    static size(): number;
 | 
			
		||||
    static list(): Map<number, ItemInfo>;
 | 
			
		||||
    static getItemDetail(slot: number): ItemInfo|null;
 | 
			
		||||
    static getItemLimit(slot: number): number;
 | 
			
		||||
    static pushItems(toName: string, fromSlot: number, limit: number, toSlot: number): number;
 | 
			
		||||
    static pullItems(fromName: string, fromSlot: number, limit: number, toSlot: number): number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class fluid_storage {
 | 
			
		||||
    static tanks(): Map<number, object>;
 | 
			
		||||
    static pushFluid(toName: string, limit?: number, fluidName?: string): number;
 | 
			
		||||
    static pullFluid(fromName: string, limit?: number, fluidName?: string): number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class energy_storage {
 | 
			
		||||
    static getEnergy(): number;
 | 
			
		||||
    static getEnergyCapacity(): number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Instrument = "harp" | "basedrum" | "snare" | "hat" | "bass" | "flute" | "bell" | "guitar" | "chime" | "xylophone" | 
 | 
			
		||||
                    "iron_xylophone" | "cow_bell" | "didgeridoo" | "bit" | "banjo" | "pling";
 | 
			
		||||
 | 
			
		||||
declare class speaker {
 | 
			
		||||
    static playNote(instrument: Instrument, volume?: number, pitch?: number): boolean;
 | 
			
		||||
    static playSound(name: string, volume?: number, pitch?: number): boolean;
 | 
			
		||||
    static playAudio(audio: number[], volume?: number): boolean;
 | 
			
		||||
    static stop(): void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class printer {
 | 
			
		||||
    static write(...args: (string|number)[]): void;
 | 
			
		||||
    static getCursorPos(): [number, number];
 | 
			
		||||
    static setCursorPos(x: number, y: number): void;
 | 
			
		||||
    static getPageSize(): number;
 | 
			
		||||
    static newPaget(): void;
 | 
			
		||||
    static endPage(): boolean;
 | 
			
		||||
    static setPageTitle(s: string): void;
 | 
			
		||||
    static getInkLevel(): number;
 | 
			
		||||
    static getPaperLevel(): number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class Monitor extends Redirect {
 | 
			
		||||
    static getNames(): string[];
 | 
			
		||||
    static isPresent(name: string): boolean;
 | 
			
		||||
    static getType(peripheral: string|peripheral): string|null;
 | 
			
		||||
    static hasType(peripheral: string|peripheral, peripheral_type: string): boolean|null;
 | 
			
		||||
    static getMethods(name: string): string[]|null;
 | 
			
		||||
    static getName(peripheral: peripheral): string;
 | 
			
		||||
    static call(name: string, method: string, ...arguments: unknown[]): unknown;
 | 
			
		||||
    static wrap(name: string): peripheral| null;
 | 
			
		||||
    static find(ty: string, 
 | 
			
		||||
                filter: (name: string, wrapped: peripheral) => boolean
 | 
			
		||||
               ): [peripheral, peripheral|null, peripheral|null, peripheral|null];
 | 
			
		||||
    setTextScale(scale: number): void;
 | 
			
		||||
    getTextScale(): number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class modem {
 | 
			
		||||
    static open(channel: number): void;
 | 
			
		||||
    static isOpen(channel: number): boolean;
 | 
			
		||||
    static close(channel: number): void;
 | 
			
		||||
    static closeAll(): void;
 | 
			
		||||
    static transmit(channel: number, replyChannel: number, payload: any): void;
 | 
			
		||||
    static isWireless(): boolean;
 | 
			
		||||
    static getNamesRemote(): string[];
 | 
			
		||||
    static isPresentRemote(name: string): boolean;
 | 
			
		||||
    static getTypeRemote(name: string): string|null;
 | 
			
		||||
    static hasTypeRemote(name: string, typ: string): boolean;
 | 
			
		||||
    static getMethodsRemote(name: string): string|null;
 | 
			
		||||
    static callRemote(remoteName: string, method: string, ...args: any[]): any[];
 | 
			
		||||
    static getNameLocal(): string|null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class drive {
 | 
			
		||||
    static isDiskPresent(): boolean;
 | 
			
		||||
    static getDiskLabel(): string|null;
 | 
			
		||||
    static setDiskLabel(l?: string): null;
 | 
			
		||||
    static hasData(): boolean;
 | 
			
		||||
    static getMountPath(): string|null;
 | 
			
		||||
    static hasAudio(): boolean;
 | 
			
		||||
    static getAudioTitle(name: string): string|"false"|null;
 | 
			
		||||
    static playAudio(name: string): void;
 | 
			
		||||
    static stopAudio(name: string): void;
 | 
			
		||||
    static ejectDisk(name: string): void;
 | 
			
		||||
    static getDiskID(name: string): string|null; 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class disk {
 | 
			
		||||
    static getLabel(name: string): string|null;
 | 
			
		||||
    static setLabel(name: string, label?: string): void;
 | 
			
		||||
    static hasData(name: string): boolean;
 | 
			
		||||
    static getMountPath(name: string): string|null;
 | 
			
		||||
    static hasAudio(name: string): boolean;
 | 
			
		||||
    static getAudioTitle(name: string): string|"false"|null;
 | 
			
		||||
    static playAudio(name: string): void;
 | 
			
		||||
    static stopAudio(name: string): void;
 | 
			
		||||
    static eject(name: string): void;
 | 
			
		||||
    static getID(name: string): string|null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
declare class computer {
 | 
			
		||||
    static turnOn(): void;
 | 
			
		||||
    static shutdown(): void;
 | 
			
		||||
    static reboot(): void;
 | 
			
		||||
    static getID(): number;
 | 
			
		||||
    static isOn(): boolean;
 | 
			
		||||
    static getLabel(): string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class command {
 | 
			
		||||
    static getCommand(): string;
 | 
			
		||||
    static setCommand(command: string): void;
 | 
			
		||||
    static runCommand(): [boolean, string|null];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class fs {
 | 
			
		||||
    static isDriveRoot(path: string): boolean;
 | 
			
		||||
    static include(path: string, location: string, include_files?: boolean, include_dirs?: boolean): string[];
 | 
			
		||||
    static list(path: string): string[];
 | 
			
		||||
    static combine(path: string, ...paths: string[]): string;
 | 
			
		||||
    static getName(path: string): string;
 | 
			
		||||
    static getDir(path: string): string;
 | 
			
		||||
    static getSize(path: string): number;
 | 
			
		||||
    static exists(path: string): boolean;
 | 
			
		||||
    static isDir(path: string): boolean;
 | 
			
		||||
    static isReadOnly(path: string): boolean;
 | 
			
		||||
    static makeDir(path: string): void;
 | 
			
		||||
    static move(from: string, to: string): void;
 | 
			
		||||
    static copy(from: string, to: string): void;
 | 
			
		||||
    static delete(path: string): void;
 | 
			
		||||
    static open(path: string, mode: "r"): ReadHandle;
 | 
			
		||||
    static open(path: string, mode: "rb"): BinaryReadHandle;
 | 
			
		||||
    static open(path: string, mode: "w" | "a"): WriteHandle;
 | 
			
		||||
    static open(path: string, mode: "wb" | "ab"): BinaryWriteHandle;
 | 
			
		||||
    static getDrive(path: string): string;
 | 
			
		||||
    static getFreeSpace(path: string): number|"unlimited";
 | 
			
		||||
    static find(path: string): string[];
 | 
			
		||||
    static getCapacity(path: string): number|null;
 | 
			
		||||
    static attributes(path: string): Attributes;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface Attributes {
 | 
			
		||||
    size: number;
 | 
			
		||||
    isDir: boolean;
 | 
			
		||||
    isReadOnly: boolean;
 | 
			
		||||
    created: number;
 | 
			
		||||
    modified: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class FileHandle {
 | 
			
		||||
    close(): void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class ReadHandle extends FileHandle {
 | 
			
		||||
    readLine(withTrailing?: boolean): string|null;
 | 
			
		||||
    readAll(): string|null;
 | 
			
		||||
    read(count?: number): string|null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class BinaryReadHandle extends FileHandle {
 | 
			
		||||
    read(): number;
 | 
			
		||||
    read(count?: number): string|null;
 | 
			
		||||
    readLine(withTrailing?: boolean): string|null;
 | 
			
		||||
    readAll(): string|null;
 | 
			
		||||
    seek(whence?: "set"|"cur"|"end", offset?: number): [number|null, string|null];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class WriteHandle extends FileHandle {
 | 
			
		||||
    write(val: string): void;
 | 
			
		||||
    writeLine(val: string): void;
 | 
			
		||||
    flush(): void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class BinaryWriteHandle extends FileHandle {
 | 
			
		||||
    write(val: string|number): void;
 | 
			
		||||
    flush(): void;
 | 
			
		||||
    seek(whence?: "set"|"cur"|"end", offset?: number): [number|null, string|null];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class gps {
 | 
			
		||||
    public static CHANNEL_GPS: number;
 | 
			
		||||
    static locate(timeout?: number, debug?: boolean): CoordsNullable;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class help {
 | 
			
		||||
    static path(): string;
 | 
			
		||||
    static setPath(newPath: string): void;
 | 
			
		||||
    static lookup(topic: string): string|null;
 | 
			
		||||
    static topics(): string[];
 | 
			
		||||
    static completeTopic(prefix: string): string[];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class Request {
 | 
			
		||||
    public static url: string;
 | 
			
		||||
    public static body?: string;
 | 
			
		||||
    public static headers?: Map<string, string>;
 | 
			
		||||
    public static binary?: boolean;
 | 
			
		||||
    public static method?: string;
 | 
			
		||||
    public static redirect?: boolean;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class GetRequest {
 | 
			
		||||
    public static url: string;
 | 
			
		||||
    public static headers?: Map<string, string>;
 | 
			
		||||
    public static binary?: boolean;
 | 
			
		||||
    public static method?: string;
 | 
			
		||||
    public static redirect?: boolean;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class http {
 | 
			
		||||
    static request(request: Request): [boolean, string|null];    
 | 
			
		||||
    static request(url: string, body?: string, headers?: Map<string, string>, binary?: boolean): [boolean, string|null];
 | 
			
		||||
    static get(request: GetRequest): [Response|null, string|null, Response|null];
 | 
			
		||||
    static get(url: string, headers?: Map<string, string>, binary?: boolean): [Response|null, string|null, Response|null];
 | 
			
		||||
    static post(request: Request): [Response|null, string|null, Response|null];
 | 
			
		||||
    static post(url: string, body?: string, headers?: Map<string, string>, binary?: boolean): [Response|null, string|null, Response|null];
 | 
			
		||||
    static checkUrl(url: string): [boolean, string|null];
 | 
			
		||||
    static checkUrlAsync(url: string): [boolean, string|null];
 | 
			
		||||
    static websocket(url: string, headers?: Map<string, string>): [Websocket | "false", string|null];
 | 
			
		||||
    static websocketAsync(url: string, headers?: Map<string, string>): "true";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class Websocket {
 | 
			
		||||
    receive(timeout?: number): [string|null, boolean];
 | 
			
		||||
    send(message: any, binary?: boolean): void;
 | 
			
		||||
    close(): void;
 | 
			
		||||
    getResponseCode(): [number, string];
 | 
			
		||||
    getResponseHeaders(): Map<string, string>;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class Response extends BinaryReadHandle {}
 | 
			
		||||
 | 
			
		||||
declare class Handle {
 | 
			
		||||
    close(): ["true"|null, string|null];
 | 
			
		||||
    flush(): void;
 | 
			
		||||
    lines(...params: any[]): () => string|null;
 | 
			
		||||
    read(...format: ("l" | "L" | "n" | "a" | "*l" | "*L" | "*n" | "*a")[]): [string|null, string|null, string|null, string|null];
 | 
			
		||||
    seek(whence?: "set"|"cur"|"end", offset?: number): number;
 | 
			
		||||
    write(...val: (string|number)[]): [Handle|null, string|null];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class io {
 | 
			
		||||
    public static stdin: Handle;
 | 
			
		||||
    public static stdout: Handle;
 | 
			
		||||
    public static stderr: Handle;
 | 
			
		||||
    static close(file: Handle): void;
 | 
			
		||||
    static flush(): void;
 | 
			
		||||
    static input(file?: Handle|string): Handle;
 | 
			
		||||
    static lines(filename?: string, ...args: any[]): () => string|null;
 | 
			
		||||
    static open(filename: string, mode?: "r"|"w"|"a"|"rb"|"wb"|"ab"): [Handle|null, string|null];
 | 
			
		||||
    static output(file?: Handle|string): Handle;
 | 
			
		||||
    static read(...formats: any): [string|null, string|null, string|null, string|null];
 | 
			
		||||
    static type(handle: Handle): "file"|"closed file"|null;
 | 
			
		||||
    static write(...strings: string[]): [Handle|null, string|null];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface keys {
 | 
			
		||||
      a: number;
 | 
			
		||||
      b: number;
 | 
			
		||||
      c: number;
 | 
			
		||||
      d: number;
 | 
			
		||||
      e: number;
 | 
			
		||||
      f: number;
 | 
			
		||||
      g: number;
 | 
			
		||||
      h: number;
 | 
			
		||||
      i: number;
 | 
			
		||||
      j: number;
 | 
			
		||||
      k: number;
 | 
			
		||||
      l: number;
 | 
			
		||||
      m: number;
 | 
			
		||||
      n: number;
 | 
			
		||||
      o: number;
 | 
			
		||||
      p: number;
 | 
			
		||||
      q: number;
 | 
			
		||||
      r: number;
 | 
			
		||||
      s: number;
 | 
			
		||||
      t: number;
 | 
			
		||||
      u: number;
 | 
			
		||||
      v: number;
 | 
			
		||||
      w: number;
 | 
			
		||||
      x: number;
 | 
			
		||||
      y: number;
 | 
			
		||||
      z: number;
 | 
			
		||||
      f1: number;
 | 
			
		||||
      f2: number;
 | 
			
		||||
      f3: number;
 | 
			
		||||
      f4: number;
 | 
			
		||||
      f5: number;
 | 
			
		||||
      f6: number;
 | 
			
		||||
      f7: number;
 | 
			
		||||
      f8: number;
 | 
			
		||||
      f9: number;
 | 
			
		||||
      f10: number;
 | 
			
		||||
      f11: number;
 | 
			
		||||
      f12: number;
 | 
			
		||||
      f13: number;
 | 
			
		||||
      f14: number;
 | 
			
		||||
      f15: number;
 | 
			
		||||
      f16: number;
 | 
			
		||||
      f17: number;
 | 
			
		||||
      f18: number;
 | 
			
		||||
      f19: number;
 | 
			
		||||
      f20: number;
 | 
			
		||||
      f21: number;
 | 
			
		||||
      f22: number;
 | 
			
		||||
      f23: number;
 | 
			
		||||
      f24: number;
 | 
			
		||||
      f25: number;
 | 
			
		||||
      left: number;
 | 
			
		||||
      leftAlt: number;
 | 
			
		||||
      leftBracket: number;
 | 
			
		||||
      leftCtrl: number;
 | 
			
		||||
      leftShift: number;
 | 
			
		||||
      leftSuper: number;
 | 
			
		||||
      right: number;
 | 
			
		||||
      rightAlt: number;
 | 
			
		||||
      rightBracket: number;
 | 
			
		||||
      rightCtrl: number;
 | 
			
		||||
      rightShift: number;
 | 
			
		||||
      up: number;
 | 
			
		||||
      down: number;
 | 
			
		||||
      pageUp: number;
 | 
			
		||||
      pageDown: number;
 | 
			
		||||
      home: number;
 | 
			
		||||
      en: number;
 | 
			
		||||
      apostrophe: number;
 | 
			
		||||
      backslash: number;
 | 
			
		||||
      comma: number;
 | 
			
		||||
      equals: number;
 | 
			
		||||
      grave: number;
 | 
			
		||||
      minus: number;
 | 
			
		||||
      period: number;
 | 
			
		||||
      semicolon: number;
 | 
			
		||||
      slash: number;
 | 
			
		||||
      space: number;
 | 
			
		||||
      tab: number;
 | 
			
		||||
      numPad0: number;
 | 
			
		||||
      numPad1: number;
 | 
			
		||||
      numPad2: number;
 | 
			
		||||
      numPad3: number;
 | 
			
		||||
      numPad4: number;
 | 
			
		||||
      numPad5: number;
 | 
			
		||||
      numPad6: number;
 | 
			
		||||
      numPad7: number;
 | 
			
		||||
      numPad8: number;
 | 
			
		||||
      numPad9: number;
 | 
			
		||||
      numLock: number;
 | 
			
		||||
      numPadAdd: number;
 | 
			
		||||
      numPadDecimal: number;
 | 
			
		||||
      numPadDivide: number;
 | 
			
		||||
      numPadEnter: number;
 | 
			
		||||
      numPadEqual: number;
 | 
			
		||||
      numPadMultiply: number;
 | 
			
		||||
      numPadSubtract: number;
 | 
			
		||||
      backspace: number;
 | 
			
		||||
      delete: number;
 | 
			
		||||
      capsLock: number;
 | 
			
		||||
      scollLock: number;
 | 
			
		||||
      scrollLock: number;
 | 
			
		||||
      enter: number;
 | 
			
		||||
      return: number;
 | 
			
		||||
      insert: number;
 | 
			
		||||
      menu: number;
 | 
			
		||||
      pause: number;
 | 
			
		||||
      printScreen: number;
 | 
			
		||||
      zero: number;
 | 
			
		||||
      one: number;
 | 
			
		||||
      two: number;
 | 
			
		||||
      three: number;
 | 
			
		||||
      four: number;
 | 
			
		||||
      five: number;
 | 
			
		||||
      six: number;
 | 
			
		||||
      seven: number;
 | 
			
		||||
      eight: number;
 | 
			
		||||
      nine: number;
 | 
			
		||||
 | 
			
		||||
      getName: (code: number) => string|null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class multishell {
 | 
			
		||||
    static getFocus(): number;
 | 
			
		||||
    static setFocus(n: number): boolean;
 | 
			
		||||
    static getTitle(n: number): string|null;
 | 
			
		||||
    static setTitle(n: number, title: string): void;
 | 
			
		||||
    static get_current(): number;
 | 
			
		||||
    static launch(tProgramEnv: Map<any, any>, sProgramPath: string, ...args: string[]): number;
 | 
			
		||||
    static getCount(): number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class os {
 | 
			
		||||
    static pullEvent(filter?: string): [string, unknown, unknown, unknown, unknown];
 | 
			
		||||
    static pullEventRaw(filter?: string): [string, unknown, unknown, unknown, unknown];
 | 
			
		||||
    static sleep(n: number): void;
 | 
			
		||||
    static version(): string;
 | 
			
		||||
    static run(env: Map<any, any>, path: string, ...args: string[]): boolean;
 | 
			
		||||
    static queueEvent(name: string, ...args: any[]): void;
 | 
			
		||||
    static startTimer(time: number): number;
 | 
			
		||||
    static cancelTimer(token: number): void;
 | 
			
		||||
    static setAlarm(time: number): number;
 | 
			
		||||
    static cancelAlarm(token: number): void;
 | 
			
		||||
    static shutdown(): void;
 | 
			
		||||
    static reboot(): void;
 | 
			
		||||
    static getComputerID(): number;
 | 
			
		||||
    static setComputerLabel(label?: string): void;
 | 
			
		||||
    static clock(): number;
 | 
			
		||||
    static time(locale?: "ingame" | "utc" | "local"): number;
 | 
			
		||||
    static time(locale?: date): number;
 | 
			
		||||
    static day(locale?: "ingame" | "utc" | "local"): number;
 | 
			
		||||
    static epoch(locale?: "ingame" | "utc" | "local"): number;
 | 
			
		||||
    static date(format?: string, time?: number): number;
 | 
			
		||||
    static date(format?: "*t" | "!*t", time?: number): date;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface date {
 | 
			
		||||
   isdst: boolean;
 | 
			
		||||
   hour: number;
 | 
			
		||||
   min: number;
 | 
			
		||||
   sec: number;
 | 
			
		||||
   day: number;
 | 
			
		||||
   month: number;
 | 
			
		||||
   year: number;
 | 
			
		||||
   wday: number;
 | 
			
		||||
   yday: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Image = number[][];
 | 
			
		||||
 | 
			
		||||
declare class paintutils {
 | 
			
		||||
    static parseImage(image: string): Image;
 | 
			
		||||
    static loadImage(path: string): Image|null;
 | 
			
		||||
    static drawPixel(xPos: number, yPos: number, color?: Color): void;
 | 
			
		||||
    static drawBox(startX: number, startY: number, endX: number, endY: number, color: Color): void;
 | 
			
		||||
    static drawFilledBox(startX: number, startY: number, endX: number, endY: number, color: Color): void;
 | 
			
		||||
    static drawImage(image: Image, xPos: number, yPos: number): void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class parallel {
 | 
			
		||||
    static waitForAny(...functions: ((...args: any[]) => any)[]): void;
 | 
			
		||||
    static waitForAll(...functions: ((...args: any[]) => any)[]): void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class pocket {
 | 
			
		||||
    static equipBack(): [boolean, string|null];
 | 
			
		||||
    static unequipBack(): [boolean, string|null];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class rednet {
 | 
			
		||||
    public static CHANNEL_BROADCAST: number;
 | 
			
		||||
    public static CHANNEL_REPEAT: number;
 | 
			
		||||
    public static MAX_ID_CHANNELS: number;
 | 
			
		||||
 | 
			
		||||
    static open(modem: string): void;
 | 
			
		||||
    static close(modem?: string): void;
 | 
			
		||||
    static isOpen(modem?: string): boolean;
 | 
			
		||||
    static send(recipient: number, message: any,  protocol?: string): boolean;
 | 
			
		||||
    static broadcast(message: any,  protocol?: string): boolean;
 | 
			
		||||
    static receive(protocol_filter?: string, timeout?: number): [number|null, unknown, string|null];
 | 
			
		||||
    static host(protocol: string, hostname: string): void;
 | 
			
		||||
    static unhost(protocol: string): void;
 | 
			
		||||
    static lookup(protocol: string, hostname: string): [number|null, number, number, number];
 | 
			
		||||
    static run(): void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Side = "top"|"bottom"|"left"|"right"|"front"|"back";
 | 
			
		||||
 | 
			
		||||
declare class redstone {
 | 
			
		||||
    static getSides(): string;
 | 
			
		||||
    static setOutput(side: Side, on: boolean): void;
 | 
			
		||||
    static getOutput(side: Side): boolean;
 | 
			
		||||
    static getInput(side: Side): boolean;
 | 
			
		||||
    static setAnalogOutput(side: Side, val: number): number;
 | 
			
		||||
    static getAnalogOutput(side: Side): number;
 | 
			
		||||
    static getAnalogInput(side: Side): number;
 | 
			
		||||
    static setBundledOutput(side: Side, val: number): number;
 | 
			
		||||
    static getBundledOutput(side: Side): number;
 | 
			
		||||
    static getBundledInput(side: Side): number;
 | 
			
		||||
    static testBundledInput(side: Side, mask: number): boolean;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class settings {
 | 
			
		||||
    static define(name: string, options: settingsOptions): void;
 | 
			
		||||
    static undefine(name: string): void;
 | 
			
		||||
    static set(name: string, value: any): void;
 | 
			
		||||
    static get(name: string, deflt?: any): unknown;
 | 
			
		||||
    static getDetails(name: string): settingsDetails;
 | 
			
		||||
    static unset(name: string): void;
 | 
			
		||||
    static clear(): void;
 | 
			
		||||
    static getNames(): string[];
 | 
			
		||||
    static load(path?: string): boolean;
 | 
			
		||||
    static save(path?: string): boolean;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface settingsOptions {
 | 
			
		||||
    description?: string;
 | 
			
		||||
    default?: any;
 | 
			
		||||
    type?: string; 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface settingsDetails {
 | 
			
		||||
    description?: string;
 | 
			
		||||
    default?: any;
 | 
			
		||||
    type?: string;
 | 
			
		||||
    value?: any;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type completionFn = (shell: shell, index: number, argument: string, previous: string[]) => string[]|null;
 | 
			
		||||
 | 
			
		||||
declare class shell {
 | 
			
		||||
    static execute(command: string, ...args: string[]): boolean;
 | 
			
		||||
    static run(...args: string[]): boolean;
 | 
			
		||||
    static exit(): void;
 | 
			
		||||
    static dir(): string;
 | 
			
		||||
    static setDir(dir: string): void;
 | 
			
		||||
    static path(): string;
 | 
			
		||||
    static setPath(path: string): void;
 | 
			
		||||
    static resolve(p: string): void;
 | 
			
		||||
    static resolveProgram(p: string): string|null;
 | 
			
		||||
    static programs(include_hidden?: boolean): string[];
 | 
			
		||||
    static complete(input: string): string[];
 | 
			
		||||
    static completeProgram(program: string): string[];
 | 
			
		||||
    static setCompletionFunction(program: string, complete: completionFn): void;
 | 
			
		||||
    static getCompletionInfo(): Map<string, completionInfo>;
 | 
			
		||||
    static getRunningProgram(): string;
 | 
			
		||||
    static setAlias(command: string, program: string): void;
 | 
			
		||||
    static clearAlias(command: string): void;
 | 
			
		||||
    static aliases(): Map<string, string>;
 | 
			
		||||
    static openTab(...args: string[]): number;
 | 
			
		||||
    static switchTab(id: number): void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface completionInfo {
 | 
			
		||||
    fnComplete: completionFn;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class Redirect {
 | 
			
		||||
    static write(s: string): void;
 | 
			
		||||
    static scroll(y: number): void;
 | 
			
		||||
    static getCursorPos(): [number, number];
 | 
			
		||||
    static setCursorPos(x: number, y: number): void;
 | 
			
		||||
    static getCursorBlink(): boolean;
 | 
			
		||||
    static setCursorBlink(b: boolean): void;
 | 
			
		||||
    static getSize(): [number, number];
 | 
			
		||||
    static clear(): void;
 | 
			
		||||
    static clearLine(): void;
 | 
			
		||||
    static getTextColor(): Color;
 | 
			
		||||
    static setTextColor(c: Color): void;
 | 
			
		||||
    static getBackgroundColor(): Color;
 | 
			
		||||
    static setBackgroundColor(c: Color): void;
 | 
			
		||||
    static isColor(): boolean;
 | 
			
		||||
    static blit(text: string, textColor: string, backgroundColor: string): void;
 | 
			
		||||
    static setPaletteColor(index: number, color: Color): void;
 | 
			
		||||
    static setPaletteColor(index: number, r: number, g: number, b: number): void;
 | 
			
		||||
    static getPaletteColor(color: Color): [number, number, number];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class term extends Redirect {
 | 
			
		||||
    static nativePaletteColor(color: Color): [number, number, number];
 | 
			
		||||
    static redirect(target: Redirect): Redirect;
 | 
			
		||||
    static current(): Redirect;
 | 
			
		||||
    static native(): Redirect;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class turtle {
 | 
			
		||||
    static forward(): [boolean, string|null];
 | 
			
		||||
    static back(): [boolean, string|null];
 | 
			
		||||
    static up(): [boolean, string|null];
 | 
			
		||||
    static down(): [boolean, string|null];
 | 
			
		||||
    static turnLeft(): [boolean, string|null];
 | 
			
		||||
    static turnRight(): [boolean, string|null];
 | 
			
		||||
    static dig(side?: "left" | "right"): [boolean, string|null];
 | 
			
		||||
    static digUp(side?: "left" | "right"): [boolean, string|null];
 | 
			
		||||
    static digDown(side?: "left" | "right"): [boolean, string|null];
 | 
			
		||||
    static place(text?: string): [boolean, string|null];
 | 
			
		||||
    static placeUp(text?: string): [boolean, string|null];
 | 
			
		||||
    static placeDown(text?: string): [boolean, string|null];
 | 
			
		||||
    static drop(count?: number): [boolean, string|null];
 | 
			
		||||
    static dropUp(count?: number): [boolean, string|null];
 | 
			
		||||
    static dropDown(count?: number): [boolean, string|null];
 | 
			
		||||
    static select(slot: number): boolean;
 | 
			
		||||
    static getItemCount(slot?: number): number;
 | 
			
		||||
    static detect(): boolean;
 | 
			
		||||
    static detectUp(): boolean;
 | 
			
		||||
    static detectDown(): boolean;
 | 
			
		||||
    static compare(): boolean;
 | 
			
		||||
    static compareUp(): boolean;
 | 
			
		||||
    static compareDown(): boolean;
 | 
			
		||||
    static attack(side?: "left" | "right"): [boolean, string|null];
 | 
			
		||||
    static attackUp(side?: "left" | "right"): [boolean, string|null];
 | 
			
		||||
    static attackDown(side?: "left" | "right"): [boolean, string|null];
 | 
			
		||||
    static suck(count?: number): [boolean, string|null];
 | 
			
		||||
    static suckUp(count?: number): [boolean, string|null];
 | 
			
		||||
    static suckDown(count?: number): [boolean, string|null];
 | 
			
		||||
    static getFuelLevel(): number|"unlimited";
 | 
			
		||||
    static refuel(count?: number): [boolean, string|null];
 | 
			
		||||
    static compareTo(slot: number): boolean;
 | 
			
		||||
    static compareTo(slot: number, count?: number): boolean;
 | 
			
		||||
    static getSelectedSlot(): number;
 | 
			
		||||
    static getFuelLimit(): number|"unlimited";
 | 
			
		||||
    static equpLeft(): [boolean, string|null];
 | 
			
		||||
    static equipRight(): [boolean, string|null];
 | 
			
		||||
    static inspect(): [boolean, BlockInfo|string];
 | 
			
		||||
    static inspectUp(): [boolean, BlockInfo|string];
 | 
			
		||||
    static inspectDown(): [boolean, BlockInfo|string];
 | 
			
		||||
    static getItemDetail(slot?: number, detailed?: boolean): ItemInfo | null;
 | 
			
		||||
    static craft(limit?: number): [boolean, string|null];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface ItemInfo {
 | 
			
		||||
    name: string;
 | 
			
		||||
    displayName: string;
 | 
			
		||||
    count: number;
 | 
			
		||||
    damage?: number;
 | 
			
		||||
    durability?: number;
 | 
			
		||||
    maxCount?: number;
 | 
			
		||||
    maxDamage?: number;
 | 
			
		||||
    nbt?: string;
 | 
			
		||||
    tags?: Map<string, boolean>;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class vector {
 | 
			
		||||
    static new(x: number, y: number, z: number): Vector;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class Vector {
 | 
			
		||||
    constructor(x: number, y: number, z: number);
 | 
			
		||||
 | 
			
		||||
    add(v: Vector): Vector;
 | 
			
		||||
    sub(v: Vector): Vector;
 | 
			
		||||
    mul(v: Vector): Vector;
 | 
			
		||||
    unm(): Vector;
 | 
			
		||||
    dot(v: Vector): Vector;
 | 
			
		||||
    cross(v: Vector): Vector;
 | 
			
		||||
    length(): Vector;
 | 
			
		||||
    normalise(): Vector;
 | 
			
		||||
    round(tol: number): Vector;
 | 
			
		||||
    tostring(): string;
 | 
			
		||||
    equals(v: Vector): boolean;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class window {
 | 
			
		||||
    static new(parent: Redirect, x: number, y: number, w: number, h: number, visible: boolean): Window;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare class Window extends Redirect {
 | 
			
		||||
    getLine(y: number): [string, string, string];
 | 
			
		||||
    setVisible(v: boolean): void;
 | 
			
		||||
    isVisible(): boolean;
 | 
			
		||||
    redraw(): void;
 | 
			
		||||
    restoreCursor(): void;
 | 
			
		||||
    getPosition(): [number, number];
 | 
			
		||||
    reposition(x: number, y: number, w: number, h: number, parent: Redirect): void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
declare module cc {
 | 
			
		||||
    // TODO
 | 
			
		||||
    //
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface EnergyStats {
 | 
			
		||||
    energyStored: number;
 | 
			
		||||
    energyCapacity: number;
 | 
			
		||||
    energyProducedLastTick: number;
 | 
			
		||||
    energySystem: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface FuelStats {
 | 
			
		||||
    fuelAmount: number;
 | 
			
		||||
    fuelCapacity: number;
 | 
			
		||||
    fuelTemperature: number;
 | 
			
		||||
    fuelConsumedLastTick: number;
 | 
			
		||||
    fuelReactivity: number;
 | 
			
		||||
    wasteAmount: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface HotFluidStats {
 | 
			
		||||
    fluidType: string;
 | 
			
		||||
    fluidAmount: number;
 | 
			
		||||
    fluidCapacity: number;
 | 
			
		||||
    fluidProducedLastTick: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface CoolantFluidStats {
 | 
			
		||||
    fluidType: string;
 | 
			
		||||
    fluidAmount: number;
 | 
			
		||||
    fluidCapacity: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
declare class BigReactors {
 | 
			
		||||
    getVariant(): string;
 | 
			
		||||
    getEnergyStored(): number;
 | 
			
		||||
    getEnergyStoredAsText(): string;
 | 
			
		||||
    getNumberOfControllRods(): number;
 | 
			
		||||
    getActive(): boolean;
 | 
			
		||||
    getFuelTemperature(): number;
 | 
			
		||||
    getCasingTemperature(): number;
 | 
			
		||||
    getFuelAmount(): number;
 | 
			
		||||
    getWasteAmount(): number;
 | 
			
		||||
    getFuelAmountMax(): number;
 | 
			
		||||
    getControllRodName(idx: number): string;
 | 
			
		||||
    getControllRodLevel(idx: number): number;
 | 
			
		||||
    getEnergyProducedLastTick(): number;
 | 
			
		||||
    getHotFluidProducedLastTick(): number;
 | 
			
		||||
    isActivelyCooled(): boolean;
 | 
			
		||||
    getCoolantAmount(): number;
 | 
			
		||||
    getCoolantAmountMax(): number;
 | 
			
		||||
    getHotFluidAmount(): number;
 | 
			
		||||
    getHotFluidAmountMax(): number;
 | 
			
		||||
    getHotFluidType(): string;
 | 
			
		||||
    getFuelReactivity(): number;
 | 
			
		||||
    getFuelConsumedLastTick(): number;
 | 
			
		||||
    getControllRodLocation(idx: number): Coords;
 | 
			
		||||
    getEnergyCapacity(): number;
 | 
			
		||||
    getControllRodLevels(): Map<number, number>;
 | 
			
		||||
    setControllRodLevels(levels: Map<number, number>): void;
 | 
			
		||||
    getEnergyStats(): EnergyStats;
 | 
			
		||||
    getHotFluidStats(): HotFluidStats;
 | 
			
		||||
    getCoolantFluidStats(): CoolantFluidStats;
 | 
			
		||||
    setActive(active: boolean): void;
 | 
			
		||||
    setControllRodLevel(idx: number, level: number): void;
 | 
			
		||||
    setAllControllRodLevels(level: number): void;
 | 
			
		||||
    setControllRodName(idx: number, name: string): void;
 | 
			
		||||
    doEjectWaste(): void;
 | 
			
		||||
    doEjectFuel(): void;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
{
 | 
			
		||||
  "$schema": "https://raw.githubusercontent.com/TypeScriptToLua/TypeScriptToLua/master/tsconfig-schema.json",
 | 
			
		||||
  "compilerOptions": {
 | 
			
		||||
    "target": "ESNext",
 | 
			
		||||
    "lib": ["ESNext"],
 | 
			
		||||
    "moduleResolution": "NodeNext",
 | 
			
		||||
    "module": "NodeNext",
 | 
			
		||||
    "types": [],
 | 
			
		||||
    "strict": true
 | 
			
		||||
  },
 | 
			
		||||
  "tstl": {
 | 
			
		||||
    "luaTarget": "universal",
 | 
			
		||||
    "luaBundleEntry": "src/index.ts",
 | 
			
		||||
    "luaBundle": "rOSs.lua"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user