Files
Lukas Klingsbo dbda37b81a refactor: Add new lint rules (#2477)
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
```
2023-04-13 19:42:00 +00:00

33 lines
704 B
Dart
Executable File

import 'package:flame/components.dart';
import 'package:flutter/cupertino.dart';
import 'package:quiver/core.dart';
@immutable
class IntVector2 {
final int x;
final int y;
const IntVector2(this.x, this.y);
/// Manhattan distance on a square grid
int distanceTo(IntVector2 b) {
return (x - b.x).abs() + (y - b.y).abs();
}
@override
bool operator ==(Object other) =>
other is IntVector2 && x == other.x && y == other.y;
@override
int get hashCode => hash2(x, y);
@override
String toString() {
return '$x : $y';
}
IntVector2 add({int x = 0, int y = 0}) => IntVector2(this.x + x, this.y + y);
Vector2 toPosition() => Vector2(x.toDouble(), y.toDouble());
}