mirror of
https://github.com/SikongJueluo/cc-utils.git
synced 2025-11-04 19:27:50 +08:00
1138 lines
33 KiB
TypeScript
1138 lines
33 KiB
TypeScript
/** @noSelfInFile **/
|
|
|
|
// Latest CC version: 1.109.3
|
|
/* eslint-disable @typescript-eslint/no-wrapper-object-types */
|
|
|
|
type Color = number;
|
|
type Colour = Color;
|
|
|
|
/** @noSelf **/
|
|
declare namespace colors {
|
|
let white: Color;
|
|
let orange: Color;
|
|
let magenta: Color;
|
|
let lightBlue: Color;
|
|
let yellow: Color;
|
|
let lime: Color;
|
|
let pink: Color;
|
|
let gray: Color;
|
|
let lightGray: Color;
|
|
let cyan: Color;
|
|
let purple: Color;
|
|
let blue: Color;
|
|
let brown: Color;
|
|
let green: Color;
|
|
let red: Color;
|
|
let black: Color;
|
|
function combine(c1: Color, ...c2: Color[]): Color;
|
|
function subtract(c1: Color, ...c2: Color[]): Color;
|
|
function test(colors: Color, color: Color): boolean;
|
|
function packRGB(r: number, g: number, b: number): number;
|
|
function unpackRGB(rgb: number): LuaMultiReturn<[number, number, number]>;
|
|
function toBlit(color: Color): string;
|
|
function fromBlit(color: string): Color | undefined;
|
|
}
|
|
|
|
/** @noSelf **/
|
|
declare namespace colours {
|
|
let white: Colour;
|
|
let orange: Colour;
|
|
let magenta: Colour;
|
|
let lightBlue: Colour;
|
|
let yellow: Colour;
|
|
let lime: Colour;
|
|
let pink: Colour;
|
|
let grey: Colour;
|
|
let lightGrey: Colour;
|
|
let cyan: Colour;
|
|
let purple: Colour;
|
|
let blue: Colour;
|
|
let brown: Colour;
|
|
let green: Colour;
|
|
let red: Colour;
|
|
let black: Colour;
|
|
function combine(c1: Colour, ...c2: Colour[]): Colour;
|
|
function subtract(c1: Colour, ...c2: Colour[]): Colour;
|
|
function test(colors: Colour, color: Colour): boolean;
|
|
function packRGB(r: number, g: number, b: number): number;
|
|
function unpackRGB(rgb: number): LuaMultiReturn<[number, number, number]>;
|
|
function toBlit(color: Colour): string;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace commands {
|
|
function exec(
|
|
command: string,
|
|
): LuaMultiReturn<[boolean, string[], number | undefined]>;
|
|
function execAsync(command: string): number;
|
|
function list(command: string): string[];
|
|
function getBlockPosition(): LuaMultiReturn<[number, number, number]>;
|
|
function getBlockInfo(
|
|
x: number,
|
|
y: number,
|
|
z: number,
|
|
dimension?: string,
|
|
): LuaTable | Object;
|
|
function getBlockInfos(
|
|
x1: number,
|
|
y1: number,
|
|
z1: number,
|
|
x2: number,
|
|
y2: number,
|
|
z2: number,
|
|
dimension?: string,
|
|
): (LuaTable | Object)[];
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace disk {
|
|
function isPresent(name: string): boolean;
|
|
function getLabel(name: string): string | undefined;
|
|
function setLabel(name: string, label?: string): void;
|
|
function hasData(name: string): boolean;
|
|
function getMountPath(name: string): string | undefined;
|
|
function hasAudio(name: string): boolean;
|
|
function getAudioTitle(name: string): string | undefined;
|
|
function playAudio(name: string): void;
|
|
function stopAudio(name: string): void;
|
|
function eject(name: string): void;
|
|
function getID(name: string): number;
|
|
}
|
|
/** @noSelf */
|
|
declare class ReadFileHandle {
|
|
public close(): void;
|
|
public seek(whence?: "cur" | "set" | "end", offset?: number): number;
|
|
public read(count?: number): string | number;
|
|
public readLine(withTrailing?: boolean): string;
|
|
public readAll(): string;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class WriteFileHandle {
|
|
public close(): void;
|
|
public seek(whence?: "cur" | "set" | "end", offset?: number): number;
|
|
public write(value: string): void;
|
|
public writeLine(value: string): void;
|
|
public flush(): void;
|
|
}
|
|
|
|
interface FileAttributes {
|
|
size: number;
|
|
isDir: boolean;
|
|
isReadOnly: boolean;
|
|
created: number;
|
|
modified: number;
|
|
}
|
|
|
|
declare const fs: {
|
|
list(this: void, path: string): string[];
|
|
exists(this: void, path: string): boolean;
|
|
isDir(this: void, path: string): boolean;
|
|
isReadOnly(this: void, path: string): boolean;
|
|
getName(this: void, path: string): string;
|
|
getDrive(this: void, path: string): string;
|
|
getSize(this: void, path: string): number;
|
|
getFreeSpace(this: void, path: string): number;
|
|
makeDir(this: void, path: string): void;
|
|
move(this: void, from: string, to: string): void;
|
|
copy(this: void, from: string, to: string): void;
|
|
"delete"(this: void, path: string): void;
|
|
combine(this: void, base: string, ...local: string[]): string;
|
|
open(
|
|
this: void,
|
|
path: string,
|
|
mode: "r" | "rb",
|
|
): LuaMultiReturn<[ReadFileHandle] | [undefined, string]>;
|
|
open(
|
|
this: void,
|
|
path: string,
|
|
mode: "w" | "wb" | "a" | "ab",
|
|
): LuaMultiReturn<[WriteFileHandle] | [undefined, string]>;
|
|
open(
|
|
this: void,
|
|
path: string,
|
|
mode: "r+" | "rb+" | "w+" | "wb+" | "a+" | "ab+",
|
|
): LuaMultiReturn<[ReadFileHandle & WriteFileHandle] | [undefined, string]>;
|
|
find(this: void, wildcard: string): string[];
|
|
getDir(this: void, path: string): string;
|
|
complete(
|
|
this: void,
|
|
partial: string,
|
|
path: string,
|
|
includeFiles?: boolean,
|
|
includeSlashes?: boolean,
|
|
): string[];
|
|
complete(
|
|
this: void,
|
|
partial: string,
|
|
path: string,
|
|
options: {
|
|
include_dirs?: boolean;
|
|
include_files?: boolean;
|
|
include_hidden?: boolean;
|
|
},
|
|
): string[];
|
|
getCapacity(this: void, path: string): number;
|
|
attributes(this: void, path: string): FileAttributes;
|
|
isDriveRoot(this: void, path: string): boolean;
|
|
};
|
|
declare function sleep(time: number): void;
|
|
declare function write(str: string): number;
|
|
declare function print(...str: unknown[]): number;
|
|
declare function printError(...str: unknown[]): void;
|
|
declare function read(
|
|
replaceChar?: string,
|
|
history?: string[],
|
|
completeFn?: (partial: string) => string[],
|
|
defaultValue?: string,
|
|
): string;
|
|
declare let _CC_DEFAULT_SETTINGS: string;
|
|
declare let _CC_DISABLE_LUA51_FEATURES: boolean;
|
|
declare let _HOST: string;
|
|
/** @noSelf **/
|
|
declare namespace gps {
|
|
let CHANNEL_GPS: number;
|
|
function locate(
|
|
timeout?: number,
|
|
debug?: boolean,
|
|
): LuaMultiReturn<[number, number, number]>;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace help {
|
|
function path(): string;
|
|
function setPath(path: string): void;
|
|
function lookup(topic: string): string | undefined;
|
|
function topics(): string[];
|
|
function completeTopic(prefix: string): string[];
|
|
}
|
|
interface RequestOptions {
|
|
url: string;
|
|
body?: string;
|
|
headers?: LuaMap<string, string>;
|
|
binary?: boolean;
|
|
method?: string;
|
|
redirect?: boolean;
|
|
timeout?: number;
|
|
}
|
|
interface WebSocketOptions {
|
|
url: string;
|
|
headers?: LuaMap<string, string>;
|
|
timeout?: number;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class HTTPResponse {
|
|
public getResponseCode(): number;
|
|
public getResponseHeaders(): LuaMap<string, string>;
|
|
public read(count?: number): string | number | undefined;
|
|
public readLine(withTrailing: boolean): string | undefined;
|
|
public readAll(): string | undefined;
|
|
public close(): void;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class WebSocket {
|
|
public receive(timeout?: number): string | undefined;
|
|
public send(message: string, binary?: boolean): void;
|
|
public close(): void;
|
|
}
|
|
|
|
/** @noSelf **/
|
|
declare namespace http {
|
|
function request(
|
|
url: string,
|
|
body?: string,
|
|
headers?: LuaMap<string, string>,
|
|
binary?: boolean,
|
|
): void;
|
|
function request(options: RequestOptions): void;
|
|
function get(
|
|
url: string,
|
|
headers?: LuaMap<string, string>,
|
|
binary?: boolean,
|
|
): LuaMultiReturn<[HTTPResponse] | [undefined, string, HTTPResponse?]>;
|
|
function get(
|
|
options: RequestOptions,
|
|
): LuaMultiReturn<[HTTPResponse] | [undefined, string, HTTPResponse?]>;
|
|
function post(
|
|
url: string,
|
|
body?: string,
|
|
headers?: LuaMap<string, string>,
|
|
binary?: boolean,
|
|
): LuaMultiReturn<[HTTPResponse] | [undefined, string, HTTPResponse?]>;
|
|
function post(
|
|
options: RequestOptions,
|
|
): LuaMultiReturn<[HTTPResponse] | [undefined, string, HTTPResponse?]>;
|
|
function checkURLAsync(url: string): void;
|
|
function checkURL(url: string): boolean;
|
|
function websocket(
|
|
url: string,
|
|
headers?: LuaMap<string, string>,
|
|
): LuaMultiReturn<[WebSocket] | [false, string]>;
|
|
function websocket(
|
|
options: WebSocketOptions,
|
|
): LuaMultiReturn<[WebSocket] | [false, string]>;
|
|
function websocketAsync(url: string, headers?: LuaMap<string, string>): void;
|
|
function websocketAsync(options: WebSocketOptions): void;
|
|
}
|
|
type Key = number;
|
|
|
|
declare const keys: {
|
|
a: Key;
|
|
apostrophe: Key;
|
|
at: Key;
|
|
ax: Key;
|
|
b: Key;
|
|
backslash: Key;
|
|
backspace: Key;
|
|
c: Key;
|
|
capsLock: Key;
|
|
cimcumflex: Key;
|
|
colon: Key;
|
|
comma: Key;
|
|
convert: Key;
|
|
d: Key;
|
|
delete: Key;
|
|
down: Key;
|
|
e: Key;
|
|
eight: Key;
|
|
end: Key;
|
|
enter: Key;
|
|
equals: Key;
|
|
f: Key;
|
|
f1: Key;
|
|
f10: Key;
|
|
f11: Key;
|
|
f12: Key;
|
|
f13: Key;
|
|
f14: Key;
|
|
f15: Key;
|
|
f2: Key;
|
|
f3: Key;
|
|
f4: Key;
|
|
f5: Key;
|
|
f6: Key;
|
|
f7: Key;
|
|
f8: Key;
|
|
f9: Key;
|
|
five: Key;
|
|
four: Key;
|
|
g: Key;
|
|
grave: Key;
|
|
h: Key;
|
|
home: Key;
|
|
i: Key;
|
|
insert: Key;
|
|
j: Key;
|
|
k: Key;
|
|
kana: Key;
|
|
kanji: Key;
|
|
l: Key;
|
|
left: Key;
|
|
leftAlt: Key;
|
|
leftBracket: Key;
|
|
leftCtrl: Key;
|
|
leftShift: Key;
|
|
m: Key;
|
|
minus: Key;
|
|
multiply: Key;
|
|
n: Key;
|
|
nine: Key;
|
|
noconvert: Key;
|
|
numLock: Key;
|
|
numPad0: Key;
|
|
numPad1: Key;
|
|
numPad2: Key;
|
|
numPad3: Key;
|
|
numPad4: Key;
|
|
numPad5: Key;
|
|
numPad6: Key;
|
|
numPad7: Key;
|
|
numPad8: Key;
|
|
numPad9: Key;
|
|
numPadAdd: Key;
|
|
numPadComma: Key;
|
|
numPadDecimal: Key;
|
|
numPadDivide: Key;
|
|
numPadEnter: Key;
|
|
numPadEquals: Key;
|
|
numPadSubtract: Key;
|
|
o: Key;
|
|
one: Key;
|
|
p: Key;
|
|
pageDown: Key;
|
|
pageUp: Key;
|
|
pause: Key;
|
|
period: Key;
|
|
q: Key;
|
|
r: Key;
|
|
returnKey: Key;
|
|
right: Key;
|
|
rightAlt: Key;
|
|
rightBracket: Key;
|
|
rightCtrl: Key;
|
|
rightShift: Key;
|
|
s: Key;
|
|
scollLock: Key;
|
|
semiColon: Key;
|
|
seven: Key;
|
|
six: Key;
|
|
slash: Key;
|
|
space: Key;
|
|
stop: Key;
|
|
t: Key;
|
|
tab: Key;
|
|
three: Key;
|
|
two: Key;
|
|
u: Key;
|
|
underscore: Key;
|
|
up: Key;
|
|
v: Key;
|
|
w: Key;
|
|
x: Key;
|
|
y: Key;
|
|
yen: Key;
|
|
z: Key;
|
|
zero: Key;
|
|
getName(this: void, k: Key): string;
|
|
};
|
|
/** @noSelf **/
|
|
declare namespace multishell {
|
|
function getFocus(): number;
|
|
function setFocus(n: number): boolean;
|
|
function getTitle(n: number): string | undefined;
|
|
function setTitle(n: number, title: string): void;
|
|
function getCurrent(): number;
|
|
function launch(env: LuaTable, path: string, ...args: string[]): number;
|
|
function getCount(): number;
|
|
}
|
|
declare interface LuaDate {
|
|
year: number;
|
|
month: number;
|
|
day: number;
|
|
hour: number;
|
|
min: number;
|
|
sec: number;
|
|
wday: number;
|
|
yday: number;
|
|
isdst: boolean;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace os {
|
|
function version(): string;
|
|
function getComputerID(): number;
|
|
function computerID(): number;
|
|
function getComputerLabel(): string | undefined;
|
|
function computerLabel(): string | undefined;
|
|
function setComputerLabel(label?: string): void;
|
|
function run(env: LuaTable, path: string, ...args: string[]): boolean;
|
|
function queueEvent(type: string, ...param: unknown[]): void;
|
|
function clock(): number;
|
|
function startTimer(timeout: number): number;
|
|
function cancelTimer(id: number): void;
|
|
function time(mode?: string): number;
|
|
function sleep(timeout: number): void;
|
|
function day(mode?: string): number;
|
|
function setAlarm(time: number): number;
|
|
function cancelAlarm(id: number): void;
|
|
function shutdown(): void;
|
|
function reboot(): void;
|
|
function epoch(mode?: string): number;
|
|
function date(format?: string, time?: number): string | LuaDate;
|
|
function pullEvent(filter?: string): LuaMultiReturn<[string, ...unknown[]]>;
|
|
function pullEventRaw(
|
|
filter?: string,
|
|
): LuaMultiReturn<[string, ...unknown[]]>;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace paintutils {
|
|
function parseImage(image: string): number[][] | undefined;
|
|
function loadImage(path: string): number[][] | undefined;
|
|
function drawPixel(x: number, y: number, color?: Color): void;
|
|
function drawLine(
|
|
startX: number,
|
|
startY: number,
|
|
endX: number,
|
|
endY: number,
|
|
color?: Color,
|
|
): void;
|
|
function drawBox(
|
|
startX: number,
|
|
startY: number,
|
|
endX: number,
|
|
endY: number,
|
|
color?: Color,
|
|
): void;
|
|
function drawFilledBox(
|
|
startX: number,
|
|
startY: number,
|
|
endX: number,
|
|
endY: number,
|
|
color?: Color,
|
|
): void;
|
|
function drawImage(image: number[][], x: number, y: number): void;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace parallel {
|
|
function waitForunknown(...args: (() => void)[]): void;
|
|
function waitForAll(...args: (() => void)[]): void;
|
|
}
|
|
/** @noSelf */
|
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
declare interface IPeripheral {}
|
|
|
|
/** @noSelf */
|
|
declare class CommandPeripheral implements IPeripheral {
|
|
getCommand(): string;
|
|
setCommand(command: string): void;
|
|
runCommand(): LuaMultiReturn<[boolean, string | undefined]>;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class ComputerPeripheral implements IPeripheral {
|
|
turnOn(): void;
|
|
shutdown(): void;
|
|
reboot(): void;
|
|
getID(): number;
|
|
isOn(): boolean;
|
|
getLabel(): string;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class DrivePeripheral implements IPeripheral {
|
|
isDiskPresent(): boolean;
|
|
getDiskLabel(): string;
|
|
setDiskLabel(label?: string): void;
|
|
hasData(): boolean;
|
|
getMountPath(): string;
|
|
hasAudio(): boolean;
|
|
getAudioTitle(): string;
|
|
playAudio(): void;
|
|
stopAudio(): void;
|
|
ejectDisk(): void;
|
|
getDiskID(): number;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class ModemPeripheral implements IPeripheral {
|
|
open(channel: number): void;
|
|
isOpen(channel: number): boolean;
|
|
close(channel: number): void;
|
|
closeAll(): void;
|
|
transmit(
|
|
channel: number,
|
|
replyChannel: number,
|
|
payload: object | number | boolean | string,
|
|
): void;
|
|
isWireless(): boolean;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class WiredModemPeripheral extends ModemPeripheral {
|
|
getNamesRemote(): string[];
|
|
isPresentRemote(name: string): boolean;
|
|
getTypeRemote(name: string): string;
|
|
getMethodsRemote(name: string): string[];
|
|
callRemote(
|
|
name: string,
|
|
method: string,
|
|
...args: string[]
|
|
): LuaMultiReturn<[...unknown[]]>;
|
|
getNameLocal(): string;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class MonitorPeripheral implements IPeripheral, ITerminal {
|
|
write(text: string): void;
|
|
blit(text: string, textColors: string, backgroundColors: string): void;
|
|
clear(): void;
|
|
clearLine(): void;
|
|
getCursorPos(): LuaMultiReturn<[number, number]>;
|
|
setCursorPos(x: number, y: number): void;
|
|
getCursorBlink(): boolean;
|
|
setCursorBlink(blink: boolean): void;
|
|
isColor(): boolean;
|
|
isColour(): boolean;
|
|
getSize(mode?: boolean | number): LuaMultiReturn<[number, number]>;
|
|
scroll(n: number): void;
|
|
getTextColor(): Color;
|
|
getTextColour(): Colour;
|
|
setTextColor(color: Color): void;
|
|
setTextColour(color: Colour): void;
|
|
getBackgroundColor(): Color;
|
|
getBackgroundColour(): Colour;
|
|
setBackgroundColor(color: Color): void;
|
|
setBackgroundColour(color: Colour): void;
|
|
getPaletteColor(color: Color): LuaMultiReturn<[Color, Color, Color]>;
|
|
getPaletteColour(color: Colour): LuaMultiReturn<[Colour, Colour, Colour]>;
|
|
setPaletteColor(color: Color, rgb: number): void;
|
|
setPaletteColor(color: Color, r: number, g: number, b: number): void;
|
|
setPaletteColour(color: Colour, rgb: number): void;
|
|
setPaletteColour(color: Colour, r: number, g: number, b: number): void;
|
|
getGraphicsMode(): boolean | number;
|
|
setGraphicsMode(mode: boolean | number): void;
|
|
getPixel(x: number, y: number): number;
|
|
setPixel(x: number, y: number, color: Color): void;
|
|
getPixels(
|
|
x: number,
|
|
y: number,
|
|
width: number,
|
|
height: number,
|
|
asString?: boolean,
|
|
): (string | Color[])[];
|
|
setPixels(x: number, y: number, data: Color | (string | Color[])[]): void;
|
|
getFrozen(): boolean;
|
|
setFrozen(frozen: boolean): void;
|
|
setTextScale(scale: number): void;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class PrinterPeripheral implements IPeripheral {
|
|
write(...args: (string | number)[]): void;
|
|
getCursorPos(): LuaMultiReturn<[number, number]>;
|
|
setCursorPos(x: number, y: number): void;
|
|
getPageSize(): LuaMultiReturn<[number, number]>;
|
|
newPage(): void;
|
|
endPage(): void;
|
|
setPageTitle(title?: string): void;
|
|
getInkLevel(): number;
|
|
getPaperLevel(): number;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class SpeakerPeripheral implements IPeripheral {
|
|
playSound(name: string, volume?: number, pitch?: number): void;
|
|
playNote(name: string, volume?: number, pitch?: number): void;
|
|
playAudio(data: number[], volume?: number): boolean;
|
|
stop(): void;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class EnergyStoragePeripheral implements IPeripheral {
|
|
getEnergy(): number;
|
|
getEnergyCapacity(): number;
|
|
}
|
|
|
|
/** @noSelf */
|
|
declare class FluidStoragePeripheral implements IPeripheral {
|
|
tanks(): Record<number, { name: string; amount: number }>;
|
|
pushFluid(to: string, limit?: number, name?: string): number;
|
|
pullFluid(from: string, limit?: number, name?: string): number;
|
|
}
|
|
|
|
declare interface SlotDetail {
|
|
name: string;
|
|
count: number;
|
|
nbt?: string;
|
|
}
|
|
|
|
declare type ItemDetail = SlotDetail & {
|
|
displayName: string;
|
|
maxCount: number;
|
|
damage?: number;
|
|
maxDamage?: number;
|
|
durability?: number;
|
|
tags: string[];
|
|
lore?: string[]; //?
|
|
enchantments?: { name: string; level: number; displayName: string }[];
|
|
unbreakable?: boolean;
|
|
};
|
|
|
|
/** @noSelf */
|
|
declare class InventoryPeripheral implements IPeripheral {
|
|
size(): number;
|
|
list(): Record<number, SlotDetail>;
|
|
getItemDetail(slot: number): ItemDetail | undefined;
|
|
getItemLimit(slot: number): number;
|
|
pushItems(
|
|
toName: string,
|
|
fromSlot: number,
|
|
limit?: number,
|
|
toSlot?: number,
|
|
): number;
|
|
pullItems(
|
|
fromName: string,
|
|
fromSlot: number,
|
|
limit?: number,
|
|
toSlot?: number,
|
|
): number;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace peripheral {
|
|
function getNames(): string[];
|
|
function isPresent(name: string): boolean;
|
|
function getType(peripheral: string): LuaMultiReturn<[...string[]]>;
|
|
function getType(peripheral: IPeripheral): string;
|
|
function hasType(
|
|
peripheral: IPeripheral | string,
|
|
type: string,
|
|
): boolean | undefined;
|
|
function getMethods(name: string): string[] | undefined;
|
|
function getName(peripheral: IPeripheral): string;
|
|
function call(
|
|
side: string,
|
|
method: string,
|
|
...args: unknown[]
|
|
): LuaMultiReturn<[...unknown[]]>;
|
|
function wrap(name: string): IPeripheral | undefined;
|
|
function find(
|
|
type: string,
|
|
filter?: (name: string, peripheral: IPeripheral) => boolean,
|
|
): LuaMultiReturn<[...IPeripheral[]]>;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace pocket {
|
|
function equipBack(): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function unequipBack(): LuaMultiReturn<[boolean, string | undefined]>;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace rednet {
|
|
let CHANNEL_BROADCAST: number;
|
|
let CHANNEL_REPEAT: number;
|
|
let MAX_ID_CHANNELS: number;
|
|
function open(modem: string): void;
|
|
function close(modem?: string): void;
|
|
function isOpen(modem?: string): boolean;
|
|
function send(
|
|
recipient: number,
|
|
message: object | number | boolean | string,
|
|
protocol?: string,
|
|
): boolean;
|
|
function broadcast(
|
|
message: object | number | boolean | string,
|
|
protocol?: string,
|
|
): void;
|
|
function receive(
|
|
filter?: string,
|
|
timeout?: number,
|
|
): LuaMultiReturn<[number, unknown, string | undefined] | [undefined]>;
|
|
function host(protocol: string, hostname: string): void;
|
|
function unhost(protocol: string): void;
|
|
function lookup(
|
|
protocol: string,
|
|
hostname?: string,
|
|
): LuaMultiReturn<[...number[]]>;
|
|
function run(): void;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace redstone {
|
|
function getSides(): string[];
|
|
function setOutput(side: string, on: boolean): void;
|
|
function getOutput(side: string): boolean;
|
|
function getInput(side: string): boolean;
|
|
function setAnalogOutput(side: string, value: number): void;
|
|
function getAnalogOutput(side: string): number;
|
|
function getAnalogInput(side: string): number;
|
|
function setAnalogueOutput(side: string, value: number): void;
|
|
function getAnalogueOutput(side: string): number;
|
|
function getAnalogueInput(side: string): number;
|
|
function setBundledOutput(side: string, value: Color): void;
|
|
function getBundledOutput(side: string): Color;
|
|
function getBundledInput(side: string): Color;
|
|
function testBundledInput(side: string, mask: number): boolean;
|
|
}
|
|
interface SettingOptions {
|
|
description?: string;
|
|
default?: object;
|
|
type?: "number" | "boolean" | "string" | "table";
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace settings {
|
|
function define(name: string, options?: SettingOptions): void;
|
|
function undefine(name: string): void;
|
|
function set(name: string, value: object): void;
|
|
function get(name: string, defaultValue?: object): unknown;
|
|
function getDetails(name: string): SettingOptions;
|
|
function unset(name: string): void;
|
|
function clear(): void;
|
|
function getNames(): string[];
|
|
function load(path?: string): boolean;
|
|
function save(path?: string): boolean;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace shell {
|
|
function exit(): void;
|
|
function dir(): string;
|
|
function setDir(path: string): void;
|
|
function path(): string;
|
|
function setPath(path: string): void;
|
|
function resolve(path: string): string;
|
|
function resolveProgram(name: string): string;
|
|
function aliases(): Record<string, string>;
|
|
function setAlias(name: string, program: string): void;
|
|
function clearAlias(name: string): void;
|
|
function programs(showHidden?: boolean): string[];
|
|
function getRunningProgram(): string;
|
|
function run(command: string, ...args: string[]): boolean;
|
|
function execute(command: string, ...args: string[]): boolean;
|
|
function openTab(command: string, ...args: string[]): number;
|
|
function switchTab(id: number): void;
|
|
function complete(prefix: string): string[];
|
|
function completeProgram(prefix: string): string[];
|
|
function setCompletionFunction(
|
|
path: string,
|
|
completion: (
|
|
shell: LuaTable | Object,
|
|
index: number,
|
|
partial: string,
|
|
previous: string[],
|
|
) => string[],
|
|
): void;
|
|
function getCompletionInfo(): {
|
|
fnComplete: (
|
|
shell: LuaTable | Object,
|
|
index: number,
|
|
partial: string,
|
|
previous: string[],
|
|
) => string[];
|
|
}[];
|
|
}
|
|
/** @noSelf */
|
|
interface ITerminal {
|
|
write(text: string): void;
|
|
blit(text: string, textColors: string, backgroundColors: string): void;
|
|
clear(): void;
|
|
clearLine(): void;
|
|
getCursorPos(): LuaMultiReturn<[number, number]>;
|
|
setCursorPos(x: number, y: number): void;
|
|
getCursorBlink(): boolean;
|
|
setCursorBlink(blink: boolean): void;
|
|
isColor(): boolean;
|
|
isColour(): boolean;
|
|
getSize(mode?: boolean | number): LuaMultiReturn<[number, number]>;
|
|
scroll(n: number): void;
|
|
getTextColor(): Color;
|
|
getTextColour(): Colour;
|
|
setTextColor(color: Color): void;
|
|
setTextColour(color: Colour): void;
|
|
getBackgroundColor(): Color;
|
|
getBackgroundColour(): Colour;
|
|
setBackgroundColor(color: Color): void;
|
|
setBackgroundColour(color: Colour): void;
|
|
getPaletteColor(color: Color): LuaMultiReturn<[number, number, number]>;
|
|
getPaletteColour(color: Colour): LuaMultiReturn<[number, number, number]>;
|
|
setPaletteColor(color: Color, rgb: number): void;
|
|
setPaletteColor(color: Color, r: number, g: number, b: number): void;
|
|
setPaletteColour(color: Colour, rgb: number): void;
|
|
setPaletteColour(color: Colour, r: number, g: number, b: number): void;
|
|
getGraphicsMode(): boolean | number;
|
|
setGraphicsMode(mode: boolean | number): void;
|
|
getPixel(x: number, y: number): number;
|
|
setPixel(x: number, y: number, color: Color): void;
|
|
getPixels(
|
|
x: number,
|
|
y: number,
|
|
width: number,
|
|
height: number,
|
|
asString?: boolean,
|
|
): (string | Color[])[];
|
|
setPixels(x: number, y: number, data: Color | (string | Color[])[]): void;
|
|
getFrozen(): boolean;
|
|
setFrozen(frozen: boolean): void;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace term {
|
|
function redirect(term: ITerminal): ITerminal;
|
|
function current(): ITerminal;
|
|
function native(): ITerminal;
|
|
function screenshot(): void;
|
|
function showMouse(mouse: boolean): void;
|
|
function write(text: string): void;
|
|
function blit(
|
|
text: string,
|
|
textColors: string,
|
|
backgroundColors: string,
|
|
): void;
|
|
function clear(): void;
|
|
function clearLine(): void;
|
|
function getCursorPos(): LuaMultiReturn<[number, number]>;
|
|
function setCursorPos(x: number, y: number): void;
|
|
function getCursorBlink(): boolean;
|
|
function setCursorBlink(blink: boolean): void;
|
|
function isColor(): boolean;
|
|
function isColour(): boolean;
|
|
function getSize(mode?: boolean | number): LuaMultiReturn<[number, number]>;
|
|
function scroll(n: number): void;
|
|
function getTextColor(): Color;
|
|
function getTextColour(): Colour;
|
|
function setTextColor(color: Color): void;
|
|
function setTextColour(color: Colour): void;
|
|
function getBackgroundColor(): Color;
|
|
function getBackgroundColour(): Colour;
|
|
function setBackgroundColor(color: Color): void;
|
|
function setBackgroundColour(color: Colour): void;
|
|
function nativePaletteColor(
|
|
color: number,
|
|
): LuaMultiReturn<[number, number, number]>;
|
|
function nativePaletteColour(
|
|
colour: number,
|
|
): LuaMultiReturn<[number, number, number]>;
|
|
function getPaletteColor(
|
|
color: Color,
|
|
): LuaMultiReturn<[number, number, number]>;
|
|
function getPaletteColour(
|
|
color: Colour,
|
|
): LuaMultiReturn<[number, number, number]>;
|
|
function setPaletteColor(color: Color, rgb: number): void;
|
|
function setPaletteColor(color: Color, r: number, g: number, b: number): void;
|
|
function setPaletteColour(color: Colour, rgb: number): void;
|
|
function setPaletteColour(
|
|
color: Colour,
|
|
r: number,
|
|
g: number,
|
|
b: number,
|
|
): void;
|
|
function getGraphicsMode(): boolean | number;
|
|
function setGraphicsMode(mode: boolean | number): void;
|
|
function getPixel(x: number, y: number): number;
|
|
function setPixel(x: number, y: number, color: Color): void;
|
|
function getPixels(
|
|
x: number,
|
|
y: number,
|
|
width: number,
|
|
height: number,
|
|
asString?: boolean,
|
|
): (string | Color[])[];
|
|
function setPixels(
|
|
x: number,
|
|
y: number,
|
|
data: Color | (string | Color[])[],
|
|
): void;
|
|
function getFrozen(): boolean;
|
|
function setFrozen(frozen: boolean): void;
|
|
}
|
|
interface UnserializeJSONOptions {
|
|
nbt_style?: boolean;
|
|
parse_null?: boolean;
|
|
parse_empty_array?: boolean;
|
|
}
|
|
interface SerializeOptions {
|
|
compact?: boolean;
|
|
allow_repetitions?: boolean;
|
|
}
|
|
interface SerializeJSONOptions {
|
|
nbtStyle?: boolean;
|
|
allow_repetitions?: boolean;
|
|
unicode_strings?: boolean;
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace textutils {
|
|
let empty_json_array: Object;
|
|
let json_null: Object;
|
|
function slowWrite(text: string, rate?: number): void;
|
|
function slowPrint(text: string, rate?: number): void;
|
|
function formatTime(time: number, hour24?: boolean): string;
|
|
function pagedPrint(text: string, freeLines?: number): number;
|
|
function tabulate(...args: (LuaTable | Object | Color)[]): void;
|
|
function pagedTabulate(...args: (LuaTable | Object | Color)[]): void;
|
|
function serialize(tab: object, options?: SerializeOptions): string;
|
|
function serialise(tab: object, options?: SerializeOptions): string;
|
|
function serializeJSON(
|
|
tab: object | string | number | boolean,
|
|
nbtStyle?: boolean,
|
|
): string;
|
|
function serializeJSON(
|
|
tab: object | string | number | boolean,
|
|
options: SerializeJSONOptions,
|
|
): string;
|
|
function serialiseJSON(
|
|
tab: object | string | number | boolean,
|
|
nbtStyle?: boolean,
|
|
): string;
|
|
function serialiseJSON(
|
|
tab: object | string | number | boolean,
|
|
options: SerializeJSONOptions,
|
|
): string;
|
|
function unserialize(str: string): unknown;
|
|
function unserialise(str: string): unknown;
|
|
function unserializeJSON(
|
|
str: string,
|
|
options?: UnserializeJSONOptions,
|
|
): unknown;
|
|
function unserialiseJSON(
|
|
str: string,
|
|
options?: UnserializeJSONOptions,
|
|
): unknown;
|
|
function urlEncode(url: string): string;
|
|
function complete(searchText: string, searchTable?: object): string[];
|
|
}
|
|
/** @noSelf **/
|
|
declare namespace turtle {
|
|
function craft(
|
|
quantity?: number,
|
|
): LuaMultiReturn<[true, undefined] | [false, string]>;
|
|
function forward(): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function back(): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function up(): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function down(): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function turnLeft(): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function turnRight(): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function select(slotNum: number): true;
|
|
function getSelectedSlot(): number;
|
|
|
|
function getItemCount(slotNum?: number): number;
|
|
|
|
function getItemSpace(slotNum?: number): number;
|
|
|
|
function getItemDetail(
|
|
slotNum?: number,
|
|
detailed?: boolean,
|
|
): LuaTable | Object | undefined;
|
|
|
|
function equipLeft(): LuaMultiReturn<[true, undefined] | [false, string]>;
|
|
function equipRight(): LuaMultiReturn<[true, undefined] | [false, string]>;
|
|
|
|
function attack(
|
|
toolSide?: "left" | "right",
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function attackUp(
|
|
toolSide?: "left" | "right",
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function attackDown(
|
|
toolSide?: "left" | "right",
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
|
|
function dig(
|
|
toolSide?: "left" | "right",
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function digUp(
|
|
toolSide?: "left" | "right",
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function digDown(
|
|
toolSide?: "left" | "right",
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
|
|
function place(text?: string): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function placeUp(
|
|
text?: string,
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function placeDown(
|
|
text?: string,
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
|
|
function detect(): boolean;
|
|
function detectUp(): boolean;
|
|
function detectDown(): boolean;
|
|
|
|
function inspect(): LuaMultiReturn<[boolean, LuaTable | Object | string]>;
|
|
function inspectUp(): LuaMultiReturn<[boolean, LuaTable | Object | string]>;
|
|
function inspectDown(): LuaMultiReturn<[boolean, LuaTable | Object | string]>;
|
|
|
|
function compare(): boolean;
|
|
function compareUp(): boolean;
|
|
function compareDown(): boolean;
|
|
|
|
function drop(count?: number): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function dropUp(
|
|
count?: number,
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function dropDown(
|
|
count?: number,
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
|
|
function suck(count?: number): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function suckUp(
|
|
count?: number,
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
function suckDown(
|
|
count?: number,
|
|
): LuaMultiReturn<[boolean, string | undefined]>;
|
|
|
|
function refuel(
|
|
count?: number,
|
|
): LuaMultiReturn<[true, undefined] | [false, string]>;
|
|
function getFuelLevel(): number | "unlimited";
|
|
function getFuelLimit(): number | "unlimited";
|
|
|
|
function transferTo(slotNum: number, quantity?: number): boolean;
|
|
}
|
|
/** @customConstructor vector.new */
|
|
declare class Vector {
|
|
constructor(x: number, y: number, z: number);
|
|
public x: number;
|
|
public y: number;
|
|
public z: number;
|
|
public add(this: Vector, o: Vector): Vector;
|
|
public sub(this: Vector, o: Vector): Vector;
|
|
public mul(this: Vector, o: number): Vector;
|
|
public div(this: Vector, o: number): Vector;
|
|
public unm(this: Vector): Vector;
|
|
public dot(this: Vector, o: Vector): number;
|
|
public cross(this: Vector, o: Vector): Vector;
|
|
public length(this: Vector): number;
|
|
public normalize(this: Vector): Vector;
|
|
public round(this: Vector, tolerance?: number): Vector;
|
|
public tostring(this: Vector): string;
|
|
public equals(this: Vector, o: Vector): boolean;
|
|
}
|
|
/**
|
|
* @customConstructor window.create
|
|
* @noSelf */
|
|
declare class Window implements ITerminal {
|
|
constructor(
|
|
parent: ITerminal,
|
|
x: number,
|
|
y: number,
|
|
width: number,
|
|
height: number,
|
|
visible?: boolean,
|
|
);
|
|
public write(text: string): void;
|
|
public blit(text: string, textColors: string, backgroundColors: string): void;
|
|
public clear(): void;
|
|
public clearLine(): void;
|
|
public getCursorPos(): LuaMultiReturn<[number, number]>;
|
|
public setCursorPos(x: number, y: number): void;
|
|
public getCursorBlink(): boolean;
|
|
public setCursorBlink(blink: boolean): void;
|
|
public isColor(): boolean;
|
|
public isColour(): boolean;
|
|
public getSize(mode?: boolean | number): LuaMultiReturn<[number, number]>;
|
|
public scroll(n: number): void;
|
|
public getTextColor(): Color;
|
|
public getTextColour(): Colour;
|
|
public setTextColor(color: Color): void;
|
|
public setTextColour(color: Colour): void;
|
|
public getBackgroundColor(): Color;
|
|
public getBackgroundColour(): Colour;
|
|
public setBackgroundColor(color: Color): void;
|
|
public setBackgroundColour(color: Colour): void;
|
|
public getPaletteColor(
|
|
color: Color,
|
|
): LuaMultiReturn<[number, number, number]>;
|
|
public getPaletteColour(
|
|
color: Colour,
|
|
): LuaMultiReturn<[number, number, number]>;
|
|
public setPaletteColor(color: Color, rgb: number): void;
|
|
public setPaletteColor(color: Color, r: number, g: number, b: number): void;
|
|
public setPaletteColour(color: Colour, rgb: number): void;
|
|
public setPaletteColour(color: Colour, r: number, g: number, b: number): void;
|
|
public getGraphicsMode(): boolean | number;
|
|
public setGraphicsMode(mode: boolean | number): void;
|
|
public getPixel(x: number, y: number): number;
|
|
public setPixel(x: number, y: number, color: Color): void;
|
|
public getPixels(
|
|
x: number,
|
|
y: number,
|
|
width: number,
|
|
height: number,
|
|
asString?: boolean,
|
|
): (string | Color[])[];
|
|
public setPixels(
|
|
x: number,
|
|
y: number,
|
|
data: Color | (string | Color[])[],
|
|
): void;
|
|
public getFrozen(): boolean;
|
|
public setFrozen(frozen: boolean): void;
|
|
public getVisible(): boolean;
|
|
public setVisible(visible: boolean): void;
|
|
public redraw(): void;
|
|
public restoreCursor(): void;
|
|
public getPosition(): LuaMultiReturn<[number, number]>;
|
|
public reposition(
|
|
x: number,
|
|
y: number,
|
|
width?: number,
|
|
height?: number,
|
|
): void;
|
|
}
|