3302 Commits

Author SHA1 Message Date
3804f52434 fix: Lifecycle completers to be called for FlameGame (#3007)
Previously the `mounted`, `loaded` and `removed` completers for
`FlameGame` weren't called since `FlameGame` doesn't go through the
normal component lifecycle flow, this PR adds so that the completers are
completed properly.

Closes #3003
2024-01-28 19:54:35 +01:00
1e56293c1f feat: Add support for base64 encoded images to be manually added to Images cache. (#3008)
Adds a method so base64 encoded images can be manually added to the
Images cache.
2024-01-28 11:16:50 -03:00
45c87ddfb6 feat!: Transfer flame_texturepacker to monorepo (#2987)
This PR transfers the
[flame_texturepacker](https://github.com/Brixto/flame_texturepacker) to
the monorepo and updates it to be compatible with the rest of the
structure (linting etc).
2024-01-25 14:40:16 +00:00
3526626e6b docs: Add missing import in klondike tutorial (#3000) 2024-01-24 15:38:12 +00:00
afb411f8dc docs: SpaceShooter tutorial had an issue in its code for the bullet spawn (#2999)
Fixes #2980
2024-01-23 15:18:38 +00:00
ee73c1c22f docs: SpriteGroup -> SpriteGroupComponent (#2998)
Fix typo inside the documentation to avoid confusion. The header should
be 'SpriteGroupComponent' instead of 'SpriteGroup'.
2024-01-23 10:41:53 +01:00
6a1059b0a6 fix: CameraComponent no longer throws Concurrent modification on stop (#2997)
When camera is following a component and trying to follow another target
I got an exception:
```
dart:core                                              Iterable.forEach
package:flame/src/camera/camera_component.dart 326:25  CameraComponent.stop
package:flame/src/camera/camera_component.dart 309:5   CameraComponent.follow
test/camera/camera_component_test.dart 69:14           main.<fn>.<fn>
package:flame_test/src/test_flame_game.dart 80:21      testWithGame.<fn>

Concurrent modification during iteration: _Set len:0.
```

Copying viewfinder children before iterating through it and removing
child from parent does the trick, as we are not iterating through the
same list as we are removing items from, but rather a copy of it.

I tried to use camera from `game` provided in the test but it is AFAIK
not mounted and will hence not queue modifications (adds and removes).
Hence I create a new camera and mount it.
2024-01-23 08:55:05 +00:00
3c38ee6058 feat: Bumped integral_isolates package for flame_isolate (#2994)
Updated package dependencies for flame_isolate.
Added support for TailoredIsolate and computeStream (called
isolateComputeStream in flame_isolate).

Updated the example package with new sprites created by yours truly, and
updated the license for the package, now that there is no assets with
copy-left CC license remaining.

### Migration instructions

Computation function is renamed from `isolate` to `isolateCompute`.
There are future breaking changes that are, as of now, mitigated with a
`@Deprecated` annotation with information regarding what function to use
instead.
2024-01-22 21:08:33 +00:00
6702a48b1b docs: Space Shooter Tutorial had flutter app missing in some steps (#2993)
Adds flutter app block to the steps 4, 5 and 6 to the space shooter
tutorial, which were missing.
2024-01-22 16:36:23 -03:00
7681855d4d docs: Add an underscore to SpriteBatch example url (#2992)
Fix the `SpriteBatch` example URL described in issue
https://github.com/flame-engine/flame/issues/2991


Closes https://github.com/flame-engine/flame/issues/2991
2024-01-22 13:23:03 +00:00
7fbd5af935 feat: Make Component.key public (#2988)
Since the user might want to use the `ComponentKey` after it has been
assigned it should be made public.

It also updates `Consumer.key` to `Consumer.widgetKey` in flame_riverpod
to avoid a name clash. (Slightly breaking)


### Migration instructions

If you are using `consumer.key` from flame_riverpod you have to now use
`consumer.widgetKey` instead.

## Related Issues

Closes #2985
2024-01-22 10:38:40 +01:00
a6fe62a2c3 fix: Updated PolygonComponent.containsPoint to account for concave polygons (#2979)
Previously, the `PolygonComponent.containsPoint()` and
`.containsLocalPoint()` functions consisted of duplicate code that
checked whether a given point lies within a convex polygon. They didn't
function properly with concave polygons.

I created a new `_containsPoint()` function that is called from both
functions to reduce redundancies. This new function uses a different
approach to figure out whether a point lies within a polygon, which
should also work for concave polygons, or even polygons with holes. The
algorithm is vaguely explained within code comments, and is visualized
in this post: https://stackoverflow.com/a/218081/5008997

---------

Co-authored-by: Lukas Klingsbo <me@lukas.fyi>
2024-01-21 10:52:52 +00:00
cf09e04ac3 chore(deps): Bump jinja2 from 3.1.2 to 3.1.3 in /doc/_sphinx (#2986)
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.2 to 3.1.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/jinja/releases">jinja2's
releases</a>.</em></p>
<blockquote>
<h2>3.1.3</h2>
<p>This is a fix release for the 3.1.x feature branch.</p>
<ul>
<li>Fix for <a
href="https://github.com/pallets/jinja/security/advisories/GHSA-h5c8-rqwp-cp95">GHSA-h5c8-rqwp-cp95</a>.
You are affected if you are using <code>xmlattr</code> and passing user
input as attribute keys.</li>
<li>Changes: <a
href="https://jinja.palletsprojects.com/en/3.1.x/changes/#version-3-1-3">https://jinja.palletsprojects.com/en/3.1.x/changes/#version-3-1-3</a></li>
<li>Milestone: <a
href="https://github.com/pallets/jinja/milestone/15?closed=1">https://github.com/pallets/jinja/milestone/15?closed=1</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/jinja/blob/main/CHANGES.rst">jinja2's
changelog</a>.</em></p>
<blockquote>
<h2>Version 3.1.3</h2>
<p>Released 2024-01-10</p>
<ul>
<li>Fix compiler error when checking if required blocks in parent
templates are
empty. :pr:<code>1858</code></li>
<li><code>xmlattr</code> filter does not allow keys with spaces.
GHSA-h5c8-rqwp-cp95</li>
<li>Make error messages stemming from invalid nesting of <code>{% trans
%}</code> blocks
more helpful. :pr:<code>1918</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d9de4bb215"><code>d9de4bb</code></a>
release version 3.1.3</li>
<li><a
href="50124e1656"><code>50124e1</code></a>
skip test pypi</li>
<li><a
href="9ea7222ef3"><code>9ea7222</code></a>
use trusted publishing</li>
<li><a
href="da703f7aae"><code>da703f7</code></a>
use trusted publishing</li>
<li><a
href="bce1746925"><code>bce1746</code></a>
use trusted publishing</li>
<li><a
href="7277d8068b"><code>7277d80</code></a>
update pre-commit hooks</li>
<li><a
href="5c8a105224"><code>5c8a105</code></a>
Make nested-trans-block exceptions nicer (<a
href="https://redirect.github.com/pallets/jinja/issues/1918">#1918</a>)</li>
<li><a
href="19a55db3b4"><code>19a55db</code></a>
Make nested-trans-block exceptions nicer</li>
<li><a
href="716795349a"><code>7167953</code></a>
Merge pull request from GHSA-h5c8-rqwp-cp95</li>
<li><a
href="7dd3680e6e"><code>7dd3680</code></a>
xmlattr filter disallows keys with spaces</li>
<li>Additional commits viewable in <a
href="https://github.com/pallets/jinja/compare/3.1.2...3.1.3">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jinja2&package-manager=pip&previous-version=3.1.2&new-version=3.1.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/flame-engine/flame/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-21 11:43:51 +01:00
1d9fe61392 fix: Add missing generic to ComponentViewportMargin (#2983)
Improve `ComponentViewportMargin` (see #2982)


Closes #2982
2024-01-16 19:40:06 +01:00
2e5e64d654 docs: Remove HasDraggables in JoystickComponent example docs (#2981)
* Removes `HasDraggables` reference; fixes #2975
* velocity -> relativeDelta


Closes #2975
2024-01-15 08:42:40 +01:00
622c855318 fix: Add Template param to RiverpodGameMixin (#2972)
This PR adds a template parameter to the `RiverpodGameMixin` as it is
done with all other mixins on `FlameGame` throughout the codebase. This
allows to use this mixin on `FlameGame`s that use a different `World`
(for example `Forge2DGame` with `Forge2DWorld`).


I have not created an issue as the solution is straigtforward and this
PR implements the solution.
2024-01-11 14:41:12 +00:00
034d8211d6 docs: Improve documentation for onLoad (#2970)
This PR improves the documentation for the component lifecycle, in
particular for the `onLoad` method being executed before `onGameResize`
and `onMount`.


Closes #2969

Co-authored-by: Lukas Klingsbo <me@lukas.fyi>
2024-01-09 20:49:33 +00:00
d7c53e230f feat: Add a hitboxFilter argument to raycast() (#2968)
Adds a new argument callback to all `raycast*` methods that lets the
user ignore hitboxes dynamically. The callback is called with every
prospective hitbox, and the hitbox is only considered when the callback
returns `true`.

This is faster, in the general case, than the current `ignoreHitboxes`
aproach. And it lets the developer have dynamic rules about what the
rays collide with. (For example, a line-of-fire raycast should take
friendlies into account, but could easily ignore other enemies that get
in the way.)



Closes #2966
2024-01-09 13:21:48 +01:00
74309c173a chore(release): Publish flame_riverpod 5.1.5 (#2965)
```
Package Name     Current Version   Updated Version   Update Reason
flame_riverpod   5.1.4             5.1.5             updated with patch changes
```
flame_riverpod-v5.1.5
2024-01-07 15:52:42 -03:00
7ac80a78e9 fix: Change return type of RiverpodComponentMixin.onLoad to FutureOr<void> (#2964)
This PR changes the return type of RiverpodComponentMixin.onLoad to
match that of Component.onLoad.

This resolves #2961 which describes an error preventing use of
RiverpodComponentMixin on Component subclasses that return a Future in
their implementation of onLoad due to a signature mismatch.


Closes #2961.

---------

Co-authored-by: Lukas Klingsbo <lukas.klingsbo@gmail.com>
2024-01-07 17:09:56 +00:00
f96a2c5216 chore(release): Publish Flame v1.14.0 (#2960)
```
Package Name           Current Version   Updated Version   Update Reason
flame                  1.13.1            1.14.0            manual versioning
flame_forge2d          0.16.0+3          0.16.0+4          updated with patch changes
flame_test             1.15.2            1.15.3            dependency was updated
flame_tiled            1.18.2            1.18.3            dependency was updated
flame_oxygen           0.1.9+6           0.1.9+7           dependency was updated
flame_isolate          0.5.0+6           0.5.0+7           dependency was updated
flame_fire_atlas       1.4.6             1.4.7             dependency was updated
flame_audio            2.1.6             2.1.7             dependency was updated
flame_spine            0.1.1+8           0.1.1+9           dependency was updated
flame_bloc             1.10.8            1.10.9            dependency was updated
flame_lottie           0.3.0+6           0.3.0+7           dependency was updated
flame_markdown         0.1.1+6           0.1.1+7           dependency was updated
flame_rive             1.9.9             1.9.10            dependency was updated
flame_noise            0.1.1+11          0.1.1+12          dependency was updated
flame_riverpod         5.1.3             5.1.4             dependency was updated
flame_svg              1.8.8             1.8.9             dependency was updated
flame_network_assets   0.2.0+11          0.2.0+12          dependency was updated
```
flame_markdown-v0.1.1+7 flame_test-v1.15.3 flame_tiled-v1.18.3 flame_audio-v2.1.7 flame_noise-v0.1.1+12 flame_svg-v1.8.9 flame_bloc-v1.10.9 flame_network_assets-v0.2.0+12 flame_fire_atlas-v1.4.7 flame_oxygen-v0.1.9+7 flame_forge2d-v0.16.0+4 flame_isolate-v0.5.0+7 flame_lottie-v0.3.0+7 flame-v1.14.0 flame_spine-v0.1.1+9 flame_rive-v1.9.10 flame_riverpod-v5.1.4 1.14.0 v1.14.0
2024-01-04 23:34:46 +01:00
6858eae076 fix: Set hitbox debugColor to yellow (#2958)
To easily be able to spot whether a it is a hitbox that is being drawn
in `debugMode = true` it is now yellow instead of purple like the other
debug boxes.
2024-01-04 22:03:10 +00:00
1085518fe2 fix: Consider displaced hitboxes in GestureHitboxes mixin (#2957)
Previously the point sent in to `containsLocalPoint` for
`GestureHitboxes` didn't take the parent transformation into
consideration, this is fixed in this PR.
2024-01-04 22:56:07 +01:00
75cf23908e feat: Notifier for changing current sprite/animation in group components (#2956)
With these new notifiers you can get notified when the current animation
or sprite changes in the group components.
The value notifier is not initialized unless the user tries to use it,
so it doesn't carry any extra weight on the components.
2024-01-04 17:18:14 +00:00
7969321e86 fix: PolygonComponent.containsLocalPoint to use anchor (#2953)
Apparently `PolygonComponent.containsLocalPoint` has to take the anchor
into consideration, I have no idea how nobody noticed this before...
2024-01-04 16:56:02 +00:00
4f58329cea fix: Wake up bodies on gravity change (#2954)
Since bodies that are sleeping won't be affected by a new gravity, all
bodies must be woken up when the gravity changes.
2024-01-03 09:53:48 +01:00
0979dc97f5 refactor!: Remove the Projector interface that is no longer used for coordinate transformations (#2955)
Remove the Projector interface that is no longer used for coordinate
transformations.

While this is exposed to end-users there is not much point in doing so
as it was always an internal detail of our implementation.
Since our last batch of removals of the old event system, this was left
orphaned.

I don't think deprecation is necessary as it is very unlikely that
anyone is using this interface (and if they are, they can easily declare
their own as we do not care about it anywhere).



This interface is no longer necessary to interop with Flame in any way
shape or form.
If you wish to use it internally in your game you can just declare it
yourself.
2024-01-01 16:31:59 -05:00
1dc331138b chore(release): Publish flame_riverpod v5.1.3 (#2951)
```
Package Name     Current Version   Updated Version   Update Reason
flame_riverpod   5.1.2             5.1.3             manual versioning
```
flame_riverpod-v5.1.3
2023-12-22 11:53:44 +01:00
230fb88fa9 fix: Fix logic inside flame_riverpod persistent frame callback. (#2950)
In #2943 a persistent frame callback was added to
RiverpodAwareGameWidget's state class, in order to handle multiple
requests in rapid succession to rebuild the widget safely, in response
to [this
thread](https://discord.com/channels/509714518008528896/516639688581316629/1186421112217813062)
on the Discord.

<details>
  <summary>Walkthrough of issue with previous block</summary>
  
**Stage 1:**
forceBuild has been called for the first time, `_isForceBuilding` set to
true

**Stage 2:**
forceBuild has been called a second time before the setState has
completed. `_hasQueuedBuild` is set to true.

**Stage 3:**
The persistent callback is hit. As `_hasQueuedBuild` is true,
`_isForceBuilding` is set to true again, `_hasQueuedBuild` is set to
false / consumed, forceBuild is called again.

**Stage 4:** 
Inside forceBuild, `_isForceBuilding` is still true as it was set inside
the persistent frame callback. Repeat Stage 2
</details>


N/A
2023-12-22 09:35:40 +01:00
c30cd1c00e chore(release): Flame v1.13.1 (#2949)
```
Package Name     Current Version   Updated Version   Update Reason
flame            1.13.0            1.13.1            manual versioning
flame_riverpod   5.1.1             5.1.2             manual versioning
```
flame-v1.13.1 flame_riverpod-v5.1.2 1.13.1 v1.13.1
2023-12-21 21:19:24 +00:00
cefe4e7599 docs: SpaceShooter Bullet SpawnComponent (#2948)
Use a `SpawnComponent` instead of a `TimerComponent` to spawn bullets on
the Space Shooter tutorial.
2023-12-21 21:06:14 +00:00
37c7a075a3 feat: Adding ability for a SpawnComponent to not auto start (#2947)
`SpawnComponent` didn't had the ability to not auto start. This PR adds
a new attribute in order to customize that.

Co-authored-by: Lukas Klingsbo <me@lukas.fyi>
2023-12-21 19:59:22 +00:00
6ee9ffe50d docs: Improving collision on SpaceShooter tutorial (#2946)
Improves the collision code of the space shooter tutorial.


Replace or remove this text.
2023-12-21 15:07:57 -03:00
bd130b711b fix: The visibleGameSize should be based on viewport.virtualSize (#2945)
The `visibleGameSize` should be based on the virtual size of the
viewport, otherwise it won't work for `FixedResolutionViewport` for
example.
We noticed this when using the `ScreenHitbox` in a world that was looked
upon by a camera with a `FixedResolutionViewport`.
2023-12-21 16:42:07 +00:00
093a702a76 docs: Improving Space Shooter tutorial by moving attributes to constructors (#2944)
This PR improves the Space Shooter Tutorial as a whole by moving the
setting of component's attributes from their `onLoad` method, to their
constructors.
2023-12-21 17:35:25 +01:00
1b1e489040 docs: Adding Space Shooter Step 6 (#2936)
Adds the sixth step for the space shooter tutorial.
2023-12-21 15:09:22 +01:00
54d0e95d86 fix: Package flame_riverpod, setState() or markNeedsBuild() called during build. (#2943)
The forceRebuild function now has an "isDirty" check to determine
whether setState should be called. Previously, setState was uncritically
invoked which *could* produce the Flutter framework error that occurs
when setState is called while widgets are still being rebuilt.

The setState call inside ref.watch has been replaced with a call to
forceRebuild, and forceRebuild now has checks to prevent setState from
being called while a build is in progress. A persistent frame callback
has been added to reset supporting flags.


N/A. Customer reported issue[ via
Discord.](https://discord.com/channels/509714518008528896/1186421112217813062/1186908306179100723)
2023-12-21 13:27:07 +00:00
6be2b431c9 docs: Improvement on animation docs (#2940)
This is based on #2939.


Closes #2939
2023-12-21 13:05:03 +01:00
bf91ba9fe0 docs: Fix table of content (#2938)
Removes the accidentally extra added toc and bumps all dependencies.
2023-12-20 19:27:36 +00:00
5fd0ba3dd5 docs: Fix sphinx warnings (#2937)
This fixes the warnings that sphinx was throwing when building.
It most likely doesn't fix the mermaid rendering though.
2023-12-20 18:35:57 +00:00
6ca50b0d12 docs: Adding VGV's article on ghost line issue for tiled (#2935)
Adding VGV's article on ghost line issue for tiled
2023-12-20 16:54:08 +00:00
f1d94ca376 chore(release): Flame v1.13.0 (#2934)
```
Package Name           Current Version   Updated Version   Update Reason
flame                  1.12.0            1.13.0            updated with minor changes
flame_rive             1.9.8             1.9.9             updated with patch changes
flame_riverpod         5.1.0             5.1.1             updated with patch changes
flame_tiled            1.18.1            1.18.2            updated with patch changes
flame_test             1.15.1            1.15.2            dependency was updated
flame_oxygen           0.1.9+5           0.1.9+6           dependency was updated
flame_isolate          0.5.0+5           0.5.0+6           dependency was updated
flame_fire_atlas       1.4.5             1.4.6             dependency was updated
flame_audio            2.1.5             2.1.6             dependency was updated
flame_spine            0.1.1+7           0.1.1+8           dependency was updated
flame_bloc             1.10.7            1.10.8            dependency was updated
flame_lottie           0.3.0+5           0.3.0+6           dependency was updated
flame_markdown         0.1.1+5           0.1.1+6           dependency was updated
flame_svg              1.8.7             1.8.8             dependency was updated
flame_forge2d          0.16.0+2          0.16.0+3          dependency was updated
flame_noise            0.1.1+10          0.1.1+11          dependency was updated
flame_network_assets   0.2.0+10          0.2.0+11          dependency was updated
```
flame_test-v1.15.2 flame_tiled-v1.18.2 flame_svg-v1.8.8 flame_isolate-v0.5.0+6 flame_lottie-v0.3.0+6 flame_fire_atlas-v1.4.6 flame_forge2d-v0.16.0+3 flame-v1.13.0 flame_markdown-v0.1.1+6 flame_network_assets-v0.2.0+11 flame_riverpod-v5.1.1 flame_noise-v0.1.1+11 flame_audio-v2.1.6 flame_spine-v0.1.1+8 flame_oxygen-v0.1.9+6 flame_rive-v1.9.9 flame_bloc-v1.10.8 1.13.0 v1.13.0
2023-12-19 16:40:51 +01:00
c2e6ea71e5 fix: Add super constructor fields to RiverpodAwareGameWidget (#2932)
Added missing fields from the GameWidget default constructor to the
RiverpodAwareGameWidget constructor.

This PR was already discussed on the Discord server with spydon.

This PR is not a breaking change.
2023-12-18 21:48:14 +00:00
7f563d73b2 docs: SpaceShooter tutorial step 5 (#2924)
5th step of the space shooter tutorial.

---------

Co-authored-by: Lukas Klingsbo <me@lukas.fyi>
2023-12-18 20:32:01 +01:00
8cee80c35c fix: Logic error in MemoryCache.setValue() (#2931)
Fixes a logic error which prevented values in `MemoryCache` from being
updated when calling `setValue` with a preexisting `key`.


Replace or remove this text.
2023-12-18 13:59:45 +01:00
3730cb1d83 fix: Export ScalingParticle (#2928)
The `ScalingParticle` wasn't exported, this exports it and corrects the
dartdocs.
2023-12-17 17:06:00 +00:00
b526aa1488 feat: Ability to use selfPositioning in SpawnComponent (#2927)
This adds the `selfPositioning` argument to the `SpawnComponent` so that
you can set the position of your components within the `factory` without
it getting overwritten be a random position for the `area`.


Closes #2923
2023-12-17 16:58:45 +00:00
67f7c126b4 feat: Add margin and spacing properties to SpriteSheet (#2925)
This PR adds `margin` and `spacing` properties to the `SpriteSheet`
APIs. This will allow loading images that have margin and spacing in the
tiles.

---------

Co-authored-by: Lukas Klingsbo <me@lukas.fyi>
2023-12-17 17:51:48 +01:00
dbdb1379d0 fix: Misalignment of the hittest area of PolygonHitbox (#2930)
When performing a pointer hit test using PolygonHitbox, there may be a
discrepancy between the expected range and the range in which the hit
test succeeds. If the polygon shape has an offset at the top left, the
hit test will behave as if there is no offset.

Investigation revealed that the cause was in the calculation of
containsLocalPoint() in the PolygonComponent. The unnecessary offset
calculation was removed, and the hit test is now performed in the
expected range.


Closes #2758

---------

Co-authored-by: Lukas Klingsbo <me@lukas.fyi>
2023-12-17 17:19:17 +01:00
576fac3f0d docs: Fix typo in text_rendering.md (#2929)
Fix a typo in text_rendering.md file.
2023-12-17 13:42:13 +00:00