fix: Deprecate HasGameRef in favor of HasGameReference (#3559)

This deprecates `HasGameRef` and suggests users to use
`HasGameReference` instead.
This commit is contained in:
Lukas Klingsbo
2025-04-14 20:45:17 +02:00
committed by GitHub
parent eaa2b442b7
commit a882261b63
17 changed files with 22 additions and 18 deletions

View File

@ -1377,7 +1377,7 @@ class Player extends SpriteComponent with Notifier {
Then our hud component could look like:
```dart
class Hud extends PositionComponent with HasGameRef {
class Hud extends PositionComponent with HasGameReference {
@override
void onLoad() {

View File

@ -46,7 +46,7 @@ class MyGame extends FlameGame {
}
}
class Player extends SpriteComponent with HasGameRef {
class Player extends SpriteComponent with HasGameReference {
Player(this.joystick)
: super(
anchor: Anchor.center,

View File

@ -3,7 +3,7 @@ import 'package:flame/components.dart';
import 'package:rogue_shooter/components/enemy_component.dart';
class BulletComponent extends SpriteAnimationComponent
with HasGameRef, CollisionCallbacks {
with HasGameReference, CollisionCallbacks {
static const speed = 500.0;
late final Vector2 velocity;
final Vector2 deltaPosition = Vector2.zero();

View File

@ -3,7 +3,7 @@ import 'dart:math';
import 'package:flame/components.dart';
import 'package:rogue_shooter/components/enemy_component.dart';
class EnemyCreator extends TimerComponent with HasGameRef {
class EnemyCreator extends TimerComponent with HasGameReference {
final Random random = Random();
final _halfWidth = EnemyComponent.initialSize.x / 2;

View File

@ -1,6 +1,7 @@
import 'package:flame/components.dart';
class ExplosionComponent extends SpriteAnimationComponent with HasGameRef {
class ExplosionComponent extends SpriteAnimationComponent
with HasGameReference {
ExplosionComponent({super.position})
: super(
size: Vector2.all(50),

View File

@ -5,7 +5,7 @@ import 'package:rogue_shooter/components/enemy_component.dart';
import 'package:rogue_shooter/components/explosion_component.dart';
class PlayerComponent extends SpriteAnimationComponent
with HasGameRef, CollisionCallbacks {
with HasGameReference, CollisionCallbacks {
late TimerComponent bulletCreator;
PlayerComponent() : super(size: Vector2(50, 75), anchor: Anchor.center);

View File

@ -4,7 +4,7 @@ import 'package:flame/components.dart';
import 'package:flame/sprite.dart';
import 'package:rogue_shooter/components/star_component.dart';
class StarBackGroundCreator extends Component with HasGameRef {
class StarBackGroundCreator extends Component with HasGameReference {
final gapSize = 12;
late final SpriteSheet spriteSheet;

View File

@ -1,6 +1,6 @@
import 'package:flame/components.dart';
class StarComponent extends SpriteAnimationComponent with HasGameRef {
class StarComponent extends SpriteAnimationComponent with HasGameReference {
static const speed = 10;
StarComponent({super.animation, super.position})

View File

@ -180,7 +180,7 @@ class Map extends Component {
}
}
class Rock extends SpriteComponent with HasGameRef, TapCallbacks {
class Rock extends SpriteComponent with HasGameReference, TapCallbacks {
Rock(Vector2 position)
: super(
position: position,

View File

@ -53,7 +53,7 @@ class CollidableAnimationExample extends FlameGame with HasCollisionDetection {
}
class AnimatedComponent extends SpriteAnimationComponent
with CollisionCallbacks, HasGameRef {
with CollisionCallbacks, HasGameReference {
final Vector2 velocity;
AnimatedComponent(

View File

@ -30,7 +30,7 @@ class ComposabilityExample extends FlameGame {
}
}
class ParentSquare extends RectangleComponent with HasGameRef {
class ParentSquare extends RectangleComponent with HasGameReference {
static final defaultPaint = BasicPalette.white.paint()
..style = PaintingStyle.stroke;

View File

@ -3,7 +3,7 @@ import 'package:flame/components.dart';
import 'package:flame/game.dart';
class JoystickPlayer extends SpriteComponent
with HasGameRef, CollisionCallbacks {
with HasGameReference, CollisionCallbacks {
/// Pixels/s
double maxSpeed = 300.0;
late final Vector2 _lastSize = size.clone();

View File

@ -23,6 +23,7 @@ export 'src/components/mixins/coordinate_transform.dart';
export 'src/components/mixins/gesture_hitboxes.dart';
export 'src/components/mixins/has_ancestor.dart';
export 'src/components/mixins/has_decorator.dart' show HasDecorator;
// ignore: deprecated_member_use_from_same_package
export 'src/components/mixins/has_game_ref.dart' show HasGameRef;
export 'src/components/mixins/has_game_reference.dart' show HasGameReference;
export 'src/components/mixins/has_paint.dart';

View File

@ -452,7 +452,7 @@ class Component {
/// - it is invoked when the size of the game canvas is already known.
///
/// If your loading logic requires knowing the size of the game canvas, then
/// add [HasGameRef] mixin and then query `game.size` or
/// add [HasGameReference] mixin and then query `game.size` or
/// `game.canvasSize`.
///
/// The default implementation returns `null`, indicating that there is no

View File

@ -1,5 +1,4 @@
import 'package:flame/src/components/core/component.dart';
import 'package:flame/src/components/mixins/has_game_reference.dart';
import 'package:flame/src/game/flame_game.dart';
import 'package:flame/src/game/mixins/single_game_instance.dart';
@ -9,9 +8,10 @@ import 'package:flame/src/game/mixins/single_game_instance.dart';
/// The type [T] on the mixin is the type of your game class. This type will be
/// the type of the [game] reference, and the mixin will check at runtime that
/// the actual type matches the expectation.
///
/// [HasGameReference] is a newer version of this mixin, and will replace it in
/// Flame v2.0.
@Deprecated(
'Use HasGameReference instead. This mixin will be removed in a future '
'version of Flame.',
)
mixin HasGameRef<T extends FlameGame> on Component {
T? _game;

View File

@ -1,3 +1,5 @@
// ignore_for_file: deprecated_member_use_from_same_package
import 'package:flame/components.dart';
import 'package:flame/game.dart';
import 'package:flame_test/flame_test.dart';

View File

@ -420,7 +420,7 @@ class _MyTappableComponent extends _MyComponent with TapCallbacks {
}
}
class _MyComponent extends PositionComponent with HasGameRef {
class _MyComponent extends PositionComponent with HasGameReference {
bool isUpdateCalled = false;
bool isRenderCalled = false;
int onRemoveCallCounter = 0;