gdcore-tools 2.0.0-gd-v5.5.223-autobuild → 2.0.0-gd-v5.5.225-autobuild

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/Runtime/CustomRuntimeObject.js +1 -1
  2. package/dist/Runtime/CustomRuntimeObject.js.map +2 -2
  3. package/dist/Runtime/CustomRuntimeObject2D.js.map +2 -2
  4. package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js.map +2 -2
  5. package/dist/Runtime/Extensions/3D/Base3DBehavior.js.map +2 -2
  6. package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js +1 -1
  7. package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js.map +2 -2
  8. package/dist/Runtime/Extensions/3D/Cube3DRuntimeObjectPixiRenderer.js +1 -1
  9. package/dist/Runtime/Extensions/3D/Cube3DRuntimeObjectPixiRenderer.js.map +2 -2
  10. package/dist/Runtime/Extensions/3D/CustomRuntimeObject3D.js.map +2 -2
  11. package/dist/Runtime/Extensions/3D/CustomRuntimeObject3DRenderer.js.map +2 -2
  12. package/dist/Runtime/Extensions/3D/JsExtension.js +219 -108
  13. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js +1 -1
  14. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js.map +2 -2
  15. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js +1 -1
  16. package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js.map +2 -2
  17. package/dist/Runtime/Extensions/AdMob/JsExtension.js +63 -1
  18. package/dist/Runtime/Extensions/AdMob/admobtools.js +1 -1
  19. package/dist/Runtime/Extensions/AdMob/admobtools.js.map +2 -2
  20. package/dist/Runtime/Extensions/AdvancedWindow/electron-advancedwindowtools.js.map +2 -2
  21. package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js +1 -1
  22. package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js.map +2 -2
  23. package/dist/Runtime/Extensions/BBText/JsExtension.js +10 -9
  24. package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js.map +2 -2
  25. package/dist/Runtime/Extensions/BitmapText/JsExtension.js +4 -6
  26. package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject-pixi-renderer.js.map +2 -2
  27. package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js.map +2 -2
  28. package/dist/Runtime/Extensions/DialogueTree/dialoguetools.js.map +2 -2
  29. package/dist/Runtime/Extensions/DraggableBehavior/draggableruntimebehavior.js.map +2 -2
  30. package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js.map +2 -2
  31. package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js.map +2 -2
  32. package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js.map +2 -2
  33. package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js.map +2 -2
  34. package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js.map +2 -2
  35. package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js.map +2 -2
  36. package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js.map +2 -2
  37. package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js.map +2 -2
  38. package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js.map +2 -2
  39. package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js.map +2 -2
  40. package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js.map +2 -2
  41. package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js.map +2 -2
  42. package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js.map +2 -2
  43. package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js.map +2 -2
  44. package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js.map +2 -2
  45. package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js.map +2 -2
  46. package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js.map +2 -2
  47. package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js.map +2 -2
  48. package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js.map +2 -2
  49. package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js.map +2 -2
  50. package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js.map +2 -2
  51. package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js.map +2 -2
  52. package/dist/Runtime/Extensions/Effects/pixi-filters/types/drop-shadow/types.d.ts +10 -4
  53. package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js.map +2 -2
  54. package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js.map +2 -2
  55. package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js.map +2 -2
  56. package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js.map +2 -2
  57. package/dist/Runtime/Extensions/Effects/shockwave-pixi-filter.js.map +2 -2
  58. package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js.map +2 -2
  59. package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js.map +2 -2
  60. package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js.map +2 -2
  61. package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js.map +2 -2
  62. package/dist/Runtime/Extensions/FacebookInstantGames/facebookinstantgamestools.js.map +2 -2
  63. package/dist/Runtime/Extensions/Firebase/A_firebasejs/firebase.d.ts +5 -4
  64. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_cloudfirestoretools.js.map +2 -2
  65. package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_remoteconfigtools.js.map +2 -2
  66. package/dist/Runtime/Extensions/Firebase/JsExtension.js +21 -21
  67. package/dist/Runtime/Extensions/JsExtensionTypes.d.ts +1 -0
  68. package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js.map +2 -2
  69. package/dist/Runtime/Extensions/Lighting/JsExtension.js +2 -2
  70. package/dist/Runtime/Extensions/Lighting/lightobstacleruntimebehavior.js.map +2 -2
  71. package/dist/Runtime/Extensions/Lighting/lightruntimeobject-pixi-renderer.js.map +2 -2
  72. package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js.map +2 -2
  73. package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js.map +2 -2
  74. package/dist/Runtime/Extensions/Multiplayer/JsExtension.js +122 -0
  75. package/dist/Runtime/Extensions/Multiplayer/messageManager.js.map +2 -2
  76. package/dist/Runtime/Extensions/Multiplayer/multiplayerVariablesManager.js.map +2 -2
  77. package/dist/Runtime/Extensions/Multiplayer/multiplayercomponents.js +1 -1
  78. package/dist/Runtime/Extensions/Multiplayer/multiplayercomponents.js.map +2 -2
  79. package/dist/Runtime/Extensions/Multiplayer/multiplayerobjectruntimebehavior.js.map +2 -2
  80. package/dist/Runtime/Extensions/Multiplayer/multiplayertools.js +1 -1
  81. package/dist/Runtime/Extensions/Multiplayer/multiplayertools.js.map +2 -2
  82. package/dist/Runtime/Extensions/Multiplayer/peerJsHelper.js +1 -1
  83. package/dist/Runtime/Extensions/Multiplayer/peerJsHelper.js.map +2 -2
  84. package/dist/Runtime/Extensions/Multiplayer/peerjs.d.ts +8 -10
  85. package/dist/Runtime/Extensions/P2P/peerjs.d.ts +8 -10
  86. package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js.map +2 -2
  87. package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js.map +2 -2
  88. package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js.map +2 -2
  89. package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js.map +2 -2
  90. package/dist/Runtime/Extensions/ParticleSystem/pixi-particles-pixi-renderer.d.ts +2 -1
  91. package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingobstacleruntimebehavior.js.map +2 -2
  92. package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js.map +2 -2
  93. package/dist/Runtime/Extensions/Physics2Behavior/JsExtension.js +106 -106
  94. package/dist/Runtime/Extensions/Physics2Behavior/box2d.d.ts +13 -7
  95. package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js.map +2 -2
  96. package/dist/Runtime/Extensions/Physics3DBehavior/Physics3DRuntimeBehavior.js +1 -1
  97. package/dist/Runtime/Extensions/Physics3DBehavior/Physics3DRuntimeBehavior.js.map +2 -2
  98. package/dist/Runtime/Extensions/Physics3DBehavior/PhysicsCharacter3DRuntimeBehavior.js +1 -1
  99. package/dist/Runtime/Extensions/Physics3DBehavior/PhysicsCharacter3DRuntimeBehavior.js.map +2 -2
  100. package/dist/Runtime/Extensions/PhysicsBehavior/physicsruntimebehavior.js.map +2 -2
  101. package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js.map +2 -2
  102. package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js.map +2 -2
  103. package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js.map +1 -1
  104. package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js +1 -1
  105. package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js.map +2 -2
  106. package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js.map +2 -2
  107. package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js.map +2 -2
  108. package/dist/Runtime/Extensions/SpatialSound/spatialsoundtools.js +1 -1
  109. package/dist/Runtime/Extensions/SpatialSound/spatialsoundtools.js.map +2 -2
  110. package/dist/Runtime/Extensions/Spine/JsExtension.js +5 -4
  111. package/dist/Runtime/Extensions/Spine/managers/pixi-spine-atlas-manager.js +1 -1
  112. package/dist/Runtime/Extensions/Spine/managers/pixi-spine-atlas-manager.js.map +2 -2
  113. package/dist/Runtime/Extensions/Spine/managers/pixi-spine-manager.js +1 -1
  114. package/dist/Runtime/Extensions/Spine/managers/pixi-spine-manager.js.map +2 -2
  115. package/dist/Runtime/Extensions/Spine/spineruntimeobject-pixi-renderer.js.map +2 -2
  116. package/dist/Runtime/Extensions/Spine/spineruntimeobject.js.map +2 -2
  117. package/dist/Runtime/Extensions/Steamworks/JsExtension.js +12 -12
  118. package/dist/Runtime/Extensions/Steamworks/Z_steamworksinputtools.js.map +2 -2
  119. package/dist/Runtime/Extensions/Steamworks/steamworkstools.js.map +2 -2
  120. package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject-pixi-renderer.js.map +2 -2
  121. package/dist/Runtime/Extensions/TextInput/JsExtension.js +2 -2
  122. package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js +1 -1
  123. package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js.map +2 -2
  124. package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js.map +2 -2
  125. package/dist/Runtime/Extensions/TextObject/textruntimeobject-pixi-renderer.js.map +2 -2
  126. package/dist/Runtime/Extensions/TextObject/textruntimeobject.js.map +2 -2
  127. package/dist/Runtime/Extensions/TileMap/JsExtension.js +20 -18
  128. package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js.map +2 -2
  129. package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js.map +2 -2
  130. package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts +1 -3
  131. package/dist/Runtime/Extensions/TileMap/simpletilemapruntimeobject.js.map +2 -2
  132. package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js.map +2 -2
  133. package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js.map +1 -1
  134. package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js.map +2 -2
  135. package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject-pixi-renderer.js.map +2 -2
  136. package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js.map +2 -2
  137. package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js.map +2 -2
  138. package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js.map +1 -1
  139. package/dist/Runtime/Extensions/Video/JsExtension.js +2 -1
  140. package/dist/Runtime/Extensions/Video/videoruntimeobject-pixi-renderer.js.map +2 -2
  141. package/dist/Runtime/Extensions/Video/videoruntimeobject.js.map +2 -2
  142. package/dist/Runtime/InAppTutorialMessage.js +6 -0
  143. package/dist/Runtime/InAppTutorialMessage.js.map +7 -0
  144. package/dist/Runtime/Model3DManager.js.map +2 -2
  145. package/dist/Runtime/ResourceLoader.js.map +2 -2
  146. package/dist/Runtime/RuntimeCustomObjectLayer.js +1 -1
  147. package/dist/Runtime/RuntimeCustomObjectLayer.js.map +2 -2
  148. package/dist/Runtime/RuntimeInstanceContainer.js.map +1 -1
  149. package/dist/Runtime/RuntimeLayer.js.map +2 -2
  150. package/dist/Runtime/SpriteAnimator.js.map +2 -2
  151. package/dist/Runtime/affinetransformation.js.map +1 -1
  152. package/dist/Runtime/debugger-client/abstract-debugger-client.js.map +2 -2
  153. package/dist/Runtime/debugger-client/hot-reloader.js +2 -2
  154. package/dist/Runtime/debugger-client/hot-reloader.js.map +2 -2
  155. package/dist/Runtime/debugger-client/websocket-debugger-client.js +1 -1
  156. package/dist/Runtime/debugger-client/websocket-debugger-client.js.map +2 -2
  157. package/dist/Runtime/events-tools/networktools.js +1 -1
  158. package/dist/Runtime/events-tools/networktools.js.map +2 -2
  159. package/dist/Runtime/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js.map +2 -2
  160. package/dist/Runtime/gd.js.map +2 -2
  161. package/dist/Runtime/howler-sound-manager/howler-sound-manager.js +1 -1
  162. package/dist/Runtime/howler-sound-manager/howler-sound-manager.js.map +2 -2
  163. package/dist/Runtime/inputmanager.js.map +2 -2
  164. package/dist/Runtime/jsonmanager.js.map +2 -2
  165. package/dist/Runtime/layer.js.map +2 -2
  166. package/dist/Runtime/libs/nanomarkdown.js +5 -0
  167. package/dist/Runtime/libs/nanomarkdown.js.map +7 -0
  168. package/dist/Runtime/object-capabilities/AnimatableBehavior.js.map +2 -2
  169. package/dist/Runtime/object-capabilities/EffectBehavior.js.map +2 -2
  170. package/dist/Runtime/object-capabilities/FlippableBehavior.js.map +2 -2
  171. package/dist/Runtime/object-capabilities/OpacityBehavior.js.map +2 -2
  172. package/dist/Runtime/object-capabilities/ResizableBehavior.js.map +2 -2
  173. package/dist/Runtime/object-capabilities/ScalableBehavior.js.map +2 -2
  174. package/dist/Runtime/object-capabilities/TextContainerBehavior.js.map +2 -2
  175. package/dist/Runtime/pixi-renderers/CustomRuntimeObject2DPixiRenderer.js.map +2 -2
  176. package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js.map +2 -2
  177. package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js.map +2 -2
  178. package/dist/Runtime/pixi-renderers/loadingscreen-pixi-renderer.js.map +2 -2
  179. package/dist/Runtime/pixi-renderers/pixi-bitmapfont-manager.js.map +2 -2
  180. package/dist/Runtime/pixi-renderers/pixi-filters-tools.js.map +2 -2
  181. package/dist/Runtime/pixi-renderers/pixi-image-manager.js +1 -1
  182. package/dist/Runtime/pixi-renderers/pixi-image-manager.js.map +2 -2
  183. package/dist/Runtime/pixi-renderers/pixi.js +123 -177
  184. package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js +1 -1
  185. package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js.map +2 -2
  186. package/dist/Runtime/pixi-renderers/runtimescene-pixi-renderer.js.map +2 -2
  187. package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js.map +2 -2
  188. package/dist/Runtime/profiler.js.map +2 -2
  189. package/dist/Runtime/runtimegame.js +1 -1
  190. package/dist/Runtime/runtimegame.js.map +2 -2
  191. package/dist/Runtime/runtimeobject.js +1 -1
  192. package/dist/Runtime/runtimeobject.js.map +2 -2
  193. package/dist/Runtime/runtimescene.js.map +2 -2
  194. package/dist/Runtime/runtimewatermark.js.map +2 -2
  195. package/dist/Runtime/scenestack.js.map +2 -2
  196. package/dist/Runtime/spriteruntimeobject.js.map +2 -2
  197. package/dist/Runtime/variable.js.map +2 -2
  198. package/dist/Runtime/variablescontainer.js.map +2 -2
  199. package/dist/lib/libGD.cjs +1 -1
  200. package/dist/lib/libGD.wasm +0 -0
  201. package/gd.d.ts +6 -0
  202. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/PhysicsBehavior/physicsruntimebehavior.ts"],
