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 { EntityState, IEntityState } from "../states"; import { PlayerPoses } from "../states/poses"; import { PhysicsWorldSettings } from "./physicsSettings"; import { PlayerState } from "../states"; 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: State; 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"]; 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; get position(): Vec3; get velocity(): Vec3; constructor(ctx: IPhysics, worldSettings: PhysicsWorldSettings, pose: PlayerPoses, state: State, 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, 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 {};