Adding support for default variables values
This commit is contained in:
parent
abd53b6251
commit
c30de8c6db
10 changed files with 92 additions and 44 deletions
|
@ -88,13 +88,11 @@ export type IframeQueryMap = {
|
|||
getState: {
|
||||
query: undefined,
|
||||
answer: GameStateEvent,
|
||||
callback: () => GameStateEvent|PromiseLike<GameStateEvent>
|
||||
},
|
||||
getMapData: {
|
||||
query: undefined,
|
||||
answer: MapDataEvent,
|
||||
callback: () => MapDataEvent|PromiseLike<GameStateEvent>
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
export interface IframeQuery<T extends keyof IframeQueryMap> {
|
||||
|
|
|
@ -1,18 +1,12 @@
|
|||
import {Observable, Subject} from "rxjs";
|
||||
|
||||
import { isMapDataEvent } from "../Events/MapDataEvent";
|
||||
import { EnterLeaveEvent, isEnterLeaveEvent } from "../Events/EnterLeaveEvent";
|
||||
import { isGameStateEvent } from "../Events/GameStateEvent";
|
||||
|
||||
import {IframeApiContribution, queryWorkadventure, sendToWorkadventure} from "./IframeApiContribution";
|
||||
import { apiCallback } from "./registeredCallbacks";
|
||||
import type {LayerEvent} from "../Events/LayerEvent";
|
||||
import type {SetPropertyEvent} from "../Events/setPropertyEvent";
|
||||
import {isSetVariableEvent, SetVariableEvent} from "../Events/SetVariableEvent";
|
||||
|
||||
import type { ITiledMap } from "../../Phaser/Map/ITiledMap";
|
||||
import type { MapDataEvent } from "../Events/MapDataEvent";
|
||||
import type { GameStateEvent } from "../Events/GameStateEvent";
|
||||
|
||||
const enterStreams: Map<string, Subject<EnterLeaveEvent>> = new Map<string, Subject<EnterLeaveEvent>>();
|
||||
const leaveStreams: Map<string, Subject<EnterLeaveEvent>> = new Map<string, Subject<EnterLeaveEvent>>();
|
||||
|
@ -39,6 +33,16 @@ export const setMapURL = (url: string) => {
|
|||
mapURL = url;
|
||||
}
|
||||
|
||||
export const initVariables = (_variables: Map<string, unknown>): void => {
|
||||
for (const [name, value] of _variables.entries()) {
|
||||
// In case the user already decided to put values in the variables (before onInit), let's make sure onInit does not override this.
|
||||
if (!variables.has(name)) {
|
||||
variables.set(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
setVariableResolvers.subscribe((event) => {
|
||||
variables.set(event.key, event.value);
|
||||
const subject = variableSubscribers.get(event.key);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue