Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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;
            }
        }