UNPKG

@nxg-org/mineflayer-physics-util

Version:

Provides functionality for more accurate entity and projectile tracking.

66 lines (65 loc) 2.43 kB
import { AABB } from "@nxg-org/mineflayer-util-plugin"; import md from "minecraft-data"; import type { Bot } from "mineflayer"; import { Entity } from "prismarine-entity"; import { Vec3 } from "vec3"; import { IPhysics } from "../engines/IPhysics"; import { IEntityState } from "../states"; import { PlayerPoses } from "../states/poses"; import { PhysicsWorldSettings } from "./physicsSettings"; export declare const emptyVec: Vec3; type CollisionContext = { blockEffects: boolean; affectedAfterCollision: boolean; }; export declare class EPhysicsCtx { readonly ctx: IPhysics; readonly worldSettings: PhysicsWorldSettings; pose: PlayerPoses; readonly state: IEntityState; readonly entityType: md.Entity; static loadData: (data: md.IndexedData) => void; static entityConstructor: new (id: number) => Entity; static mcData: md.IndexedData; static entityData: md.IndexedData["entitiesByName"]; static mobData: md.IndexedData["mobs"]; readonly position: Vec3; readonly velocity: Vec3; stepHeight: number; gravity: number; waterGravity: number; lavaGravity: number; airdrag: number; airborneInertia: number; airborneAccel: number; waterInertia: number; sprintWaterInertia: number; lavaInertia: number; liquidAccel: number; gravityThenDrag: boolean; useControls: boolean; doSolidCollisions: boolean; doLiquidCollisions: boolean; collisionBehavior: CollisionContext; constructor(ctx: IPhysics, worldSettings: PhysicsWorldSettings, pose: PlayerPoses, state: IEntityState, entityType?: md.Entity); static FROM_BOT(ctx: IPhysics, bot: Bot, settings?: PhysicsWorldSettings): EPhysicsCtx; static FROM_ENTITY(ctx: IPhysics, entity: Entity, settings?: PhysicsWorldSettings): EPhysicsCtx; static FROM_ENTITY_TYPE(ctx: IPhysics, entityType: md.Entity, options?: Partial<Entity>, settings?: PhysicsWorldSettings): EPhysicsCtx; static FROM_ENTITY_STATE(ctx: IPhysics, entityState: IEntityState, entityType?: md.Entity, settings?: PhysicsWorldSettings): EPhysicsCtx; clone(): EPhysicsCtx; get height(): number; get width(): number; getHalfWidth(): number; getCurrentBBWithPose(): AABB; getBBWithPose(position: { x: number; y: number; z: number; }): AABB; getBB(position: { x: number; y: number; z: number; }): AABB; } export {};