UNPKG

@litecanvas/utils

Version:

Utilities to help build litecanvas games

2 lines (1 loc) 1.21 kB
(()=>{var b=Object.defineProperty;var g=(P,i)=>{for(var t in i)b(P,t,{get:i[t],enumerable:!0})};globalThis.utils=globalThis.utils||{};globalThis.utils.global=(P=!0)=>{for(let i in globalThis.utils)i!=="global"&&(P||globalThis[i]===void 0)&&(globalThis[i]=globalThis.utils[i])};var p={};g(p,{Noise:()=>N});var r=P=>.5*(1-Math.cos(P*Math.PI)),N=class{_p=[];_po=4;_pf=.5;_e=null;constructor(i){this._e=i||globalThis,this.noiseSeed()}noise(i,t=0,l=0){i<0&&(i=-i),t<0&&(t=-t),l<0&&(l=-l);let e=Math.floor(i),I=Math.floor(t),h=Math.floor(l),E=i-e,n=t-I,a=l-h,R,L,c=0,Z=.5,_,s,f;for(let u=0;u<this._po;u++){let o=e+(I<<4)+(h<<8);R=r(E),L=r(n),_=this._p[o&4095],_+=R*(this._p[o+1&4095]-_),s=this._p[o+16&4095],s+=R*(this._p[o+16+1&4095]-s),_+=L*(s-_),o+=256,s=this._p[o&4095],s+=R*(this._p[o+1&4095]-s),f=this._p[o+16&4095],f+=R*(this._p[o+16+1&4095]-f),s+=L*(f-s),_+=r(a)*(s-_),c+=_*Z,Z*=this._pf,e<<=1,E*=2,I<<=1,n*=2,h<<=1,a*=2,E>=1&&(e++,E--),n>=1&&(I++,n--),a>=1&&(h++,a--)}return c}noiseDetail(i,t){i>0&&(this._po=i),t>0&&(this._pf=t)}noiseSeed(i=null){i!=null&&this._e.rseed(i);let t=this._e.rand||Math.random;for(let l=0;l<4096;l++)this._p[l]=t()}};globalThis.utils=Object.assign(globalThis.utils||{},p);})();