예제 #1
0
        public ColorColumn(NlmTreeListView listView)
        {
            Text      = "Color";
            Width     = 40;
            TextAlign = HorizontalAlignment.Center;

            AspectEngine = new ColorAspectEngine(listView, this);

            Renderer = new ColorRenderer();
        }
예제 #2
0
        static void Main()
        {
            #region Inital Setup of Console Window and Engine
            Console.SetWindowSize(75, 35);

            ColorRenderer renderer = new ColorRenderer
            {
                DefaultColor = new RenderColor(ConsoleColor.DarkRed, ConsoleColor.Black)
            };
            OiskiEngine.ChangeRenderer(renderer);
            OiskiEngine.Input.SetNavigation("Horizontal", false);
            OiskiEngine.Run();
            #endregion

            MainMenu.Instance.GetMenu.Show();

            //  Tests Calls
            Library.GetLibrary.BuildTestData();
        }
예제 #3
0
    IEnumerator FadeOutCoroutine(GameObject GO, float time, bool shouldDestroy = false)
    {
        // store here all renderers with their initial colors of the object and its children
        Dictionary <ColorRenderer, float> renderers = new Dictionary <ColorRenderer, float>();

        // add all renderers of the object and its children
        Renderer[] rendererComponents = GO.GetComponentsInChildren <Renderer>(true);
        foreach (Renderer renderer in rendererComponents)
        {
            ColorRenderer colorRenderer = new ColorRenderer();
            if (colorRenderer.SetRenderer(renderer) == true)
            {
                renderers.Add(colorRenderer, colorRenderer.GetColor().a);
            }
        }

        // animated all renderers from
        for (float currTime = time; currTime >= 0; currTime -= Time.deltaTime)
        {
            foreach (ColorRenderer cr in renderers.Keys)
            {
                Color c = cr.GetColor();
                c.a = ConvertRangeClamped(0, time, 0, renderers[cr], currTime);
                cr.SetColor(c);
            }
            yield return(null);
        }

        // fade out 100%
        foreach (ColorRenderer cr in renderers.Keys)
        {
            Color c = cr.GetColor();
            c.a = 0;
            cr.SetColor(c);
        }

        animatedGOs.Remove(GO);
        if (shouldDestroy == true)
        {
            Destroy(GO);
        }
    }
예제 #4
0
    IEnumerator BlinkCoroutine(GameObject GO, Color targetColor, float time)
    {
        Color targetColorCopy = new Color(targetColor.r, targetColor.g, targetColor.b, targetColor.a);

        // store here all renderers with their initial colors of the object and its children
        Dictionary <ColorRenderer, Color> renderers = new Dictionary <ColorRenderer, Color>();


        // add all renderers of the object and its children
        Renderer[] rendererComponents = GO.GetComponentsInChildren <Renderer>();
        foreach (Renderer renderer in rendererComponents)
        {
            ColorRenderer colorRenderer = new ColorRenderer();
            if (colorRenderer.SetRenderer(renderer) == true)
            {
                renderers.Add(colorRenderer, colorRenderer.GetColor());
                colorRenderer.SetColor(targetColorCopy);
            }
        }

        // animated all renderers from
        for (float currTime = time; currTime >= 0; currTime -= Time.deltaTime)
        {
            float normalizedTime = ConvertRangeClamped(0, time, 0, 1, currTime);

            foreach (ColorRenderer cr in renderers.Keys)
            {
                Color origColor = renderers[cr];
                cr.SetColor(Color.Lerp(origColor, targetColor, normalizedTime));
            }
            yield return(null);
        }

        // restore to original color 100%
        foreach (ColorRenderer cr in renderers.Keys)
        {
            Color origColor = renderers[cr];
            cr.SetColor(origColor);
        }

        animatedGOs.Remove(GO);
    }
예제 #5
0
    /**
     *      --- FADE ---
     */
    public void FadeOut(GameObject GO, float time, bool shouldDestroyAfterFadeout = false)
    {
        if (animatedGOs.ContainsKey(GO) == true)
        {
            return;
        }
        if (GO == null)
        {
            return;
        }

        Renderer[] rendererComponents = GO.GetComponentsInChildren <Renderer>(true);
        foreach (Renderer renderer in rendererComponents)
        {
            ColorRenderer colorRenderer = new ColorRenderer();
            if (colorRenderer.SetRenderer(renderer) == true)
            {
                colorRenderer.SetColor(new Color(colorRenderer.GetColor().r, colorRenderer.GetColor().g, colorRenderer.GetColor().b, 1f));
            }
        }

        animatedGOs.Add(GO, this.StartCoroutine(FadeOutCoroutine(GO, time, shouldDestroyAfterFadeout)));
    }
