Beispiel #1
0
        protected override void OnUpdate(GameTime gameTime)
        {
            if (Player.HealthManager.Health != Health)
            {
                var hearts = Player.HealthManager.Health * (10d / Player.HealthManager.MaxHealth);
                var ceil   = (int)Math.Ceiling(hearts);
                for (int i = 0; i < Hearts.Length; i++)
                {
                    HeartValue value = HeartValue.Full;
                    if (i < ceil)
                    {
                        value = HeartValue.Full;
                    }
                    else if (i == ceil - 1)
                    {
                        value = HeartValue.Half;
                    }
                    else
                    {
                        value = HeartValue.None;
                    }

                    Hearts[i].Set(value);
                }
            }

            base.OnUpdate(gameTime);
        }
Beispiel #2
0
        protected override void OnUpdate(GameTime gameTime)
        {
            if (Player.Hunger != Hunger)
            {
                Hunger = Player.Hunger;

                var  hearts    = Player.Hunger * (10d / Player.MaxHunger);
                bool isRounded = (hearts % 1 == 0);

                var ceil = isRounded ? (int)hearts : (int)Math.Ceiling(hearts);

                for (int i = 0; i < Hungers.Length; i++)
                {
                    HeartValue value = HeartValue.Full;

                    if ((i + 1) <= ceil)
                    {
                        value = HeartValue.Full;

                        if (!isRounded && (i + 1) == ceil)
                        {
                            value = HeartValue.Half;
                        }
                    }
                    else
                    {
                        value = HeartValue.None;
                    }

                    Hungers[^ (i + 1)].Set(value);
Beispiel #3
0
            public void Set(HeartValue value)
            {
                Texture.IsVisible = true;

                switch (value)
                {
                case HeartValue.Full:
                    Texture.Texture = GuiRenderer.GetTexture(GuiTextures.HealthHeart);
                    break;

                case HeartValue.Half:
                    Texture.Texture = GuiRenderer.GetTexture(GuiTextures.HealthHalfHeart);
                    break;

                case HeartValue.None:
                    Texture.IsVisible = false;
                    break;
                }
            }