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.