var gdjs;(function(o){let V;(function(g){let I;(function(b){b.pickOnly=function(e,t){for(const s in e.items)if(e.items.hasOwnProperty(s)){const n=e.items[s];n.indexOf(t)===-1?n.length=0:(n.length=0,n.push(t))}},b.twoListsTest=function(e,t,s,n,r){let f=!1;const i=o.staticArray(o.evtTools.object.twoListsTest);t.values(i);const u=o.staticArray2(o.evtTools.object.twoListsTest);s.values(u);for(let l=0,O=i.length;l=s&&(n=s-1);let r=0,f=null;for(let i in t.items)if(t.items.hasOwnProperty(i)){let u=t.items[i];if(n-r=O&&(O=p.farSqDist,l=w,c=p.farX,a=p.farY))}}return l?(o.evtTools.object.pickOnly(e,l),f.setNumber(c),i.setNumber(a),!0):!1},b.doCreateObjectOnScene=function(e,t,s,n,r,f){const i=e.createObject(t),u=e.getLayer(f);return i!==null&&(i.setPosition(n,r),i.setLayer(f),i.setZOrder(u.getDefaultZOrder()),s.containsKey(t)&&s.get(t).push(i)),i},b.createObjectOnScene=function(e,t,s,n,r){return o.evtTools.object.doCreateObjectOnScene(e,t.firstKey(),t,s,n,r)},b.createObjectFromGroupOnScene=function(e,t,s,n,r,f){o.evtTools.object.doCreateObjectOnScene(e,s,t,n,r,f)},b.getPickedInstancesCount=e=>{let t=0;const s=o.staticArray(o.evtTools.object.getPickedInstancesCount);e.values(s);for(let n=0,r=s.length;n{let s=0;const n=o.staticArray(o.evtTools.object.getSceneInstancesCount);t.keys(n);const r=new Set(n);for(const f of r)s+=e.getInstancesCountOnScene(f);return s},b.pickedObjectsCount=b.getPickedInstancesCount})(I=g.object||(g.object={}))})(V=o.evtTools||(o.evtTools={}));const A=new o.Logger("LongLivedObjectsLists");class R{constructor(){this.objectsLists=new Map;this.localVariablesContainers=[];this.callbacks=new Map;this.parent=null}static from(g){const d=new R;return d.parent=g,d}getOrCreateList(g){return this.objectsLists.has(g)||this.objectsLists.set(g,[]),this.objectsLists.get(g)}getObjects(g){return!this.objectsLists.has(g)&&this.parent?this.parent.getObjects(g):this.objectsLists.get(g)||[]}addObject(g,d){const L=this.getOrCreateList(g);if(L.includes(d))return;L.push(d);const k=()=>this.removeObject(g,d);this.callbacks.set(d,k),d.registerDestroyCallback(k)}removeObject(g,d){const L=this.getOrCreateList(g),k=L.indexOf(d);k!==-1&&(L.splice(k,1),d.unregisterDestroyCallback(this.callbacks.get(d)),this.callbacks.delete(d))}restoreLocalVariablesContainers(g){o.copyArray(this.localVariablesContainers,g)}backupLocalVariablesContainers(g){o.copyArray(g,this.localVariablesContainers)}getNetworkSyncData(g){const d={};for(const[L,k]of this.objectsLists.entries()){const v=[];for(const T of k){const y=T.getNetworkId();if(!y){A.warn("Tried to get sync data of a LongLivedObjectsList and found an object without a network ID");continue}v.push(y)}d[L]=v}return{objectsLists:d,localVariablesContainers:this.localVariablesContainers.map(L=>L.getNetworkSyncData(g))}}updateFromNetworkSyncData(g,d,L){const{objectsLists:k,localVariablesContainers:v}=g;this.objectsLists.clear(),this.localVariablesContainers.length=0;for(const[T,y]of Object.entries(k)){const S=d.getObjects(T);if(!S){A.warn("Tried to update sync data of a LongLivedObjectsList but cannot find objects with name: "+T);continue}const N=S.filter(x=>{const D=x.getNetworkId();return!!D&&y.includes(D)});for(const x of N)this.addObject(T,x)}this.localVariablesContainers=v.map(T=>{const y=new o.VariablesContainer;return y.updateFromNetworkSyncData(T,L),y})}}o.LongLivedObjectsList=R})(gdjs||(gdjs={})); //# sourceMappingURL=objecttools.js.map