yoni-mcscripts-lib
Version:
为 Minecraft Script API 中的部分接口创建了 wrapper,并提供简单的事件管理器和任务管理器,另附有一些便于代码编写的一些小工具。
323 lines (322 loc) • 15.1 kB
TypeScript
import { Minecraft } from "../basis.js";
import { YoniDimension } from "./dimension.js";
import type { DimensionLikeValue } from "../dimensionutils.js";
/**
* 代表Minecraft中的特定位置,其中包含维度,坐标,旋转角。
*/
export declare class Location {
#private;
/**
* 处于零点的Location对象。
*/
static get zero(): Location;
static normalizePitch(num: number): number;
static normalizeYaw(num: number): number;
get readOnly(): boolean;
/**
* 设置此位置对应的 z 轴坐标。
* @param x
* @returns 返回此位置本身。
*/
setX(x: any): this;
/**
* 设置此位置对应的 z 轴坐标。
* @param y
* @returns 返回此位置本身。
*/
setY(y: any): this;
/**
* 设置此位置对应的 z 轴坐标。
* @param z
* @returns 返回此位置本身。
*/
setZ(z: any): this;
setPosition(coords: Coords): void;
/**
* 设置此位置对应的坐标。
* @param x
* @param y
* @param z
* @returns 返回此位置本身。
*/
setPosition(x: number, y: number, z: number): void;
/**
* 设置此位置对应的 pitch 角。
* @param rx
* @returns 返回此位置本身。
*/
setRx(rx: any): this;
/**
* 设置此位置对应的 yaw 角。
* @param {number} v
*/
setRy(ry: any): this;
setRotation(rotation: Vector2): void;
/**
* 设置此位置对应的旋转角。
* @param rx
* @param ry
* @returns 返回此位置本身。
*/
setRotation(rx: number, ry: number): void;
/**
* 设置此位置所在的维度
* @param dim
*/
setDimension(dim: DimensionLikeValue): this;
get x(): number;
set x(x: number);
get y(): number;
set y(y: number);
get z(): number;
set z(z: number);
get rx(): number;
set rx(rx: number);
get ry(): number;
set ry(ry: number);
/**
* 此位置所处的维度。
*/
get dimension(): YoniDimension;
set dimension(dim: YoniDimension);
constructor(locationInfo: LocationInfo);
constructor(positionPointInfo: PositionPointInfo);
constructor(dimension: DimensionLikeValue, x: number, y: number, z: number, rotationX: number, rotationY: number);
constructor(dimension: DimensionLikeValue, x: number, y: number, z: number, rotation: Vector2);
constructor(dimension: DimensionLikeValue, x: number, y: number, z: number, rotation: Rotation);
constructor(dimension: DimensionLikeValue, x: number, y: number, z: number, rotation: RotationArray);
constructor(dimension: DimensionLikeValue, x: number, y: number, z: number);
constructor(positionInfoArray: [DimensionLikeValue, ...CoordsArray], rotationX: number, rotationY: number);
constructor(positionInfoArray: [DimensionLikeValue, ...CoordsArray], rotation: Vector2);
constructor(positionInfoArray: [DimensionLikeValue, ...CoordsArray], rotation: Rotation);
constructor(positionInfoArray: [DimensionLikeValue, ...CoordsArray], rotation: RotationArray);
constructor(positionInfoArray: [DimensionLikeValue, ...CoordsArray]);
constructor(position: DimensionPosition, rotationX: number, rotationY: number);
constructor(position: DimensionPosition, rotation: Vector2);
constructor(position: DimensionPosition, rotation: Rotation);
constructor(position: DimensionPosition, rotation: RotationArray);
constructor(position: DimensionPosition);
constructor(position: PositionInfo, rotationX: number, rotationY: number);
constructor(position: PositionInfo, rotation: Vector2);
constructor(position: PositionInfo, rotation: Rotation);
constructor(position: PositionInfo, rotation: RotationArray);
constructor(position: PositionInfo);
constructor(dimension: DimensionLikeValue, coords: CoordsArray, rotationX: number, rotationY: number);
constructor(dimension: DimensionLikeValue, coords: CoordsArray, rotation: Vector2);
constructor(dimension: DimensionLikeValue, coords: CoordsArray, rotation: Rotation);
constructor(dimension: DimensionLikeValue, coords: CoordsArray, rotation: RotationArray);
constructor(dimension: DimensionLikeValue, coords: CoordsArray);
constructor(dimension: DimensionLikeValue, coords: Coords, rotationX: number, rotationY: number);
constructor(dimension: DimensionLikeValue, coords: Coords, rotation: Vector2);
constructor(dimension: DimensionLikeValue, coords: Coords, rotation: Rotation);
constructor(dimension: DimensionLikeValue, coords: Coords, rotation: RotationArray);
constructor(dimension: DimensionLikeValue, coords: Coords);
constructor(x: number, y: number, z: number, rotationX: number, rotationY: number);
constructor(x: number, y: number, z: number, rotation: Vector2);
constructor(x: number, y: number, z: number, rotation: Rotation);
constructor(x: number, y: number, z: number, rotation: RotationArray);
constructor(x: number, y: number, z: number);
constructor(coordsArray: CoordsArray, rotationX: number, rotationY: number);
constructor(coordsArray: CoordsArray, rotation: Vector2);
constructor(coordsArray: CoordsArray, rotation: Rotation);
constructor(coordsArray: CoordsArray, rotation: RotationArray);
constructor(coordsArray: CoordsArray);
constructor(coords: Coords, rotationX: number, rotationY: number);
constructor(coords: Coords, rotation: Vector2);
constructor(coords: Coords, rotation: Rotation);
constructor(coords: Coords, rotation: RotationArray);
constructor(coords: Coords);
constructor(locationPointInfoArray: [...CoordsArray, ...RotationArray]);
constructor(uncertainOneParam: LocationParamsOneArg);
add(value: LocationParamsOneArg): Location;
subtract(value: LocationParamsOneArg): Location;
multiply(value: LocationParamsOneArg): Location;
/**
* 复制一个Location对象,然后将坐标设置为原点。
*/
zero(): Location;
/**
* 计算此坐标与指定位置的距离。
*/
distance(loc: LocationParamsOneArg): number;
distanceSquared(loc: LocationParamsOneArg): number;
getLength(): number;
getLengthSquared(): number;
/**
* @param {number} v
*/
toFixed(v: number): Location;
toVector(): Minecraft.Vector;
getDirection(): void;
setDirection(): void;
/**
* @returns 此位置上的方块。
*/
getBlock(): Minecraft.Block;
getBlockX(): number;
getBlockY(): number;
getBlockZ(): number;
/**
* 返回一个取整后的坐标,且旋转角为0
*/
toBlockLocation(): Location;
/**
* 返回一个在此坐标上进行指定偏移后的Location
* @param {number} x
* @param {number} y
* @param {number} z
*/
offset(x: number, y: number, z: number): Location;
/**
* @returns {Minecraft.BlockLocation} 根据此位置创建一个原版的Minecraft.BlockLocation
*/
getVanillaBlockLocation(): {
x: number;
y: number;
z: number;
};
/**
* @returns {Minecraft.Location} 根据此位置创建一个原版的Minecraft.Location
*/
getVanillaLocation(): {
x: number;
y: number;
z: number;
};
/**
* @returns {Minecraft.DimensionLocation} 根据此位置创建一个原版的 Minecraft.DimensionLocation
*/
getVanillaDimensionLocation(): Minecraft.DimensionLocation;
getVanillaVector(): Minecraft.Vector;
isLoaded(): boolean;
getChunk(): void;
checkFinite(): void;
/**
* 判断传入的位置是否与此位置对象代表的位置相同。
*/
equals(loc: LocationParamsOneArg): boolean;
/**
* 判断传入的位置的坐标是否与此位置对象代表的坐标相同。
*/
equalsPosition(loc: LocationParamsOneArg): boolean;
clone(): Location;
toString(): string;
toJSON(): {
x: number;
y: number;
z: number;
rx: number;
ry: number;
dimension: string;
};
static fromBlock(block: Minecraft.Block): Location;
/**
* 将一个Location对象转换为一段字符串
* @param {Location} v
* @returns {string}
*/
static serialize(v: Location): string;
/**
* 将一段由Location对象转换后的字符串转换为Location对象
* @param {string} v
* @returns {Location}
*/
static deserialize(v: string): Location;
static createReadonly(locationInfo: LocationInfo): Readonly<Location>;
static createReadonly(positionPointInfo: PositionPointInfo): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, x: number, y: number, z: number, rotationX: number, rotationY: number): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, x: number, y: number, z: number, rotation: Vector2): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, x: number, y: number, z: number, rotation: Rotation): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, x: number, y: number, z: number, rotation: RotationArray): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, x: number, y: number, z: number): Readonly<Location>;
static createReadonly(positionInfoArray: [DimensionLikeValue, ...CoordsArray], rotationX: number, rotationY: number): Readonly<Location>;
static createReadonly(positionInfoArray: [DimensionLikeValue, ...CoordsArray], rotation: Vector2): Readonly<Location>;
static createReadonly(positionInfoArray: [DimensionLikeValue, ...CoordsArray], rotation: Rotation): Readonly<Location>;
static createReadonly(positionInfoArray: [DimensionLikeValue, ...CoordsArray], rotation: RotationArray): Readonly<Location>;
static createReadonly(positionInfoArray: [DimensionLikeValue, ...CoordsArray]): Readonly<Location>;
static createReadonly(position: DimensionPosition, rotationX: number, rotationY: number): Readonly<Location>;
static createReadonly(position: DimensionPosition, rotation: Vector2): Readonly<Location>;
static createReadonly(position: DimensionPosition, rotation: Rotation): Readonly<Location>;
static createReadonly(position: DimensionPosition, rotation: RotationArray): Readonly<Location>;
static createReadonly(position: DimensionPosition): Readonly<Location>;
static createReadonly(position: PositionInfo, rotationX: number, rotationY: number): Readonly<Location>;
static createReadonly(position: PositionInfo, rotation: Vector2): Readonly<Location>;
static createReadonly(position: PositionInfo, rotation: Rotation): Readonly<Location>;
static createReadonly(position: PositionInfo, rotation: RotationArray): Readonly<Location>;
static createReadonly(position: PositionInfo): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, coords: CoordsArray, rotationX: number, rotationY: number): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, coords: CoordsArray, rotation: Vector2): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, coords: CoordsArray, rotation: Rotation): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, coords: CoordsArray, rotation: RotationArray): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, coords: CoordsArray): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, coords: Coords, rotationX: number, rotationY: number): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, coords: Coords, rotation: Vector2): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, coords: Coords, rotation: Rotation): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, coords: Coords, rotation: RotationArray): Readonly<Location>;
static createReadonly(dimension: DimensionLikeValue, coords: Coords): Readonly<Location>;
static createReadonly(x: number, y: number, z: number, rotationX: number, rotationY: number): Readonly<Location>;
static createReadonly(x: number, y: number, z: number, rotation: Vector2): Readonly<Location>;
static createReadonly(x: number, y: number, z: number, rotation: Rotation): Readonly<Location>;
static createReadonly(x: number, y: number, z: number, rotation: RotationArray): Readonly<Location>;
static createReadonly(x: number, y: number, z: number): Readonly<Location>;
static createReadonly(coordsArray: CoordsArray, rotationX: number, rotationY: number): Readonly<Location>;
static createReadonly(coordsArray: CoordsArray, rotation: Vector2): Readonly<Location>;
static createReadonly(coordsArray: CoordsArray, rotation: Rotation): Readonly<Location>;
static createReadonly(coordsArray: CoordsArray, rotation: RotationArray): Readonly<Location>;
static createReadonly(coordsArray: CoordsArray): Readonly<Location>;
static createReadonly(coords: Coords, rotationX: number, rotationY: number): Readonly<Location>;
static createReadonly(coords: Coords, rotation: Vector2): Readonly<Location>;
static createReadonly(coords: Coords, rotation: Rotation): Readonly<Location>;
static createReadonly(coords: Coords, rotation: RotationArray): Readonly<Location>;
static createReadonly(coords: Coords): Readonly<Location>;
static createReadonly(locationPointInfoArray: [...CoordsArray, ...RotationArray]): Readonly<Location>;
static createReadonly(uncertainOneParam: LocationParamsOneArg): Readonly<Location>;
/**
* 使用Location创建创建一个只读的Location对象。
* @param {Location} location
* @returns {Readonly<Location>}
*/
static makeReadonly(location: Location): Readonly<Location>;
static blocksBetween(start: LocationParamsOneArg, end: LocationParamsOneArg): Location[];
}
export interface Vector3 {
x: number;
y: number;
z: number;
}
export interface Vector2 {
x: number;
y: number;
}
export type Vector2Array = [number, number];
export type Vector3Array = [number, number, number];
export interface Coords extends Vector3 {
}
export interface Position {
location: Coords;
}
export interface DimensionPosition extends Position {
dimension: DimensionLikeValue;
}
export type LocationInfo = (RotationGetter & DimensionPosition) | (DimensionPosition & {
rotation: Vector2;
});
export type PositionPointInfo = (RotationGetter & Position) | (Position & {
rotation: Vector2;
});
export interface PositionInfo extends Coords {
dimension: DimensionLikeValue;
}
export interface Rotation {
rx: number;
ry: number;
}
export interface RotationGetter {
getRotation(): Vector2;
}
export type CoordsArray = Vector3Array;
export type RotationArray = Vector2Array;
export type LocationParamsOneArg = [
DimensionLikeValue,
...CoordsArray
] | DimensionPosition | PositionInfo | LocationInfo | CoordsArray | Coords | [...CoordsArray, ...RotationArray];