UNPKG

lingo3d

Version:

Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor

36 lines 1.48 kB
import { lazy } from "@lincode/utils"; import { planeGeometry } from "../../display/primitives/Plane"; import { sphereGeometry } from "../../display/primitives/Sphere"; import loadTexture from "../../display/utils/loaders/loadTexture"; import { waterSystem } from "../waterSystem"; import { texturesUrlPtr } from "../../pointers/assetsPathPointers"; import createInternalSystem from "../utils/createInternalSystem"; let WaterClass; const importWater = lazy(async () => { const { Water } = await import("three/examples/jsm/objects/Water"); WaterClass = Water; }); export const configWaterSystem = createInternalSystem("configWaterSystem", { effect: (self) => { const normalMap = self.normalMap || texturesUrlPtr[0] + "waternormals.jpg"; const isPlane = self.shape === "plane"; const waterGeometry = isPlane ? planeGeometry : sphereGeometry; const res = self.resolution; self.object3d.add((self.$water = new WaterClass(waterGeometry, { textureWidth: res, textureHeight: res, waterNormals: loadTexture(normalMap), // sunDirection: new Vector3(), sunColor: 0xffffff, waterColor: 0x001e0f, distortionScale: 3.7 }))); waterSystem.add(self); }, cleanup: (self) => { self.object3d.remove(self.$water); waterSystem.delete(self); }, effectTicker: [importWater] }); //# sourceMappingURL=configWaterSystem.js.map