Enable DCM rule double-literal-format.
More details
[here](https://dcm.dev/docs/rules/common/double-literal-format/). This
both forbids trailing zeroes and mandates leading zeroes.
If we would prefer a different style (e.g. prefer no leading zero
instead), just lmk :)
Ember quest's run button was throwing an `unimplemented error`. This was
happening was `EmberQuestGame.loadGameSegments`'s pattern matching was
failing to match the block types. It seems for patterns involving
`Type`, the correct way is to use `const (Foo)`. See second example
[here](https://dart.dev/tools/linter-rules/type_literal_in_constant_pattern#details).
This PR bumps the min sdk constraint to 3.3.0. It also updates one of
the golden tests for flame_svg which was failing with a slight
difference in the svg output around the edges. The difference was very
minor an barely noticeable visually.
Expand flame_lint to respect required pub.dev checks.
We are currently losing pub points due to lint violations:

Turns out `flame_lint` does not respect lints/core which is being
enforced now by pub.
This adds that as a dependency on `flame_lint`, updates `flutter_lint`
for the packages that use that, and fix all existing violations (luckily
very few).
This change will ensure that us and everyone else who uses `flame_lint`
get all the points they deserve on pub. We can consider expanding to
`lints/recommended` in the future, but that is definitely not a
requirement at this stage (and a much bigger change).
- doc/tutorials/ platformer/app/lib/overlays/main_menu.dart: adjust
container height to avoid overflow
- doc/tutorials/space_shooter/app/lib/main.dart: more descriptive error
message when GET param (step) is missing
```
Package Name Current Version Updated Version Update Reason
flame 1.16.0 1.17.0 manual versioning
flame_forge2d 0.17.0 0.17.1 manual versioning
flame_oxygen 0.2.0 0.2.1 manual versioning
behavior_tree 0.1.0 0.1.1 updated with minor changes
flame_behavior_tree 0.1.0 0.1.1 updated with minor changes
flame_network_assets 0.3.0 0.3.1 updated with minor changes
flame_sprite_fusion 0.1.0 0.1.1 updated with minor changes
flame_texturepacker 3.1.0 3.2.0 updated with minor changes
flame_tiled 1.19.0 1.20.0 updated with minor changes
flame_test 1.16.0 1.16.1 dependency was updated
flame_isolate 0.6.0 0.6.0+1 dependency was updated
flame_fire_atlas 1.5.0 1.5.1 dependency was updated
flame_audio 2.10.0 2.10.1 dependency was updated
flame_spine 0.2.0 0.2.0+1 dependency was updated
flame_bloc 1.11.0 1.11.1 dependency was updated
flame_lottie 0.4.0 0.4.0+1 dependency was updated
flame_markdown 0.2.0 0.2.0+1 dependency was updated
flame_rive 1.10.0 1.10.1 dependency was updated
flame_noise 0.3.0 0.3.0+1 dependency was updated
flame_riverpod 5.4.0 5.4.1 dependency was updated
flame_svg 1.10.0 1.10.1 dependency was updated
```
```
The following 18 packages will be updated:
Package Name Current Version Updated Version Update Reason
flame 1.14.0 1.15.0 updated with minor changes
flame_isolate 0.5.0+7 0.5.1 updated with minor changes
flame_noise 0.1.1+12 0.2.0 updated with major changes
flame_riverpod 5.1.5 5.2.0 updated with minor changes
flame_test 1.15.3 1.15.4 updated with patch changes
flame_texturepacker 2.1.0 3.0.0 updated with major changes
flame_oxygen 0.1.9+7 0.1.9+8 dependency was updated
flame_tiled 1.18.3 1.18.4 dependency was updated
flame_fire_atlas 1.4.7 1.4.8 dependency was updated
flame_audio 2.1.7 2.1.8 dependency was updated
flame_spine 0.1.1+9 0.1.1+10 dependency was updated
flame_bloc 1.10.9 1.10.10 dependency was updated
flame_rive 1.9.10 1.9.11 dependency was updated
flame_lottie 0.3.0+7 0.3.0+8 dependency was updated
flame_markdown 0.1.1+7 0.1.1+8 dependency was updated
flame_forge2d 0.16.0+4 0.16.0+5 dependency was updated
flame_svg 1.8.9 1.8.10 dependency was updated
flame_network_assets 0.2.0+12 0.2.0+13 dependency was updated
```
```
The following 17 packages will be updated:
Package Name Current Version Updated Version Update Reason
flame 1.11.0 1.12.0 updated with minor changes
flame_riverpod 5.0.0 5.1.0 updated with minor changes
flame_test 1.15.0 1.15.1 dependency was updated
flame_tiled 1.18.0 1.18.1 dependency was updated
flame_oxygen 0.1.9+4 0.1.9+5 dependency was updated
flame_isolate 0.5.0+4 0.5.0+5 dependency was updated
flame_fire_atlas 1.4.4 1.4.5 dependency was updated
flame_audio 2.1.4 2.1.5 dependency was updated
flame_spine 0.1.1+6 0.1.1+7 dependency was updated
flame_bloc 1.10.6 1.10.7 dependency was updated
flame_lottie 0.3.0+4 0.3.0+5 dependency was updated
flame_markdown 0.1.1+4 0.1.1+5 dependency was updated
flame_rive 1.9.7 1.9.8 dependency was updated
flame_forge2d 0.16.0+1 0.16.0+2 dependency was updated
flame_noise 0.1.1+9 0.1.1+10 dependency was updated
flame_svg 1.8.6 1.8.7 dependency was updated
flame_network_assets 0.2.0+9 0.2.0+10 dependency was updated
```
This small PR adjusts:
1. some `backticks` (`) in the platformer tutorial in order to have a
proper highlight of the file names.
2. replaces backslash (`\`) with slash (`/`) in order to be consistent
with the other file paths used in the tutorial.
3. renames the variable `_xOffset` to `xOffset` in order to be
consistent with the rest of the code.
Co-authored-by: Rodrigo Castro <rodrigo.desouzacastro@bahag.com>
This is a first step towards enabling DCM for Flame. Though I have tested with all rules, and am working on selecting, assessing, and fixing violations, as a first step, we can merge the infrastructural changes to flame_lint to and GitHub actions.
As a proof of concept, I am enabling two rules for which we have no violations.
I will followup with enabling more rules, adding discussions for controversial changes, and fixing non-controversial violations.
The update method should end up with the code in this order, otherwise the velocity is never set to 0.
Probably obvious but the rest of the steps were precise on where to include these code blocks.
May wanna add this full block to the end of this step as well, I spent a few minutes trying to figure out why it wasn't working propely.
This PR adds the following lint rules to our list:
```
always_put_required_named_parameters_first
avoid_multiple_declarations_per_line
avoid_positional_boolean_parameters
avoid_returning_null_for_void
avoid_returning_this
avoid_unnecessary_containers
enable_null_safety
library_private_types_in_public_api
no_leading_underscores_for_library_prefixes
no_leading_underscores_for_local_identifiers
prefer_null_aware_method_calls
tighten_type_of_initializing_formals
unnecessary_late
use_setters_to_change_properties
```
And these rules were considered, and some changes were made according to
them as a clean-up, but in many places they didn't make sense
(`prefer_asserts_with_message` I would have included, but there were too
many places that needed to be changes):
```
collection_methods_unrelated_type
prefer_asserts_with_message
avoid_renaming_method_parameters
```