UNPKG

prendy

Version:

Make games with prerendered backdrops using babylonjs and repond

41 lines (40 loc) 1.65 kB
import { addItemToUniqueArray, removeItemFromArray } from "chootils/dist/arrays"; import { setState } from "repond"; import { II, addSubEvents, makeEventTypes } from "repond-events"; import { setGlobalState } from "../helpers/prendyUtils/global"; export const playerEvents = makeEventTypes(({ event }) => ({ enableMovement: event({ run: async ({ canMove = true, revertDelay }, { runMode, liveId }) => { if (runMode !== "start") return; setGlobalState({ playerMovingPaused: !canMove }); if (revertDelay) { addSubEvents(liveId, [ II("basic", "wait", { time: revertDelay }), II("setState", "setState", { global: { main: { playerMovingPaused: !canMove } } }), ]); } }, params: { canMove: undefined, revertDelay: undefined }, }), takePickup: event({ run: ({ which: pickup, toHolding = true }, { runMode }) => { if (runMode !== "start") return; setGlobalState((state) => ({ heldPickups: toHolding ? addItemToUniqueArray(state.heldPickups, pickup) : removeItemFromArray(state.heldPickups, pickup), })); }, params: { which: "", toHolding: undefined }, }), setAnimations: event({ run: ({ animations }, { runMode }) => { if (runMode !== "start") return; setState({ players: { main: { animationNames: animations } } }); }, params: { animations: { walking: "", idle: "" } }, }), }));