using AlienAttack.MonoGame.Audio;
using AlienAttack.MonoGame.View;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using System;

namespace AlienAttack.MonoGame.Things;

public class SpriteUpdateContext(AlienAttackGame game)
{
    public ViewTransform ViewTransform => game.ViewTransform;
    public required Action<Sprite> SpawnSprite { get; init; }
    public required Random Random { get; init; }
    public required GameTime GameTime { get; init; }
    public required ContentManager Content { get; init; }
    public AudioManager AudioManager => game.Audio;
    public required Player Player { get; init; }
}

public class SpriteCollisionContext(AlienAttackGame game)
{
    public ViewTransform ViewTransform => game.ViewTransform;
    public required Sprite Sprite { get; init; }
    public required Action<Sprite> SpawnSprite { get; init; }
    public required Random Random { get; init; }
    public required ContentManager Content { get; init; }
    public AudioManager AudioManager => game.Audio;
}