You're Invited: Meet the Socket team at BSidesSF and RSAC - April 27 - May 1.RSVP
Socket
Sign inDemoInstall
Socket

prismarine-physics

Package Overview
Dependencies
Maintainers
0
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

prismarine-physics

Provide the physics engine for minecraft entities

1.10.0
latest
Source
npm
Version published
Weekly downloads
6.9K
-2.03%
Maintainers
0
Weekly downloads
 
Created
Source

prismarine-physics

NPM version Build Status Discord Gitter Irc

Try it on gitpod

Provide the physics engine for minecraft entities

Usage

const { Physics, PlayerState } = require('prismarine-physics')
const { Vec3 } = require('vec3')

const mcData = require('minecraft-data')('1.13.2')
const Block = require('prismarine-block')('1.13.2')

const physics = Physics(mcData, world)
const controls = {
  forward: false,
  back: false,
  left: false,
  right: false,
  jump: false,
  sprint: false,
  sneak: false
}
const player = {
    entity: {
      position: pos,
      velocity: new Vec3(0, 0, 0),
      onGround: false,
      isInWater: false,
      isInLava: false,
      isInWeb: false,
      isCollidedHorizontally: false,
      isCollidedVertically: false,
      elytraFlying: false,
      yaw: 0,
      pitch: 0
    },
    jumpTicks: 0,
    jumpQueued: false,
    fireworkRocketDuration: 0
  }
const playerState = new PlayerState(player, controls)

while (!player.entity.onGround) {
  // simulate 1 tick of player physic, then apply the result to the player
  physics.simulatePlayer(playerState, world).apply(player)
}

See examples/ for more.

API

Physics

simulatePlayer(playerState, world)

  • playerState : instance of the PlayerState class
  • world : interface with a function getBlock(position) returning the prismarine-block at the given position

PlayerState

A player state is an object containing the properties:

Read / Write properties:

  • pos : position (vec3) of the player entity
  • vel : velocity (vec3) of the player entity
  • onGround : (boolean) is the player touching ground ?
  • isInWater : (boolean) is the player in water ?
  • isInLava : (boolean) is the player in lava ?
  • isInWeb : (boolean) is the player in a web ?
  • isCollidedHorizontally : (boolean) is the player collided horizontally with a solid block ?
  • isCollidedVertically : (boolean) is the player collided vertically with a solid block ?
  • elytraFlying : (boolean) is the player elytra flying ?
  • jumpTicks : (integer) number of ticks before the player can auto-jump again
  • jumpQueued : (boolean) true if the jump control state was true between the last tick and the current one
  • fireworkRocketDuration : (number) how many ticks of firework boost are remaining ?

Read only properties:

  • yaw : (float) the yaw angle, in radians, of the player entity
  • pitch: (float) the pitch angle, in radians, of the player entity
  • control : (object) control states vector with properties:
    • forward
    • back
    • left
    • right
    • jump
    • sprint
    • sneak

Keywords

physics

FAQs

Package last updated on 24 Jan 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts