private void UpdateHud(float statLevel, BillboardInfo billboard, params MyStringId[] iconRefs) { UpdateHudText(statLevel, billboard.StringBuilder); UpdateHudIcon(statLevel, billboard, iconRefs); UpdateBillboard(statLevel, billboard); }
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; } }
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]; } }
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)); } }