UNPKG

yoni-mcscripts-lib

Version:

为 Minecraft Script API 中的部分接口创建了 wrapper,并提供简单的事件管理器和任务管理器,另附有一些便于代码编写的一些小工具。

323 lines (322 loc) 15.1 kB
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];