prendy
Version:
Make games with prerendered backdrops using babylonjs and repond
50 lines (49 loc) • 2.39 kB
JavaScript
import "@babylonjs/loaders";
import { Globals } from "react-spring";
import { onNextTick } from "repond";
import { initMovers } from "repond-movers";
import loadGoogleFonts from "./helpers/loadGoogleFonts";
import loadStyles from "./helpers/loadStyles";
import { meta } from "./meta";
import { timeStatePath } from "./stores/global/global";
import { initializeKTX2Decoder } from "./initializeKTX2Decoder";
export { DebugFrameRate } from "./components/DebugFrameRate";
export { PrendyApp } from "./components/PrendyApp";
export * from "./declarations";
export { prendyEffectGroups, prendyParamEffectGroups } from "./effects/effects";
export { makePrendyOptions } from "./getPrendyOptions";
export * from "./helpers/babylonjs/vectors";
export * from "./helpers/prendyHelpers/characters";
export * from "./helpers/prendyHelpers/dolls";
export * from "./helpers/prendyHelpers/players";
export * from "./helpers/prendyHelpers/scene";
export * from "./helpers/prendyHelpers/sound";
export * from "./helpers/prendyHelpers/speech";
export * from "./helpers/prendyHelpers/stickers";
export * from "./helpers/prendyRuleMakers/cameras";
export * from "./helpers/prendyRuleMakers/interact";
export * from "./helpers/prendyRuleMakers/pickups";
export * from "./helpers/prendyRuleMakers/places";
export * from "./helpers/prendyRuleMakers/prendyRuleMakers";
export * from "./helpers/prendyRuleMakers/segments";
export * from "./helpers/prendyRuleMakers/touches";
export * from "./helpers/prendyRuleMakers/triggers";
export { isHolding } from "./helpers/prendyUtils/player";
// NOTE update to export all from?
export { prendyEventGroups } from "./events/events";
export { loadPrendyState, savePrendyState } from "./helpers/saving";
export { makePrendyStores, prendyStepNames } from "./stores/stores";
export async function initPrendy(assets, KTX2Worker) {
// Initialize the KTX2 decoder
await initializeKTX2Decoder(KTX2Worker);
meta.assets = assets;
initMovers(timeStatePath);
loadGoogleFonts(meta.assets.fontNames); // Auto-import fonts from google fonts :)
loadStyles();
Globals.assign({ frameLoop: "always", requestAnimationFrame: onNextTick }); // for react-spring
}
export function getDefaultDollOptions(modelNames) {
const modelDollOptions = {};
modelNames.forEach((modelName) => (modelDollOptions[modelName] = { model: modelName }));
return modelDollOptions;
}