public override void Draw(GameTime gameTime, bool isInForeground, SpriteBatch spriteBatch) { base.Draw(gameTime, isInForeground, spriteBatch); bool drawTile = false; if (listControl.SelectedItem != null) { T var = default(T); if (Datas.Count > 0) { var = Datas.ElementAt(0).Value; } if (var is Sprite) { Sprite sprite = Resources.GetSprite(listControl.SelectedItem); textureDrawer.Texture = sprite.Sheet.Texture; textureDrawer.SourceRect = sprite.SourceRect; textureDrawer.Effect = SpriteEffects.None; } else if (var is Animation) { Animation anim = Resources.GetAnimation(listControl.SelectedItem); animPlayer.PlayAnimation(anim); animPlayer.SimulateTime(gameTime); textureDrawer.Texture = animPlayer.CurrentSprite.Sheet.Texture; textureDrawer.SourceRect = animPlayer.CurrentSprite.SourceRect; textureDrawer.Effect = animPlayer.Animation.SpriteEffect; } else if (var is Tile) { drawTile = true; } } else { textureDrawer.Texture = null; textureDrawer.SourceRect = null; } panel.Draw(gameTime, spriteBatch); if (drawTile) { Tile.UnLocatedTile[listControl.SelectedItem].Draw(gameTime, spriteBatch, 0, 0, textureDrawer.DestinationRect); } }
public override void Update(GameTime gameTime, bool isInForeground) { base.Update(gameTime, isInForeground); if (!isInForeground) { return; } panel.Update(gameTime); if (addButton.IsPressed()) { T var = default(T); if (Datas.Count > 0) { var = Datas.ElementAt(0).Value; } if (var is Sprite) { lastOpenedScreen = new AddSpriteScreen(Manager, Resources); Manager.OpenScreen(lastOpenedScreen); return; } if (var is Animation) { lastOpenedScreen = new AddAnimationScreen(Manager, Resources); Manager.OpenScreen(lastOpenedScreen); return; } if (var is Tile) { lastOpenedScreen = new AddTileScreen(Manager, Resources); Manager.OpenScreen(lastOpenedScreen); return; } } if (removeButton.IsPressed() && listControl.SelectedItem != null) { T var = default(T); if (Datas.Count > 0) { var = Datas.ElementAt(0).Value; } if (var is Sprite) { Resources.RemoveSprite(listControl.SelectedItem); UpdateDatas(); } if (var is Animation) { Resources.RemoveAnimation(listControl.SelectedItem); UpdateDatas(); } if (var is Tile) { Tile.UnLocatedTile.Remove(listControl.SelectedItem); UpdateDatas(); } } if (lastOpenedScreen != null) { if (lastOpenedScreen is AddSpriteScreen) { AddSpriteScreen s = (AddSpriteScreen)lastOpenedScreen; if (s.IsSubmitted) { UpdateDatas(); lastOpenedScreen = null; } } if (lastOpenedScreen is AddAnimationScreen) { AddAnimationScreen s = (AddAnimationScreen)lastOpenedScreen; if (s.IsSubmitted) { UpdateDatas(); lastOpenedScreen = null; } } if (lastOpenedScreen is AddTileScreen) { AddTileScreen s = (AddTileScreen)lastOpenedScreen; if (s.IsSubmitted) { UpdateDatas(); lastOpenedScreen = null; } else { Manager.CloseScreen(); lastOpenedScreen = null; } } } if (submitButton.IsPressed()) { IsSubmitted = true; Manager.CloseScreen(); return; } }