gaesup-world 1.5.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ControllerWrapper-DIUV_1p1.cjs → ControllerWrapper-CSkyPVfj.cjs} +1 -1
- package/dist/{ControllerWrapper-C3UMrzdp.js → ControllerWrapper-HkWFQGO6.js} +22 -22
- package/dist/{Gamepad-CoQE9m_1.cjs → Gamepad-BERnfCSY.cjs} +1 -1
- package/dist/{Gamepad-BawlpcyM.js → Gamepad-CpgNW9VU.js} +3 -3
- package/dist/{NodeGpuSnow-BThaiMpK.js → NodeGpuSnow--3a95dET.js} +1 -1
- package/dist/{NodeGpuSnow-f9wlKlwW.cjs → NodeGpuSnow-RaG9TI-l.cjs} +1 -1
- package/dist/{NodeGrassMaterial-CJK8SHRN.js → NodeGrassMaterial-BFdjHeGo.js} +1 -1
- package/dist/{NodeGrassMaterial-guHIFd84.cjs → NodeGrassMaterial-QVgR4r5b.cjs} +1 -1
- package/dist/NodeTreeParticles-D3W3cYAV.cjs +1 -0
- package/dist/{NodeTreeParticles-B6Uc3dm8.js → NodeTreeParticles-HxlfmNYG.js} +15 -18
- package/dist/NodeWaterMaterial-C9L9ExTB.cjs +1 -0
- package/dist/NodeWaterMaterial-Dd5t0ycI.js +106 -0
- package/dist/{Rideable-Dm-oCo-n.js → Rideable-BtSqrb_B.js} +74 -77
- package/dist/Rideable-DohXCBzt.cjs +1 -0
- package/dist/{SaveSystem-Bykmdjii.js → SaveSystem-B1lDjP8v.js} +1 -1
- package/dist/{SaveSystem-WgUdypXP.cjs → SaveSystem-DQh1hqeJ.cjs} +1 -1
- package/dist/{WorldContainer-DbiTa1oh.js → WorldContainer-Bdq8DQrw.js} +3 -3
- package/dist/{WorldContainer-q3Rq3b7f.cjs → WorldContainer-Bix9wrZc.cjs} +1 -1
- package/dist/{WorldPhysics-BZikSWLR.cjs → WorldPhysics-DqLf-gXc.cjs} +1 -1
- package/dist/{WorldPhysics-Vl-5Z9O5.js → WorldPhysics-h7oCTZvb.js} +1 -1
- package/dist/{WorldPostProcessing-C9qqKrpI.cjs → WorldPostProcessing-DBK05LOh.cjs} +1 -1
- package/dist/{WorldPostProcessing-C40JqbKO.js → WorldPostProcessing-DDYpd7Rf.js} +1 -1
- package/dist/WorldProps-Cp8mSs50.cjs +1 -0
- package/dist/{WorldProps-DgfIrPMF.js → WorldProps-L3mEU49A.js} +402 -376
- package/dist/blueprints-editor.cjs +1 -1
- package/dist/blueprints-editor.js +5 -5
- package/dist/building.cjs +1 -1
- package/dist/building.js +4 -4
- package/dist/core/building/components/BuildingUI/useBuildingUIState.d.cts +34 -0
- package/dist/core/building/components/BuildingUI/useBuildingUIState.d.ts +34 -0
- package/dist/core/building/components/BuildingWeather.d.cts +5 -0
- package/dist/core/building/components/BuildingWeather.d.ts +5 -0
- package/dist/core/building/components/TileSystem/batch.d.cts +2 -0
- package/dist/core/building/components/TileSystem/batch.d.ts +2 -0
- package/dist/core/building/components/mesh/cover/CoverBatch.d.cts +17 -0
- package/dist/core/building/components/mesh/cover/CoverBatch.d.ts +17 -0
- package/dist/core/building/components/mesh/cover/geometry.d.cts +51 -0
- package/dist/core/building/components/mesh/cover/geometry.d.ts +51 -0
- package/dist/core/building/components/mesh/cover/looks.d.cts +5 -0
- package/dist/core/building/components/mesh/cover/looks.d.ts +5 -0
- package/dist/core/building/components/mesh/cover/material.d.cts +12 -0
- package/dist/core/building/components/mesh/cover/material.d.ts +12 -0
- package/dist/core/building/components/mesh/dirt.d.cts +2 -1
- package/dist/core/building/components/mesh/dirt.d.ts +2 -1
- package/dist/core/building/components/mesh/farm/FarmCover.d.cts +12 -0
- package/dist/core/building/components/mesh/farm/FarmCover.d.ts +12 -0
- package/dist/core/building/components/mesh/farm/FarmPlants.d.cts +16 -0
- package/dist/core/building/components/mesh/farm/FarmPlants.d.ts +16 -0
- package/dist/core/building/components/mesh/farm/crops.d.cts +11 -0
- package/dist/core/building/components/mesh/farm/crops.d.ts +11 -0
- package/dist/core/building/components/mesh/farm/instances.d.cts +18 -0
- package/dist/core/building/components/mesh/farm/instances.d.ts +18 -0
- package/dist/core/building/components/mesh/farm/kit.d.cts +61 -0
- package/dist/core/building/components/mesh/farm/kit.d.ts +61 -0
- package/dist/core/building/components/mesh/farm/materials.d.cts +19 -0
- package/dist/core/building/components/mesh/farm/materials.d.ts +19 -0
- package/dist/core/building/components/mesh/grass/Grass.d.cts +2 -1
- package/dist/core/building/components/mesh/grass/Grass.d.ts +2 -1
- package/dist/core/building/components/mesh/grass/manager.d.cts +1 -4
- package/dist/core/building/components/mesh/grass/manager.d.ts +1 -4
- package/dist/core/building/components/mesh/sand.d.cts +12 -11
- package/dist/core/building/components/mesh/sand.d.ts +12 -11
- package/dist/core/building/components/mesh/snowfield.d.cts +12 -11
- package/dist/core/building/components/mesh/snowfield.d.ts +12 -11
- package/dist/core/building/components/mesh/water/NodeWaterMaterial.d.cts +2 -0
- package/dist/core/building/components/mesh/water/NodeWaterMaterial.d.ts +2 -0
- package/dist/core/building/components/mesh/water/glsl.d.cts +9 -3
- package/dist/core/building/components/mesh/water/glsl.d.ts +9 -3
- package/dist/core/building/components/mesh/water/index.d.cts +1 -1
- package/dist/core/building/components/mesh/water/index.d.ts +1 -1
- package/dist/core/building/components/mesh/water/shading.d.cts +59 -2
- package/dist/core/building/components/mesh/water/shading.d.ts +59 -2
- package/dist/core/building/index.d.cts +2 -0
- package/dist/core/building/index.d.ts +2 -0
- package/dist/core/building/stores/buildingEditActions.d.cts +2 -0
- package/dist/core/building/stores/buildingEditActions.d.ts +2 -0
- package/dist/core/building/stores/buildingModelActions.d.cts +2 -2
- package/dist/core/building/stores/buildingModelActions.d.ts +2 -2
- package/dist/core/building/stores/buildingStore.d.cts +136 -0
- package/dist/core/building/stores/buildingStore.d.ts +136 -0
- package/dist/core/building/stores/buildingStoreTypes.d.cts +6 -1
- package/dist/core/building/stores/buildingStoreTypes.d.ts +6 -1
- package/dist/core/building/stores/persistence.d.cts +3 -2
- package/dist/core/building/stores/persistence.d.ts +3 -2
- package/dist/core/building/terrain/dirt.d.cts +12 -3
- package/dist/core/building/terrain/dirt.d.ts +12 -3
- package/dist/core/building/terrain/farm/config.d.cts +61 -0
- package/dist/core/building/terrain/farm/config.d.ts +61 -0
- package/dist/core/building/terrain/farm/layout.d.cts +64 -0
- package/dist/core/building/terrain/farm/layout.d.ts +64 -0
- package/dist/core/building/terrain/farm/soil.d.cts +16 -0
- package/dist/core/building/terrain/farm/soil.d.ts +16 -0
- package/dist/core/building/terrain/groundMaterial.d.cts +16 -3
- package/dist/core/building/terrain/groundMaterial.d.ts +16 -3
- package/dist/core/building/terrain/index.d.cts +1 -1
- package/dist/core/building/terrain/index.d.ts +1 -1
- package/dist/core/building/terrain/shoreField.d.cts +6 -3
- package/dist/core/building/terrain/shoreField.d.ts +6 -3
- package/dist/core/building/terrain/trail.d.cts +46 -0
- package/dist/core/building/terrain/trail.d.ts +46 -0
- package/dist/core/building/terrain/useTrailField.d.cts +6 -0
- package/dist/core/building/terrain/useTrailField.d.ts +6 -0
- package/dist/core/building/types/farm.d.cts +28 -0
- package/dist/core/building/types/farm.d.ts +28 -0
- package/dist/core/building/types/index.d.cts +12 -1
- package/dist/core/building/types/index.d.ts +12 -1
- package/dist/core/effects/components/Footprints/index.d.cts +13 -3
- package/dist/core/effects/components/Footprints/index.d.ts +13 -3
- package/dist/core/effects/components/LandingBurst/index.d.cts +20 -0
- package/dist/core/effects/components/LandingBurst/index.d.ts +20 -0
- package/dist/core/effects/index.d.cts +2 -0
- package/dist/core/effects/index.d.ts +2 -0
- package/dist/core/gi/components/GiVolume/index.d.cts +4 -2
- package/dist/core/gi/components/GiVolume/index.d.ts +4 -2
- package/dist/core/gi/components/GiVolume/runtime.d.cts +6 -1
- package/dist/core/gi/components/GiVolume/runtime.d.ts +6 -1
- package/dist/core/gi/components/GiVolume/types.d.cts +8 -2
- package/dist/core/gi/components/GiVolume/types.d.ts +8 -2
- package/dist/core/gi/components/GiVolume/workerClient.d.cts +31 -0
- package/dist/core/gi/components/GiVolume/workerClient.d.ts +31 -0
- package/dist/core/gi/core/probeAtlas.d.cts +28 -0
- package/dist/core/gi/core/probeAtlas.d.ts +28 -0
- package/dist/core/gi/core/probeCascade.d.cts +6 -0
- package/dist/core/gi/core/probeCascade.d.ts +6 -0
- package/dist/core/gi/core/probeSchedule.d.cts +14 -0
- package/dist/core/gi/core/probeSchedule.d.ts +14 -0
- package/dist/core/gi/core/probeVolume.d.cts +4 -0
- package/dist/core/gi/core/probeVolume.d.ts +4 -0
- package/dist/core/gi/hooks/useBuildingVoxelBoxes.d.cts +4 -0
- package/dist/core/gi/hooks/useBuildingVoxelBoxes.d.ts +4 -0
- package/dist/core/gi/index.d.cts +1 -1
- package/dist/core/gi/index.d.ts +1 -1
- package/dist/core/gi/types.d.cts +5 -0
- package/dist/core/gi/types.d.ts +5 -0
- package/dist/core/gi/utils/buildingVoxelBoxes.d.cts +4 -2
- package/dist/core/gi/utils/buildingVoxelBoxes.d.ts +4 -2
- package/dist/core/gi/utils/modelBounds.d.cts +40 -0
- package/dist/core/gi/utils/modelBounds.d.ts +40 -0
- package/dist/core/gi/utils/objectProxies.d.cts +8 -0
- package/dist/core/gi/utils/objectProxies.d.ts +8 -0
- package/dist/core/gi/worker/giWorker.d.cts +1 -0
- package/dist/core/gi/worker/giWorker.d.ts +1 -0
- package/dist/core/gi/worker/host.d.cts +33 -0
- package/dist/core/gi/worker/host.d.ts +33 -0
- package/dist/core/gi/worker/protocol.d.cts +38 -0
- package/dist/core/gi/worker/protocol.d.ts +38 -0
- package/dist/core/rendering/lighting/zones.d.cts +28 -2
- package/dist/core/rendering/lighting/zones.d.ts +28 -2
- package/dist/core/rendering/tsl/burst.d.cts +10 -0
- package/dist/core/rendering/tsl/burst.d.ts +10 -0
- package/dist/core/rendering/tsl/farm.d.cts +39 -0
- package/dist/core/rendering/tsl/farm.d.ts +39 -0
- package/dist/core/rendering/tsl/gi.d.cts +1 -0
- package/dist/core/rendering/tsl/gi.d.ts +1 -0
- package/dist/core/rendering/tsl/grassMaterial.d.cts +2 -0
- package/dist/core/rendering/tsl/grassMaterial.d.ts +2 -0
- package/dist/core/rendering/tsl/groundCover.d.cts +62 -0
- package/dist/core/rendering/tsl/groundCover.d.ts +62 -0
- package/dist/core/rendering/tsl/toonWater.d.cts +10 -10
- package/dist/core/rendering/tsl/toonWater.d.ts +10 -10
- package/dist/core/rendering/tsl/types.d.cts +6 -1
- package/dist/core/rendering/tsl/types.d.ts +6 -1
- package/dist/core/rendering/tsl/waterBed.d.cts +23 -0
- package/dist/core/rendering/tsl/waterBed.d.ts +23 -0
- package/dist/core/rendering/tsl/weather.d.cts +22 -13
- package/dist/core/rendering/tsl/weather.d.ts +22 -13
- package/dist/core/rendering/tsl/weatherSurface.d.cts +65 -0
- package/dist/core/rendering/tsl/weatherSurface.d.ts +65 -0
- package/dist/core/weather/components/Precipitation/glsl.d.cts +7 -0
- package/dist/core/weather/components/Precipitation/glsl.d.ts +7 -0
- package/dist/core/weather/components/Precipitation/index.d.cts +25 -0
- package/dist/core/weather/components/Precipitation/index.d.ts +25 -0
- package/dist/core/weather/components/Weather/index.d.cts +21 -0
- package/dist/core/weather/components/Weather/index.d.ts +21 -0
- package/dist/core/weather/components/Weather/lighting.d.cts +14 -0
- package/dist/core/weather/components/Weather/lighting.d.ts +14 -0
- package/dist/core/weather/components/WeatherEffect/index.d.cts +11 -3
- package/dist/core/weather/components/WeatherEffect/index.d.ts +11 -3
- package/dist/core/weather/core/climate.d.cts +73 -0
- package/dist/core/weather/core/climate.d.ts +73 -0
- package/dist/core/weather/core/field.d.cts +39 -0
- package/dist/core/weather/core/field.d.ts +39 -0
- package/dist/core/weather/core/glsl.d.cts +25 -0
- package/dist/core/weather/core/glsl.d.ts +25 -0
- package/dist/core/weather/hooks/useWeatherClimate.d.cts +10 -0
- package/dist/core/weather/hooks/useWeatherClimate.d.ts +10 -0
- package/dist/core/weather/hooks/useWeatherSource.d.cts +7 -0
- package/dist/core/weather/hooks/useWeatherSource.d.ts +7 -0
- package/dist/core/weather/index.d.cts +15 -1
- package/dist/core/weather/index.d.ts +15 -1
- package/dist/core/weather/stores/weatherStore.d.cts +1 -1
- package/dist/core/weather/stores/weatherStore.d.ts +1 -1
- package/dist/core/weather/types.d.cts +4 -1
- package/dist/core/weather/types.d.ts +4 -1
- package/dist/{defaults-DrVklGQg.cjs → defaults-CuAUlhQP.cjs} +1 -1
- package/dist/{defaults-DLJB-RHV.js → defaults-DvNpkkVs.js} +1 -1
- package/dist/editor.cjs +1 -1
- package/dist/editor.js +6 -6
- package/dist/{flow-CM0yWoqs.cjs → flow-Bi4ER9kT.cjs} +1 -1
- package/dist/{flow-DnddUXVb.js → flow-CAk6ZXhl.js} +1 -1
- package/dist/gi-BXxzSzsV.js +95 -0
- package/dist/gi-DhHrlQsb.cjs +1 -0
- package/dist/index.cjs +2 -2
- package/dist/index.js +1911 -1326
- package/dist/network.cjs +1 -1
- package/dist/network.js +1 -1
- package/dist/{outline-CsIagFrc.js → outline-BTE00ige.js} +3 -3
- package/dist/{outline-DX9TqHot.cjs → outline-CXytCeR7.cjs} +1 -1
- package/dist/plugin-BORiLuQz.cjs +915 -0
- package/dist/plugin-Xhs3RTBG.js +13810 -0
- package/dist/postprocessing.cjs +1 -1
- package/dist/postprocessing.js +2 -2
- package/dist/probeAtlas-B9u5Z8MN.js +51 -0
- package/dist/probeAtlas-CfwUzN9s.cjs +1 -0
- package/dist/runtime.cjs +1 -1
- package/dist/runtime.js +7 -7
- package/dist/{sfe-CPLq8RBC.cjs → sfe-AP3TdgMw.cjs} +1 -1
- package/dist/{sfe-BhWDrQyo.js → sfe-BCdLHcX1.js} +1 -1
- package/dist/{shell-y1pvIZwj.js → shell-BlpZfWbD.js} +84 -84
- package/dist/{shell-Bh48VFQz.cjs → shell-C4jPnNWf.cjs} +1 -1
- package/dist/useClicker-CdLQwnsK.cjs +1 -0
- package/dist/{useClicker-aAIy3l8f.js → useClicker-dd9Qqwl0.js} +1056 -823
- package/dist/{useGenericRefs-B3i5KBGF.js → useGenericRefs-CIDZmw05.js} +25 -25
- package/dist/{useGenericRefs-DAjERA3h.cjs → useGenericRefs-CiJszv-S.cjs} +1 -1
- package/dist/{useVisitRoom-DafVbrGM.js → useVisitRoom-BlK6eWQg.js} +5 -5
- package/dist/{useVisitRoom-Cke4KbHK.cjs → useVisitRoom-Cyok28sX.cjs} +1 -1
- package/dist/{weatherStore-BPDadgEH.js → weatherStore-Cnw13Ci_.js} +28 -24
- package/dist/weatherStore-esODEKfP.cjs +1 -0
- package/dist/weatherSurface-Bs6bSid8.cjs +1 -0
- package/dist/weatherSurface-DbTULkW3.js +60 -0
- package/package.json +3 -3
- package/dist/NodeTreeParticles-L5KT8B3a.cjs +0 -1
- package/dist/NodeWaterMaterial-CKFPRMzR.cjs +0 -1
- package/dist/NodeWaterMaterial-Dw8RPNGF.js +0 -57
- package/dist/NodeWeather-ILXSaukv.js +0 -72
- package/dist/NodeWeather-mpj-7cAQ.cjs +0 -1
- package/dist/Rideable-DTAx6_RK.cjs +0 -1
- package/dist/WorldProps-wZ7K1YUd.cjs +0 -1
- package/dist/core/weather/components/WeatherEffect/NodeWeather.d.cts +0 -2
- package/dist/core/weather/components/WeatherEffect/NodeWeather.d.ts +0 -2
- package/dist/core/weather/components/WeatherEffect/particleTexture.d.cts +0 -3
- package/dist/core/weather/components/WeatherEffect/particleTexture.d.ts +0 -3
- package/dist/core/weather/components/WeatherEffect/types.d.cts +0 -7
- package/dist/core/weather/components/WeatherEffect/types.d.ts +0 -7
- package/dist/gi-CrIKhZ7T.cjs +0 -1
- package/dist/gi-D2-0A-M9.js +0 -78
- package/dist/plugin-BzkdNHEu.cjs +0 -734
- package/dist/plugin-CDm9XM8g.js +0 -11214
- package/dist/useClicker-PhtnHkFa.cjs +0 -1
- package/dist/weatherStore-DwLl0Jjo.cjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-Chgba0Kb.cjs"),t=require("./useEngineFrame-ujTlLQfa.cjs"),n=require("./logger-B9OaKOPw.cjs"),r=require("./useClicker-PhtnHkFa.cjs"),i=require("./CoreBridge-L4l4UNtR.cjs"),a=require("./useGenericRefs-DAjERA3h.cjs"),o=require("./useNavigation-BwQQD2rK.cjs");let s=require("three");s=e.n(s,1);let c=require("react"),l=require("react/jsx-runtime"),u=require("zustand/react/shallow"),d=require("@react-three/rapier");var f=1e-6,p=1e-4,m=new WeakMap;function h(e,t,n){let r=n.getFrame(),i=m.get(e);if(i&&i.scheduler===n&&i.frame===r&&i.entityId===t)return i.snapshot;let a=e.snapshot(t);return i?(i.scheduler=n,i.frame=r,i.entityId=t,i.snapshot=a,a):(m.set(e,{scheduler:n,frame:r,entityId:t,snapshot:a}),a)}var g=()=>({x:0,y:0,z:0,rx:0,ry:0,rz:0,moving:!1,grounded:!1});function _(e,t){let{position:n,rotation:r}=t,i=n.x-e.x,a=n.y-e.y,o=n.z-e.z;return i*i+a*a+o*o<=f&&Math.abs(r.x-e.rx)<=p&&Math.abs(r.y-e.ry)<=p&&Math.abs(r.z-e.rz)<=p&&t.isMoving===e.moving&&t.isGrounded===e.grounded?!1:(e.x=n.x,e.y=n.y,e.z=n.z,e.rx=r.x,e.ry=r.y,e.rz=r.z,e.moving=t.isMoving,e.grounded=t.isGrounded,!0)}var v=()=>({position:new s.Vector3(0,0,0),velocity:new s.Vector3(0,0,0),rotation:new s.Euler(0,0,0),isMoving:!1,isGrounded:!1,speed:0,height:2});function y(e={}){let{updateInterval:n=0,entityId:i,reactive:a=!0}=e,o=r.L(),s=(0,c.useRef)(null);s.current||=v();let[,l]=(0,c.useState)(0),u=(0,c.useRef)(0),d=(0,c.useRef)(0),f=(0,c.useRef)(g()),p=(0,c.useRef)(null),m=t.i(),{activeState:y,gameStates:b}=r.Y(),x=e=>i||(e.getPlayerEntityId()??void 0),S=(e,t,n)=>{let r=t===e.getPlayerEntityId()?y?.euler:void 0;s.current.rotation.copy(r??n)};return(0,c.useEffect)(()=>{p.current=o;let e=p.current;if(!e)return;let t=e.subscribe((t,r)=>{let i=x(e);if(!i||r!==i)return;let o=performance.now();if(d.current=o,n>0&&o-u.current<n)return;u.current=o;let c=s.current;c.position.copy(t.position),c.velocity.copy(t.velocity),S(e,i,t.rotation),c.isMoving=t.isMoving,c.isGrounded=t.isGrounded,c.speed=t.speed,c.height=2,a&&_(f.current,c)&&l(e=>e+1)});return()=>{t()}},[i,n,a,o]),t.t(`postPhysics`,()=>{let e=performance.now();if(n>0&&e-u.current<n)return;let t=s.current,r=p.current;if(r){let n=x(r);if(!(e-d.current<16)&&n){let i=h(r,n,m);if(i){t.position.copy(i.position),t.velocity.copy(i.velocity),S(r,n,i.rotation),t.isMoving=i.isMoving,t.isGrounded=i.isGrounded,t.speed=i.speed,t.height=2,u.current=e,a&&_(f.current,t)&&l(e=>e+1);return}}}y?.position&&(t.position.copy(y.position),y.velocity?t.velocity.copy(y.velocity):t.velocity.set(0,0,0),y.euler?t.rotation.copy(y.euler):t.rotation.set(0,0,0),t.isMoving=b?.isMoving||!1,t.isGrounded=b?.isOnTheGround||!1,t.speed=y.velocity?y.velocity.length():0,t.height=2,u.current=e,a&&_(f.current,t)&&l(e=>e+1))},{order:10,label:`motions:player-position`}),s.current}function b(e={}){let{position:t}=y(e);return t}var x={move:`move`,jump:`jump`,run:`run`,interact:`interact`},S=`button:0`,C=`button:2`,w=`button:10`,T=`axis:0`,E=`axis:1`;function D(){return[{name:x.move,kind:`axis2D`,bindings:[{device:`keyboard`,code:`KeyW`,axis:`y`,scale:1},{device:`keyboard`,code:`KeyS`,axis:`y`,scale:-1},{device:`keyboard`,code:`KeyD`,axis:`x`,scale:1},{device:`keyboard`,code:`KeyA`,axis:`x`,scale:-1},{device:`keyboard`,code:`ArrowUp`,axis:`y`,scale:1},{device:`keyboard`,code:`ArrowDown`,axis:`y`,scale:-1},{device:`keyboard`,code:`ArrowRight`,axis:`x`,scale:1},{device:`keyboard`,code:`ArrowLeft`,axis:`x`,scale:-1},{device:`gamepad`,code:T,axis:`x`,scale:1},{device:`gamepad`,code:E,axis:`y`,scale:-1},{device:`touch`,code:`stick:x`,axis:`x`,scale:1},{device:`touch`,code:`stick:y`,axis:`y`,scale:1}]},{name:x.jump,kind:`button`,bindings:[{device:`keyboard`,code:`Space`},{device:`gamepad`,code:S},{device:`touch`,code:`button:jump`}]},{name:x.run,kind:`button`,bindings:[{device:`keyboard`,code:`ShiftLeft`},{device:`keyboard`,code:`ShiftRight`},{device:`gamepad`,code:w},{device:`touch`,code:`button:run`}]},{name:x.interact,kind:`button`,bindings:[{device:`keyboard`,code:`KeyE`},{device:`gamepad`,code:C},{device:`touch`,code:`button:interact`}]}]}function O(e,t={}){return Object.entries(e).map(([e,n])=>({name:e,kind:t[e]??(n.some(e=>e.scale!==void 0)?`axis1D`:`button`),bindings:n.map(e=>({device:e.device,code:e.code,...e.scale===void 0?{}:{scale:e.scale}}))}))}var k={"y:1":`forward`,"y:-1":`backward`,"x:1":`rightward`,"x:-1":`leftward`},A={[x.jump]:`space`,[x.run]:`shift`,[x.interact]:`keyE`};function j(){let e={KeyZ:`keyZ`,KeyR:`keyR`,KeyF:`keyF`,Escape:`escape`};for(let t of D())for(let n of t.bindings){if(n.device!==`keyboard`)continue;let r=t.name===x.move?k[`${n.axis}:${Math.sign(n.scale??1)}`]:A[t.name];r&&(e[n.code]=r)}return e}var M=j(),N=(e=!0,t=!0,o,s=!0,l=!0)=>{let u=r.mr(),d=i.o(e=>e.automation?.queue.isRunning),f=i.o(e=>e.stopAutomation),p=i.o(e=>e.interaction?.isActive??!0),m=r.Ut(e=>e.isInEditMode()),h=r.i(),g=(0,c.useMemo)(()=>a.x(h),[h]),_=(0,c.useRef)(new Map),v=(0,c.useMemo)(()=>({...M}),[]),y=(0,c.useCallback)((e,t)=>{if(!s||!p||!u.isEnabled())return!1;try{let n=`api:${e}`;return g.set(n,e,t),t?_.current.set(n,e):_.current.delete(n),!0}catch(e){return n.t.error(`Error updating keyboard state`,e instanceof Error?e:String(e)),!1}},[s,g,p,u]),b=(0,c.useCallback)(()=>{_.current.clear(),g.release();let e={};for(let t of Object.values(M))g.isHeld(t)||Object.assign(e,{[t]:!1});h.updateKeyboard(e)},[h,g]);return(0,c.useEffect)(()=>{let e=_.current;return()=>{g.release(),e.clear()}},[g]),(0,c.useEffect)(()=>{(!p||m)&&b()},[b,p,m]),(0,c.useEffect)(()=>{if(!l)for(let[e,t]of _.current)M[t]&&(_.current.delete(e),g.set(e,M[t],!1))},[l,g]),(0,c.useEffect)(()=>{if(!s){_.current.size>0&&b();return}let e=(e,n)=>{if(n&&(e.ctrlKey||e.altKey||e.metaKey)){_.current.size>0&&b();return}let r=e.target;if(r instanceof HTMLElement&&(r.matches(`input, textarea, select`)||r.isContentEditable)){_.current.size>0&&b();return}let i=v[e.code];if(!i)return;if(!p||m){n&&e.preventDefault(),b();return}let a=u.eventSource(e),o=_.current.has(a);n&&!o?(_.current.set(a,e.code),e.code===`Space`&&e.preventDefault(),t&&d&&(i===`forward`||i===`backward`||i===`leftward`||i===`rightward`)&&(f(),h.updateMouse({isActive:!1,shouldRun:!1})),g.set(a,i,!0)):!n&&o&&(_.current.delete(a),g.set(a,i,!1))},n=t=>e(t,!0),r=t=>e(t,!1),i=l?u.listen(`keydown`,n):void 0,a=l?u.listen(`keyup`,r):void 0,o=u.onBlur(()=>{_.current.size>0&&b()});return()=>{i?.(),a?.(),o()}},[s,l,g,v,t,f,d,b,p,m,h,u]),{pressedKeys:[...new Set(_.current.values())],pushKey:y,isKeyPressed:e=>Array.from(_.current.values()).includes(e),clearAllKeys:b}},P=128,F=100,I=.16,L=.06;function R(e,t,n){for(let r=0;r<t;r+=1){let i=e[r],a=e[Math.max(0,r-1)],o=e[Math.min(t-1,r+1)],s=o.x-a.x,c=o.z-a.z,l=Math.hypot(s,c)||1;s/=l,c/=l;let u=-c*I*.5,d=s*I*.5,f=r*6;n[f]=i.x+u,n[f+1]=i.y+L,n[f+2]=i.z+d,n[f+3]=i.x-u,n[f+4]=i.y+L,n[f+5]=i.z-d}}function z({pointsRef:e,color:n}){let r=(0,c.useRef)(0),i=(0,c.useMemo)(()=>{let e=new s.BufferGeometry,t=new s.BufferAttribute(new Float32Array(768),3).setUsage(s.DynamicDrawUsage);e.setAttribute(`position`,t);let n=[];for(let e=0;e<127;e+=1){let t=e*2;n.push(t,t+1,t+2,t+1,t+3,t+2)}e.setIndex(n),e.setDrawRange(0,0);let r=new s.MeshBasicMaterial({transparent:!0,opacity:.85,depthWrite:!1,side:s.DoubleSide}),i=new s.Mesh(e,r);return i.visible=!1,i.frustumCulled=!1,i.renderOrder=1,i},[]);return(0,c.useEffect)(()=>{i.material.color.set(n)},[i,n]),(0,c.useEffect)(()=>()=>{i.geometry.dispose(),i.material.dispose()},[i]),t.t(`lateUpdate`,()=>{let t=performance.now();if(t-r.current<F)return;r.current=t;let n=e.current;if(!n||n.length<2){i.visible=!1;return}let a=Math.min(n.length,P),o=i.geometry.getAttribute(`position`);R(n,a,o.array),o.needsUpdate=!0,i.geometry.setDrawRange(0,(a-1)*6),i.visible=!0},{label:`interactions:path-line`}),(0,l.jsx)(`primitive`,{object:i})}z.displayName=`PathLine`;var B=(0,c.memo)(()=>(0,l.jsxs)(`group`,{children:[(0,l.jsxs)(`mesh`,{position:[0,.35,0],children:[(0,l.jsx)(`sphereGeometry`,{args:[.16,16,16]}),(0,l.jsx)(`meshStandardMaterial`,{color:`#00ff88`,emissive:`#00ff88`,emissiveIntensity:.5,transparent:!0,opacity:.9})]}),(0,l.jsxs)(`mesh`,{rotation:[-Math.PI/2,0,0],position:[0,.03,0],renderOrder:2,children:[(0,l.jsx)(`ringGeometry`,{args:[.3,.5,32]}),(0,l.jsx)(`meshBasicMaterial`,{color:`#00ff88`,transparent:!0,opacity:.75,depthTest:!1,side:s.DoubleSide})]})]}));B.displayName=`TargetMarker`;var V=[],H=150,U=1;function W(){let{getClickNavigationRoute:e,subscribeClickNavigationRoute:n}=o.t(),r=o.r(),a=i.o((0,u.useShallow)(e=>e.automation?.queue.actions??V)),d=i.o(e=>e.automation?.queue.currentIndex??0),f=i.o(e=>e.interaction.mouse.target),p=i.o(e=>e.interaction.mouse.isActive),{position:m}=y({updateInterval:H,reactive:!1}),[h,g]=(0,c.useState)(()=>[...e()]),_=(0,c.useRef)(null),v=(0,c.useRef)([]);(0,c.useEffect)(()=>{let t=()=>g([...e()]);return t(),n(t)},[e,n]);let b=(0,c.useMemo)(()=>a.map(e=>e.type===`move`&&e.target?new s.Vector3(e.target.x,e.target.y,e.target.z):null).filter(e=>e!==null),[a]),x=(0,c.useMemo)(()=>[m,...h.length>0?h:[f],...b],[m,h,f,b]),S=(0,c.useMemo)(()=>b.length>0?[m,...b]:[],[m,b]);return t.t(`lateUpdate`,()=>{let t=e(),n=t[t.length-1]??f,i=p&&Math.hypot(n.x-m.x,n.z-m.z)>=U,a=_.current;a&&(a.visible=i,i&&a.position.set(n.x,r.sampleHeight(n.x,n.z),n.z)),v.current=i?x:S},{label:`interactions:clicker`}),(0,l.jsxs)(`group`,{children:[(0,l.jsx)(`group`,{ref:_,visible:!1,children:(0,l.jsx)(B,{})}),(0,l.jsx)(z,{pointsRef:v,color:d>=0?`#00ff88`:`#ffaa00`}),a.map((e,t)=>{if(e.type===`move`&&e.target){let n=t===d,r=t<d;return(0,l.jsx)(`group`,{position:[e.target.x,e.target.y,e.target.z],children:(0,l.jsxs)(`mesh`,{children:[(0,l.jsx)(`sphereGeometry`,{args:[.1,8,8]}),(0,l.jsx)(`meshStandardMaterial`,{color:r?`#888`:n?`#ff4444`:`#ffaa00`,transparent:!0,opacity:r?.3:.8})]})},`action-${t}`)}return null})]})}var G=4;function K({clickerOptions:e}){let t=i.s(),{onClick:n}=r.t(e);return(0,l.jsxs)(`mesh`,{position:[0,0,0],rotation:[-Math.PI/2,0,0],onClick:e=>{if(e.nativeEvent.button!==0||e.delta>G||e.nativeEvent.altKey||e.nativeEvent.ctrlKey||e.nativeEvent.metaKey||e.nativeEvent.shiftKey)return;e.stopPropagation();let{cameraOption:r,setCameraOption:i}=t.getState();if(r?.focus){i({focus:!1});return}n(e)},visible:!0,userData:{intangible:!0},children:[(0,l.jsx)(`planeGeometry`,{args:[1e3,1e3]}),(0,l.jsx)(`meshBasicMaterial`,{transparent:!0,opacity:0,depthWrite:!1,colorWrite:!1})]})}function q({props:e,children:t}){let n=i.o(e=>e.mode),{gameStates:o}=r.Y(),s=i.o(e=>e.rideable),u=i.o(e=>e.urls),f=r.Ut(e=>e.isInEditMode()),p=a.t();N(!0,!0,void 0,e.enableKeyboard??!0);let m=o?.currentRideable?.id,h=(0,c.useMemo)(()=>(m?s?.[m]?.offset:void 0)??(0,d.vec3)(),[m,s]);if(f||!n||!o||!s||!u||n.type===`character`&&!u.characterUrl||n.type===`vehicle`&&!u.vehicleUrl||n.type===`airplane`&&!u.airplaneUrl)return null;let{canRide:g,isRiding:_}=o,v=(()=>{let{enableKeyboard:t,rigidBodyRef:r=p.rigidBodyRef,outerGroupRef:i=p.outerGroupRef,innerGroupRef:a=p.innerGroupRef,colliderRef:o=p.colliderRef,parts:s,baseColor:c,excludeBaseNodes:l,...d}=e,f={...d,isActive:!0,componentType:n.type,enableRiding:g,isRiderOn:_,offset:h,ref:r,outerGroupRef:i,innerGroupRef:a,colliderRef:o,parts:(s||[]).filter(e=>!!e.url).map(e=>({...e,url:e.url})),...typeof c==`string`&&c.trim().length>0?{baseColor:c}:{},...Array.isArray(l)&&l.length>0?{excludeBaseNodes:l}:{}},m=_&&n.type!==`character`?u.ridingUrl:void 0,v=typeof m==`string`&&m.length>0?{ridingUrl:m}:{};switch(n.type){case`character`:return{...f,url:u.characterUrl||``};case`vehicle`:return{...f,...v,url:u.vehicleUrl||``};case`airplane`:return{...f,...v,url:u.airplaneUrl||``};default:return{...f,url:u.characterUrl||``}}})();return n.type===`character`&&o.isRiding?null:(0,l.jsx)(r.n,{...v,children:t})}function J(e){let{clickToMove:t,children:n,clickerOptions:r,...i}=e,a={...r??{},...r?.agentRadius===void 0&&i.colliderSize?.radius!==void 0?{agentRadius:i.colliderSize.radius}:{}};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(q,{props:i,children:(0,l.jsxs)(l.Fragment,{children:[t&&(0,l.jsx)(K,{clickerOptions:a}),n]})}),t&&(0,l.jsx)(W,{})]})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return b}});
|
|
1
|
+
const e=require("./rolldown-runtime-Chgba0Kb.cjs"),t=require("./useEngineFrame-ujTlLQfa.cjs"),n=require("./logger-B9OaKOPw.cjs"),r=require("./useClicker-CdLQwnsK.cjs"),i=require("./CoreBridge-L4l4UNtR.cjs"),a=require("./useGenericRefs-CiJszv-S.cjs"),o=require("./useNavigation-BwQQD2rK.cjs");let s=require("three");s=e.n(s,1);let c=require("react"),l=require("react/jsx-runtime"),u=require("zustand/react/shallow"),d=require("@react-three/rapier");var f=1e-6,p=1e-4,m=new WeakMap;function h(e,t,n){let r=n.getFrame(),i=m.get(e);if(i&&i.scheduler===n&&i.frame===r&&i.entityId===t)return i.snapshot;let a=e.snapshot(t);return i?(i.scheduler=n,i.frame=r,i.entityId=t,i.snapshot=a,a):(m.set(e,{scheduler:n,frame:r,entityId:t,snapshot:a}),a)}var g=()=>({x:0,y:0,z:0,rx:0,ry:0,rz:0,moving:!1,grounded:!1});function _(e,t){let{position:n,rotation:r}=t,i=n.x-e.x,a=n.y-e.y,o=n.z-e.z;return i*i+a*a+o*o<=f&&Math.abs(r.x-e.rx)<=p&&Math.abs(r.y-e.ry)<=p&&Math.abs(r.z-e.rz)<=p&&t.isMoving===e.moving&&t.isGrounded===e.grounded?!1:(e.x=n.x,e.y=n.y,e.z=n.z,e.rx=r.x,e.ry=r.y,e.rz=r.z,e.moving=t.isMoving,e.grounded=t.isGrounded,!0)}var v=()=>({position:new s.Vector3(0,0,0),velocity:new s.Vector3(0,0,0),rotation:new s.Euler(0,0,0),isMoving:!1,isGrounded:!1,speed:0,height:2});function y(e={}){let{updateInterval:n=0,entityId:i,reactive:a=!0}=e,o=r.L(),s=(0,c.useRef)(null);s.current||=v();let[,l]=(0,c.useState)(0),u=(0,c.useRef)(0),d=(0,c.useRef)(0),f=(0,c.useRef)(g()),p=(0,c.useRef)(null),m=t.i(),{activeState:y,gameStates:b}=r.Y(),x=e=>i||(e.getPlayerEntityId()??void 0),S=(e,t,n)=>{let r=t===e.getPlayerEntityId()?y?.euler:void 0;s.current.rotation.copy(r??n)};return(0,c.useEffect)(()=>{p.current=o;let e=p.current;if(!e)return;let t=e.subscribe((t,r)=>{let i=x(e);if(!i||r!==i)return;let o=performance.now();if(d.current=o,n>0&&o-u.current<n)return;u.current=o;let c=s.current;c.position.copy(t.position),c.velocity.copy(t.velocity),S(e,i,t.rotation),c.isMoving=t.isMoving,c.isGrounded=t.isGrounded,c.speed=t.speed,c.height=2,a&&_(f.current,c)&&l(e=>e+1)});return()=>{t()}},[i,n,a,o]),t.t(`postPhysics`,()=>{let e=performance.now();if(n>0&&e-u.current<n)return;let t=s.current,r=p.current;if(r){let n=x(r);if(!(e-d.current<16)&&n){let i=h(r,n,m);if(i){t.position.copy(i.position),t.velocity.copy(i.velocity),S(r,n,i.rotation),t.isMoving=i.isMoving,t.isGrounded=i.isGrounded,t.speed=i.speed,t.height=2,u.current=e,a&&_(f.current,t)&&l(e=>e+1);return}}}y?.position&&(t.position.copy(y.position),y.velocity?t.velocity.copy(y.velocity):t.velocity.set(0,0,0),y.euler?t.rotation.copy(y.euler):t.rotation.set(0,0,0),t.isMoving=b?.isMoving||!1,t.isGrounded=b?.isOnTheGround||!1,t.speed=y.velocity?y.velocity.length():0,t.height=2,u.current=e,a&&_(f.current,t)&&l(e=>e+1))},{order:10,label:`motions:player-position`}),s.current}function b(e={}){let{position:t}=y(e);return t}var x={move:`move`,jump:`jump`,run:`run`,interact:`interact`},S=`button:0`,C=`button:2`,w=`button:10`,T=`axis:0`,E=`axis:1`;function D(){return[{name:x.move,kind:`axis2D`,bindings:[{device:`keyboard`,code:`KeyW`,axis:`y`,scale:1},{device:`keyboard`,code:`KeyS`,axis:`y`,scale:-1},{device:`keyboard`,code:`KeyD`,axis:`x`,scale:1},{device:`keyboard`,code:`KeyA`,axis:`x`,scale:-1},{device:`keyboard`,code:`ArrowUp`,axis:`y`,scale:1},{device:`keyboard`,code:`ArrowDown`,axis:`y`,scale:-1},{device:`keyboard`,code:`ArrowRight`,axis:`x`,scale:1},{device:`keyboard`,code:`ArrowLeft`,axis:`x`,scale:-1},{device:`gamepad`,code:T,axis:`x`,scale:1},{device:`gamepad`,code:E,axis:`y`,scale:-1},{device:`touch`,code:`stick:x`,axis:`x`,scale:1},{device:`touch`,code:`stick:y`,axis:`y`,scale:1}]},{name:x.jump,kind:`button`,bindings:[{device:`keyboard`,code:`Space`},{device:`gamepad`,code:S},{device:`touch`,code:`button:jump`}]},{name:x.run,kind:`button`,bindings:[{device:`keyboard`,code:`ShiftLeft`},{device:`keyboard`,code:`ShiftRight`},{device:`gamepad`,code:w},{device:`touch`,code:`button:run`}]},{name:x.interact,kind:`button`,bindings:[{device:`keyboard`,code:`KeyE`},{device:`gamepad`,code:C},{device:`touch`,code:`button:interact`}]}]}function O(e,t={}){return Object.entries(e).map(([e,n])=>({name:e,kind:t[e]??(n.some(e=>e.scale!==void 0)?`axis1D`:`button`),bindings:n.map(e=>({device:e.device,code:e.code,...e.scale===void 0?{}:{scale:e.scale}}))}))}var k={"y:1":`forward`,"y:-1":`backward`,"x:1":`rightward`,"x:-1":`leftward`},A={[x.jump]:`space`,[x.run]:`shift`,[x.interact]:`keyE`};function j(){let e={KeyZ:`keyZ`,KeyR:`keyR`,KeyF:`keyF`,Escape:`escape`};for(let t of D())for(let n of t.bindings){if(n.device!==`keyboard`)continue;let r=t.name===x.move?k[`${n.axis}:${Math.sign(n.scale??1)}`]:A[t.name];r&&(e[n.code]=r)}return e}var M=j(),N=(e=!0,t=!0,o,s=!0,l=!0)=>{let u=r.Er(),d=i.o(e=>e.automation?.queue.isRunning),f=i.o(e=>e.stopAutomation),p=i.o(e=>e.interaction?.isActive??!0),m=r.Ut(e=>e.isInEditMode()),h=r.i(),g=(0,c.useMemo)(()=>a.x(h),[h]),_=(0,c.useRef)(new Map),v=(0,c.useMemo)(()=>({...M}),[]),y=(0,c.useCallback)((e,t)=>{if(!s||!p||!u.isEnabled())return!1;try{let n=`api:${e}`;return g.set(n,e,t),t?_.current.set(n,e):_.current.delete(n),!0}catch(e){return n.t.error(`Error updating keyboard state`,e instanceof Error?e:String(e)),!1}},[s,g,p,u]),b=(0,c.useCallback)(()=>{_.current.clear(),g.release();let e={};for(let t of Object.values(M))g.isHeld(t)||Object.assign(e,{[t]:!1});h.updateKeyboard(e)},[h,g]);return(0,c.useEffect)(()=>{let e=_.current;return()=>{g.release(),e.clear()}},[g]),(0,c.useEffect)(()=>{(!p||m)&&b()},[b,p,m]),(0,c.useEffect)(()=>{if(!l)for(let[e,t]of _.current)M[t]&&(_.current.delete(e),g.set(e,M[t],!1))},[l,g]),(0,c.useEffect)(()=>{if(!s){_.current.size>0&&b();return}let e=(e,n)=>{if(n&&(e.ctrlKey||e.altKey||e.metaKey)){_.current.size>0&&b();return}let r=e.target;if(r instanceof HTMLElement&&(r.matches(`input, textarea, select`)||r.isContentEditable)){_.current.size>0&&b();return}let i=v[e.code];if(!i)return;if(!p||m){n&&e.preventDefault(),b();return}let a=u.eventSource(e),o=_.current.has(a);n&&!o?(_.current.set(a,e.code),e.code===`Space`&&e.preventDefault(),t&&d&&(i===`forward`||i===`backward`||i===`leftward`||i===`rightward`)&&(f(),h.updateMouse({isActive:!1,shouldRun:!1})),g.set(a,i,!0)):!n&&o&&(_.current.delete(a),g.set(a,i,!1))},n=t=>e(t,!0),r=t=>e(t,!1),i=l?u.listen(`keydown`,n):void 0,a=l?u.listen(`keyup`,r):void 0,o=u.onBlur(()=>{_.current.size>0&&b()});return()=>{i?.(),a?.(),o()}},[s,l,g,v,t,f,d,b,p,m,h,u]),{pressedKeys:[...new Set(_.current.values())],pushKey:y,isKeyPressed:e=>Array.from(_.current.values()).includes(e),clearAllKeys:b}},P=128,F=100,I=.16,L=.06;function R(e,t,n){for(let r=0;r<t;r+=1){let i=e[r],a=e[Math.max(0,r-1)],o=e[Math.min(t-1,r+1)],s=o.x-a.x,c=o.z-a.z,l=Math.hypot(s,c)||1;s/=l,c/=l;let u=-c*I*.5,d=s*I*.5,f=r*6;n[f]=i.x+u,n[f+1]=i.y+L,n[f+2]=i.z+d,n[f+3]=i.x-u,n[f+4]=i.y+L,n[f+5]=i.z-d}}function z({pointsRef:e,color:n}){let r=(0,c.useRef)(0),i=(0,c.useMemo)(()=>{let e=new s.BufferGeometry,t=new s.BufferAttribute(new Float32Array(768),3).setUsage(s.DynamicDrawUsage);e.setAttribute(`position`,t);let n=[];for(let e=0;e<127;e+=1){let t=e*2;n.push(t,t+1,t+2,t+1,t+3,t+2)}e.setIndex(n),e.setDrawRange(0,0);let r=new s.MeshBasicMaterial({transparent:!0,opacity:.85,depthWrite:!1,side:s.DoubleSide}),i=new s.Mesh(e,r);return i.visible=!1,i.frustumCulled=!1,i.renderOrder=1,i},[]);return(0,c.useEffect)(()=>{i.material.color.set(n)},[i,n]),(0,c.useEffect)(()=>()=>{i.geometry.dispose(),i.material.dispose()},[i]),t.t(`lateUpdate`,()=>{let t=performance.now();if(t-r.current<F)return;r.current=t;let n=e.current;if(!n||n.length<2){i.visible=!1;return}let a=Math.min(n.length,P),o=i.geometry.getAttribute(`position`);R(n,a,o.array),o.needsUpdate=!0,i.geometry.setDrawRange(0,(a-1)*6),i.visible=!0},{label:`interactions:path-line`}),(0,l.jsx)(`primitive`,{object:i})}z.displayName=`PathLine`;var B=(0,c.memo)(()=>(0,l.jsxs)(`group`,{children:[(0,l.jsxs)(`mesh`,{position:[0,.35,0],children:[(0,l.jsx)(`sphereGeometry`,{args:[.16,16,16]}),(0,l.jsx)(`meshStandardMaterial`,{color:`#00ff88`,emissive:`#00ff88`,emissiveIntensity:.5,transparent:!0,opacity:.9})]}),(0,l.jsxs)(`mesh`,{rotation:[-Math.PI/2,0,0],position:[0,.03,0],renderOrder:2,children:[(0,l.jsx)(`ringGeometry`,{args:[.3,.5,32]}),(0,l.jsx)(`meshBasicMaterial`,{color:`#00ff88`,transparent:!0,opacity:.75,depthTest:!1,side:s.DoubleSide})]})]}));B.displayName=`TargetMarker`;var V=[],H=150,U=1;function W(){let{getClickNavigationRoute:e,subscribeClickNavigationRoute:n}=o.t(),r=o.r(),a=i.o((0,u.useShallow)(e=>e.automation?.queue.actions??V)),d=i.o(e=>e.automation?.queue.currentIndex??0),f=i.o(e=>e.interaction.mouse.target),p=i.o(e=>e.interaction.mouse.isActive),{position:m}=y({updateInterval:H,reactive:!1}),[h,g]=(0,c.useState)(()=>[...e()]),_=(0,c.useRef)(null),v=(0,c.useRef)([]);(0,c.useEffect)(()=>{let t=()=>g([...e()]);return t(),n(t)},[e,n]);let b=(0,c.useMemo)(()=>a.map(e=>e.type===`move`&&e.target?new s.Vector3(e.target.x,e.target.y,e.target.z):null).filter(e=>e!==null),[a]),x=(0,c.useMemo)(()=>[m,...h.length>0?h:[f],...b],[m,h,f,b]),S=(0,c.useMemo)(()=>b.length>0?[m,...b]:[],[m,b]);return t.t(`lateUpdate`,()=>{let t=e(),n=t[t.length-1]??f,i=p&&Math.hypot(n.x-m.x,n.z-m.z)>=U,a=_.current;a&&(a.visible=i,i&&a.position.set(n.x,r.sampleHeight(n.x,n.z),n.z)),v.current=i?x:S},{label:`interactions:clicker`}),(0,l.jsxs)(`group`,{children:[(0,l.jsx)(`group`,{ref:_,visible:!1,children:(0,l.jsx)(B,{})}),(0,l.jsx)(z,{pointsRef:v,color:d>=0?`#00ff88`:`#ffaa00`}),a.map((e,t)=>{if(e.type===`move`&&e.target){let n=t===d,r=t<d;return(0,l.jsx)(`group`,{position:[e.target.x,e.target.y,e.target.z],children:(0,l.jsxs)(`mesh`,{children:[(0,l.jsx)(`sphereGeometry`,{args:[.1,8,8]}),(0,l.jsx)(`meshStandardMaterial`,{color:r?`#888`:n?`#ff4444`:`#ffaa00`,transparent:!0,opacity:r?.3:.8})]})},`action-${t}`)}return null})]})}var G=4;function K({clickerOptions:e}){let t=i.s(),{onClick:n}=r.t(e);return(0,l.jsxs)(`mesh`,{position:[0,0,0],rotation:[-Math.PI/2,0,0],onClick:e=>{if(e.nativeEvent.button!==0||e.delta>G||e.nativeEvent.altKey||e.nativeEvent.ctrlKey||e.nativeEvent.metaKey||e.nativeEvent.shiftKey)return;e.stopPropagation();let{cameraOption:r,setCameraOption:i}=t.getState();if(r?.focus){i({focus:!1});return}n(e)},visible:!0,userData:{intangible:!0},children:[(0,l.jsx)(`planeGeometry`,{args:[1e3,1e3]}),(0,l.jsx)(`meshBasicMaterial`,{transparent:!0,opacity:0,depthWrite:!1,colorWrite:!1})]})}function q({props:e,children:t}){let n=i.o(e=>e.mode),{gameStates:o}=r.Y(),s=i.o(e=>e.rideable),u=i.o(e=>e.urls),f=r.Ut(e=>e.isInEditMode()),p=a.t();N(!0,!0,void 0,e.enableKeyboard??!0);let m=o?.currentRideable?.id,h=(0,c.useMemo)(()=>(m?s?.[m]?.offset:void 0)??(0,d.vec3)(),[m,s]);if(f||!n||!o||!s||!u||n.type===`character`&&!u.characterUrl||n.type===`vehicle`&&!u.vehicleUrl||n.type===`airplane`&&!u.airplaneUrl)return null;let{canRide:g,isRiding:_}=o,v=(()=>{let{enableKeyboard:t,rigidBodyRef:r=p.rigidBodyRef,outerGroupRef:i=p.outerGroupRef,innerGroupRef:a=p.innerGroupRef,colliderRef:o=p.colliderRef,parts:s,baseColor:c,excludeBaseNodes:l,...d}=e,f={...d,isActive:!0,componentType:n.type,enableRiding:g,isRiderOn:_,offset:h,ref:r,outerGroupRef:i,innerGroupRef:a,colliderRef:o,parts:(s||[]).filter(e=>!!e.url).map(e=>({...e,url:e.url})),...typeof c==`string`&&c.trim().length>0?{baseColor:c}:{},...Array.isArray(l)&&l.length>0?{excludeBaseNodes:l}:{}},m=_&&n.type!==`character`?u.ridingUrl:void 0,v=typeof m==`string`&&m.length>0?{ridingUrl:m}:{};switch(n.type){case`character`:return{...f,url:u.characterUrl||``};case`vehicle`:return{...f,...v,url:u.vehicleUrl||``};case`airplane`:return{...f,...v,url:u.airplaneUrl||``};default:return{...f,url:u.characterUrl||``}}})();return n.type===`character`&&o.isRiding?null:(0,l.jsx)(r.n,{...v,children:t})}function J(e){let{clickToMove:t,children:n,clickerOptions:r,...i}=e,a={...r??{},...r?.agentRadius===void 0&&i.colliderSize?.radius!==void 0?{agentRadius:i.colliderSize.radius}:{}};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(q,{props:i,children:(0,l.jsxs)(l.Fragment,{children:[t&&(0,l.jsx)(K,{clickerOptions:a}),n]})}),t&&(0,l.jsx)(W,{})]})}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return b}});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { i as e, t } from "./useEngineFrame-DH3I5P9Z.js";
|
|
2
2
|
import { t as n } from "./logger-CIvdj60w.js";
|
|
3
|
-
import {
|
|
3
|
+
import { Er as r, L as i, Ut as a, Y as o, i as s, n as c, t as l } from "./useClicker-dd9Qqwl0.js";
|
|
4
4
|
import { o as u, s as d } from "./CoreBridge-CoU_vJOo.js";
|
|
5
|
-
import { t as f, x as p } from "./useGenericRefs-
|
|
5
|
+
import { t as f, x as p } from "./useGenericRefs-CIDZmw05.js";
|
|
6
6
|
import { r as m, t as h } from "./useNavigation-D69g6I63.js";
|
|
7
7
|
import * as g from "three";
|
|
8
8
|
import { memo as _, useCallback as v, useEffect as y, useMemo as b, useRef as x, useState as S } from "react";
|
|
@@ -46,9 +46,9 @@ var N = () => ({
|
|
|
46
46
|
height: 2
|
|
47
47
|
});
|
|
48
48
|
function P(n = {}) {
|
|
49
|
-
let { updateInterval:
|
|
49
|
+
let { updateInterval: r = 0, entityId: a, reactive: s = !0 } = n, c = i(), l = x(null);
|
|
50
50
|
l.current ||= N();
|
|
51
|
-
let [, u] = S(0), d = x(0), f = x(0), p = x(ee()), m = x(null), h = e(), { activeState: g, gameStates: _ } =
|
|
51
|
+
let [, u] = S(0), d = x(0), f = x(0), p = x(ee()), m = x(null), h = e(), { activeState: g, gameStates: _ } = o(), v = (e) => a || (e.getPlayerEntityId() ?? void 0), b = (e, t, n) => {
|
|
52
52
|
let r = t === e.getPlayerEntityId() ? g?.euler : void 0;
|
|
53
53
|
l.current.rotation.copy(r ?? n);
|
|
54
54
|
};
|
|
@@ -57,25 +57,25 @@ function P(n = {}) {
|
|
|
57
57
|
let e = m.current;
|
|
58
58
|
if (!e) return;
|
|
59
59
|
let t = e.subscribe((t, n) => {
|
|
60
|
-
let
|
|
61
|
-
if (!
|
|
60
|
+
let i = v(e);
|
|
61
|
+
if (!i || n !== i) return;
|
|
62
62
|
let a = performance.now();
|
|
63
|
-
if (f.current = a,
|
|
63
|
+
if (f.current = a, r > 0 && a - d.current < r) return;
|
|
64
64
|
d.current = a;
|
|
65
65
|
let o = l.current;
|
|
66
|
-
o.position.copy(t.position), o.velocity.copy(t.velocity), b(e,
|
|
66
|
+
o.position.copy(t.position), o.velocity.copy(t.velocity), b(e, i, t.rotation), o.isMoving = t.isMoving, o.isGrounded = t.isGrounded, o.speed = t.speed, o.height = 2, s && M(p.current, o) && u((e) => e + 1);
|
|
67
67
|
});
|
|
68
68
|
return () => {
|
|
69
69
|
t();
|
|
70
70
|
};
|
|
71
71
|
}, [
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
a,
|
|
73
|
+
r,
|
|
74
74
|
s,
|
|
75
75
|
c
|
|
76
76
|
]), t("postPhysics", () => {
|
|
77
77
|
let e = performance.now();
|
|
78
|
-
if (
|
|
78
|
+
if (r > 0 && e - d.current < r) return;
|
|
79
79
|
let t = l.current, n = m.current;
|
|
80
80
|
if (n) {
|
|
81
81
|
let r = v(n);
|
|
@@ -282,9 +282,9 @@ function H() {
|
|
|
282
282
|
}
|
|
283
283
|
return e;
|
|
284
284
|
}
|
|
285
|
-
var U = H(), W = (e = !0, t = !0,
|
|
286
|
-
let l =
|
|
287
|
-
if (!
|
|
285
|
+
var U = H(), W = (e = !0, t = !0, i, o = !0, c = !0) => {
|
|
286
|
+
let l = r(), d = u((e) => e.automation?.queue.isRunning), f = u((e) => e.stopAutomation), m = u((e) => e.interaction?.isActive ?? !0), h = a((e) => e.isInEditMode()), g = s(), _ = b(() => p(g), [g]), S = x(/* @__PURE__ */ new Map()), C = b(() => ({ ...U }), []), w = v((e, t) => {
|
|
287
|
+
if (!o || !m || !l.isEnabled()) return !1;
|
|
288
288
|
try {
|
|
289
289
|
let n = `api:${e}`;
|
|
290
290
|
return _.set(n, e, t), t ? S.current.set(n, e) : S.current.delete(n), !0;
|
|
@@ -292,7 +292,7 @@ var U = H(), W = (e = !0, t = !0, r, a = !0, c = !0) => {
|
|
|
292
292
|
return n.error("Error updating keyboard state", e instanceof Error ? e : String(e)), !1;
|
|
293
293
|
}
|
|
294
294
|
}, [
|
|
295
|
-
|
|
295
|
+
o,
|
|
296
296
|
_,
|
|
297
297
|
m,
|
|
298
298
|
l
|
|
@@ -316,7 +316,7 @@ var U = H(), W = (e = !0, t = !0, r, a = !0, c = !0) => {
|
|
|
316
316
|
]), y(() => {
|
|
317
317
|
if (!c) for (let [e, t] of S.current) U[t] && (S.current.delete(e), _.set(e, U[t], !1));
|
|
318
318
|
}, [c, _]), y(() => {
|
|
319
|
-
if (!
|
|
319
|
+
if (!o) {
|
|
320
320
|
S.current.size > 0 && T();
|
|
321
321
|
return;
|
|
322
322
|
}
|
|
@@ -341,14 +341,14 @@ var U = H(), W = (e = !0, t = !0, r, a = !0, c = !0) => {
|
|
|
341
341
|
isActive: !1,
|
|
342
342
|
shouldRun: !1
|
|
343
343
|
})), _.set(a, i, !0)) : !n && o && (S.current.delete(a), _.set(a, i, !1));
|
|
344
|
-
}, n = (t) => e(t, !0), r = (t) => e(t, !1), i = c ? l.listen("keydown", n) : void 0,
|
|
344
|
+
}, n = (t) => e(t, !0), r = (t) => e(t, !1), i = c ? l.listen("keydown", n) : void 0, a = c ? l.listen("keyup", r) : void 0, s = l.onBlur(() => {
|
|
345
345
|
S.current.size > 0 && T();
|
|
346
346
|
});
|
|
347
347
|
return () => {
|
|
348
|
-
i?.(),
|
|
348
|
+
i?.(), a?.(), s();
|
|
349
349
|
};
|
|
350
350
|
}, [
|
|
351
|
-
|
|
351
|
+
o,
|
|
352
352
|
c,
|
|
353
353
|
_,
|
|
354
354
|
C,
|
|
@@ -553,10 +553,10 @@ function Q({ clickerOptions: e }) {
|
|
|
553
553
|
//#endregion
|
|
554
554
|
//#region src/core/motions/controller/EntityController.tsx
|
|
555
555
|
function $({ props: e, children: t }) {
|
|
556
|
-
let n = u((e) => e.mode), { gameStates: r } =
|
|
556
|
+
let n = u((e) => e.mode), { gameStates: r } = o(), i = u((e) => e.rideable), s = u((e) => e.urls), l = a((e) => e.isInEditMode()), d = f();
|
|
557
557
|
W(!0, !0, void 0, e.enableKeyboard ?? !0);
|
|
558
|
-
let p = r?.currentRideable?.id, m = b(() => (p ?
|
|
559
|
-
if (l || !n || !r || !
|
|
558
|
+
let p = r?.currentRideable?.id, m = b(() => (p ? i?.[p]?.offset : void 0) ?? D(), [p, i]);
|
|
559
|
+
if (l || !n || !r || !i || !s || n.type === "character" && !s.characterUrl || n.type === "vehicle" && !s.vehicleUrl || n.type === "airplane" && !s.airplaneUrl) return null;
|
|
560
560
|
let { canRide: h, isRiding: g } = r, _ = (() => {
|
|
561
561
|
let { enableKeyboard: t, rigidBodyRef: r = d.rigidBodyRef, outerGroupRef: i = d.outerGroupRef, innerGroupRef: a = d.innerGroupRef, colliderRef: o = d.colliderRef, parts: c, baseColor: l, excludeBaseNodes: u, ...f } = e, p = {
|
|
562
562
|
...f,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./useClicker-
|
|
1
|
+
const e=require("./useClicker-CdLQwnsK.cjs"),t=require("./CoreBridge-L4l4UNtR.cjs"),n=require("./defaults-CuAUlhQP.cjs"),r=require("./ControllerWrapper-CSkyPVfj.cjs");let i=require("react"),a=require("react/jsx-runtime");function o({value:t,name:n,gamePadButtonStyle:r,onInput:o}){let s=e.Er(),[c,l]=(0,i.useState)(!1),u=(0,i.useRef)(!1),d=(0,i.useRef)(o);d.current=o;let f=()=>{s.isEnabled()&&(s.activate(),!u.current&&o(t,!0)&&(u.current=!0,l(!0)))},p=()=>{u.current&&(o(t,!1),u.current=!1,l(!1))};return(0,i.useEffect)(()=>()=>{u.current&&d.current(t,!1),u.current=!1},[t]),(0,i.useEffect)(()=>c?s.onBlur(()=>{u.current&&d.current(t,!1),u.current=!1,l(!1)}):void 0,[c,t,s]),(0,a.jsx)(`button`,{type:`button`,className:`pad-button ${c?`is-clicked`:``}`,"aria-pressed":c,onBlur:p,onContextMenu:e=>{e.preventDefault(),p()},onPointerDown:f,onPointerUp:p,onPointerLeave:p,onPointerCancel:p,onKeyDown:e=>{(e.key===` `||e.key===`Enter`)&&(e.preventDefault(),e.stopPropagation(),f())},onKeyUp:e=>{(e.key===` `||e.key===`Enter`)&&(e.preventDefault(),e.stopPropagation(),p())},style:r,children:n})}var s={on:!0},c={forward:`앞으로`,backward:`뒤로`,leftward:`왼쪽`,rightward:`오른쪽`,shift:`달리기`,space:`점프`,escape:`취소`,keyZ:`동작 Z`,keyR:`동작 R`,keyF:`동작 F`,keyE:`동작 E`};function l(e){let{gamePadStyle:i,gamePadButtonStyle:s,label:l}=e,u=t.o(e=>e.interaction?.keyboard),d=t.o(e=>e.mode),{pushKey:f}=r.a(!0,!0,void 0,d?.controller===`gamepad`,!1);return d?.controller===`gamepad`?(0,a.jsx)(n.o,{className:`gamepad-container`,style:{...i,display:`flex`},children:Object.keys(u??{}).map(e=>(0,a.jsx)(o,{value:e,name:l?.[e]??c[e]??e,onInput:f,gamePadButtonStyle:s},e))}):null}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Er as e } from "./useClicker-dd9Qqwl0.js";
|
|
2
2
|
import { o as t } from "./CoreBridge-CoU_vJOo.js";
|
|
3
|
-
import { o as n } from "./defaults-
|
|
4
|
-
import { a as r } from "./ControllerWrapper-
|
|
3
|
+
import { o as n } from "./defaults-DvNpkkVs.js";
|
|
4
|
+
import { a as r } from "./ControllerWrapper-HkWFQGO6.js";
|
|
5
5
|
import { useEffect as i, useRef as a, useState as o } from "react";
|
|
6
6
|
import { jsx as s } from "react/jsx-runtime";
|
|
7
7
|
//#region src/core/interactions/components/Gamepad/GamePadButton.tsx
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Mr as e } from "./useClicker-dd9Qqwl0.js";
|
|
2
2
|
import { useEffect as t, useMemo as n } from "react";
|
|
3
3
|
import { jsx as r } from "react/jsx-runtime";
|
|
4
4
|
import { attribute as i, cos as a, exp as o, float as s, mod as c, positionView as l, screenDPR as u, sin as d, time as f, uniform as p, uv as m, vec3 as h } from "three/tsl";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./useClicker-
|
|
1
|
+
const e=require("./useClicker-CdLQwnsK.cjs");let t=require("react"),n=require("react/jsx-runtime"),r=require("three/tsl"),i=require("three/webgpu");var a=class extends i.PointsNodeMaterial{get origin(){return this.originValue.value}get pixelScale(){return this.pixelScaleValue.value}set pixelScale(e){this.pixelScaleValue.value=e}constructor(e,t){super({size:.08,sizeAttenuation:!1,transparent:!0,depthWrite:!1,fog:!1,toneMapped:!1,alphaTest:1e-4}),this.originValue=(0,r.uniform)(new i.Vector3),this.pixelScaleValue=(0,r.uniform)(1),this.sizeNode=this.pixelScaleValue.mul(.08).div(r.positionView.z.negate()).div(r.screenDPR);let n=(0,r.attribute)(`snowParticle`,`vec4`),a=(0,r.attribute)(`snowDrift`,`float`),o=n.x,s=r.time,c=this.originValue,l=(0,r.float)(t).sub((0,r.mod)(s.mul(n.w).add(o.mul(t*2)),t*1.4)),u=(0,r.sin)(s.mul(.7).add(o.mul(6.2831))).mul(a),d=(0,r.cos)(s.mul(.5).add(o.mul(3.1415))).mul(a);this.positionNode=(0,r.vec3)(c.x.add((0,r.mod)(n.y.add(u).sub(c.x).add(e),e*2)).sub(e),c.y.add(l).sub(t*.5),c.z.add((0,r.mod)(n.z.add(d).sub(c.z).add(e),e*2)).sub(e));let f=(0,r.uv)().sub(.5),p=f.dot(f);this.opacityNode=p.lessThanEqual(.25).select((0,r.exp)(p.mul(-6)).mul(.85),0)}},o={phase:`effects`,label:`building:snow-node`};function s({followCamera:r,count:s,halfRange:c,height:l}){let u=(0,t.useMemo)(()=>{let e=new i.Sprite(new a(c,l));e.geometry=e.geometry.clone();let t=new Float32Array(s*4),n=new Float32Array(s);for(let e=0;e<s;e++){let r=e*4;t[r]=Math.random(),t[r+1]=(Math.random()-.5)*c*2,t[r+2]=(Math.random()-.5)*c*2,t[r+3]=.5+Math.random()*1.5,n[e]=.05+Math.random()*.25}return e.geometry.setAttribute(`snowParticle`,new i.InstancedBufferAttribute(t,4)),e.geometry.setAttribute(`snowDrift`,new i.InstancedBufferAttribute(n,1)),e.count=s,e.frustumCulled=!1,e},[s,c,l]);return(0,t.useEffect)(()=>()=>{u.geometry.dispose(),u.material.dispose()},[u]),e.Mr(o,(e,t,n)=>{if(u.parent&&!u.parent.visible)return;let i=u.material;i.pixelScale=n.gl.domElement.height*.5,r&&i.origin.copy(n.camera.position)}),(0,n.jsx)(`primitive`,{object:u})}exports.default=s;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { A as e } from "./plugin-Xhs3RTBG.js";
|
|
2
2
|
import { useEffect as t, useLayoutEffect as n, useMemo as r } from "react";
|
|
3
3
|
import { jsx as i } from "react/jsx-runtime";
|
|
4
4
|
//#region src/core/building/components/mesh/grass/NodeGrassMaterial.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./plugin-
|
|
1
|
+
const e=require("./plugin-BORiLuQz.cjs");let t=require("react"),n=require("react/jsx-runtime");function r({materialRef:r,texture:i,alphaMap:a,toon:o,tipColor:s,bottomColor:c}){let l=(0,t.useMemo)(()=>new e.A(i,a),[i,a]);return(0,t.useLayoutEffect)(()=>{l.uniforms.uToon.value=+!!o,l.uniforms.tipColor.value.copy(s),l.uniforms.bottomColor.value.copy(c)},[l,o,s,c]),(0,t.useEffect)(()=>()=>l.dispose(),[l]),(0,n.jsx)(`primitive`,{object:l,ref:r,attach:`material`})}exports.default=r;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./useClicker-CdLQwnsK.cjs"),t=require("./WorldProps-Cp8mSs50.cjs");let n=require("react"),r=require("react/jsx-runtime"),i=require("three/tsl"),a=require("three/webgpu");var o={phase:`effects`,label:`building:tree-particles`},s=[[`position`,`particlePosition`],[`color`,`particleColor`],[`aParams1`,`aParams1`],[`aParams2`,`aParams2`],[`aTreePos`,`aTreePos`],[`aPointScale`,`aPointScale`]];function c({geometry:c,size:l,opacity:u,falling:d=!1}){let f=c.hasAttribute(`aTreePos`),p=c.hasAttribute(`aPointScale`),m=(0,n.useMemo)(()=>{let e=(0,i.uniform)(0),t=(0,i.uniform)(1),n=(0,i.uniform)(1),r=(0,i.uniform)(1),o=new a.PointsNodeMaterial({sizeAttenuation:!0,transparent:!0,depthWrite:!1}),s=new a.Sprite(o),c=s.geometry,l=(0,i.attribute)(`particlePosition`,`vec3`);if(o.positionNode=l,o.colorNode=(0,i.attribute)(`particleColor`,`vec3`),o.sizeNode=n,d){let r=(0,i.attribute)(`aParams1`,`vec4`),a=(0,i.attribute)(`aParams2`,`vec2`),s=(0,i.fract)(e.mul(r.x).add(r.y)),c=e.mul(r.w).add(r.y.mul(Math.PI*2)),u=(0,i.vec3)(l.x.add((0,i.sin)(c).mul(r.z).mul(t)).add(a.x.mul(s).mul(t)),(0,i.float)(.18).add(l.y.mul((0,i.float)(1).sub((0,i.pow)(s,1.22)))).add((0,i.sin)(c.mul(.6)).mul(.06)),l.z.add((0,i.cos)(c.mul(.82)).mul(r.z).mul(.72).mul(t)).add(a.y.mul(s).mul(t)));o.positionNode=f?u.add((0,i.attribute)(`aTreePos`,`vec3`)):u,p&&(o.sizeNode=(0,i.attribute)(`aPointScale`,`float`).mul(n))}let u=(0,i.uv)().sub(.5),m=u.dot(u);return o.opacityNode=m.lessThanEqual(.25).select((0,i.exp)(m.mul(-8)).mul(r),0),s.frustumCulled=!1,{sprite:s,quad:c,time:e,wind:t,size:n,opacity:r}},[d,f,p]);return(0,n.useLayoutEffect)(()=>{let e=m.quad.clone();for(let[t,n]of s){let r=c.getAttribute(t);r&&e.setAttribute(n,new a.InstancedBufferAttribute(r.array,r.itemSize))}return m.sprite.geometry=e,m.sprite.count=c.getAttribute(`position`).count,()=>e.dispose()},[c,m]),(0,n.useLayoutEffect)(()=>{m.size.value=l,m.opacity.value=u},[u,m,l]),(0,n.useEffect)(()=>()=>{m.quad.dispose(),m.sprite.material.dispose()},[m]),e.Mr(o,(e,n)=>{(!m.sprite.parent||m.sprite.parent.visible)&&(m.time.value=n,m.wind.value=t.Mt())},d),(0,r.jsx)(`primitive`,{object:m.sprite,dispose:null})}exports.default=c;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Mr as e } from "./useClicker-dd9Qqwl0.js";
|
|
2
|
+
import { Mt as t } from "./WorldProps-L3mEU49A.js";
|
|
3
3
|
import { useEffect as n, useLayoutEffect as r, useMemo as i } from "react";
|
|
4
4
|
import { jsx as a } from "react/jsx-runtime";
|
|
5
5
|
import { attribute as o, cos as s, exp as c, float as l, fract as u, pow as d, sin as f, uniform as p, uv as m, vec3 as h } from "three/tsl";
|
|
@@ -17,7 +17,7 @@ var y = {
|
|
|
17
17
|
["aPointScale", "aPointScale"]
|
|
18
18
|
];
|
|
19
19
|
function x({ geometry: x, size: S, opacity: C, falling: w = !1 }) {
|
|
20
|
-
let T =
|
|
20
|
+
let T = x.hasAttribute("aTreePos"), E = x.hasAttribute("aPointScale"), D = i(() => {
|
|
21
21
|
let e = p(0), t = p(1), n = p(1), r = p(1), i = new _({
|
|
22
22
|
sizeAttenuation: !0,
|
|
23
23
|
transparent: !0,
|
|
@@ -25,7 +25,7 @@ function x({ geometry: x, size: S, opacity: C, falling: w = !1 }) {
|
|
|
25
25
|
}), a = new v(i), g = a.geometry, y = o("particlePosition", "vec3");
|
|
26
26
|
if (i.positionNode = y, i.colorNode = o("particleColor", "vec3"), i.sizeNode = n, w) {
|
|
27
27
|
let r = o("aParams1", "vec4"), a = o("aParams2", "vec2"), c = u(e.mul(r.x).add(r.y)), p = e.mul(r.w).add(r.y.mul(Math.PI * 2)), m = h(y.x.add(f(p).mul(r.z).mul(t)).add(a.x.mul(c).mul(t)), l(.18).add(y.y.mul(l(1).sub(d(c, 1.22)))).add(f(p.mul(.6)).mul(.06)), y.z.add(s(p.mul(.82)).mul(r.z).mul(.72).mul(t)).add(a.y.mul(c).mul(t)));
|
|
28
|
-
i.positionNode =
|
|
28
|
+
i.positionNode = T ? m.add(o("aTreePos", "vec3")) : m, E && (i.sizeNode = o("aPointScale", "float").mul(n));
|
|
29
29
|
}
|
|
30
30
|
let b = m().sub(.5), x = b.dot(b);
|
|
31
31
|
return i.opacityNode = x.lessThanEqual(.25).select(c(x.mul(-8)).mul(r), 0), a.frustumCulled = !1, {
|
|
@@ -38,31 +38,28 @@ function x({ geometry: x, size: S, opacity: C, falling: w = !1 }) {
|
|
|
38
38
|
};
|
|
39
39
|
}, [
|
|
40
40
|
w,
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
T,
|
|
42
|
+
E
|
|
43
43
|
]);
|
|
44
44
|
return r(() => {
|
|
45
|
-
let e =
|
|
45
|
+
let e = D.quad.clone();
|
|
46
46
|
for (let [t, n] of b) {
|
|
47
47
|
let r = x.getAttribute(t);
|
|
48
48
|
r && e.setAttribute(n, new g(r.array, r.itemSize));
|
|
49
49
|
}
|
|
50
|
-
return
|
|
51
|
-
}, [x,
|
|
52
|
-
|
|
50
|
+
return D.sprite.geometry = e, D.sprite.count = x.getAttribute("position").count, () => e.dispose();
|
|
51
|
+
}, [x, D]), r(() => {
|
|
52
|
+
D.size.value = S, D.opacity.value = C;
|
|
53
53
|
}, [
|
|
54
54
|
C,
|
|
55
|
-
|
|
55
|
+
D,
|
|
56
56
|
S
|
|
57
57
|
]), n(() => () => {
|
|
58
|
-
|
|
59
|
-
}, [
|
|
60
|
-
|
|
61
|
-
O.time.value = t;
|
|
62
|
-
let n = T.getState().current, r = n?.kind === "storm" ? 2.4 : n?.kind === "rain" ? 1.6 : n?.kind === "snow" ? 1.2 : n?.kind === "cloudy" ? 1.1 : .9;
|
|
63
|
-
O.wind.value = r + (n?.intensity ?? 0) * .7;
|
|
58
|
+
D.quad.dispose(), D.sprite.material.dispose();
|
|
59
|
+
}, [D]), e(y, (e, n) => {
|
|
60
|
+
(!D.sprite.parent || D.sprite.parent.visible) && (D.time.value = n, D.wind.value = t());
|
|
64
61
|
}, w), /* @__PURE__ */ a("primitive", {
|
|
65
|
-
object:
|
|
62
|
+
object: D.sprite,
|
|
66
63
|
dispose: null
|
|
67
64
|
});
|
|
68
65
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./useClicker-CdLQwnsK.cjs"),t=require("./plugin-BORiLuQz.cjs"),n=require("./weatherSurface-Bs6bSid8.cjs");let r=require("react"),i=require("react/jsx-runtime"),a=require("three/tsl"),o=require("three/webgpu");function s(e){if(!e)return{coverageAt:()=>(0,a.attribute)(`waterCoverage`,`float`),distanceAt:()=>(0,a.attribute)(`waterDistance`,`float`)};let t=(0,a.uniform)(e.transform),n=e=>e.sub(t.xy).mul(t.zw);return{coverageAt:t=>(0,a.texture)(e.texture,n(t)).r,distanceAt:r=>{let i=n(r),o=(0,a.length)((0,a.max)((0,a.abs)(i.sub(.5)).sub(.5),0).div(t.zw));return(0,a.texture)(e.texture,i).g.mul(64).add(o)}}}var c=(e,n)=>n.add((0,a.sin)(e.x.mul(.9).add((0,a.sin)(e.y.mul(.63)).mul(1.4))).mul((0,a.cos)(e.y.mul(.77).sub(e.x.mul(.21)))).mul(t.B.wobble));function l(e,n){if(n){let{shore:n,slope:r,curve:i,max:o}=t.I.sea,s=(0,a.max)(e,0);return(0,a.min)(s.mul(s.mul(i).add(r)).add(n),o)}return(0,a.smoothstep)(0,t.I.pond.ramp,e).mul(t.I.pond.depth)}function u(e,n,r){let{scale:i,strength:o,fade:s}=t.z.caustics,c=n.mul(i),l=(0,a.texture)(e,c.add((0,a.vec2)(a.time.mul(.021),a.time.mul(.013)))).xy,u=(0,a.texture)(e,c.mul(1.37).add((0,a.vec2)(a.time.mul(-.017),a.time.mul(.019)))).xy;return(0,a.pow)((0,a.saturate)((0,a.length)(l.add(u).sub(1)).mul(6).oneMinus()),3).mul((0,a.exp)(r.mul(-s))).mul(o)}function d(e,n,r=t.N()){let i=s(e),d=a.positionGeometry,f=new o.MeshLambertNodeMaterial;f.name=`water-bed`;let p=n?l(i.distanceAt(a.modelWorldMatrix.mul((0,a.vec4)(d,1)).xz),!0):t.I.pond.floor;f.positionNode=(0,a.vec3)(d.x,d.y,d.z.sub(p));let m=a.positionWorld.xz,h=l(i.distanceAt(m),n),[g,_]=n?[t.R.seaBed,t.R.seaBedDeep]:[t.R.pondBed,t.R.pondBedDeep];return f.colorNode=(0,a.mix)((0,a.color)(g),(0,a.color)(_),(0,a.smoothstep)(0,n?4:t.I.pond.depth,h)).mul(u(r,m,h).add(1)),n||(f.opacityNode=(0,a.step)(t.B.edge[1],c(m,i.coverageAt(m))),f.alphaTest=.5,Object.assign(f,t.F)),f.outputNode=(0,a.vec4)(a.output.rgb,t.L),f}var f=null;function p(){return f??=(0,a.viewportTexture)(),f}var m=(e,[t,n])=>(0,a.smoothstep)(t,n,e),h=e=>(0,a.smoothstep)(t.L+(1-t.L)*.25,t.L+(1-t.L)*.75,e).oneMinus();function g(e=t.N(),{toon:r=!0,field:i=null,open:u=!1,lod:d}={}){let f=(0,a.uniform)(0),g=(0,a.uniform)(1),_=(0,a.uniform)(1).onRenderUpdate(()=>d?.detailed===!1?0:1),v=s(i),{rain:y,windStrength:b}=n.a(),x=b.add(.8),S=a.positionGeometry,C=a.modelWorldMatrix.mul((0,a.vec4)(S,1)).xz,ee=(0,a.sin)(C.x.mul(.55).add(f.mul(.85))).mul(.045).add((0,a.sin)(C.y.mul(.78).sub(f.mul(1.05)).add(C.x.mul(.33))).mul(.025)).add((0,a.sin)(C.x.add(C.y).mul(1.4).add(f.mul(1.6))).mul(.012)),w=(0,a.smoothstep)(.7,.9,v.coverageAt(C)).mul(_).mul(u?1:.3),T=(0,a.vec3)(S.x,S.y,S.z.add(ee.mul(w).mul(x))),E=a.positionWorld.xz,D=c(E,v.coverageAt(E)),O=(0,a.texture)(e,E.mul(.055).add((0,a.vec2)(f.mul(.009),f.mul(.004)))),k=(0,a.texture)(e,E.mul(.12).add((0,a.vec2)(f.mul(-.006),f.mul(.008)))),A=x.mul(.45).add(.55),j=n.t(E).mul(_),M=(0,a.vec2)(O.x.add(k.x).sub(1),O.y.add(k.y).sub(1)).mul(_).mul(A).add(j),N=(0,a.normalize)((0,a.vec3)(M.x.mul(.7),1,M.y.mul(.7))),P=(0,a.normalize)(a.cameraPosition.sub(a.positionWorld)),F=l(v.distanceAt(E),u).div((0,a.max)((0,a.abs)(P.y),.15)),I=p(),L=I.sample(a.screenUV),te=a.screenUV.add(M.mul(t.z.refraction).mul((0,a.min)(F,2)).div((0,a.max)(a.positionView.z.negate(),1))),R=I.sample(te),z=(0,a.mix)(L.rgb,R.rgb,h(L.a).mul(h(R.a))),[ne,re,ie]=t.z.absorption,B=z.mul((0,a.exp)((0,a.vec3)(ne,re,ie).mul(F.negate()))),V=m(D,t.B.water),[H,U,W,G]=t.B.foam,K=(0,a.sin)(E.x.mul(.7).add(E.y.mul(.5)).sub(f.mul(.55))).mul(.5).add(.5),q=(0,a.smoothstep)(.35,.65,O.x.add(k.y).mul(.5)).mul(_).mul(.6).add(.4),J=(0,a.smoothstep)(0,t.z.foam,F).oneMinus().mul(q),ae=(0,a.smoothstep)(.55,.8,O.x.add(k.y).mul(.5)).mul(_),oe=y.mul(.14).add(ae.mul((0,a.smoothstep)(.9,1.8,b).mul(.55).add(y.mul(.3)))).add((0,a.length)(j).mul(1.6)),Y=(0,a.max)(m(D,[H,U]).mul(m(D,[W,G]).oneMinus()),J).mul(K.mul(_).mul(.45).add(.55)).add(oe).min(1),se=(0,a.mix)((0,a.color)(t.R.bank),(0,a.color)(t.R.wet),m(D,t.B.wet)),ce=(0,a.mix)((0,a.color)(t.R.shallow),(0,a.color)(t.R.deep),(0,a.exp)(F.div(-t.z.deepening)).oneMinus()),X=(0,a.pow)((0,a.max)((0,a.dot)(N,P),0).oneMinus(),5).mul(1-t.z.reflectance).add(t.z.reflectance),le=(0,a.exp)(F.mul(-t.z.clarity)).mul(X.oneMinus()).mul(Y.mul(.85).oneMinus()).mul(V),Z,Q=(0,a.mix)(ce,(0,a.color)(t.R.foam),Y.mul(.8)),$=B;if(r){Z=new o.MeshBasicNodeMaterial;let e=(0,a.pow)((0,a.max)((0,a.dot)(N,(0,a.normalize)(P.add((0,a.vec3)(-.5,.9,-.3).normalize()))),0),96).mul(_).mul(.5).mul(V);Q=(0,a.mix)(Q,(0,a.color)(t.R.sky),X.mul(.6)).add(e),$=B.add(e.mul(g))}else{let e=new o.MeshStandardNodeMaterial({metalness:0}),t=(0,a.normalMap)(O.rgb.add(k.rgb).mul(.5),(0,a.vec2)(A.mul(.35))),n=a.cameraViewMatrix.mul((0,a.vec4)(j.x,0,j.y,0)).xyz;e.normalNode=(0,a.normalize)((0,a.mix)(a.normalView,t,V.mul(_)).add(n.mul(V))),e.roughnessNode=(0,a.mix)(.95,.06,V),Z=e}return Z.name=`water-surface`,Z.positionNode=T,Z.colorNode=(0,a.mix)(se,Q,V).mul(g),Z.backdropNode=$,Z.backdropAlphaNode=le,Z.transparent=!0,Z.depthWrite=!1,u||(Z.opacityNode=m(D,t.B.edge)),{material:Z,time:f,brightness:g}}var _={phase:`effects`,label:`building:water-node`};function v({normalMap:t,brightness:n=1,toon:a,field:o,open:s,lod:c}){let{material:l,time:u,brightness:d}=(0,r.useMemo)(()=>g(t,{toon:a,field:o,open:s,lod:c}),[t,a,o,s,c]);return(0,r.useEffect)(()=>{d.value=n},[d,n]),e.Mr(_,(e,t)=>{u.value=t}),(0,r.useEffect)(()=>()=>l.dispose(),[l]),(0,i.jsx)(`primitive`,{object:l,attach:`material`})}function y({field:e=null,open:t=!1,normalMap:n}){let a=(0,r.useMemo)(()=>d(e,t,n),[e,t,n]);return(0,r.useEffect)(()=>()=>a.dispose(),[a]),(0,i.jsx)(`primitive`,{object:a,attach:`material`})}exports.NodeWaterBed=y,exports.default=v;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Mr as e } from "./useClicker-dd9Qqwl0.js";
|
|
2
|
+
import { B as t, F as n, I as r, L as i, N as a, R as o, z as s } from "./plugin-Xhs3RTBG.js";
|
|
3
|
+
import { a as c, t as l } from "./weatherSurface-DbTULkW3.js";
|
|
4
|
+
import { useEffect as u, useMemo as d } from "react";
|
|
5
|
+
import { jsx as f } from "react/jsx-runtime";
|
|
6
|
+
import { abs as p, attribute as m, cameraPosition as ee, cameraViewMatrix as te, color as h, cos as g, dot as _, exp as v, length as y, max as b, min as ne, mix as x, modelWorldMatrix as re, normalMap as ie, normalView as ae, normalize as S, output as C, positionGeometry as oe, positionView as se, positionWorld as w, pow as T, saturate as E, screenUV as ce, sin as D, smoothstep as O, step as k, texture as A, time as j, uniform as M, vec2 as N, vec3 as P, vec4 as F, viewportTexture as I } from "three/tsl";
|
|
7
|
+
import { MeshBasicNodeMaterial as le, MeshLambertNodeMaterial as ue, MeshStandardNodeMaterial as de } from "three/webgpu";
|
|
8
|
+
//#region src/core/rendering/tsl/waterBed.ts
|
|
9
|
+
function fe(e) {
|
|
10
|
+
if (!e) return {
|
|
11
|
+
coverageAt: () => m("waterCoverage", "float"),
|
|
12
|
+
distanceAt: () => m("waterDistance", "float")
|
|
13
|
+
};
|
|
14
|
+
let t = M(e.transform), n = (e) => e.sub(t.xy).mul(t.zw);
|
|
15
|
+
return {
|
|
16
|
+
coverageAt: (t) => A(e.texture, n(t)).r,
|
|
17
|
+
distanceAt: (r) => {
|
|
18
|
+
let i = n(r), a = y(b(p(i.sub(.5)).sub(.5), 0).div(t.zw));
|
|
19
|
+
return A(e.texture, i).g.mul(64).add(a);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
var pe = (e, n) => n.add(D(e.x.mul(.9).add(D(e.y.mul(.63)).mul(1.4))).mul(g(e.y.mul(.77).sub(e.x.mul(.21)))).mul(t.wobble));
|
|
24
|
+
function L(e, t) {
|
|
25
|
+
if (t) {
|
|
26
|
+
let { shore: t, slope: n, curve: i, max: a } = r.sea, o = b(e, 0);
|
|
27
|
+
return ne(o.mul(o.mul(i).add(n)).add(t), a);
|
|
28
|
+
}
|
|
29
|
+
return O(0, r.pond.ramp, e).mul(r.pond.depth);
|
|
30
|
+
}
|
|
31
|
+
function R(e, t, n) {
|
|
32
|
+
let { scale: r, strength: i, fade: a } = s.caustics, o = t.mul(r), c = A(e, o.add(N(j.mul(.021), j.mul(.013)))).xy, l = A(e, o.mul(1.37).add(N(j.mul(-.017), j.mul(.019)))).xy;
|
|
33
|
+
return T(E(y(c.add(l).sub(1)).mul(6).oneMinus()), 3).mul(v(n.mul(-a))).mul(i);
|
|
34
|
+
}
|
|
35
|
+
function z(e, s, c = a()) {
|
|
36
|
+
let l = fe(e), u = oe, d = new ue();
|
|
37
|
+
d.name = "water-bed";
|
|
38
|
+
let f = s ? L(l.distanceAt(re.mul(F(u, 1)).xz), !0) : r.pond.floor;
|
|
39
|
+
d.positionNode = P(u.x, u.y, u.z.sub(f));
|
|
40
|
+
let p = w.xz, m = L(l.distanceAt(p), s), [ee, te] = s ? [o.seaBed, o.seaBedDeep] : [o.pondBed, o.pondBedDeep];
|
|
41
|
+
return d.colorNode = x(h(ee), h(te), O(0, s ? 4 : r.pond.depth, m)).mul(R(c, p, m).add(1)), s || (d.opacityNode = k(t.edge[1], pe(p, l.coverageAt(p))), d.alphaTest = .5, Object.assign(d, n)), d.outputNode = F(C.rgb, i), d;
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/core/rendering/tsl/toonWater.ts
|
|
45
|
+
var B = null;
|
|
46
|
+
function me() {
|
|
47
|
+
return B ??= I(), B;
|
|
48
|
+
}
|
|
49
|
+
var V = (e, [t, n]) => O(t, n, e), H = (e) => O(i + (1 - i) * .25, i + (1 - i) * .75, e).oneMinus();
|
|
50
|
+
function U(e = a(), { toon: n = !0, field: r = null, open: i = !1, lod: u } = {}) {
|
|
51
|
+
let d = M(0), f = M(1), m = M(1).onRenderUpdate(() => u?.detailed === !1 ? 0 : 1), g = fe(r), { rain: C, windStrength: E } = c(), k = E.add(.8), j = oe, I = re.mul(F(j, 1)).xz, ue = D(I.x.mul(.55).add(d.mul(.85))).mul(.045).add(D(I.y.mul(.78).sub(d.mul(1.05)).add(I.x.mul(.33))).mul(.025)).add(D(I.x.add(I.y).mul(1.4).add(d.mul(1.6))).mul(.012)), R = O(.7, .9, g.coverageAt(I)).mul(m).mul(i ? 1 : .3), z = P(j.x, j.y, j.z.add(ue.mul(R).mul(k))), B = w.xz, U = pe(B, g.coverageAt(B)), W = A(e, B.mul(.055).add(N(d.mul(.009), d.mul(.004)))), G = A(e, B.mul(.12).add(N(d.mul(-.006), d.mul(.008)))), K = k.mul(.45).add(.55), q = l(B).mul(m), J = N(W.x.add(G.x).sub(1), W.y.add(G.y).sub(1)).mul(m).mul(K).add(q), he = S(P(J.x.mul(.7), 1, J.y.mul(.7))), Y = S(ee.sub(w)), X = L(g.distanceAt(B), i).div(b(p(Y.y), .15)), ge = me(), _e = ge.sample(ce), ve = ce.add(J.mul(s.refraction).mul(ne(X, 2)).div(b(se.z.negate(), 1))), ye = ge.sample(ve), be = x(_e.rgb, ye.rgb, H(_e.a).mul(H(ye.a))), [xe, Se, Ce] = s.absorption, we = be.mul(v(P(xe, Se, Ce).mul(X.negate()))), Z = V(U, t.water), [Te, Ee, De, Oe] = t.foam, ke = D(B.x.mul(.7).add(B.y.mul(.5)).sub(d.mul(.55))).mul(.5).add(.5), Ae = O(.35, .65, W.x.add(G.y).mul(.5)).mul(m).mul(.6).add(.4), je = O(0, s.foam, X).oneMinus().mul(Ae), Me = O(.55, .8, W.x.add(G.y).mul(.5)).mul(m), Ne = C.mul(.14).add(Me.mul(O(.9, 1.8, E).mul(.55).add(C.mul(.3)))).add(y(q).mul(1.6)), Pe = b(V(U, [Te, Ee]).mul(V(U, [De, Oe]).oneMinus()), je).mul(ke.mul(m).mul(.45).add(.55)).add(Ne).min(1), Fe = x(h(o.bank), h(o.wet), V(U, t.wet)), Ie = x(h(o.shallow), h(o.deep), v(X.div(-s.deepening)).oneMinus()), Le = T(b(_(he, Y), 0).oneMinus(), 5).mul(1 - s.reflectance).add(s.reflectance), Re = v(X.mul(-s.clarity)).mul(Le.oneMinus()).mul(Pe.mul(.85).oneMinus()).mul(Z), Q, $ = x(Ie, h(o.foam), Pe.mul(.8)), ze = we;
|
|
52
|
+
if (n) {
|
|
53
|
+
Q = new le();
|
|
54
|
+
let e = T(b(_(he, S(Y.add(P(-.5, .9, -.3).normalize()))), 0), 96).mul(m).mul(.5).mul(Z);
|
|
55
|
+
$ = x($, h(o.sky), Le.mul(.6)).add(e), ze = we.add(e.mul(f));
|
|
56
|
+
} else {
|
|
57
|
+
let e = new de({ metalness: 0 }), t = ie(W.rgb.add(G.rgb).mul(.5), N(K.mul(.35))), n = te.mul(F(q.x, 0, q.y, 0)).xyz;
|
|
58
|
+
e.normalNode = S(x(ae, t, Z.mul(m)).add(n.mul(Z))), e.roughnessNode = x(.95, .06, Z), Q = e;
|
|
59
|
+
}
|
|
60
|
+
return Q.name = "water-surface", Q.positionNode = z, Q.colorNode = x(Fe, $, Z).mul(f), Q.backdropNode = ze, Q.backdropAlphaNode = Re, Q.transparent = !0, Q.depthWrite = !1, i || (Q.opacityNode = V(U, t.edge)), {
|
|
61
|
+
material: Q,
|
|
62
|
+
time: d,
|
|
63
|
+
brightness: f
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//#endregion
|
|
67
|
+
//#region src/core/building/components/mesh/water/NodeWaterMaterial.tsx
|
|
68
|
+
var W = {
|
|
69
|
+
phase: "effects",
|
|
70
|
+
label: "building:water-node"
|
|
71
|
+
};
|
|
72
|
+
function G({ normalMap: t, brightness: n = 1, toon: r, field: i, open: a, lod: o }) {
|
|
73
|
+
let { material: s, time: c, brightness: l } = d(() => U(t, {
|
|
74
|
+
toon: r,
|
|
75
|
+
field: i,
|
|
76
|
+
open: a,
|
|
77
|
+
lod: o
|
|
78
|
+
}), [
|
|
79
|
+
t,
|
|
80
|
+
r,
|
|
81
|
+
i,
|
|
82
|
+
a,
|
|
83
|
+
o
|
|
84
|
+
]);
|
|
85
|
+
return u(() => {
|
|
86
|
+
l.value = n;
|
|
87
|
+
}, [l, n]), e(W, (e, t) => {
|
|
88
|
+
c.value = t;
|
|
89
|
+
}), u(() => () => s.dispose(), [s]), /* @__PURE__ */ f("primitive", {
|
|
90
|
+
object: s,
|
|
91
|
+
attach: "material"
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function K({ field: e = null, open: t = !1, normalMap: n }) {
|
|
95
|
+
let r = d(() => z(e, t, n), [
|
|
96
|
+
e,
|
|
97
|
+
t,
|
|
98
|
+
n
|
|
99
|
+
]);
|
|
100
|
+
return u(() => () => r.dispose(), [r]), /* @__PURE__ */ f("primitive", {
|
|
101
|
+
object: r,
|
|
102
|
+
attach: "material"
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
//#endregion
|
|
106
|
+
export { K as NodeWaterBed, G as default };
|