using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RhythmBullet.Zer01HD.Utilities.UI { public enum ScreenState { EnterTransition, ExitTransition, Normal } public class Screen { public Rectangle ScreenSize; ScreenState state; public Screen(bool useEnterTransition = false) { state = useEnterTransition ? ScreenState.EnterTransition : ScreenState.Normal; } public virtual void Update(GameTime gameTime) { } public virtual void Draw(SpriteBatch spriteBatch) { } public virtual void EnteringTransition(double delta, bool assetsLoaded, ref Color backgroundColor) { } public virtual bool ExitingTransition(double delta, bool assetsLoaded, ref Color backgroundColor) { return true; } public virtual void Show() { } public virtual void Hide() { } public virtual void AssetLoadStateChange(bool state) { } public ScreenState State { get { return state; } } public void DoneEnterTransition() { state = ScreenState.Normal; } public void StartExitTransition() { state = ScreenState.ExitTransition; } } }