29 lines
991 B
TypeScript
29 lines
991 B
TypeScript
import {IframeApiContribution, sendToWorkadventure} from "./IframeApiContribution";
|
|
import type {HasPlayerMovedEvent, HasPlayerMovedEventCallback} from "../Events/HasPlayerMovedEvent";
|
|
import {Subject} from "rxjs";
|
|
import {apiCallback} from "./registeredCallbacks";
|
|
import {isHasPlayerMovedEvent} from "../Events/HasPlayerMovedEvent";
|
|
|
|
const moveStream = new Subject<HasPlayerMovedEvent>();
|
|
|
|
class WorkadventurePlayerCommands extends IframeApiContribution<WorkadventurePlayerCommands> {
|
|
callbacks = [
|
|
apiCallback({
|
|
type: 'hasPlayerMoved',
|
|
typeChecker: isHasPlayerMovedEvent,
|
|
callback: (payloadData) => {
|
|
moveStream.next(payloadData);
|
|
}
|
|
}),
|
|
]
|
|
|
|
onPlayerMove(callback: HasPlayerMovedEventCallback): void {
|
|
moveStream.subscribe(callback);
|
|
sendToWorkadventure({
|
|
type: 'onPlayerMove',
|
|
data: null
|
|
})
|
|
}
|
|
}
|
|
|
|
export default new WorkadventurePlayerCommands(); |