PageSourceSearch

https://beasties.netlify.app/gdjs-evtsext__sticker__sticker.js

js beasties.netlify.app collected 2026-10-03 10:30:31 UTC 29,924 bytes, 802 lines download raw bytes

1
2gdjs.evtsExt__Sticker__Sticker = gdjs.evtsExt__Sticker__Sticker || {};
3
4/**
5 * Behavior generated from Sticker
6 */
7gdjs.evtsExt__Sticker__Sticker.Sticker = class Sticker extends gdjs.RuntimeBehavior {
8  constructor(instanceContainer, behaviorData, owner) {
9    super(instanceContainer, behaviorData, owner);
10    this._runtimeScene = instanceContainer;
11
12    this._onceTriggers = new gdjs.OnceTriggers();
13    this._behaviorData = {};
14    this._sharedData = gdjs.evtsExt__Sticker__Sticker.Sticker.getSharedData(
15      instanceContainer,
16      behaviorData.name
17    );
18    
19    this._behaviorData.OnlyFollowPosition = behaviorData.OnlyFollowPosition !== undefined ? behaviorData.OnlyFollowPosition : false;
20  }
21
22  // Hot-reload:
23  updateFromBehaviorData(oldBehaviorData, newBehaviorData) {
24    
25    if (oldBehaviorData.OnlyFollowPosition !== newBehaviorData.OnlyFollowPosition)
26      this._behaviorData.OnlyFollowPosition = newBehaviorData.OnlyFollowPosition;
27
28    return true;
29  }
30
31  // Properties:
32  
33  _getOnlyFollowPosition() {
34    return this._behaviorData.OnlyFollowPosition !== undefined ? this._behaviorData.OnlyFollowPosition : false;
35  }
36  _setOnlyFollowPosition(newValue) {
37    this._behaviorData.OnlyFollowPosition = newValue;
38  }
39  _toggleOnlyFollowPosition() {
40    this._setOnlyFollowPosition(!this._getOnlyFollowPosition());
41  }
42}
43
44/**
45 * Shared data generated from Sticker
46 */
47gdjs.evtsExt__Sticker__Sticker.Sticker.SharedData = class StickerSharedData {
48  constructor(sharedData) {
49    
50  }
51  
52  // Shared properties:
53  
54}
55
56gdjs.evtsExt__Sticker__Sticker.Sticker.getSharedData = function(instanceContainer, behaviorName) {
57  if (!instanceContainer._Sticker_StickerSharedData) {
58    const initialData = instanceContainer.getInitialSharedDataForBehavior(
59      behaviorName
60    );
61    instanceContainer._Sticker_StickerSharedData = new gdjs.evtsExt__Sticker__Sticker.Sticker.SharedData(
62      initialData
63    );
64  }
65  return instanceContainer._Sticker_StickerSharedData;
66}
67
68// Methods:
69gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onCreatedContext = {};
70gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onCreatedContext.GDObjectObjects1= [];
71
72
73gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onCreatedContext.userFunc0xd310e8 = function(runtimeScene, objects, eventsFunctionContext) {
74"use strict";
75const behaviorName = eventsFunctionContext.getBehaviorName("Behavior");
76const object = objects[0];
77const behavior = object.getBehavior(behaviorName);
78
79// Set up the scene sticker objects list - if not done already.
80if (!runtimeScene.__allStickers)
81    runtimeScene.__allStickers = new Set();
82
83// Set up the behavior extra methods - if not done already.
84const prototype = Object.getPrototypeOf(behavior);
85if (!prototype.updateRelativeCoordinates) {
86    // Unstick from deleted objects.
87    gdjs.registerObjectDeletedFromSceneCallback(function (runtimeScene, deletedObject) {
88        if (!runtimeScene.__allStickers) return;
89
90        for (const sticker of runtimeScene.__allStickers) {
91            if (sticker.basisObject === deletedObject) {
92                sticker.basisObject = null;
93            }
94        }
95    });
96
97    /**
98     * Update the coordinates in the basisObject basis.
99     * 
100     * It uses the basisObject coordinates from the previous frame.
101     * This way, the sticker can move relatively to it and still
102     * follow basisObject.
103     * 
104     * @param {gdjs.RuntimeObject} basisObject
105     */
106    prototype.updateRelativeCoordinates = function (basisObject) {
107        const object = this.owner;
108
109        // Update relative coordinates
110        this.relativeX = object.getX() - this.basisOldX;
111        this.relativeY = object.getY() - this.basisOldY;
112        if (!this._getOnlyFollowPosition()) {
113            this.relativeAngle = object.getAngle() - this.basisOldAngle;
114            this.relativeWidth = object.getWidth() / this.basisOldWidth;
115            this.relativeHeight = object.getHeight() / this.basisOldHeight;
116            const deltaX = object.getCenterXInScene() - this.basisOldCenterXInScene;
117            const deltaY = object.getCenterYInScene() - this.basisOldCenterYInScene;
118            const angle = this.basisOldAngle * Math.PI / 180;
119            this.relativeRotatedX = (deltaX * Math.cos(angle) + deltaY * Math.sin(angle)) / this.basisOldWidth;
120            this.relativeRotatedY = (-deltaX * Math.sin(angle) + deltaY * Math.cos(angle)) / this.basisOldHeight;
121
122            // Save initial values to avoid calculus and rounding errors
123            this.basisOriginalWidth = basisObject.getWidth();
124            this.basisOriginalHeight = basisObject.getHeight();
125            this.basisOriginalAngle = basisObject.getAngle();
126        }
127    }
128
129    /**
130     * Copy the coordinates to use it the next frame.
131     * @param basisObject {gdjs.RuntimeObject}
132     */
133    prototype.updateOldCoordinates = function (basisObject) {
134        const object = this.owner;
135
136        this.ownerOldX = object.getX();
137        this.ownerOldY = object.getY();
138
139        this.basisOldX = basisObject.getX();
140        this.basisOldY = basisObject.getY();
141
142        if (!this._getOnlyFollowPosition()) {
143            this.ownerOldAngle = object.getAngle();
144            this.ownerOldWidth = object.getWidth();
145            this.ownerOldHeight = object.getHeight();
146
147            this.basisOldAngle = basisObject.getAngle();
148            this.basisOldWidth = basisObject.getWidth();
149            this.basisOldHeight = basisObject.getHeight();
150            this.basisOldCenterXInScene = basisObject.getCenterXInScene();
151            this.basisOldCenterYInScene = basisObject.getCenterYInScene();
152        }
153    }
154    /**
155     * Follow the basisObject (called in doStepPostEvents).
156     * 
157     * This method is also called by children to ensure
158     * parents are updated first.
159     */
160    prototype.followBasisObject = function () {
161        if (this.followingDoneThisFrame) {
162            return;
163        }
164        this.followingDoneThisFrame = true;
165        /** @type {gdjs.RuntimeObject} */
166        const basisObject = this.basisObject;
167        if (basisObject) {
168            // If the behavior on the basis object has a different name,
169            // the objects will still follow their basis objects
170            // but frame delays could happen.
171            if (basisObject.hasBehavior(behaviorName)) {
172                const basisBehavior = basisObject.getBehavior(behaviorName);
173                if (basisBehavior.type === this.type) {
174                    // Follow parents 1st to avoid frame delays
175                    basisBehavior.followBasisObject();
176                }
177            }
178
179            const object = this.owner;
180
181            if (this._getOnlyFollowPosition()) {
182                if (object.getX() !== this.ownerOldX
183                    || object.getY() !== this.ownerOldY) {
184                    this.updateRelativeCoordinates(basisObject);
185                }
186
187                if (this.basisOldX !== basisObject.getX() ||
188                    this.basisOldY !== basisObject.getY()) {
189                    object.setPosition(
190                        basisObject.getX() + this.relativeX,
191                        basisObject.getY() + this.relativeY);
192                }
193            } else {
194                if (object.getX() !== this.ownerOldX
195                    || object.getY() !== this.ownerOldY
196                    || object.getAngle() !== this.ownerOldAngle
197                    || object.getWidth() !== this.ownerOldWidth
198                    || object.getHeight() !== this.ownerOldHeight) {
199                    this.updateRelativeCoordinates(basisObject);
200                }
201
202                // Follow basisObject
203                if (basisObject.getAngle() === this.basisOriginalAngle && this.basisOriginalAngle === 0) {
204                    if (basisObject.getWidth() === this.basisOriginalWidth ||
205                        basisObject.getHeight() === this.basisOriginalHeight) {
206                        if (this.basisOldX !== basisObject.getX() ||
207                            this.basisOldY !== basisObject.getY()) {
208                            object.setPosition(
209                                basisObject.getX() + this.relativeX,
210                                basisObject.getY() + this.relativeY);
211                        }
212                    } else {
213                        object.setPosition(
214                            basisObject.getX() + this.relativeRotatedX * basisObject.getWidth(),
215                            basisObject.getY() + this.relativeRotatedY * basisObject.getHeight());
216                    }
217                } else {
218                    object.setAngle(basisObject.getAngle() + this.relativeAngle);
219
220                    const deltaX = this.relativeRotatedX * basisObject.getWidth();
221                    const deltaY = this.relativeRotatedY * basisObject.getHeight();
222                    const angle = -basisObject.getAngle() * Math.PI / 180;
223                    object.setX(basisObject.getCenterXInScene() + object.getX() - object.getCenterXInScene() + deltaX * Math.cos(angle) + deltaY * Math.sin(angle));
224                    object.setY(basisObject.getCenterYInScene() + object.getY() - object.getCenterYInScene() 
224- deltaX * Math.sin(angle) + deltaY * Math.cos(angle));
225                }
226                // Unproportional dimensions changes won't work as expected
227                // if the object angle is not null but nothing more can be done
228                // because there is no full affine transformation on objects.
229                if (basisObject.getWidth() !== this.basisOriginalWidth) {
230                    object.setWidth(this.relativeWidth * basisObject.getWidth());
231                }
232                if (basisObject.getHeight() !== this.basisOriginalHeight) {
233                    object.setHeight(this.relativeHeight * basisObject.getHeight());
234                }
235            }
236
237            this.updateOldCoordinates(basisObject);
238        }
239    }
240}
241
242// Register this object as a sticker.
243runtimeScene.__allStickers.add(behavior);
244
245};
246gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onCreatedContext.eventsList0 = function(runtimeScene, eventsFunctionContext) {
247
248{
249
250gdjs.copyArray(eventsFunctionContext.getObjects("Object"), gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onCreatedContext.GDObjectObjects1);
251
252var objects = [];
253objects.push.apply(objects,gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onCreatedContext.GDObjectObjects1);
254gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onCreatedContext.userFunc0xd310e8(runtimeScene, objects, typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : undefined);
255
256}
257
258
259};
260
261gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onCreated = function(parentEventsFunctionContext) {
262
263var that = this;
264var runtimeScene = this._runtimeScene;
265var thisObjectList = [this.owner];
266var Object = Hashtable.newFrom({Object: thisObjectList});
267var Behavior = this.name;
268var eventsFunctionContext = {
269  _objectsMap: {
270"Object": Object
271},
272  _objectArraysMap: {
273"Object": thisObjectList
274},
275  _behaviorNamesMap: {
276"Behavior": Behavior
277},
278  getObjects: function(objectName) {
279    return eventsFunctionContext._objectArraysMap[objectName] || [];
280  },
281  getObjectsLists: function(objectName) {
282    return eventsFunctionContext._objectsMap[objectName] || null;
283  },
284  getBehaviorName: function(behaviorName) {
285    return eventsFunctionContext._behaviorNamesMap[behaviorName] || behaviorName;
286  },
287  createObject: function(objectName) {
288    const objectsList = eventsFunctionContext._objectsMap[objectName];
289    if (objectsList) {
290      const object = parentEventsFunctionContext ?
291        parentEventsFunctionContext.createObject(objectsList.firstKey()) :
292        runtimeScene.createObject(objectsList.firstKey());
293      if (object) {
294        objectsList.get(objectsList.firstKey()).push(object);
295        eventsFunctionContext._objectArraysMap[objectName].push(object);
296      }
297      return object;    }
298    return null;
299  },
300  getInstancesCountOnScene: function(objectName) {
301    const objectsList = eventsFunctionContext._objectsMap[objectName];
302    let count = 0;
303    if (objectsList) {
304      for(const objectName in objectsList.items)
305        count += parentEventsFunctionContext ?
306parentEventsFunctionContext.getInstancesCountOnScene(objectName) :
307        runtimeScene.getInstancesCountOnScene(objectName);
308    }
309    return count;
310  },
311  getLayer: function(layerName) {
312    return runtimeScene.getLayer(layerName);
313  },
314  getArgument: function(argName) {
315    return "";
316  },
317  getOnceTriggers: function() { return that._onceTriggers; }
318};
319
320gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onCreatedContext.GDObjectObjects1.length = 0;
321
322gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onCreatedContext.eventsList0(runtimeScene, eventsFunctionContext);
323
324return;
325}
326gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPreEventsContext = {};
327gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPreEventsContext.GDObjectObjects1= [];
328
329
330gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPreEventsContext.userFunc0xc3b2b0 = function(runtimeScene, objects, eventsFunctionContext) {
331"use strict";
332const behaviorName = eventsFunctionContext.getBehaviorName("Behavior");
333const object = objects[0];
334const behavior = object.getBehavior(behaviorName);
335
336behavior.followingDoneThisFrame = false;
337};
338gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPreEventsContext.eventsList0 = function(runtimeScene, eventsFunctionContext) {
339
340{
341
342gdjs.copyArray(eventsFunctionContext.getObjects("Object"), gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPreEventsContext.GDObjectObjects1);
343
344var objects = [];
345objects.push.apply(objects,gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPreEventsContext.GDObjectObjects1);
346gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPreEventsContext.userFunc0xc3b2b0(runtimeScene, objects, typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : undefined);
347
348}
349
350
351};
352
353gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPreEvents = function(parentEventsFunctionContext) {
354this._onceTriggers.startNewFrame();
355var that = this;
356var runtimeScene = this._runtimeScene;
357var thisObjectList = [this.owner];
358var Object = Hashtable.newFrom({Object: thisObjectList});
359var Behavior = this.name;
360var eventsFunctionContext = {
361  _objectsMap: {
362"Object": Object
363},
364  _objectArraysMap: {
365"Object": thisObjectList
366},
367  _behaviorNamesMap: {
368"Behavior": Behavior
369},
370  getObjects: function(objectName) {
371    return eventsFunctionContext._objectArraysMap[objectName] || [];
372  },
373  getObjectsLists: function(objectName) {
374    return eventsFunctionContext._objectsMap[objectName] || null;
375  },
376  getBehaviorName: function(behaviorName) {
377    return eventsFunctionContext._behaviorNamesMap[behaviorName] || behaviorName;
378  },
379  createObject: function(objectName) {
380    const objectsList = eventsFunctionContext._objectsMap[objectName];
381    if (objectsList) {
382      const object = parentEventsFunctionContext ?
383        parentEventsFunctionContext.createObject(objectsList.firstKey()) :
384        runtimeScene.createObject(objectsList.firstKey());
385      if (object) {
386        objectsList.get(objectsList.firstKey()).push(object);
387        eventsFunctionContext._objectArraysMap[objectName].push(object);
388      }
389      return object;    }
390    return null;
391  },
392  getInstancesCountOnScene: function(objectName) {
393    const objectsList = eventsFunctionContext._objectsMap[objectName];
394    let count = 0;
395    if (objectsList) {
396      for(const objectName in objectsList.items)
397        count += parentEventsFunctionContext ?
398parentEventsFunctionContext.getInstancesCountOnScene(objectName) :
399        runtimeScene.getInstancesCountOnScene(objectName);
400    }
401    return count;
402  },
403  getLayer: function(layerName) {
404    return runtimeScene.getLayer(layerName);
405  },
406  getArgument: function(argName) {
407    return "";
408  },
409  getOnceTriggers: function() { return that._onceTriggers; }
410};
411
412gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPreEventsContext.GDObjectObjects1.length = 0;
413
414gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPreEventsContext.eventsList0(runtimeScene, eventsFunctionContext);
415
416return;
417}
418gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPostEventsContext = {};
419gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPostEventsContext.GDObjectObjects1= [];
420
421
422gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPostEventsContext.userFunc0xd310d0 = function(runtimeScene, objects, eventsFunctionContext) {
423"use strict";
424const behaviorName = eventsFunctionContext.getBehaviorName("Behavior");
425const object = objects[0];
426const behavior = object.getBehavior(behaviorName);
427
428behavior.followBasisObject();
429};
430gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPostEventsContext.eventsList0 = function(runtimeScene, eventsFunctionContext) {
431
432{
433
434gdjs.copyArray(eventsFunctionContext.getObjects("Object"), gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPostEventsContext.GDObjectObjects1);
435
436var objects = [];
437objects.push.apply(objects,gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPostEventsContext.GDObjectObjects1);
438gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPostEventsContext.userFunc0xd310d0(runtimeScene, objects, typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : undefined);
439
440}
441
442
443};
444
445gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPostEvents = function(parentEventsFunctionContext) {
446
447var that = this;
448var runtimeScene = this._runtimeScene;
449var thisObjectList = [this.owner];
450var Object = Hashtable.newFrom({Object: thisObjectList});
451var Behavior = this.name;
452var eventsFunctionContext = {
453  _objectsMap: {
454"Object": Object
455},
456  _objectArraysMap: {
457"Object": thisObjectList
458},
459  _behaviorNamesMap: {
460"Behavior": Behavior
461},
462  getObjects: function(objectName) {
463    return eventsFunctionContext._objectArraysMap[objectName] || [];
464  },
465  getObjectsLists: function(objectName) {
466    return eventsFunctionContext._objectsMap[objectName] || null;
467  },
468  getBehaviorName: function(behaviorName) {
469    return eventsFunctionContext._behaviorNamesMap[behaviorName] || behaviorName;
470  },
471  createObject: function(objectName) {
472    const objectsList = eventsFunctionContext._objectsMap[objectName];
473    if (objectsList) {
474      const object = parentEventsFunctionContext ?
475        parentEventsFunctionContext.createObject(objectsList.firstKey()) :
476        runtimeScene.createObject(objectsList.firstKey());
477      if (object) {
478        objectsList.get(objectsList.firstKey()).push(object);
479        eventsFunctionContext._objectArraysMap[objectName].push(object);
480      }
481      return object;    }
482    return null;
483  },
484  getInstancesCountOnScene: function(objectName) {
485    const objectsList = eventsFunctionContext._objectsMap[objectName];
486    let count = 0;
487    if (objectsList) {
488      for(const objectName in objectsList.items)
489        count += parentEventsFunctionContext ?
490parentEventsFunctionContext.getInstancesCountOnScene(objectName) :
491        runtimeScene.getInstancesCountOnScene(objectName);
492    }
493    return count;
494  },
495  getLayer: function(layerName) {
496    return runtimeScene.getLayer(layerName);
497  },
498  getArgument: function(argName) {
499    return "";
500  },
501  getOnceTriggers: function() { return that._onceTriggers; }
502};
503
504gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPostEventsContext.GDObjectObjects1.length = 0;
505
506gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.doStepPostEventsContext.eventsList0(runtimeScene, eventsFunctionContext);
507
508return;
509}
510gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.StickContext = {};
511gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.StickContext.GDObjectObjects1= [];
512gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.StickContext.GDBasisObjectObjects1= [];
513
514
515gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.StickContext.userFunc0xc3b250 = function(runtimeScene, objects, eventsFunctionContext) {
516"use strict";
517const object = objects[0];
518const behaviorName = eventsFunctionContext.getBehaviorName("Behavior");
519const basisObjects = eventsFunctionContext.getObjects("BasisObject");
520
521if (basisObjects.length === 0) return;
522const basisObject = basisObjects[0];
523
524const behavior = object.getBehavior(behaviorName);
525
526behavior.basisObject = basisObject;
527behavior.updateOldCoordinates(basisObject);
528behavior.updateRelativeCoordinates(basisObject);
529
530};
531gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.StickContext.eventsList0 = function(runtimeScene, eventsFunctionContext) {
532
533{
534
535gdjs.copyArray(eventsFunctionContext.getObjects("Object"), gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.StickContext.GDObjectObjects1);
536
537var objects = [];
538objects.push.apply(objects,gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.StickContext.GDObjectObjects1);
539gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.StickContext.userFunc0xc3b250(runtimeScene, objects, typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : undefined);
540
541}
542
543
544};
545
546gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.Stick = function(BasisObject, parentEventsFunctionContext) {
547
548var that = this;
549var runtimeScene = this._runtimeScene;
550var thisObjectList = [this.owner];
551var Object = Hashtable.newFrom({Object: thisObjectList});
552var Behavior = this.name;
553var eventsFunctionContext = {
554  _objectsMap: {
555"Object": Object
556, "BasisObject": BasisObject
557},
558  _objectArraysMap: {
559"Object": thisObjectList
560, "BasisObject": gdjs.objectsListsToArray(BasisObject)
561},
562  _behaviorNamesMap: {
563"Behavior": Behavior
564},
565  getObjects: function(objectName) {
566    return eventsFunctionContext._objectArraysMap[objectName] || [];
567  },
568  getObjectsLists: function(objectName) {
569    return eventsFunctionContext._objectsMap[objectName] || null;
570  },
571  getBehaviorName: function(behaviorName) {
572    return eventsFunctionContext._behaviorNamesMap[behaviorName] || behaviorName;
573  },
574  createObject: function(objectName) {
575    const objectsList = eventsFunctionContext._objectsMap[objectName];
576    if (objectsList) {
577      const object = parentEventsFunctionContext ?
578        parentEventsFunctionContext.createObject(objectsList.firstKey()) :
579        runtimeScene.createObject(objectsList.firstKey());
580      if (object) {
581        objectsList.get(objectsList.firstKey()).push(object);
582        eventsFunctionContext._objectArraysMap[objectName].push(object);
583      }
584      return object;    }
585    return null;
586  },
587  getInstancesCountOnScene: function(objectName) {
588    const objectsList = eventsFunctionContext._objectsMap[objectName];
589    let count = 0;
590    if (objectsList) {
591      for(const objectName in objectsList.items)
592        count += parentEventsFunctionContext ?
593parentEventsFunctionContext.getInstancesCountOnScene(objectName) :
594        runtimeScene.getInstancesCountOnScene(objectName);
595    }
596    return count;
597  },
598  getLayer: function(layerName) {
599    return runtimeScene.getLayer(layerName);
600  },
601  getArgument: function(argName) {
602    return "";
603  },
604  getOnceTriggers: function() { return that._onceTriggers; }
605};
606
607gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.StickContext.GDObjectObjects1.length = 0;
608gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.StickContext.GDBasisObjectObjects1.length = 0;
609
610gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.StickContext.eventsList0(runtimeScene, eventsFunctionContext);
611
612return;
613}
614gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.UnstickContext = {};
615gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.UnstickContext.GDObjectObjects1= [];
616
617
618gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.UnstickContext.userFunc0xd31040 = function(runtimeScene, objects, eventsFunctionContext) {
619"use strict";
620const object = objects[0];
621const behaviorName = eventsFunctionContext.getBehaviorName("Behavior");
622const behavior = object.getBehavior(behaviorName);
623
624behavior.basisObject = null;
625};
626gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.UnstickContext.eventsList0 = function(runtimeScene, eventsFunctionContext) {
627
628{
629
630gdjs.copyArray(eventsFunctionContext.getObjects("Object"), gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.UnstickContext.GDObjectObjects1);
631
632var objects = [];
633objects.push.apply(objects,gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.UnstickContext.GDObjectObjects1);
634gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.UnstickContext.userFunc0xd31040(runtimeScene, objects, typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : undefined);
635
636}
637
638
639};
640
641gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.Unstick = function(parentEventsFunctionContext) {
642
643var that = this;
644var runtimeScene = this._runtimeScene;
645var thisObjectList = [this.owner];
646var Object = Hashtable.newFrom({Object: thisObjectList});
647var Behavior = this.name;
648var eventsFunctionContext = {
649  _objectsMap: {
650"Object": Object
651},
652  _objectArraysMap: {
653"Object": thisObjectList
654},
655  _behaviorNamesMap: {
656"Behavior": Behavior
657},
658  getObjects: function(objectName) {
659    return eventsFunctionContext._objectArraysMap[objectName] || [];
660  },
661  getObjectsLists: function(objectName) {
662    return eventsFunctionContext._objectsMap[objectName] || null;
663  },
664  getBehaviorName: function(behaviorName) {
665    return eventsFunctionContext._behaviorNamesMap[behaviorName] || behaviorName;
666  },
667  createObject: function(objectName) {
668    const objectsList = eventsFunctionContext._objectsMap[objectName];
669    if (objectsList) {
670      const object = parentEventsFunctionContext ?
671        parentEventsFunctionContext.createObject(objectsList.firstKey()) :
672        runtimeScene.createObject(objectsList.firstKey());
673      if (object) {
674        objectsList.get(objectsList.firstKey()).push(object);
675        eventsFunctionContext._objectArraysMap[objectName].push(object);
676      }
677      return object;    }
678    return null;
679  },
680  getInstancesCountOnScene: function(objectName) {
681    const objectsList = eventsFunctionContext._objectsMap[objectName];
682    let count = 0;
683    if (objectsList) {
684      for(const objectName in objectsList.items)
685        count += parentEventsFunctionContext ?
686parentEventsFunctionContext.getInstancesCountOnScene(objectName) :
687        runtimeScene.getInstancesCountOnScene(objectName);
688    }
689    return count;
690  },
691  getLayer: function(layerName) {
692    return runtimeScene.getLayer(layerName);
693  },
694  getArgument: function(argName) {
695    return "";
696  },
697  getOnceTriggers: function() { return that._onceTriggers; }
698};
699
700gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.UnstickContext.GDObjectObjects1.length = 0;
701
702gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.UnstickContext.eventsList0(runtimeScene, eventsFunctionContext);
703
704return;
705}
706gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onDestroyContext = {};
707gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onDestroyContext.GDObjectObjects1= [];
708
709
710gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onDestroyContext.userFunc0xd30ff0 = function(runtimeScene, objects, eventsFunctionContext) {
711"use strict";
712const behaviorName = eventsFunctionContext.getBehaviorName("Behavior");
713const object = objects[0];
714const behavior = object.getBehavior(behaviorName);
715
716if (runtimeScene.__allStickers)
717    runtimeScene.__allStickers.delete(behavior);
718
719};
720gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onDestroyContext.eventsList0 = function(runtimeScene, eventsFunctionContext) {
721
722{
723
724gdjs.copyArray(eventsFunctionContext.getObjects("Object"), gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onDestroyContext.GDObjectObjects1);
725
726var objects = [];
727objects.push.apply(objects,gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onDestroyContext.GDObjectObjects1);
728gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onDestroyContext.userFunc0xd30ff0(runtimeScene, objects, typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : undefined);
729
730}
731
732
733};
734
735gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onDestroy = function(parentEventsFunctionContext) {
736
737var that = this;
738var runtimeScene = this._runtimeScene;
739var thisObjectList = [this.owner];
740var Object = Hashtable.newFrom({Object: thisObjectList});
741var Behavior = this.name;
742var eventsFunctionContext = {
743  _objectsMap: {
744"Object": Object
745},
746  _objectArraysMap: {
747"Object": thisObjectList
748},
749  _behaviorNamesMap: {
750"Behavior": Behavior
751},
752  getObjects: function(objectName) {
753    return eventsFunctionContext._objectArraysMap[objectName] || [];
754  },
755  getObjectsLists: function(objectName) {
756    return eventsFunctionContext._objectsMap[objectName] || null;
757  },
758  getBehaviorName: function(behaviorName) {
759    return eventsFunctionContext._behaviorNamesMap[behaviorName] || behaviorName;
760  },
761  createObject: function(objectName) {
762    const objectsList = eventsFunctionContext._objectsMap[objectName];
763    if (objectsList) {
764      const object = parentEventsFunctionContext ?
765        parentEventsFunctionContext.createObject(objectsList.firstKey()) :
766        runtimeScene.createObject(objectsList.firstKey());
767      if (object) {
768        objectsList.get(objectsList.firstKey()).push(object);
769        eventsFunctionContext._objectArraysMap[objectName].push(object);
770      }
771      return object;    }
772    return null;
773  },
774  getInstancesCountOnScene: function(objectName) {
775    const objectsList = eventsFunctionContext._objectsMap[objectName];
776    let count = 0;
777    if (objectsList) {
778      for(const objectName in objectsList.items)
779        count += parentEventsFunctionContext ?
780parentEventsFunctionContext.getInstancesCountOnScene(objectName) :
781        runtimeScene.getInstancesCountOnScene(objectName);
782    }
783    return count;
784  },
785  getLayer: function(layerName) {
786    return runtimeScene.getLayer(layerName);
787  },
788  getArgument: function(argName) {
789    return "";
790  },
791  getOnceTriggers: function() { return that._onceTriggers; }
792};
793
794gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onDestroyContext.GDObjectObjects1.length = 0;
795
796gdjs.evtsExt__Sticker__Sticker.Sticker.prototype.onDestroyContext.eventsList0(runtimeScene, eventsFunctionContext);
797
798return;
799}
800
801
802gdjs.registerBehavior("Sticker::Sticker", gdjs.evtsExt__Sticker__Sticker.Sticker);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.