UNPKG

@litecanvas/utils

Version:

Utilities to help build litecanvas games

2 lines (1 loc) 1.21 kB
(()=>{var A=Object.defineProperty;var H=(o,e)=>{for(var t in e)A(o,t,{get:e[t],enumerable:!0})};globalThis.utils=globalThis.utils||{};globalThis.utils.global=(o=!0)=>{for(let e in globalThis.utils)e!=="global"&&(o||globalThis[e]===void 0)&&(globalThis[e]=globalThis.utils[e])};var y={};H(y,{Noise:()=>v});var T=4,h=1<<T,E=8,D=1<<E,i=4095,F=o=>.5*(1-Math.cos(o*Math.PI)),v=class{_p=[];_po=4;_pf=.5;_e=null;constructor(e){this._e=e||globalThis,this.noiseSeed()}noise(e,t=0,s=0){e<0&&(e=-e),t<0&&(t=-t),s<0&&(s=-s);let m=Math.floor(e),u=Math.floor(t),c=Math.floor(s),p=e-m,b=t-u,f=s-c,l,g,x=0,_=.5,n,a,d;for(let w=0;w<this._po;w++){let r=m+(u<<T)+(c<<E);l=F(p),g=F(b),n=this._p[r&i],n+=l*(this._p[r+1&i]-n),a=this._p[r+h&i],a+=l*(this._p[r+h+1&i]-a),n+=g*(a-n),r+=D,a=this._p[r&i],a+=l*(this._p[r+1&i]-a),d=this._p[r+h&i],d+=l*(this._p[r+h+1&i]-d),a+=g*(d-a),n+=F(f)*(a-n),x+=n*_,_*=this._pf,m<<=1,p*=2,u<<=1,b*=2,c<<=1,f*=2,p>=1&&(m++,p--),b>=1&&(u++,b--),f>=1&&(c++,f--)}return x}noiseDetail(e,t){e>0&&(this._po=e),t>0&&(this._pf=t)}noiseSeed(e=null){e!=null&&this._e.seed(e);let t=this._e.rand||Math.random;for(let s=0;s<i+1;s++)this._p[s]=t()}};globalThis.utils=Object.assign(globalThis.utils||{},y);})();