using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
namespace V3.Objects
{
///
/// A game object which is placed on the map.
///
public interface IGameObject
{
Vector2 Position { get; set; }
///
/// A unique ID for this game object, with which it can be identified.
/// All implementations should use the IdGenerator to generate this ID.
///
int Id { get; }
///
/// Draws the game object on the screen.
///
/// Sprite batch used for drawing.
void Draw(SpriteBatch spriteBatch);
///
/// The size of the object.
///
Rectangle BoundaryRectangle { get; }
///
/// Loads needed graphics.
///
/// Content manager used.
void LoadContent(ContentManager contentManager);
///
/// Returns the object instance without modifications.
///
/// This object.
IGameObject GetSelf();
}
}