Esempio n. 1
0
        public override void Update(GameTime gameTime)
        {
            UpdateTimeModifier();

            CurrentTheme?.Update();
            CurrentGameOver?.Update();

            UpdateProtoEffects();
            UpdateVisualEffects();

            foreach (var timer in Timers)
            {
                timer.Update();
            }
            Timers.RemoveAll(x => x.Slide >= 1);

            UpdateInput();

            var tickables = Manager.Tickable.GetTickables();

            foreach (var tickable in tickables.ToList())
            {
                tickable.Tick(this);
            }

            Vector2 worldPos = Vector2.Transform(new Vector2(InputState.MouseX, InputState.MouseY), Matrix.Invert(WorldTransform));
            int     tileX    = Util.FloorDiv((int)worldPos.X, 16);
            int     tileY    = Util.FloorDiv((int)worldPos.Y, 16);

            TileCursor = new Point(tileX, tileY);
            MenuCursor = Menu.GetMouseOver(InputState.MouseX, InputState.MouseY);
            if (MenuCursor != null)
            {
                TileCursor = null;
            }

            TooltipText = new TextBuilder(float.PositiveInfinity, float.PositiveInfinity);
            if (MenuCursor != null)
            {
                MenuCursor.GenerateTooltip(TooltipText);
            }
            else if (Map != null && TileCursor.HasValue)
            {
                MapTile tile = Map.GetTile(TileCursor.Value.X, TileCursor.Value.Y);
                if (tile != null)
                {
                    tile.AddTooltip(TooltipText);
                }
            }
            TooltipText.EndContainer();
            TooltipText.Finish();
        }