@rbxts/gravity-controller
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

@rbxts/gravity-controller

Typescript bindings for EgoMoose's Rbx-Gravity-Controller with ground normal finding by EmilyBendsSpace

Flamework setup

  1. Add installGravityControllerClass to the onInit of some @Service
import { OnInit, Service } from '@flamework/core'
import { installGravityControllerClass } from '@rbxts/gravity-controller'

@Service()
export class GravityService implements OnInit {
  onInit() {
    // Install EgoMoose's Rbx-Gravity-Controller https://github.com/EgoMoose/Rbx-Gravity-Controller
    installGravityControllerClass()
  }
}
  1. Setup a GravityController in some @Controller
import { Controller, OnStart } from '@flamework/core'
import {
  getGravityControllerUp,
  GravityController,
  GravityControllerClass,
  installGravityControllerClass,
} from '@rbxts/gravity-controller'
import { Players } from '@rbxts/services'

@Controller({})
export class PlayerGravityController implements OnStart {
  gravityControllerClass: GravityControllerClass | undefined
  gravityController: GravityController | undefined

  onStart() {
    this.gravityControllerClass = installGravityControllerClass()
    Players.LocalPlayer.CharacterAdded.Connect((_character) => {
      this.disableGravityController()
      this.enableGravityController()
    })
    if (Players.LocalPlayer.Character) this.enableGravityController()
  }

  disableGravityController() {
    this.gravityController?.Destroy()
    this.gravityController = undefined
  }

  enableGravityController() {
    if (this.gravityController || !this.gravityControllerClass) return
    const gravityController = new this.gravityControllerClass(Players.LocalPlayer)

    // Use EmilyBendsSpace's getGroundNormal() to walk up walls
    gravityController.GetGravityUp = getGravityControllerUp

    this.gravityController = gravityController
  }
}

Readme

Keywords

Package Sidebar

Install

npm i @rbxts/gravity-controller

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

104 kB

Total Files

5

Last publish

Collaborators

  • angleopera