Commit graph

11690 commits

Author SHA1 Message Date
Richard Davey
36bbc88995 Removed HexagonalWorldToTileY as it cannot work without an X value 2022-11-24 12:41:42 +00:00
Richard Davey
cf657f4fc7 Calling Tilemap.worldToTileX or worldToTileY on a Isometric or Hexagonal Tilemap will now always return null instead of doing nothing, as you cannot convert to a tile index using just one coordinate for these map types, you should use worldToTileXY instead. 2022-11-24 00:42:13 +00:00
Richard Davey
70cf842b8c Added NULL OP 2022-11-24 00:42:04 +00:00
Richard Davey
c8b40de29c Improved jsdocs 2022-11-24 00:41:55 +00:00
Richard Davey
6aa193c21b Added new getIsoTileAtWorldXY method. 2022-11-24 00:27:01 +00:00
Richard Davey
25bc5dec90 Fixed world to isometric conversion and added optional base origin property.
Fix #5781
2022-11-24 00:26:40 +00:00
Richard Davey
fa6963319a The Game.headlessStep method will now reset SceneManager.isProcessing before PRE_RENDER. This fixes issues in HEADLESS mode where the Scene Manager wouldn't process additionally added Scenes created after the Game had started. Fix #5872 #5974 2022-11-23 16:14:15 +00:00
Richard Davey
384276ef0e If Rope.setPoints was called with the exact same number of points as before, it wouldn't set the dirty flag, meaning the vertices were not updated on the next render 2022-11-23 15:24:55 +00:00
Richard Davey
c0e592770f Update BitmapTextWord.js 2022-11-23 15:10:50 +00:00
Richard Davey
e0a8486dbc Update BitmapTextWord.js 2022-11-23 14:22:13 +00:00
Richard Davey
5d77e1fdc8 Particle.fire will now check to see if the parent Emitter is set to follow a Game Object and if so, and if the x/y EmitterOps are spread ops, then it'll space the particles out based on the follower coordinates, instead of clumping them all together. Fix #5847 2022-11-23 00:29:12 +00:00
Richard Davey
5f35c016f3 Upgrade Earcut
Earcut has been updated to version 2.2.4. This release improves performance by 10-15% and fixes 2 rare race conditions that could leave to infinite loops. Earcut is used internally by Graphics and Shape game objects when triangulating polygons for complex shapes.
2022-11-22 23:51:20 +00:00
Richard Davey
64ede38b9d Added more docs confirming overrides. Fix #6046 2022-11-22 23:37:20 +00:00
Richard Davey
03b1ed62d1 When using RTL (right-to-left) Text Game Objects, the Text would vanish on iOS15+ if you changed the text or font style. The context RTL properties are now restored when the text is updated, fixing this issue. Fix #6121 2022-11-22 22:58:48 +00:00
Richard Davey
886920155b Add generics 2022-11-22 21:55:30 +00:00
Richard Davey
49c2f106b5 Swapped to non-instance based checks and added generics 2022-11-22 20:35:59 +00:00
Richard Davey
9bdf022bed The BaseSoundManager.getAll method used to require a key parameter, to return Sounds matching the key. This is now optional and if not given, all Sound instances are returned. 2022-11-22 18:49:37 +00:00
Richard Davey
320317c884 The WebAudioSoundManager will now detect if the Audio Context enters a 'suspended' or 'interrupted' state as part of its update loop and if so it'll try to resume the context. This can happen if you change or disable the audio device, such as plugging in headphones with built-in audio drivers then disconnecting them, or swapping tabs on iOS. Fix #5353 2022-11-22 18:38:49 +00:00
Richard Davey
ee2b5f5e35 Clarify jsdocs. Fix #6043 2022-11-22 18:26:13 +00:00
Richard Davey
9357b8e609 The RenderTarget class will now create a Framebuffer that includes a Depth Stencil Buffer attachment by default. Previously, it didn't. By attaching a stencil buffer it allows things like Geometry Masks to work in combination with Post FX and other Pipelines. Fix #5802 2022-11-22 18:13:03 +00:00
Richard Davey
e7efa068a7 Previously, calling createBitmapMask on a Shape Game Object would fail unless you passed the shape to the method. Now, it will correctly create a mask from the Shape without needing to pass it. Fix #5976 2022-11-22 17:40:56 +00:00
Richard Davey
95ef3f9c25 Update Container.js 2022-11-22 00:19:02 +00:00
Richard Davey
436a42cfb4 The InputPlugin.sortGameObjects method was using the Camera Render List to determine the Game Object display list. This would exclude non-rendering objects, such as Game Objects with alpha set to zero, even if their Input alwaysEnable flag was set. This method now uses the Display List instead, which gives correct results for invisible 'always enabled' objects. Fix #5507 2022-11-21 23:26:44 +00:00
Richard Davey
154e262ae8 No point doing this twice 2022-11-21 22:46:01 +00:00
Richard Davey
45fbebb53a BaseSoundManager.getAllPlaying is a new method that will return all currently playing sounds in the Sound Manager.
Fix #6147
2022-11-21 21:38:54 +00:00
Richard Davey
d71b53a7f5 Updated jsdocs. Fix #5981 2022-11-18 22:14:59 +00:00
Richard Davey
0f4bd028ce Corrected jsdocs. Fix #6113 2022-11-18 22:09:05 +00:00
Richard Davey
d4b386aa90 Added generics to Container 2022-11-18 22:04:39 +00:00
Richard Davey
84cdbdd560 Added generics. Fix #6140 2022-11-18 21:30:28 +00:00
Richard Davey
b28eaf8da7 Added generics to Scene Manager functions. Fix #5662 2022-11-17 22:13:24 +00:00
Richard Davey
d48f548472 TS defs update. Fix #5665 2022-11-17 18:40:24 +00:00
Richard Davey
e608c2caf1 The CONTEXT_RESTORED Game Event has been removed and the WebGL Renderer no longer listens for the contextrestored DOM event, or has a contextRestoredHandler method. This never actually worked properly, in any version of Phaser 3 - although the WebGLRenderer would be restored, none of the shaders, pipelines or textures were correctly re-created. If a context is now lost, Phaser will display an error in the console and all rendering will halt. It will no longer try to re-create the context, leading to masses of WebGL errors in the console. Instead, it will die gracefully and require a page reload. 2022-11-17 18:04:51 +00:00
Richard Davey
1b8495f4ec Update TweenChain.js 2022-11-17 17:31:25 +00:00
Richard Davey
c9d7a76998 The Light fragment shader will now use the outTintEffect attribute meaning the Light Pipeline will now correctly light both tinted and fill-tinted Game Objects. Fix #5452 2022-11-17 17:25:47 +00:00
Richard Davey
8c7c8ee2a4 The batchLine method in the Multi Pipeline will now check to see if the dxdy len is zero, and if so, it will abort drawing the line. This fixes issues on older Android devices, such as the Samsung Galaxy S6 or Kindle 7, where it would draw erroneous lines leading up to the top-left of the canvas under WebGL when rendering a stroked rounded rectangle. Fix #5429 2022-11-17 16:49:10 +00:00
Richard Davey
ce12d63d01 The Tilemap.destroyLayer method would throw an error "TypeError: layer.destroy is not a function". It now correctly destroys the TilemapLayer. Fix #6268 2022-11-17 14:34:46 +00:00
Richard Davey
759599e4d1 MapData and ObjectLayer will now enforce that the Tilemap.objects property is always an array. Sometimes Tiled willl set it to be a blank object in the JSON data. This fix makes sure it is always an array. Fix #6139 2022-11-17 14:28:23 +00:00
Richard Davey
05845c6ee0 The ParseJSONTiled function will now run a DeepCopy on the source Tiled JSON, which prevents object mutation, fixing an issue where Tiled Object Layer names would be duplicated if used across multiple Tilemap instances. Fix #6212 2022-11-17 14:17:58 +00:00
Richard Davey
2f720246ab Reset the buffer and textures on rebind. 2022-11-15 21:54:43 +00:00
Richard Davey
6220d9b18d Fake this flag to allow Bobs to get a physics body. Fix #6284 2022-11-14 21:41:37 +00:00
Richard Davey
11def7bf38 Added addMultiple and removed ability from add and chain to pass in arrays of configs 2022-11-14 17:04:05 +00:00
Richard Davey
c5e10cd3f1 Fix #6052 2022-11-10 22:14:18 +00:00
Richard Davey
cfc8e4df3d Preparing for Beta 15 2022-11-10 16:21:07 +00:00
Richard Davey
064e8a3ec2 Fixed type issues 2022-11-10 16:05:20 +00:00
Richard Davey
c546a38ae2 Updated jsdocs 2022-11-10 15:10:50 +00:00
Richard Davey
465bf07334 The GameObjects.Components.Mask.createBitmapMask method can now accept the x, y, texture and frame parameters new to the BitmapMask constructor. 2022-11-10 15:09:27 +00:00
Richard Davey
b457e42a2f The Light Pipeline will now check to see if a Light2D enabled Game Object has a parent Container, or not, and factor the rotation and scale of this into the light calculation. Fix #6086 2022-11-09 18:18:35 +00:00
Richard Davey
6b9872fb33 The method Color.setFromHSV would not change the members h, s and v, only the RGB properties. It now correctly updates them both. Fix #6276 2022-11-09 16:30:38 +00:00
Richard Davey
778b3e7f52 Allow key presses during pre-create stage 2022-11-08 23:32:58 +00:00
Richard Davey
987e769b6b Scenes.Systems.canInput is a new internal method that determines if a Scene can receive Input events, or not. This is now used by the InputPlugin instead of the previous isActive test. This allows a Scene to emit and handle input events even when it is running init or preload. Previously, it could only do this after create had finished running. Fix #6123 2022-11-08 23:21:33 +00:00