radar4mob
Version:
Detects and emits an event when the position of an mob with coordinates changes.
119 lines (78 loc) • 2.58 kB
Markdown
[](https://www.jsdelivr.com/package/npm/radar4mob)

Detects and emits an event when the position of an mob with coordinates changes.
```javascript
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(onSceneUpdate, 60 / 1000)
```
```bash
npm i radar4mob
```
```javascript
import { Area, Mob } from 'radar4mob'
```
```html
<script type="module">
import { Area, Mob } from 'https://cdn.jsdelivr.net/npm/radar4mob@1.x.x/+esm'
</script>
```
Create a new mobility object. You can use `mob.id` property for `getMob` or `removeMob` method.
Get a added mobility object from area instance. If object not exists, It will return `null`.
Remove a added mobility. If object exists, returns `true`. otherwise, returns `false`.
When this function is called, an 'in', 'out' event emits according to the coordinates of the mob.
Destroy all mobs. It will call garbage collector.
You can set threshold of mob.
```javascript
const mob = area.addMob('test-mob')
mob.thresholdRadius = 10
```
You can set position of mob.
```javascript
const mob = area.addMob('test-mob')
mob.position.set(x, y, z, w)
// or
mob.position.x = 10
```
Destroy a mob instance. A area instance will drop mob instance too.