radar4mob
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

radar4mob

Node.js workflow

Detects and emits an event when the position of an mob with coordinates changes.

import { Area, Mob } from 'radar4mob'

const area = new Area

class SomeGameObject {
  mob: Mob

  constructor() {
    ...
    this.mob = area.addMob('objects-unique-id', threshold)
  }
}

const obj = new SomeGameObject()

obj.mob.position.set(x, y, z, w)
obj.mob.emitter
  .on('in', (mob) => {
    console.log(`The object ${mob.id} came into your threshold radius.`)
  })
  .on('out', (mob) => {
    console.log(`The object ${mob.id} is out of your threshold radius.`)
  })

const onSceneUpdate = () => {
  // When this function is called, an 'in', 'out' event emits according to the coordinates of the mob.
  area.update()
}

const onSceneDestroy = () => {
  // Destroys all mob when scene destroyed.
  area.destroy()
}

// game update
setInterval(onFrameUpdate, 60 / 1000)

Install

npm i radar4mob

How to use

Node.js

import { Area, Mob } from 'radar4mob'

Browser (esm)

<script type="module">
  import { Area, Mob } from 'https://cdn.jsdelivr.net/npm/radar4mob@1.x.x/+esm'
</script>

API

Area

addMob(id: string, thresholdRadius: number): Mob

Create a new mobility object. You can use mob.id property for getMob or removeMob method.

getMob(id: string): Mob|null

Get a added mobility object from area instance. If object not exists, It will return null.

removeMob(id: string): boolean

Remove a added mobility. If object exists, returns true. otherwise, returns false.

update(): void

When this function is called, an 'in', 'out' event emits according to the coordinates of the mob.

destroy(): void

Destroy all mobs. It will call garbage collector.

Mob

(property) thresholdRadius: number

You can set threshold of mob.

const mob = area.addMob('test-mob')
mob.thresholdRadius = 10

(property) position: Position

You can set position of mob.

const mob = area.addMob('test-mob')

mob.position.set(x, y, z, w)
// or
mob.position.x = 10

destroy(): void

Destroy a mob instance. A area instance will drop mob instance too.

Package Sidebar

Install

npm i radar4mob

Weekly Downloads

10

Version

1.1.0

License

MIT

Unpacked Size

31.8 kB

Total Files

9

Last publish

Collaborators

  • izure1