prendy
Version:
Make games with prerendered backdrops using babylonjs and repond
26 lines (25 loc) • 1.08 kB
JavaScript
import { forEach } from "chootils/dist/loops";
import { makeEffects } from "repond";
import { meta } from "../meta";
export const placeEffects = makeEffects(({ itemEffect, effect }) => ({
whenToggledWallsChanges: itemEffect({
run({ newValue: toggledWalls, itemId: placeName, itemRefs }) {
const { placeInfoByName } = meta.assets;
const { wallMeshes } = itemRefs;
if (!wallMeshes)
return;
const placeInfo = placeInfoByName[placeName];
const typedWallNames = placeInfo.wallNames;
forEach(typedWallNames, (wallName) => {
const newToggle = toggledWalls[wallName];
const wallMesh = wallMeshes[wallName];
// if (wallMesh && newToggle !== undefined) wallMesh.setEnabled(newToggle);
if (wallMesh && newToggle !== undefined)
wallMesh.checkCollisions = newToggle;
});
},
check: { type: "places", prop: "toggledWalls" },
step: "default",
atStepEnd: true,
}),
}));