public void UpdateDisplay(float dt)
        {
            var val = OwnAnimation.Frames[frame];

            if (LastPixels != null)
            {
                for (int i = 0; i < LastPixels.Length; i++)
                {
                    if (LastPixels[i] == null)
                    {
                        continue;
                    }
                    SetPixel(LastPixels[i].X, LastPixels[i].Y, ColorUtil.ToRgba(255, 0, 0, 0));
                }
            }

            LastPixels = new Vec2i[val.Length];

            for (int i = 0; i < val.Length; i++)
            {
                LastPixels[i]   = new Vec2i();
                LastPixels[i].X = GameMath.Clamp((int)(val[i].X * resolution.X), 0, resolution.X - 1);
                LastPixels[i].Y = GameMath.Clamp((int)(val[i].Y * resolution.Y), 0, resolution.Y - 1);

                int colorR = (int)(OwnAnimation.Colors[frame][i].R * 255);
                int colorG = (int)(OwnAnimation.Colors[frame][i].G * 255);
                int colorB = (int)(OwnAnimation.Colors[frame][i].B * 255);

                SetPixel(LastPixels[i].X, LastPixels[i].Y, ColorUtil.ToRgba(255, colorR, colorG, colorB));
            }

            if (frame < OwnAnimation.Frames.Length - 1)
            {
                frame++;
            }
            else
            {
                frame = 0;
            }

            ownRenderer.MarkDirty();
        }
        public void UpdateDisplay(float dt)
        {
            if (DemoMode)
            {
                lastX = demoX; lastY = demoY;
                SetPixels(lastX, lastY, clearCol, clearing);

                demoX += (int)(velocity.X * 8);
                demoY += (int)(velocity.Y * 8);

                if (demoX >= resolution.X - 8 || demoY >= resolution.Y - 8)
                {
                    velocity = new Vec2d(-capi.World.Rand.NextDouble(), -capi.World.Rand.NextDouble());
                    demoX    = demoX >= resolution.X - 8 ? resolution.X - 8 : demoX;
                    demoY    = demoY >= resolution.Y - 8 ? resolution.Y - 8 : demoY;
                    SetNewDemoCol();
                }

                if (demoX <= 0 || demoY <= 0)
                {
                    velocity = new Vec2d(capi.World.Rand.NextDouble(), capi.World.Rand.NextDouble());

                    demoX = demoX <= 0 ? 0 : demoX;
                    demoY = demoY <= 0 ? 0 : demoY;
                    SetNewDemoCol();
                }

                SetPixels(demoX, demoY, demoCol, Charsets8x8.Box);

                MarkDisplayDirty();
            }

            if (DisplayDirty)
            {
                DisplayDirty = false;
                ownRenderer.MarkDirty();
            }
        }