using Axios.Engine.Interfaces; using FarseerPhysics.Dynamics; using FarseerPhysics.SamplesFramework; using Microsoft.Xna.Framework; using GameStateManagement; namespace Axios.Engine { public abstract class AxiosGameObject : AxiosEvents, IAxiosGameObject { protected float _scale = 1f; protected bool removing = false; public float Scale { get { return _scale; } set { if (value != _scale) { _scale = value; OnScaleChange(this); } } } private string _name; public string Name { get { return this._name; } set { this._name = value; } } public virtual void Update(AxiosGameScreen gameScreen, Microsoft.Xna.Framework.GameTime gameTime, bool otherScreenHasFocus, bool coveredByOtherScreen) { } public virtual void LoadContent(AxiosGameScreen gameScreen) { } public virtual void HandleInput(AxiosGameScreen gameScreen, InputState input, GameTime gameTime) { } public virtual void HandleCursor(AxiosGameScreen gameScreen, InputState input) { } public virtual void UnloadContent(AxiosGameScreen gameScreen) { RemoveEvents(); } public void Remove() { this.OnRemove(this); } protected void SetCollideWithAll(Body b) { if (b != null) { b.CollidesWith = Category.All; b.CollisionCategories = Category.All; } } public override string ToString() { return this._name; } } }