示例#1
0
 private void UpdateHud(float statLevel, BillboardInfo billboard,
                        params MyStringId[] iconRefs)
 {
     UpdateHudText(statLevel, billboard.StringBuilder);
     UpdateHudIcon(statLevel, billboard, iconRefs);
     UpdateBillboard(statLevel, billboard);
 }
示例#2
0
        public void UpdateBillboard(float percentage, BillboardInfo info)
        {
            if (percentage > 75)
            {
                info.OneHundred.Material  = IconStringRefs.OneHundredPercentHudIconFull;
                info.TwentyFive.Material  = IconStringRefs.TwentyFivePercentHudIconFull;
                info.Fifty.Material       = IconStringRefs.FiftyPercentHudIconHudIconFull;
                info.SeventyFive.Material = IconStringRefs.SeventyFivePercentHudIconFull;

                info.TwentyFive.Visible  = true;
                info.Fifty.Visible       = true;
                info.SeventyFive.Visible = true;
                info.OneHundred.Visible  = true;
            }

            if (percentage < 76)
            {
                info.TwentyFive.Material  = IconStringRefs.TwentyFivePercentHudIconFull;
                info.Fifty.Material       = IconStringRefs.FiftyPercentHudIconHudIconFull;
                info.SeventyFive.Material = IconStringRefs.SeventyFivePercentHudIconFull;

                info.TwentyFive.Visible  = true;
                info.Fifty.Visible       = true;
                info.SeventyFive.Visible = true;
                info.OneHundred.Visible  = false;
            }
            if (percentage < 51 && percentage > 25)
            {
                info.TwentyFive.Material = IconStringRefs.TwentyFivePercentHudIconRed;
                info.Fifty.Material      = IconStringRefs.FiftyPercentProgressBarAmber;

                info.TwentyFive.Visible  = true;
                info.Fifty.Visible       = true;
                info.SeventyFive.Visible = false;
                info.OneHundred.Visible  = false;
            }

            if (percentage < 26 && percentage > 0)
            {
                info.TwentyFive.Material = IconStringRefs.TwentyFivePercentHudIconRed;

                info.TwentyFive.Visible  = true;
                info.Fifty.Visible       = false;
                info.SeventyFive.Visible = false;
                info.OneHundred.Visible  = false;
            }

            if (percentage <= 0)
            {
                info.TwentyFive.Visible = info.Fifty.Visible = info.SeventyFive.Visible = info.OneHundred.Visible = false;
            }
        }
示例#3
0
        public void UpdateHudIcon(float percentage, BillboardInfo billboardInfo, params MyStringId[] levels)
        {
            if (percentage > 100)
            {
                billboardInfo.Icon.Material = levels[0];
            }

            if (percentage > 0 && percentage <= 100)
            {
                billboardInfo.Icon.Material = levels[1];
            }

            if (percentage <= 0)
            {
                billboardInfo.Icon.Material = levels[2];
            }
        }
示例#4
0
        private void FoodUpdateMsgHandler(byte[] data)
        {
            try
            {
                _playerData = MyAPIGateway.Utilities.SerializeFromXML <PlayerData>(Encoding.Unicode.GetString(data));
                var thirstLevel = Math.Floor(_playerData.thirst);
                var hungerLevel = Math.Floor(_playerData.hunger);

                Logging.Instance.WriteLine($"{_playerData} Loaded to Client");

                if (_playerData != null && _textAPI.Heartbeat)
                {
                    if (_playerData.thirst <= 1 && _playerData.hunger <= 1)
                    {
                        ShowNotification($"Warning: You are Thirsty ({thirstLevel}%) and Hungry ({hungerLevel}%)");
                    }
                    else if (_playerData.thirst <= 1)
                    {
                        ShowNotification($"Warning: You are Thirsty ({thirstLevel}%)");
                    }
                    else if (_playerData.hunger <= 1)
                    {
                        ShowNotification($"Warning: You are Hungry ({hungerLevel}%)");
                    }

                    if (!_textHudInitialised)
                    {
                        _textHudInitialised = true;

                        _hungerBillboard  = InitHUDHunger();
                        _thirstBillboard  = InitHUDThirst();
                        _fatigueBillboard = InitHUDFatigue();
                    }
                    else
                    {
                        UpdateHUD_Hunger();
                        UpdateHUD_Thirst();
                        UpdateHUD_Fatigue();
                    }
                }
            }
            catch (Exception e)
            {
                Logging.Instance.WriteLine(("(FoodSystem) FoodUpdateMsg Error: " + e.Message + "\n" + e.StackTrace));
            }
        }