Skip to content

hyperflux 1.0.0

Install from the command line:
Learn more about npm packages
$ npm install @xrfoundation/hyperflux@1.0.0
Install via package.json:
"@xrfoundation/hyperflux": "1.0.0"

About this version

HyperFlux

HyperFlux brings together various state management strategies in XREngine, in a way that makes it easy to introspect and test.

In XREngine, we define 3 different stores

The ENGINE store is, meaning actions are dispatched directly on the incoming queue, and run on the Engine timer.

createHyperStore({
  name: 'ENGINE',
  getDispatchId: () => 'engine',
  getDispatchTime: () => Engine.instance.elapsedTime
})
// IncomingActionSystem
import { applyIncomingActions } from '@xrengine/hyperflux'
export default async function IncomingActionSystem(world) {
  return () => {
    applyIncomingActions(Engine.instance.store)
  }
}

In any case, the appropriate store must be provided when dispatching an action:

dispatchAction( WorldNetworkAction.spawnAvatar({ parameters }))

Likewise when adding or removing receptors:

addActionReceptor((a) =>
  matches(a).when(WorldNetworkAction.spawnObject.matches, (a) => recepted.push(a))
)

State objects can also be defined and retrieved from a store:

const PeerState = defineState('peers', () => {
    return [] // initial state
})

// get state
const peerState = getState(Engine.instance.store, PeerState)

All incoming, outoing, and historical actions accessible on the store.actions object.

Details


Assets

  • hyperflux-1.0.0.tgz

Download activity

  • Total downloads 0
  • Last 30 days 0
  • Last week 0
  • Today 0