예제 #6
0
        static void Main(string[] args)
        {
            #region Engine Setup
            Console.SetWindowSize(60, 30);
            ColorRenderer renderer = new ColorRenderer();
            renderer.DefaultColor = new RenderColor(ConsoleColor.Red, ConsoleColor.Black);

            OiskiEngine.ChangeRenderer(renderer);
            OiskiEngine.Run();
            #endregion

            RenderColor textColor   = new RenderColor(ConsoleColor.Cyan, ConsoleColor.Black);
            RenderColor borderColor = new RenderColor(ConsoleColor.DarkBlue, ConsoleColor.Black);

            FitnessCalc fitness = new FitnessCalc();

            Menu mainMenu   = new Menu();
            Menu dataMenu   = new Menu();
            Menu resultMenu = new Menu();

            #region Main Menu

            #region Header
            ColorableLabel mainHeader = new ColorableLabel("Oiski's Fitness Calculator", textColor, borderColor, _attachToEngine: false);
            mainHeader.Position = new Vector2(Vector2.CenterX(mainHeader.Size.x), 5);

            mainMenu.Controls.AddControl(mainHeader);
            #endregion

            #region Data Menu Button
            ColorableOption toDataMenu = new ColorableOption("Data Collection", textColor, borderColor, _attachToEngine: false)
            {
                SelectedIndex = Vector2.Zero
            };
            toDataMenu.Position = new Vector2(Vector2.CenterX(toDataMenu.Size.x), mainHeader.Position.y + 6);
            toDataMenu.BorderStyle(BorderArea.Horizontal, '~');

            toDataMenu.OnSelect += (s) =>
            {
                #region Hide Main Menu
                OiskiEngine.Input.ResetInput();
                OiskiEngine.Input.ResetSlection();
                s.BorderStyle(BorderArea.Horizontal, '-');

                mainMenu.Show(false);
                #endregion

                dataMenu.Controls.GetSelectableControls[0].BorderStyle(BorderArea.Horizontal, '~');
                dataMenu.Show();
            };

            mainMenu.Controls.AddControl(toDataMenu);
            #endregion

            #region Result Menu Button
            ColorableOption toResultMenu = new ColorableOption("Results", textColor, borderColor, _attachToEngine: false)
            {
                SelectedIndex = new Vector2(0, 1)
            };
            toResultMenu.Position = new Vector2(Vector2.CenterX(toResultMenu.Size.x), toDataMenu.Position.y + 3);

            toResultMenu.OnSelect += (s) =>
            {
                #region Hide Main Menu
                OiskiEngine.Input.ResetInput();
                OiskiEngine.Input.ResetSlection();
                s.BorderStyle(BorderArea.Horizontal, '-');

                mainMenu.Show(false);
                #endregion

                resultMenu.Controls.GetSelectableControls[0].BorderStyle(BorderArea.Horizontal, '~');
                resultMenu.Show();
            };

            mainMenu.Controls.AddControl(toResultMenu);
            #endregion

            #region Exit Button
            ColorableOption exitButton = new ColorableOption("Exit ", textColor, borderColor, _attachToEngine: false)
            {
                SelectedIndex = new Vector2(0, 2)
            };
            exitButton.Position = new Vector2(Vector2.CenterX(exitButton.Size.x), toResultMenu.Position.y + 3);

            exitButton.OnSelect += (s) =>
            {
                Environment.Exit(0);
            };

            mainMenu.Controls.AddControl(exitButton);
            #endregion

            mainMenu.Show();
            #endregion

            #region Data Menu

            #region Header
            ColorableLabel dataHeader = new ColorableLabel("Oiski's Data", textColor, borderColor, _attachToEngine: false);
            dataHeader.Position = new Vector2(Vector2.CenterX(dataHeader.Size.x), 5);

            dataMenu.Controls.AddControl(dataHeader);
            #endregion

            #region Weight
            decimal weight = 0;

            ColorableLabel weightLabel = new ColorableLabel("Weight", textColor, borderColor, _attachToEngine: false);
            weightLabel.Position = new Vector2(15, dataHeader.Position.y + 6);

            dataMenu.Controls.AddControl(weightLabel);

            ColorableTextField weightText = new ColorableTextField("Type Weight...", new RenderColor(ConsoleColor.Green, ConsoleColor.Black), borderColor, _attachToEngine: false)
            {
                SelectedIndex        = Vector2.Zero,
                ResetAfterFirstWrite = false,
                EraseTextOnSelect    = true
            };
            weightText.Position = new Vector2(weightLabel.Position.x + weightLabel.Size.x - 1, weightLabel.Position.y);
            weightText.BorderStyle(BorderArea.Horizontal, '~');

            weightText.OnSelect += (s) =>
            {
                if (!OiskiEngine.Input.CanWrite)
                {
                    if (!decimal.TryParse(weightText.Text, out weight))
                    {
                        weightText.TextColor = new RenderColor(ConsoleColor.Red, ConsoleColor.Black);
                        weightText.Text      = "Invalid Input";
                    }
                }
                else
                {
                    weightText.TextColor = new RenderColor(ConsoleColor.Green, ConsoleColor.Black);
                }
            };

            dataMenu.Controls.AddControl(weightText);
            #endregion

            #region Resting Heart Rate
            int restingHeartRate = 0;

            ColorableLabel restingHeartRateLabel = new ColorableLabel("R-Heart Rate (BPM)", textColor, borderColor, _attachToEngine: false);
            restingHeartRateLabel.Position = new Vector2(15, weightLabel.Position.y + 3);

            dataMenu.Controls.AddControl(restingHeartRateLabel);

            ColorableTextField restingHeartRateText = new ColorableTextField("Type Rate...", new RenderColor(ConsoleColor.Green, ConsoleColor.Black), borderColor, _attachToEngine: false)
            {
                SelectedIndex        = new Vector2(0, 1),
                ResetAfterFirstWrite = false,
                EraseTextOnSelect    = true
            };
            restingHeartRateText.Position = new Vector2(restingHeartRateLabel.Position.x + restingHeartRateLabel.Size.x - 1, restingHeartRateLabel.Position.y);

            restingHeartRateText.OnSelect += (s) =>
            {
                if (!OiskiEngine.Input.CanWrite)
                {
                    if (!int.TryParse(restingHeartRateText.Text, out restingHeartRate))
                    {
                        restingHeartRateText.TextColor = new RenderColor(ConsoleColor.Red, ConsoleColor.Black);
                        restingHeartRateText.Text      = "Invalid Input";
                    }
                }
                else
                {
                    restingHeartRateText.TextColor = new RenderColor(ConsoleColor.Green, ConsoleColor.Black);
                }
            };

            dataMenu.Controls.AddControl(restingHeartRateText);
            #endregion

            #region Max Heart Rate
            int maxHeartRate = 0;

            ColorableLabel maxHeartRateLabel = new ColorableLabel("M-Heart Rate (BPM)", textColor, borderColor, _attachToEngine: false);
            maxHeartRateLabel.Position = new Vector2(15, restingHeartRateLabel.Position.y + 3);

            dataMenu.Controls.AddControl(maxHeartRateLabel);

            ColorableTextField maxHeartRateText = new ColorableTextField("Type Rate...", new RenderColor(ConsoleColor.Green, ConsoleColor.Black), borderColor, _attachToEngine: false)
            {
                SelectedIndex        = new Vector2(0, 2),
                ResetAfterFirstWrite = false,
                EraseTextOnSelect    = true
            };
            maxHeartRateText.Position = new Vector2(maxHeartRateLabel.Position.x + maxHeartRateLabel.Size.x - 1, maxHeartRateLabel.Position.y);

            maxHeartRateText.OnSelect += (s) =>
            {
                if (!OiskiEngine.Input.CanWrite)
                {
                    if (!int.TryParse(maxHeartRateText.Text, out maxHeartRate))
                    {
                        maxHeartRateText.TextColor = new RenderColor(ConsoleColor.Red, ConsoleColor.Black);
                        maxHeartRateText.Text      = "Invalid Input";
                    }
                }
                else
                {
                    maxHeartRateText.TextColor = new RenderColor(ConsoleColor.Green, ConsoleColor.Black);
                }
            };

            dataMenu.Controls.AddControl(maxHeartRateText);
            #endregion

            #region Back Button
            ColorableOption dataMenuBackButton = new ColorableOption("Back ", textColor, borderColor, _attachToEngine: false)
            {
                SelectedIndex = new Vector2(0, 3)
            };
            dataMenuBackButton.Position = new Vector2(Vector2.CenterX(dataMenuBackButton.Size.x), maxHeartRateLabel.Position.y + 3);

            dataMenuBackButton.OnSelect += (s) =>
            {
                #region Hide Data Menu
                OiskiEngine.Input.ResetInput();
                OiskiEngine.Input.ResetSlection();
                s.BorderStyle(BorderArea.Horizontal, '-');

                dataMenu.Show(false);
                #endregion

                fitness.Weight           = weight;
                fitness.RestingHeartRate = restingHeartRate;
                fitness.MaxHeartRate     = maxHeartRate;

                mainMenu.Controls.GetSelectableControls[0].BorderStyle(BorderArea.Horizontal, '~');
                mainMenu.Show();
            };

            dataMenu.Controls.AddControl(dataMenuBackButton);
            #endregion

            #endregion

            #region Result Menu

            #region Header
            ColorableLabel resultHeader = new ColorableLabel("Oiski's Results", textColor, borderColor, _attachToEngine: false);
            resultHeader.Position = new Vector2(Vector2.CenterX(resultHeader.Size.x), 5);

            resultMenu.Controls.AddControl(resultHeader);
            #endregion

            #region Weight
            ColorableLabel weightResultLabel = new ColorableLabel("Weight (kg)", textColor, borderColor, _attachToEngine: false);
            weightResultLabel.Position = new Vector2(10, resultHeader.Position.y + 5);

            resultMenu.Controls.AddControl(weightResultLabel);

            ColorableLabel weightResultText = new ColorableLabel(fitness.Weight.ToString(), new RenderColor(ConsoleColor.Green, ConsoleColor.Black), borderColor, _attachToEngine: false);
            weightResultText.Position = new Vector2(weightResultLabel.Position.x + weightResultLabel.Size.x - 1, weightResultLabel.Position.y);

            weightResultText.OnUpdate += (c) =>
            {
                weightResultText.Text = fitness.Weight.ToString();
            };

            resultMenu.Controls.AddControl(weightResultText);
            #endregion

            #region Resting Heart Rate
            ColorableLabel restingHeartRateResultLabel = new ColorableLabel("R-Heart Rate (BPM)", textColor, borderColor, _attachToEngine: false);
            int            positionX = weightResultLabel.Position.x + weightResultLabel.Size.x + weightResultText.Size.x + 2;
            restingHeartRateResultLabel.Position = new Vector2(positionX, weightResultLabel.Position.y);

            resultMenu.Controls.AddControl(restingHeartRateResultLabel);

            ColorableLabel restingHeartRateResultText = new ColorableLabel(fitness.RestingHeartRate.ToString(), new RenderColor(ConsoleColor.Green, ConsoleColor.Black), borderColor, _attachToEngine: false);
            restingHeartRateResultText.Position = new Vector2(restingHeartRateResultLabel.Position.x + restingHeartRateResultLabel.Size.x - 1, restingHeartRateResultLabel.Position.y);

            restingHeartRateResultText.OnUpdate += (c) =>
            {
                restingHeartRateResultText.Text = fitness.RestingHeartRate.ToString();
            };

            resultMenu.Controls.AddControl(restingHeartRateResultText);
            #endregion

            #region Max Heart Rate
            ColorableLabel maxHeartRateResultLabel = new ColorableLabel("M-Heart Rate (BPM)", textColor, borderColor, _attachToEngine: false);
            maxHeartRateResultLabel.Position = new Vector2(weightResultLabel.Position.x, weightResultLabel.Position.y + 3);

            resultMenu.Controls.AddControl(maxHeartRateResultLabel);

            ColorableLabel maxHeartRateResultText = new ColorableLabel(fitness.MaxHeartRate.ToString(), new RenderColor(ConsoleColor.Green, ConsoleColor.Black), borderColor, _attachToEngine: false);
            maxHeartRateResultText.Position = new Vector2(maxHeartRateResultLabel.Position.x + maxHeartRateResultLabel.Size.x - 1, maxHeartRateResultLabel.Position.y);

            maxHeartRateResultText.OnUpdate += (c) =>
            {
                maxHeartRateResultText.Text = fitness.MaxHeartRate.ToString();
            };

            resultMenu.Controls.AddControl(maxHeartRateResultText);
            #endregion

            #region Fitness Level
            ColorableLabel fitnessLabel = new ColorableLabel("Fitness Level", textColor, borderColor, _attachToEngine: false);
            fitnessLabel.Position = new Vector2(weightResultLabel.Position.x, restingHeartRateLabel.Position.y + 2);

            resultMenu.Controls.AddControl(fitnessLabel);

            ColorableLabel fitnessLevelText = new ColorableLabel("Error", new RenderColor(ConsoleColor.Red, ConsoleColor.Black), borderColor, _attachToEngine: false);
            fitnessLevelText.Position = new Vector2(fitnessLabel.Position.x + fitnessLabel.Size.x - 1, fitnessLabel.Position.y);

            fitnessLevelText.OnUpdate += (c) =>
            {
                try
                {
                    fitnessLevelText.TextColor = new RenderColor(ConsoleColor.Green, ConsoleColor.Black);
                    fitnessLevelText.Text      = fitness.GetFitnessLevel().ToString();
                }
                catch (DivideByZeroException)
                {
                    fitnessLevelText.TextColor = new RenderColor(ConsoleColor.Red, ConsoleColor.Black);
                    fitnessLevelText.Text      = "Error";
                }
            };

            resultMenu.Controls.AddControl(fitnessLevelText);
            #endregion

            #region VO2 Max
            ColorableLabel vO2Label = new ColorableLabel("VO2 Max Score", textColor, borderColor, _attachToEngine: false);
            vO2Label.Position = new Vector2(weightResultLabel.Position.x, fitnessLabel.Position.y + 2);

            resultMenu.Controls.AddControl(vO2Label);

            ColorableLabel vO2Text = new ColorableLabel("Error", new RenderColor(ConsoleColor.Red, ConsoleColor.Black), borderColor, _attachToEngine: false);
            vO2Text.Position = new Vector2(vO2Label.Position.x + vO2Label.Size.x - 1, vO2Label.Position.y);

            vO2Text.OnUpdate += (c) =>
            {
                try
                {
                    vO2Text.TextColor = new RenderColor(ConsoleColor.Green, ConsoleColor.Black);
                    vO2Text.Text      = $"{fitness.GetVO2Max():0.0}";
                }
                catch (DivideByZeroException)
                {
                    vO2Text.TextColor = new RenderColor(ConsoleColor.Red, ConsoleColor.Black);
                    vO2Text.Text      = "Error";
                }
            };

            resultMenu.Controls.AddControl(vO2Text);
            #endregion

            #region Back Button
            ColorableOption resultMenuBackButton = new ColorableOption("Back ", textColor, borderColor, _attachToEngine: false)
            {
                SelectedIndex = Vector2.Zero
            };
            resultMenuBackButton.Position = new Vector2(Vector2.CenterX(resultMenuBackButton.Size.x), vO2Label.Position.y + 4);

            resultMenuBackButton.OnSelect += (s) =>
            {
                #region Hide Data Menu
                OiskiEngine.Input.ResetInput();
                OiskiEngine.Input.ResetSlection();
                s.BorderStyle(BorderArea.Horizontal, '-');

                resultMenu.Show(false);
                #endregion

                mainMenu.Controls.GetSelectableControls[0].BorderStyle(BorderArea.Horizontal, '~');
                mainMenu.Show();
            };

            resultMenu.Controls.AddControl(resultMenuBackButton);
            #endregion

            #endregion
        }
예제 #7
0
 public override void Initialize(AssetManager assetManager)
 {
     _renderer  = (ColorRenderer)Entity.Renderer;
     _origColor = _renderer.Color;
 }
예제 #8
0
파일: ColorBox.cs 프로젝트: siquel/BeatEmUp
 public ColorBox(Microsoft.Xna.Framework.Game game)
     : base(game)
 {
     renderer = new ColorRenderer(game, this);
     Brush    = new Brush(Color.Red, Color.Red, Color.White);
 }