Beispiel #1
0
        public override void Update()
        {
            upDownX.Update();
            upDownY.Update();
            var mouse = Input.GetMouse();

            cont--;
            if (((upDownX.IsOnUp(mouse.X, mouse.Y) && mouse.IsLeftClick()) || (tabIndex == 0 && Input.GetKey(Key.Add).Held)) && cont <= 0)
            {
                upDownX.Increment();
                cont = freq;
            }
            if (((upDownX.IsOnDown(mouse.X, mouse.Y) && mouse.IsLeftClick()) || (tabIndex == 0 && Input.GetKey(Key.Subtract).Held)) && cont <= 0)
            {
                upDownX.Decrement();
                cont = freq;
            }
            if (((upDownY.IsOnUp(mouse.X, mouse.Y) && mouse.IsLeftClick()) || (tabIndex == 1 && Input.GetKey(Key.Add).Held)) && cont <= 0)
            {
                upDownY.Increment();
                cont = freq;
            }
            if (((upDownY.IsOnDown(mouse.X, mouse.Y) && mouse.IsLeftClick()) || (tabIndex == 1 && Input.GetKey(Key.Subtract).Held)) && cont <= 0)
            {
                upDownY.Decrement();
                cont = freq;
            }

            if (upDownX.IsInside(mouse.X, mouse.Y) && mouse.IsLeftClick())
            {
                tabIndex = 0;
            }
            else if (upDownY.IsInside(mouse.X, mouse.Y) && mouse.IsLeftClick())
            {
                tabIndex = 1;
            }
            if (okText.IsInside(mouse.X, mouse.Y))
            {
                okText.BorderColor = 12;
            }
            else
            {
                okText.BorderColor = 8;
            }
            if (Input.GetKey(Key.Return).Pressed || okText.IsInside(mouse.X, mouse.Y) && mouse.IsLeftClick())
            {
                okText.BorderColor = 10;
                Pass();
            }
            if (Input.GetKey(Key.Tab).Pressed)
            {
                if (tabIndex < 2)
                {
                    tabIndex++;
                }
                else
                {
                    tabIndex = 0;
                }
            }
            if (Input.GetKey(Key.Escape).Pressed)
            {
                Environment.Exit(0);
            }
            upDownX.BorderColor = (short)((tabIndex == 0 ? 12 : 15));
            upDownY.BorderColor = (short)((tabIndex == 1 ? 12 : 15));
            okText.TextColor    = (short)((tabIndex == 2 ? 12 : 15));
        }
        void HandleInput()
        {
            var prevMouseX = mouse.X;
            var prevMouseY = mouse.Y;

            mouse = Input.GetMouse();
            if (Input.GetKey(Key.Escape).Pressed)
            {
                MyGame.ChangeStates(new InitialState(Parent, "Initial State"));
            }
            if (mouse.IsRightClick())
            {
                var MouseXDelta = mouse.X - prevMouseX;
                var MouseYDelta = mouse.Y - prevMouseY;

                spriteX += MouseXDelta;
                spriteY += MouseYDelta;
            }
            if (Input.GetKey(Key.LeftShift).Held)
            {
                if (scale + mouse.Z * Parent.DeltaTime < 1)
                {
                    scale = 1f;
                }
                else
                {
                    scale += mouse.Z * Parent.DeltaTime;
                }
            }
            else
            {
                colorValue.Value += mouse.Z;
            }
            var x = (int)((mouse.X - spriteX) * (1f / (scale * scale)));
            var y = (int)((mouse.Y - spriteY) * (1f / (scale * scale)));//why the f**k does this work?!?!?!?!?

            if (mouse.IsLeftClick())
            {
                activeSprite.SetChar(x, y, characterValue);
                activeSprite.SetColor(x, y, (byte)colorValue.Value);
            }
            cont--;
            if (colorValue.IsOnUp(mouse.X, mouse.Y) && mouse.IsLeftClick() && cont <= 0)
            {
                colorValue.Increment();
                cont = freq;
            }
            if (colorValue.IsOnDown(mouse.X, mouse.Y) && mouse.IsLeftClick() && cont <= 0)
            {
                colorValue.Decrement();
                cont = freq;
            }
            if (exportSprButton.IsInside(mouse.X, mouse.Y) && mouse.IsLeftClick())
            {
                stateValue = State.SpriteSave;
            }
            if (importPalButton.IsInside(mouse.X, mouse.Y) && mouse.IsLeftClick())
            {
                activeSprite = ConsoleSprite.Load("Test");
            }
            if (palettePanel.IsInside(mouse.X, mouse.Y) && mouse.IsLeftClick())
            {
                var xPos = Parent.Screen.Width - 12;
                var yPos = Parent.Screen.Height - 2;
                colorIndex          = (short)(mouse.X - (xPos) + (8 * (mouse.Y - yPos)));
                color               = ColorChanger.GetColor(colorIndex);
                colorWindow.color   = colorIndex;
                colorWindow.R.Value = color.R;
                colorWindow.G.Value = color.G;
                colorWindow.B.Value = color.B;
                stateValue          = State.ColorWindow;
            }
            for (int i = 0; i < components.Count; i++)
            {
                if (components[i].IsInside(mouse.X, mouse.Y))
                {
                    components[i].BorderColor = 12;
                }
                else
                {
                    components[i].BorderColor = 8;
                }
                if (components[i].Clickable && components[i].IsInside(mouse.X, mouse.Y) && mouse.IsLeftClick())
                {
                    components[i].BorderColor = 10;
                }
            }
            if (resetButton.IsInside(mouse.X, mouse.Y))
            {
                resetButton.BorderColor = 12;
            }
            else
            {
                resetButton.BorderColor = 8;
            }
            if (resetButton.IsInside(mouse.X, mouse.Y) && mouse.IsLeftClick())
            {
                resetButton.BorderColor = 10;
                ColorChanger.SetColor(0, Color.FromArgb(0, 0, 0));
                for (int i = 0; i < 16; i++)
                {
                    ColorChanger.SetColor(i, ColorChanger.StandardColors.colors[i]);
                }
            }
            if (exportPalButton.IsInside(mouse.X, mouse.Y) && mouse.IsLeftClick())
            {
                stateValue = State.PaletteSave;
            }
            if (importPalButton.IsInside(mouse.X, mouse.Y) && mouse.IsLeftClick())
            {
                ColorChanger.SetPalette(Palette.Load("TestPalette"));
            }
        }