@nxg-org/mineflayer-physics-util
Version:
Provides functionality for more accurate entity and projectile tracking.
67 lines (66 loc) • 2.58 kB
TypeScript
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<State extends IEntityState = IEntityState> {
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<PlayerState>;
static FROM_ENTITY(ctx: IPhysics, entity: Entity, settings?: PhysicsWorldSettings): EPhysicsCtx<EntityState>;
static FROM_ENTITY_TYPE(ctx: IPhysics, entityType: md.Entity, options?: Partial<Entity>, settings?: PhysicsWorldSettings): EPhysicsCtx<EntityState>;
static FROM_ENTITY_STATE(ctx: IPhysics, entityState: IEntityState, entityType?: md.Entity, settings?: PhysicsWorldSettings): EPhysicsCtx<IEntityState>;
clone(): EPhysicsCtx<IEntityState>;
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 {};