1.0.0 • Published 6 months ago
@rbxts/gravity-controller v1.0.0
@rbxts/gravity-controller
Typescript bindings for EgoMoose's Rbx-Gravity-Controller with ground normal finding by EmilyBendsSpace
Flamework setup
- Add 
installGravityControllerClassto theonInitof 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()
  }
}- Setup a 
GravityControllerin 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
  }
}1.0.0
6 months ago