4
- "sourcesContent": ["// @ts-nocheck\n// This is deprecated and not worth typing.\n/*\nGDevelop - Physics Behavior Extension\nCopyright (c) 2013-2016 Florian Rival (Florian.Rival@gmail.com)\n */\nnamespace gdjs {\n /**\n * Manage the common objects shared by objects having a\n * physics behavior.\n */\n export class PhysicsSharedData {\n stepped: boolean = false;\n totalTime: float = 0;\n fixedTimeStep: any;\n scaleX: any;\n scaleY: any;\n invScaleX: any;\n invScaleY: any;\n world: any;\n staticBody: any;\n\n //...and prepare contact listeners\n contactListener: any;\n\n constructor(runtimeScene, sharedData) {\n this.fixedTimeStep = 1 / 60;\n this.scaleX = sharedData.scaleX;\n this.scaleY = sharedData.scaleY;\n this.invScaleX = 1 / this.scaleX;\n this.invScaleY = 1 / this.scaleY;\n\n //Setup world...\n const b2World = Box2D.b2World;\n const b2Vec2 = Box2D.b2Vec2;\n this.world = new b2World(\n new b2Vec2(sharedData.gravityX, -sharedData.gravityY),\n true\n );\n this.world.SetAutoClearForces(false);\n this.staticBody = this.world.CreateBody(new Box2D.b2BodyDef());\n this.contactListener = new Box2D.JSContactListener();\n this.contactListener.BeginContact = function (contactPtr) {\n const contact = Box2D.wrapPointer(contactPtr, Box2D.b2Contact);\n if (\n contact.GetFixtureA().GetBody() == null ||\n contact.GetFixtureB().GetBody() == null\n ) {\n return;\n }\n const behaviorA = contact.GetFixtureA().GetBody()\n .gdjsAssociatedBehavior,\n behaviorB = contact.GetFixtureB().GetBody().gdjsAssociatedBehavior;\n behaviorA.currentContacts.push(behaviorB);\n behaviorB.currentContacts.push(behaviorA);\n };\n this.contactListener.EndContact = function (contactPtr) {\n const contact = Box2D.wrapPointer(contactPtr, Box2D.b2Contact);\n if (\n contact.GetFixtureA().GetBody() == null ||\n contact.GetFixtureB().GetBody() == null\n ) {\n return;\n }\n if (\n contact.GetFixtureA().GetBody() === null ||\n contact.GetFixtureB().GetBody() === null\n ) {\n return;\n }\n const behaviorA = contact.GetFixtureA().GetBody()\n .gdjsAssociatedBehavior,\n behaviorB = contact.GetFixtureB().GetBody().gdjsAssociatedBehavior;\n let i = behaviorA.currentContacts.indexOf(behaviorB);\n if (i !== -1) {\n behaviorA.currentContacts.splice(i, 1);\n }\n i = behaviorB.currentContacts.indexOf(behaviorA);\n if (i !== -1) {\n behaviorB.currentContacts.splice(i, 1);\n }\n };\n this.contactListener.PreSolve = function () {};\n this.contactListener.PostSolve = function () {};\n this.world.SetContactListener(this.contactListener);\n }\n\n /**\n * Get the shared data for a scene.\n */\n static getSharedData(runtimeScene, name) {\n if (!runtimeScene.physicsSharedData) {\n //Create the shared data if necessary.\n const initialData = runtimeScene.getInitialSharedDataForBehavior(name);\n runtimeScene.physicsSharedData = new gdjs.PhysicsSharedData(\n runtimeScene,\n initialData\n );\n }\n return runtimeScene.physicsSharedData;\n }\n\n step(dt) {\n this.totalTime += dt;\n if (this.totalTime > this.fixedTimeStep) {\n let numberOfSteps = Math.floor(this.totalTime / this.fixedTimeStep);\n this.totalTime -= numberOfSteps * this.fixedTimeStep;\n if (numberOfSteps > 5) {\n numberOfSteps = 5;\n }\n\n //Process 5 steps at max.\n for (let a = 0; a < numberOfSteps; a++) {\n this.world.Step(this.fixedTimeStep, 6, 10);\n }\n this.world.ClearForces();\n }\n this.stepped = true;\n }\n }\n gdjs.registerRuntimeSceneUnloadedCallback(function (runtimeScene) {\n //Callback that destroys the box2d.js world of PhysicsSharedData shared data of the scene\n if (runtimeScene.physicsSharedData) {\n Box2D.destroy(runtimeScene.physicsSharedData.world);\n }\n });\n\n /**\n * Allows objects to be moved in a realistic way thanks to a physics engine (Box2D).\n */\n export class PhysicsRuntimeBehavior extends gdjs.RuntimeBehavior {\n _box2DBody: any = null;\n _dynamic: any;\n _objectOldWidth: float = 0;\n _objectOldHeight: float = 0;\n _objectOldX: number = 0;\n _objectOldY: number = 0;\n _objectOldAngle: float = 0;\n _angularDamping: any;\n _linearDamping: any;\n _isBullet: boolean;\n _fixedRotation: float;\n _massDensity: any;\n _averageFriction: any;\n _averageRestitution: any;\n _shapeType: any;\n currentContacts: any = [];\n _sharedData: any;\n\n //Temporary objects used to avoid creating garbage:\n _tempb2Vec2: any;\n\n constructor(runtimeScene, behaviorData, owner) {\n super(runtimeScene, behaviorData, owner);\n this._dynamic = behaviorData.dynamic;\n this._angularDamping = behaviorData.angularDamping;\n this._linearDamping = behaviorData.linearDamping;\n this._isBullet = behaviorData.isBullet;\n this._fixedRotation = behaviorData.fixedRotation;\n this._massDensity = behaviorData.massDensity;\n this._averageFriction = behaviorData.averageFriction;\n this._averageRestitution = behaviorData.averageRestitution;\n this._shapeType = behaviorData.shapeType;\n if (this.currentContacts !== undefined) {\n this.currentContacts.length = 0;\n } else {\n }\n this._sharedData = PhysicsSharedData.getSharedData(\n runtimeScene,\n behaviorData.name\n );\n\n //Do not create body now: the object is not fully created.\n this._tempb2Vec2 = new Box2D.b2Vec2();\n }\n\n //See b2Vec2 method\n updateFromBehaviorData(oldBehaviorData, newBehaviorData): boolean {\n if (oldBehaviorData.dynamic !== newBehaviorData.dynamic) {\n if (newBehaviorData.dynamic) {\n this.setDynamic();\n } else {\n this.setStatic();\n }\n }\n if (oldBehaviorData.angularDamping !== newBehaviorData.angularDamping) {\n this.setAngularDamping(newBehaviorData.angularDamping);\n }\n if (oldBehaviorData.linearDamping !== newBehaviorData.linearDamping) {\n this.setLinearDamping(newBehaviorData.linearDamping);\n }\n if (oldBehaviorData.isBullet !== newBehaviorData.isBullet) {\n if (newBehaviorData.isBullet) {\n this.setAsBullet();\n } else {\n this.dontSetAsBullet();\n }\n }\n if (oldBehaviorData.fixedRotation !== newBehaviorData.fixedRotation) {\n if (newBehaviorData.fixedRotation) {\n this.setFixedRotation();\n } else {\n this.setFreeRotation();\n }\n }\n\n // TODO: make these properties updatable.\n if (oldBehaviorData.massDensity !== newBehaviorData.massDensity) {\n return false;\n }\n if (oldBehaviorData.averageFriction !== newBehaviorData.averageFriction) {\n return false;\n }\n if (\n oldBehaviorData.averageRestitution !==\n newBehaviorData.averageRestitution\n ) {\n return false;\n }\n if (oldBehaviorData.shapeType !== newBehaviorData.shapeType) {\n return false;\n }\n return true;\n }\n\n onDeActivate() {\n if (this._box2DBody !== null) {\n this._sharedData.world.DestroyBody(this._box2DBody);\n this._box2DBody = null;\n }\n }\n\n onDestroy() {\n this.onDeActivate();\n }\n\n /**\n * Return a Box2D.b2Vec2 with the specified coordinates.\n * Should be used instead of doing 'new Box2D.b2Vec2(x, y)'.\n */\n b2Vec2(x, y) {\n this._tempb2Vec2.set_x(x);\n this._tempb2Vec2.set_y(y);\n return this._tempb2Vec2;\n }\n\n createBody() {\n //Create body from object\n const bodyDef = new Box2D.b2BodyDef();\n bodyDef.set_type(\n this._dynamic ? Box2D.b2_dynamicBody : Box2D.b2_staticBody\n );\n bodyDef.set_position(\n this.b2Vec2(\n (this.owner.getDrawableX() + this.owner.getWidth() / 2) *\n this._sharedData.invScaleX,\n -(this.owner.getDrawableY() + this.owner.getHeight() / 2) *\n this._sharedData.invScaleY\n )\n );\n bodyDef.set_angle(-gdjs.toRad(this.owner.getAngle()));\n bodyDef.set_angularDamping(\n this._angularDamping > 0 ? this._angularDamping : 0\n );\n bodyDef.set_linearDamping(\n this._linearDamping > 0 ? this._linearDamping : 0\n );\n bodyDef.set_bullet(this._isBullet);\n bodyDef.set_fixedRotation(this._fixedRotation);\n this._box2DBody = this._sharedData.world.CreateBody(bodyDef);\n this._box2DBody.gdjsAssociatedBehavior = this;\n\n //We do not use SetUserData which only accept integers.\n\n //Setup the fixture\n let fixDef = null;\n\n /*else if ( this._shapeType === \"CustomPolygon\" ) {\n //TODO\n }*/\n if (this._shapeType === 'Circle') {\n const circle = new Box2D.b2CircleShape();\n circle.set_m_radius(\n (this.owner.getWidth() * this._sharedData.invScaleX +\n this.owner.getHeight() * this._sharedData.invScaleY) /\n 4\n );\n if (circle.get_m_radius() <= 0) {\n circle.set_m_radius(1);\n }\n fixDef = new Box2D.b2FixtureDef();\n fixDef.set_shape(circle);\n } else {\n //Box\n const box = new Box2D.b2PolygonShape();\n box.SetAsBox(\n ((this.owner.getWidth() > 0 ? this.owner.getWidth() : 1) *\n this._sharedData.invScaleX) /\n 2,\n ((this.owner.getHeight() > 0 ? this.owner.getHeight() : 1) *\n this._sharedData.invScaleY) /\n 2\n );\n fixDef = new Box2D.b2FixtureDef();\n fixDef.set_shape(box);\n }\n fixDef.set_density(this._massDensity);\n fixDef.set_friction(this._averageFriction);\n fixDef.set_restitution(this._averageRestitution);\n this._box2DBody.CreateFixture(fixDef);\n this._objectOldWidth = this.owner.getWidth();\n this._objectOldHeight = this.owner.getHeight();\n }\n\n doStepPreEvents(runtimeScene) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n\n //Simulate the world\n if (!this._sharedData.stepped) {\n this._sharedData.step(\n runtimeScene.getTimeManager().getElapsedTime() / 1000\n );\n }\n\n //Update object position according to Box2D body\n this.owner.setX(\n this._box2DBody.GetPosition().get_x() * this._sharedData.scaleX -\n this.owner.getWidth() / 2 +\n this.owner.getX() -\n this.owner.getDrawableX()\n );\n this.owner.setY(\n -this._box2DBody.GetPosition().get_y() * this._sharedData.scaleY -\n this.owner.getHeight() / 2 +\n this.owner.getY() -\n this.owner.getDrawableY()\n );\n this.owner.setAngle(-gdjs.toDegrees(this._box2DBody.GetAngle()));\n this._objectOldX = this.owner.getX();\n this._objectOldY = this.owner.getY();\n this._objectOldAngle = this.owner.getAngle();\n }\n\n getBox2DBody() {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return this._box2DBody;\n }\n\n doStepPostEvents(runtimeScene) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n\n //Ensure the Box2D body width and height are correct.\n if (\n this._objectOldWidth !== this.owner.getWidth() ||\n this._objectOldHeight !== this.owner.getHeight()\n ) {\n //Recreate the body, but remember its movement.\n const oldAngularVelocity = this._box2DBody.GetAngularVelocity();\n const oldXVelocity = this._box2DBody.GetLinearVelocity().get_x();\n const oldYVelocity = this._box2DBody.GetLinearVelocity().get_y();\n this._sharedData.world.DestroyBody(this._box2DBody);\n this.createBody();\n this._box2DBody.SetAngularVelocity(oldAngularVelocity);\n this._box2DBody.SetLinearVelocity(\n this.b2Vec2(oldXVelocity, oldYVelocity)\n );\n }\n this._sharedData.stepped = false;\n\n //Ensure that the Box2D body position is correct\n if (\n this._objectOldX == this.owner.getX() &&\n this._objectOldY == this.owner.getY() &&\n this._objectOldAngle == this.owner.getAngle()\n ) {\n return;\n }\n const pos = this.b2Vec2(\n (this.owner.getDrawableX() + this.owner.getWidth() / 2) *\n this._sharedData.invScaleX,\n -(this.owner.getDrawableY() + this.owner.getHeight() / 2) *\n this._sharedData.invScaleY\n );\n this._box2DBody.SetTransform(pos, -gdjs.toRad(this.owner.getAngle()));\n this._box2DBody.SetAwake(true);\n }\n\n setStatic(): void {\n this._dynamic = false;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetType(Box2D.b2_staticBody);\n }\n\n setDynamic(): void {\n this._dynamic = true;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetType(Box2D.b2_dynamicBody);\n this._box2DBody.SetAwake(true);\n }\n\n setFixedRotation(): void {\n this._fixedRotation = true;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetFixedRotation(true);\n }\n\n setFreeRotation(): void {\n this._fixedRotation = false;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetFixedRotation(false);\n }\n\n setAsBullet(): void {\n this._isBullet = true;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetBullet(true);\n }\n\n dontSetAsBullet() {\n this._isBullet = false;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetBullet(false);\n }\n\n applyImpulse(xCoordinate, yCoordinate) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.ApplyLinearImpulse(\n this.b2Vec2(xCoordinate, -yCoordinate),\n this._box2DBody.GetPosition()\n );\n }\n\n applyImpulseUsingPolarCoordinates(angle, length) {\n angle = gdjs.toRad(angle);\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.ApplyLinearImpulse(\n this.b2Vec2(Math.cos(angle) * length, -Math.sin(angle) * length),\n this._box2DBody.GetPosition()\n );\n }\n\n applyImpulseTowardPosition(xPosition, yPosition, length) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n const angle = Math.atan2(\n yPosition * this._sharedData.invScaleY +\n this._box2DBody.GetPosition().get_y(),\n xPosition * this._sharedData.invScaleX -\n this._box2DBody.GetPosition().get_x()\n );\n this._box2DBody.ApplyLinearImpulse(\n this.b2Vec2(Math.cos(angle) * length, -Math.sin(angle) * length),\n this._box2DBody.GetPosition()\n );\n }\n\n applyForce(xCoordinate, yCoordinate) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.ApplyForce(\n this.b2Vec2(xCoordinate, -yCoordinate),\n this._box2DBody.GetPosition()\n );\n }\n\n applyForceUsingPolarCoordinates(angle, length) {\n angle = gdjs.toRad(angle);\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.ApplyForce(\n this.b2Vec2(Math.cos(angle) * length, -Math.sin(angle) * length),\n this._box2DBody.GetPosition()\n );\n }\n\n applyForceTowardPosition(xPosition, yPosition, length) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n const angle = Math.atan2(\n yPosition * this._sharedData.invScaleY +\n this._box2DBody.GetPosition().get_y(),\n xPosition * this._sharedData.invScaleX -\n this._box2DBody.GetPosition().get_x()\n );\n this._box2DBody.ApplyForce(\n this.b2Vec2(Math.cos(angle) * length, -Math.sin(angle) * length),\n this._box2DBody.GetPosition()\n );\n }\n\n applyTorque(torque) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.ApplyTorque(torque);\n }\n\n setLinearVelocity(xVelocity, yVelocity): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetLinearVelocity(this.b2Vec2(xVelocity, -yVelocity));\n }\n\n setAngularVelocity(angularVelocity): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetAngularVelocity(angularVelocity);\n }\n\n setLinearDamping(linearDamping): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetLinearDamping(linearDamping);\n }\n\n setAngularDamping(angularDamping): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetAngularDamping(angularDamping);\n }\n\n addRevoluteJointBetweenObjects(\n object,\n scene,\n xPosRelativeToMassCenter,\n yPosRelativeToMassCenter\n ) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n if (object == null || !object.hasBehavior(this.name)) {\n return;\n }\n const otherBody = object.getBehavior(this.name).getBox2DBody();\n if (this._box2DBody == otherBody) {\n return;\n }\n const jointDef = new Box2D.b2RevoluteJointDef();\n jointDef.Initialize(\n this._box2DBody,\n otherBody,\n this.b2Vec2(\n xPosRelativeToMassCenter * this._sharedData.invScaleX +\n this._box2DBody.GetWorldCenter().get_x(),\n yPosRelativeToMassCenter * this._sharedData.invScaleY +\n this._box2DBody.GetWorldCenter().get_y()\n )\n );\n this._sharedData.world.CreateJoint(jointDef);\n }\n\n addRevoluteJoint(xPosition, yPosition) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n const jointDef = new Box2D.b2RevoluteJointDef();\n jointDef.Initialize(\n this._box2DBody,\n this._sharedData.staticBody,\n this.b2Vec2(\n xPosition * this._sharedData.invScaleX,\n -yPosition * this._sharedData.invScaleY\n )\n );\n this._sharedData.world.CreateJoint(jointDef);\n }\n\n setGravity(xGravity, yGravity): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._sharedData.world.SetGravity(this.b2Vec2(xGravity, -yGravity));\n }\n\n addGearJointBetweenObjects(object, ratio) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n if (object == null || !object.hasBehavior(this.name)) {\n return;\n }\n const otherBody = object.getBehavior(this.name).getBox2DBody();\n if (this._box2DBody == otherBody) {\n return;\n }\n\n //Gear joint need a revolute joint to the ground for the two objects\n const jointDef1 = new Box2D.b2RevoluteJointDef();\n jointDef1.Initialize(\n this._sharedData.world.GetGroundBody(),\n this._box2DBody,\n this._box2DBody.GetWorldCenter()\n );\n const jointDef2 = new Box2D.b2RevoluteJointDef();\n jointDef2.Initialize(\n this._sharedData.world.GetGroundBody(),\n otherBody,\n otherBody.GetWorldCenter()\n );\n const jointDef = new Box2D.b2GearJointDef();\n jointDef.set_bodyA(this._box2DBody);\n jointDef.set_bodyB(otherBody);\n jointDef.set_joint1(this._sharedData.world.CreateJoint(jointDef1));\n jointDef.set_joint2(this._sharedData.world.CreateJoint(jointDef2));\n jointDef.set_ratio(ratio * 3.14159);\n this._sharedData.world.CreateJoint(jointDef);\n }\n\n setLinearVelocityX(xVelocity): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetLinearVelocity(\n this.b2Vec2(xVelocity, this._box2DBody.GetLinearVelocity().get_y())\n );\n }\n\n setLinearVelocityY(yVelocity): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetLinearVelocity(\n this.b2Vec2(this._box2DBody.GetLinearVelocity().get_x(), -yVelocity)\n );\n }\n\n getLinearVelocityX(): float {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return this._box2DBody.GetLinearVelocity().get_x();\n }\n\n getLinearVelocityY(): float {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return -this._box2DBody.GetLinearVelocity().get_y();\n }\n\n getLinearVelocity() {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return Math.sqrt(\n this._box2DBody.GetLinearVelocity().get_x() *\n this._box2DBody.GetLinearVelocity().get_x() +\n this._box2DBody.GetLinearVelocity().get_y() *\n this._box2DBody.GetLinearVelocity().get_y()\n );\n }\n\n getAngularVelocity() {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return this._box2DBody.GetAngularVelocity();\n }\n\n getLinearDamping() {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return this._box2DBody.GetLinearDamping();\n }\n\n getAngularDamping() {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return this._box2DBody.GetAngularDamping();\n }\n\n collisionWith(otherObjectsTable) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n\n //Getting a list of all objects which are tested\n const objects = gdjs.staticArray(\n PhysicsRuntimeBehavior.prototype.collisionWith\n );\n objects.length = 0;\n const objectsLists = gdjs.staticArray2(\n PhysicsRuntimeBehavior.prototype.collisionWith\n );\n otherObjectsTable.values(objectsLists);\n for (let i = 0, len = objectsLists.length; i < len; ++i) {\n objects.push.apply(objects, objectsLists[i]);\n }\n\n //Test if an object of the list is in collision with our object.\n for (let i = 0, len = objects.length; i < len; ++i) {\n for (let j = 0, lenj = this.currentContacts.length; j < lenj; ++j) {\n if (this.currentContacts[j].owner.id === objects[i].id) {\n return true;\n }\n }\n }\n return false;\n }\n\n isStatic(): boolean {\n return !this._dynamic;\n }\n\n isDynamic(): boolean {\n return this._dynamic;\n }\n }\n\n gdjs.registerBehavior(\n 'PhysicsBehavior::PhysicsBehavior',\n gdjs.PhysicsRuntimeBehavior\n );\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// @ts-nocheck\n// This is deprecated and not worth typing.\n/*\nGDevelop - Physics Behavior Extension\nCopyright (c) 2013-2016 Florian Rival (Florian.Rival@gmail.com)\n */\nnamespace gdjs {\n /**\n * Manage the common objects shared by objects having a\n * physics behavior.\n */\n export class PhysicsSharedData {\n stepped: boolean = false;\n totalTime: float = 0;\n fixedTimeStep: any;\n scaleX: any;\n scaleY: any;\n invScaleX: any;\n invScaleY: any;\n world: any;\n staticBody: any;\n\n //...and prepare contact listeners\n contactListener: any;\n\n constructor(runtimeScene, sharedData) {\n this.fixedTimeStep = 1 / 60;\n this.scaleX = sharedData.scaleX;\n this.scaleY = sharedData.scaleY;\n this.invScaleX = 1 / this.scaleX;\n this.invScaleY = 1 / this.scaleY;\n\n //Setup world...\n const b2World = Box2D.b2World;\n const b2Vec2 = Box2D.b2Vec2;\n this.world = new b2World(\n new b2Vec2(sharedData.gravityX, -sharedData.gravityY),\n true\n );\n this.world.SetAutoClearForces(false);\n this.staticBody = this.world.CreateBody(new Box2D.b2BodyDef());\n this.contactListener = new Box2D.JSContactListener();\n this.contactListener.BeginContact = function (contactPtr) {\n const contact = Box2D.wrapPointer(contactPtr, Box2D.b2Contact);\n if (\n contact.GetFixtureA().GetBody() == null ||\n contact.GetFixtureB().GetBody() == null\n ) {\n return;\n }\n const behaviorA = contact\n .GetFixtureA()\n .GetBody().gdjsAssociatedBehavior,\n behaviorB = contact.GetFixtureB().GetBody().gdjsAssociatedBehavior;\n behaviorA.currentContacts.push(behaviorB);\n behaviorB.currentContacts.push(behaviorA);\n };\n this.contactListener.EndContact = function (contactPtr) {\n const contact = Box2D.wrapPointer(contactPtr, Box2D.b2Contact);\n if (\n contact.GetFixtureA().GetBody() == null ||\n contact.GetFixtureB().GetBody() == null\n ) {\n return;\n }\n if (\n contact.GetFixtureA().GetBody() === null ||\n contact.GetFixtureB().GetBody() === null\n ) {\n return;\n }\n const behaviorA = contact\n .GetFixtureA()\n .GetBody().gdjsAssociatedBehavior,\n behaviorB = contact.GetFixtureB().GetBody().gdjsAssociatedBehavior;\n let i = behaviorA.currentContacts.indexOf(behaviorB);\n if (i !== -1) {\n behaviorA.currentContacts.splice(i, 1);\n }\n i = behaviorB.currentContacts.indexOf(behaviorA);\n if (i !== -1) {\n behaviorB.currentContacts.splice(i, 1);\n }\n };\n this.contactListener.PreSolve = function () {};\n this.contactListener.PostSolve = function () {};\n this.world.SetContactListener(this.contactListener);\n }\n\n /**\n * Get the shared data for a scene.\n */\n static getSharedData(runtimeScene, name) {\n if (!runtimeScene.physicsSharedData) {\n //Create the shared data if necessary.\n const initialData = runtimeScene.getInitialSharedDataForBehavior(name);\n runtimeScene.physicsSharedData = new gdjs.PhysicsSharedData(\n runtimeScene,\n initialData\n );\n }\n return runtimeScene.physicsSharedData;\n }\n\n step(dt) {\n this.totalTime += dt;\n if (this.totalTime > this.fixedTimeStep) {\n let numberOfSteps = Math.floor(this.totalTime / this.fixedTimeStep);\n this.totalTime -= numberOfSteps * this.fixedTimeStep;\n if (numberOfSteps > 5) {\n numberOfSteps = 5;\n }\n\n //Process 5 steps at max.\n for (let a = 0; a < numberOfSteps; a++) {\n this.world.Step(this.fixedTimeStep, 6, 10);\n }\n this.world.ClearForces();\n }\n this.stepped = true;\n }\n }\n gdjs.registerRuntimeSceneUnloadedCallback(function (runtimeScene) {\n //Callback that destroys the box2d.js world of PhysicsSharedData shared data of the scene\n if (runtimeScene.physicsSharedData) {\n Box2D.destroy(runtimeScene.physicsSharedData.world);\n }\n });\n\n /**\n * Allows objects to be moved in a realistic way thanks to a physics engine (Box2D).\n */\n export class PhysicsRuntimeBehavior extends gdjs.RuntimeBehavior {\n _box2DBody: any = null;\n _dynamic: any;\n _objectOldWidth: float = 0;\n _objectOldHeight: float = 0;\n _objectOldX: number = 0;\n _objectOldY: number = 0;\n _objectOldAngle: float = 0;\n _angularDamping: any;\n _linearDamping: any;\n _isBullet: boolean;\n _fixedRotation: float;\n _massDensity: any;\n _averageFriction: any;\n _averageRestitution: any;\n _shapeType: any;\n currentContacts: any = [];\n _sharedData: any;\n\n //Temporary objects used to avoid creating garbage:\n _tempb2Vec2: any;\n\n constructor(runtimeScene, behaviorData, owner) {\n super(runtimeScene, behaviorData, owner);\n this._dynamic = behaviorData.dynamic;\n this._angularDamping = behaviorData.angularDamping;\n this._linearDamping = behaviorData.linearDamping;\n this._isBullet = behaviorData.isBullet;\n this._fixedRotation = behaviorData.fixedRotation;\n this._massDensity = behaviorData.massDensity;\n this._averageFriction = behaviorData.averageFriction;\n this._averageRestitution = behaviorData.averageRestitution;\n this._shapeType = behaviorData.shapeType;\n if (this.currentContacts !== undefined) {\n this.currentContacts.length = 0;\n } else {\n }\n this._sharedData = PhysicsSharedData.getSharedData(\n runtimeScene,\n behaviorData.name\n );\n\n //Do not create body now: the object is not fully created.\n this._tempb2Vec2 = new Box2D.b2Vec2();\n }\n\n //See b2Vec2 method\n updateFromBehaviorData(oldBehaviorData, newBehaviorData): boolean {\n if (oldBehaviorData.dynamic !== newBehaviorData.dynamic) {\n if (newBehaviorData.dynamic) {\n this.setDynamic();\n } else {\n this.setStatic();\n }\n }\n if (oldBehaviorData.angularDamping !== newBehaviorData.angularDamping) {\n this.setAngularDamping(newBehaviorData.angularDamping);\n }\n if (oldBehaviorData.linearDamping !== newBehaviorData.linearDamping) {\n this.setLinearDamping(newBehaviorData.linearDamping);\n }\n if (oldBehaviorData.isBullet !== newBehaviorData.isBullet) {\n if (newBehaviorData.isBullet) {\n this.setAsBullet();\n } else {\n this.dontSetAsBullet();\n }\n }\n if (oldBehaviorData.fixedRotation !== newBehaviorData.fixedRotation) {\n if (newBehaviorData.fixedRotation) {\n this.setFixedRotation();\n } else {\n this.setFreeRotation();\n }\n }\n\n // TODO: make these properties updatable.\n if (oldBehaviorData.massDensity !== newBehaviorData.massDensity) {\n return false;\n }\n if (oldBehaviorData.averageFriction !== newBehaviorData.averageFriction) {\n return false;\n }\n if (\n oldBehaviorData.averageRestitution !==\n newBehaviorData.averageRestitution\n ) {\n return false;\n }\n if (oldBehaviorData.shapeType !== newBehaviorData.shapeType) {\n return false;\n }\n return true;\n }\n\n onDeActivate() {\n if (this._box2DBody !== null) {\n this._sharedData.world.DestroyBody(this._box2DBody);\n this._box2DBody = null;\n }\n }\n\n onDestroy() {\n this.onDeActivate();\n }\n\n /**\n * Return a Box2D.b2Vec2 with the specified coordinates.\n * Should be used instead of doing 'new Box2D.b2Vec2(x, y)'.\n */\n b2Vec2(x, y) {\n this._tempb2Vec2.set_x(x);\n this._tempb2Vec2.set_y(y);\n return this._tempb2Vec2;\n }\n\n createBody() {\n //Create body from object\n const bodyDef = new Box2D.b2BodyDef();\n bodyDef.set_type(\n this._dynamic ? Box2D.b2_dynamicBody : Box2D.b2_staticBody\n );\n bodyDef.set_position(\n this.b2Vec2(\n (this.owner.getDrawableX() + this.owner.getWidth() / 2) *\n this._sharedData.invScaleX,\n -(this.owner.getDrawableY() + this.owner.getHeight() / 2) *\n this._sharedData.invScaleY\n )\n );\n bodyDef.set_angle(-gdjs.toRad(this.owner.getAngle()));\n bodyDef.set_angularDamping(\n this._angularDamping > 0 ? this._angularDamping : 0\n );\n bodyDef.set_linearDamping(\n this._linearDamping > 0 ? this._linearDamping : 0\n );\n bodyDef.set_bullet(this._isBullet);\n bodyDef.set_fixedRotation(this._fixedRotation);\n this._box2DBody = this._sharedData.world.CreateBody(bodyDef);\n this._box2DBody.gdjsAssociatedBehavior = this;\n\n //We do not use SetUserData which only accept integers.\n\n //Setup the fixture\n let fixDef = null;\n\n /*else if ( this._shapeType === \"CustomPolygon\" ) {\n //TODO\n }*/\n if (this._shapeType === 'Circle') {\n const circle = new Box2D.b2CircleShape();\n circle.set_m_radius(\n (this.owner.getWidth() * this._sharedData.invScaleX +\n this.owner.getHeight() * this._sharedData.invScaleY) /\n 4\n );\n if (circle.get_m_radius() <= 0) {\n circle.set_m_radius(1);\n }\n fixDef = new Box2D.b2FixtureDef();\n fixDef.set_shape(circle);\n } else {\n //Box\n const box = new Box2D.b2PolygonShape();\n box.SetAsBox(\n ((this.owner.getWidth() > 0 ? this.owner.getWidth() : 1) *\n this._sharedData.invScaleX) /\n 2,\n ((this.owner.getHeight() > 0 ? this.owner.getHeight() : 1) *\n this._sharedData.invScaleY) /\n 2\n );\n fixDef = new Box2D.b2FixtureDef();\n fixDef.set_shape(box);\n }\n fixDef.set_density(this._massDensity);\n fixDef.set_friction(this._averageFriction);\n fixDef.set_restitution(this._averageRestitution);\n this._box2DBody.CreateFixture(fixDef);\n this._objectOldWidth = this.owner.getWidth();\n this._objectOldHeight = this.owner.getHeight();\n }\n\n doStepPreEvents(runtimeScene) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n\n //Simulate the world\n if (!this._sharedData.stepped) {\n this._sharedData.step(\n runtimeScene.getTimeManager().getElapsedTime() / 1000\n );\n }\n\n //Update object position according to Box2D body\n this.owner.setX(\n this._box2DBody.GetPosition().get_x() * this._sharedData.scaleX -\n this.owner.getWidth() / 2 +\n this.owner.getX() -\n this.owner.getDrawableX()\n );\n this.owner.setY(\n -this._box2DBody.GetPosition().get_y() * this._sharedData.scaleY -\n this.owner.getHeight() / 2 +\n this.owner.getY() -\n this.owner.getDrawableY()\n );\n this.owner.setAngle(-gdjs.toDegrees(this._box2DBody.GetAngle()));\n this._objectOldX = this.owner.getX();\n this._objectOldY = this.owner.getY();\n this._objectOldAngle = this.owner.getAngle();\n }\n\n getBox2DBody() {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return this._box2DBody;\n }\n\n doStepPostEvents(runtimeScene) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n\n //Ensure the Box2D body width and height are correct.\n if (\n this._objectOldWidth !== this.owner.getWidth() ||\n this._objectOldHeight !== this.owner.getHeight()\n ) {\n //Recreate the body, but remember its movement.\n const oldAngularVelocity = this._box2DBody.GetAngularVelocity();\n const oldXVelocity = this._box2DBody.GetLinearVelocity().get_x();\n const oldYVelocity = this._box2DBody.GetLinearVelocity().get_y();\n this._sharedData.world.DestroyBody(this._box2DBody);\n this.createBody();\n this._box2DBody.SetAngularVelocity(oldAngularVelocity);\n this._box2DBody.SetLinearVelocity(\n this.b2Vec2(oldXVelocity, oldYVelocity)\n );\n }\n this._sharedData.stepped = false;\n\n //Ensure that the Box2D body position is correct\n if (\n this._objectOldX == this.owner.getX() &&\n this._objectOldY == this.owner.getY() &&\n this._objectOldAngle == this.owner.getAngle()\n ) {\n return;\n }\n const pos = this.b2Vec2(\n (this.owner.getDrawableX() + this.owner.getWidth() / 2) *\n this._sharedData.invScaleX,\n -(this.owner.getDrawableY() + this.owner.getHeight() / 2) *\n this._sharedData.invScaleY\n );\n this._box2DBody.SetTransform(pos, -gdjs.toRad(this.owner.getAngle()));\n this._box2DBody.SetAwake(true);\n }\n\n setStatic(): void {\n this._dynamic = false;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetType(Box2D.b2_staticBody);\n }\n\n setDynamic(): void {\n this._dynamic = true;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetType(Box2D.b2_dynamicBody);\n this._box2DBody.SetAwake(true);\n }\n\n setFixedRotation(): void {\n this._fixedRotation = true;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetFixedRotation(true);\n }\n\n setFreeRotation(): void {\n this._fixedRotation = false;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetFixedRotation(false);\n }\n\n setAsBullet(): void {\n this._isBullet = true;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetBullet(true);\n }\n\n dontSetAsBullet() {\n this._isBullet = false;\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetBullet(false);\n }\n\n applyImpulse(xCoordinate, yCoordinate) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.ApplyLinearImpulse(\n this.b2Vec2(xCoordinate, -yCoordinate),\n this._box2DBody.GetPosition()\n );\n }\n\n applyImpulseUsingPolarCoordinates(angle, length) {\n angle = gdjs.toRad(angle);\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.ApplyLinearImpulse(\n this.b2Vec2(Math.cos(angle) * length, -Math.sin(angle) * length),\n this._box2DBody.GetPosition()\n );\n }\n\n applyImpulseTowardPosition(xPosition, yPosition, length) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n const angle = Math.atan2(\n yPosition * this._sharedData.invScaleY +\n this._box2DBody.GetPosition().get_y(),\n xPosition * this._sharedData.invScaleX -\n this._box2DBody.GetPosition().get_x()\n );\n this._box2DBody.ApplyLinearImpulse(\n this.b2Vec2(Math.cos(angle) * length, -Math.sin(angle) * length),\n this._box2DBody.GetPosition()\n );\n }\n\n applyForce(xCoordinate, yCoordinate) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.ApplyForce(\n this.b2Vec2(xCoordinate, -yCoordinate),\n this._box2DBody.GetPosition()\n );\n }\n\n applyForceUsingPolarCoordinates(angle, length) {\n angle = gdjs.toRad(angle);\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.ApplyForce(\n this.b2Vec2(Math.cos(angle) * length, -Math.sin(angle) * length),\n this._box2DBody.GetPosition()\n );\n }\n\n applyForceTowardPosition(xPosition, yPosition, length) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n const angle = Math.atan2(\n yPosition * this._sharedData.invScaleY +\n this._box2DBody.GetPosition().get_y(),\n xPosition * this._sharedData.invScaleX -\n this._box2DBody.GetPosition().get_x()\n );\n this._box2DBody.ApplyForce(\n this.b2Vec2(Math.cos(angle) * length, -Math.sin(angle) * length),\n this._box2DBody.GetPosition()\n );\n }\n\n applyTorque(torque) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.ApplyTorque(torque);\n }\n\n setLinearVelocity(xVelocity, yVelocity): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetLinearVelocity(this.b2Vec2(xVelocity, -yVelocity));\n }\n\n setAngularVelocity(angularVelocity): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetAngularVelocity(angularVelocity);\n }\n\n setLinearDamping(linearDamping): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetLinearDamping(linearDamping);\n }\n\n setAngularDamping(angularDamping): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetAngularDamping(angularDamping);\n }\n\n addRevoluteJointBetweenObjects(\n object,\n scene,\n xPosRelativeToMassCenter,\n yPosRelativeToMassCenter\n ) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n if (object == null || !object.hasBehavior(this.name)) {\n return;\n }\n const otherBody = object.getBehavior(this.name).getBox2DBody();\n if (this._box2DBody == otherBody) {\n return;\n }\n const jointDef = new Box2D.b2RevoluteJointDef();\n jointDef.Initialize(\n this._box2DBody,\n otherBody,\n this.b2Vec2(\n xPosRelativeToMassCenter * this._sharedData.invScaleX +\n this._box2DBody.GetWorldCenter().get_x(),\n yPosRelativeToMassCenter * this._sharedData.invScaleY +\n this._box2DBody.GetWorldCenter().get_y()\n )\n );\n this._sharedData.world.CreateJoint(jointDef);\n }\n\n addRevoluteJoint(xPosition, yPosition) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n const jointDef = new Box2D.b2RevoluteJointDef();\n jointDef.Initialize(\n this._box2DBody,\n this._sharedData.staticBody,\n this.b2Vec2(\n xPosition * this._sharedData.invScaleX,\n -yPosition * this._sharedData.invScaleY\n )\n );\n this._sharedData.world.CreateJoint(jointDef);\n }\n\n setGravity(xGravity, yGravity): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._sharedData.world.SetGravity(this.b2Vec2(xGravity, -yGravity));\n }\n\n addGearJointBetweenObjects(object, ratio) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n if (object == null || !object.hasBehavior(this.name)) {\n return;\n }\n const otherBody = object.getBehavior(this.name).getBox2DBody();\n if (this._box2DBody == otherBody) {\n return;\n }\n\n //Gear joint need a revolute joint to the ground for the two objects\n const jointDef1 = new Box2D.b2RevoluteJointDef();\n jointDef1.Initialize(\n this._sharedData.world.GetGroundBody(),\n this._box2DBody,\n this._box2DBody.GetWorldCenter()\n );\n const jointDef2 = new Box2D.b2RevoluteJointDef();\n jointDef2.Initialize(\n this._sharedData.world.GetGroundBody(),\n otherBody,\n otherBody.GetWorldCenter()\n );\n const jointDef = new Box2D.b2GearJointDef();\n jointDef.set_bodyA(this._box2DBody);\n jointDef.set_bodyB(otherBody);\n jointDef.set_joint1(this._sharedData.world.CreateJoint(jointDef1));\n jointDef.set_joint2(this._sharedData.world.CreateJoint(jointDef2));\n jointDef.set_ratio(ratio * 3.14159);\n this._sharedData.world.CreateJoint(jointDef);\n }\n\n setLinearVelocityX(xVelocity): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetLinearVelocity(\n this.b2Vec2(xVelocity, this._box2DBody.GetLinearVelocity().get_y())\n );\n }\n\n setLinearVelocityY(yVelocity): void {\n if (this._box2DBody === null) {\n this.createBody();\n }\n this._box2DBody.SetLinearVelocity(\n this.b2Vec2(this._box2DBody.GetLinearVelocity().get_x(), -yVelocity)\n );\n }\n\n getLinearVelocityX(): float {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return this._box2DBody.GetLinearVelocity().get_x();\n }\n\n getLinearVelocityY(): float {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return -this._box2DBody.GetLinearVelocity().get_y();\n }\n\n getLinearVelocity() {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return Math.sqrt(\n this._box2DBody.GetLinearVelocity().get_x() *\n this._box2DBody.GetLinearVelocity().get_x() +\n this._box2DBody.GetLinearVelocity().get_y() *\n this._box2DBody.GetLinearVelocity().get_y()\n );\n }\n\n getAngularVelocity() {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return this._box2DBody.GetAngularVelocity();\n }\n\n getLinearDamping() {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return this._box2DBody.GetLinearDamping();\n }\n\n getAngularDamping() {\n if (this._box2DBody === null) {\n this.createBody();\n }\n return this._box2DBody.GetAngularDamping();\n }\n\n collisionWith(otherObjectsTable) {\n if (this._box2DBody === null) {\n this.createBody();\n }\n\n //Getting a list of all objects which are tested\n const objects = gdjs.staticArray(\n PhysicsRuntimeBehavior.prototype.collisionWith\n );\n objects.length = 0;\n const objectsLists = gdjs.staticArray2(\n PhysicsRuntimeBehavior.prototype.collisionWith\n );\n otherObjectsTable.values(objectsLists);\n for (let i = 0, len = objectsLists.length; i < len; ++i) {\n objects.push.apply(objects, objectsLists[i]);\n }\n\n //Test if an object of the list is in collision with our object.\n for (let i = 0, len = objects.length; i < len; ++i) {\n for (let j = 0, lenj = this.currentContacts.length; j < lenj; ++j) {\n if (this.currentContacts[j].owner.id === objects[i].id) {\n return true;\n }\n }\n }\n return false;\n }\n\n isStatic(): boolean {\n return !this._dynamic;\n }\n\n isDynamic(): boolean {\n return this._dynamic;\n }\n }\n\n gdjs.registerBehavior(\n 'PhysicsBehavior::PhysicsBehavior',\n gdjs.PhysicsRuntimeBehavior\n );\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }