private void PositionElement(HudElement element, CameraProperties cameraProperties) { var viewportRect = GuiPlacement.CameraViewportRectangle(cameraProperties, distance: element.ViewportPoint.z); var guiTransform = GuiPlacement.ProjectPointOnPlane(viewportRect, element.ViewportPoint); guiTransform = guiTransform.Rotate(element.RotationOffset); if (element.AdjustToFieldOfView) { guiTransform = guiTransform.UpdateScale(element.Scale * GuiPlacement.FocalLength(cameraProperties.FieldOfView)); } else { guiTransform = guiTransform.UpdateScale(element.Scale); } // Make everything smaller when VR is enabled if (_settingsProvider.ActiveVrMode != VrMode.None) { guiTransform = guiTransform.Scale(Vector3.one / _vrShrinkFactor); } var scale = guiTransform.Scale; scale.z = 1; guiTransform = guiTransform.UpdateScale(scale); element.transform.SetLocal(guiTransform); }
public void LoadContent(ContentManager content) { // Loading background picture mBackground = content.Load <Texture2D>("Menus/OptionsAndStatisticsMenu"); mAnimalsBought = new HudElement(new Point(470, 100), new Point(150, 30)); mAnimalsMax = new HudElement(new Point(470, 200), new Point(150, 30)); mGametime = new HudElement(new Point(470, 300), new Point(150, 30)); mMaxGold = new HudElement(new Point(470, 400), new Point(150, 30)); mZombiesKilled = new HudElement(new Point(470, 500), new Point(150, 30)); mWon = new HudElement(new Point(470, 600), new Point(150, 30)); mLost = new HudElement(new Point(470, 700), new Point(150, 30)); mPoints = new HudElement(new Point(470, 800), new Point(150, 30)); mFont = content.Load <SpriteFont>("File"); mHighScoreTexture = content.Load <Texture2D>("Textures\\highscore"); mAnimalsBought.LoadContent(content); mAnimalsMax.LoadContent(content); mGametime.LoadContent(content); mMaxGold.LoadContent(content); mZombiesKilled.LoadContent(content); mWon.LoadContent(content); mLost.LoadContent(content); mPoints.LoadContent(content); }
public void LoadContent(ContentManager content) { mLiveBox = new HudElement(new Point(48, 5), new Point(100, 30)); mMoneyBox = new HudElement(new Point(189, 5), new Point(100, 30)); mHealth = TextureManager.GetTexture("icons", 32, 32, 25); mCoin = TextureManager.GetTexture("icons", 32, 32, 24); mSeed1 = TextureManager.GetTexture("wheat", 32, 32, 3); mSeed2 = TextureManager.GetTexture("wheat2", 32, 32, 3); mSeed3 = TextureManager.GetTexture("icons", 32, 32, 2); mCoinSpin = AnimationManager.GetAnimation(AnimationManager.CoinSpin, this); mSeedBox1 = new HudElement(new Point(330, 5), new Point(60, 30)); mSeedBox2 = new HudElement(new Point(431, 5), new Point(60, 30)); mSeedBox3 = new HudElement(new Point(532, 5), new Point(60, 30)); mPoints = new HudElement(new Point(mScreenWidth - 205, 5), new Point(100, 30)); mTime = new HudElement(new Point(mScreenWidth - 100, 5), new Point(100, 30)); mFps = new HudElement(new Point(48, 30), new Point(100, 30)); mLiveBox.LoadContent(content); mMoneyBox.LoadContent(content); mSeedBox1.LoadContent(content); mSeedBox2.LoadContent(content); mSeedBox3.LoadContent(content); mPoints.LoadContent(content); mTime.LoadContent(content); mFps.LoadContent(content); }
public TexturedBox(HudElement Parent = null, Color color = default(Color), MyStringId material = default(MyStringId)) { this.color = color; this.Parent = Parent; if (material == default(MyStringId)) { this.material = MyStringId.GetOrCompute("Square"); } else { this.material = material; } }
public static void updateHudElementTransparency(HudElement hudElement) { float lerpedAlpha; lerpedAlpha = Mathf.Lerp(hudElement.lastSetAlpha, hudElement.targetAlpha, hudElement.timeFade / hudFadeDuration.Value); if (hudElement.elementName == "MiniMap") { hudElement.element.GetComponent <Minimap>().m_mapImageSmall.CrossFadeAlpha(hudElement.targetAlpha, hudElement.timeFade, false); } hudElement.lastSetAlpha = lerpedAlpha; hudElement.element.GetComponent <CanvasGroup>().alpha = lerpedAlpha; }
public void LoadContent(ContentManager content) { // Loading background picture mBackground = content.Load <Texture2D>("Menus/OptionsAndStatisticsMenu"); mErsteGeburt = new HudElement(new Point(400, 100), new Point(150, 30)); mWahrerFarmer = new HudElement(new Point(400, 200), new Point(150, 30)); mFarmingSimulator = new HudElement(new Point(400, 300), new Point(150, 30)); mDerAnfangVomEnde = new HudElement(new Point(400, 400), new Point(150, 30)); mVomGejagtenZumJäger = new HudElement(new Point(400, 500), new Point(150, 30)); mGehirnlos = new HudElement(new Point(400, 600), new Point(150, 30)); mObdachlos = new HudElement(new Point(400, 700), new Point(150, 30)); mDasWarErstDerAnfang = new HudElement(new Point(400, 800), new Point(150, 30)); mDieLangeNacht = new HudElement(new Point(400, 900), new Point(150, 30)); mDieApokalypseIstVorbei = new HudElement(new Point(400, 1000), new Point(150, 30)); mSieHattenKeineChance = new HudElement(new Point(400, 1100), new Point(150, 30)); mFont = content.Load <SpriteFont>("File"); mErsteGeburt.LoadContent(content); mWahrerFarmer.LoadContent(content); mFarmingSimulator.LoadContent(content); mDerAnfangVomEnde.LoadContent(content); mVomGejagtenZumJäger.LoadContent(content); mGehirnlos.LoadContent(content); mObdachlos.LoadContent(content); mDasWarErstDerAnfang.LoadContent(content); mDieLangeNacht.LoadContent(content); mDieApokalypseIstVorbei.LoadContent(content); mSieHattenKeineChance.LoadContent(content); mErsteGeburt.ChangeText("To Do!"); mWahrerFarmer.ChangeText("To Do!"); mFarmingSimulator.ChangeText("To Do!"); mDerAnfangVomEnde.ChangeText("To Do!"); mVomGejagtenZumJäger.ChangeText("To Do!"); mGehirnlos.ChangeText("To Do!"); mObdachlos.ChangeText("To Do!"); mDasWarErstDerAnfang.ChangeText("To Do!"); mDieLangeNacht.ChangeText("To Do!"); mDieApokalypseIstVorbei.ChangeText("To Do!"); mSieHattenKeineChance.ChangeText("To Do!"); }
// load hud internal static void LoadHUD() { CultureInfo Culture = CultureInfo.InvariantCulture; string Folder = Program.FileSystem.GetDataFolder("In-game", CurrentOptions.UserInterfaceFolder); string File = OpenBveApi.Path.CombineFile(Folder, "interface.cfg"); CurrentHudElements = new HudElement[16]; int Length = 0; if (System.IO.File.Exists(File)) { string[] Lines = System.IO.File.ReadAllLines(File, new System.Text.UTF8Encoding()); for (int i = 0; i < Lines.Length; i++) { int j = Lines[i].IndexOf(';'); if (j >= 0) { Lines[i] = Lines[i].Substring(0, j).Trim(); } else { Lines[i] = Lines[i].Trim(); } if (Lines[i].Length != 0) { if (!Lines[i].StartsWith(";", StringComparison.Ordinal)) { if (Lines[i].Equals("[element]", StringComparison.OrdinalIgnoreCase)) { Length++; if (Length > CurrentHudElements.Length) { Array.Resize<HudElement>(ref CurrentHudElements, CurrentHudElements.Length << 1); } CurrentHudElements[Length - 1] = new HudElement(); } else if (Length == 0) { System.Windows.Forms.MessageBox.Show("Line outside of [element] structure encountered at line " + (i + 1).ToString(Culture) + " in " + File); } else { j = Lines[i].IndexOf("=", StringComparison.Ordinal); if (j >= 0) { string Command = Lines[i].Substring(0, j).TrimEnd(); string[] Arguments = Lines[i].Substring(j + 1).TrimStart().Split(new char[] { ',' }, StringSplitOptions.None); for (j = 0; j < Arguments.Length; j++) { Arguments[j] = Arguments[j].Trim(); } switch (Command.ToLowerInvariant()) { case "subject": if (Arguments.Length == 1) { CurrentHudElements[Length - 1].Subject = Arguments[0]; } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "position": if (Arguments.Length == 2) { float x, y; if (!float.TryParse(Arguments[0], NumberStyles.Float, Culture, out x)) { System.Windows.Forms.MessageBox.Show("X is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!float.TryParse(Arguments[1], NumberStyles.Float, Culture, out y)) { System.Windows.Forms.MessageBox.Show("Y is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].Position.X = x; CurrentHudElements[Length - 1].Position.Y = y; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "alignment": if (Arguments.Length == 2) { int x, y; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out x)) { System.Windows.Forms.MessageBox.Show("X is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[1], NumberStyles.Integer, Culture, out y)) { System.Windows.Forms.MessageBox.Show("Y is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].Alignment.X = Math.Sign(x); CurrentHudElements[Length - 1].Alignment.Y = Math.Sign(y); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "topleft": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].TopLeft.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].TopLeft.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "topmiddle": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].TopMiddle.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].TopMiddle.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "topright": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].TopRight.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].TopRight.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "centerleft": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].CenterLeft.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].CenterLeft.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "centermiddle": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].CenterMiddle.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].CenterMiddle.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "centerright": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].CenterRight.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].CenterRight.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "bottomleft": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].BottomLeft.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].BottomLeft.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "bottommiddle": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].BottomMiddle.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].BottomMiddle.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "bottomright": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].BottomRight.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].BottomRight.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "backcolor": if (Arguments.Length == 4) { int r, g, b, a; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out r)) { System.Windows.Forms.MessageBox.Show("R is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[1], NumberStyles.Integer, Culture, out g)) { System.Windows.Forms.MessageBox.Show("G is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[2], NumberStyles.Integer, Culture, out b)) { System.Windows.Forms.MessageBox.Show("B is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[3], NumberStyles.Integer, Culture, out a)) { System.Windows.Forms.MessageBox.Show("A is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { r = r < 0 ? 0 : r > 255 ? 255 : r; g = g < 0 ? 0 : g > 255 ? 255 : g; b = b < 0 ? 0 : b > 255 ? 255 : b; a = a < 0 ? 0 : a > 255 ? 255 : a; CurrentHudElements[Length - 1].BackgroundColor = new Color32((byte)r, (byte)g, (byte)b, (byte)a); } break; } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "overlaycolor": if (Arguments.Length == 4) { int r, g, b, a; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out r)) { System.Windows.Forms.MessageBox.Show("R is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[1], NumberStyles.Integer, Culture, out g)) { System.Windows.Forms.MessageBox.Show("G is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[2], NumberStyles.Integer, Culture, out b)) { System.Windows.Forms.MessageBox.Show("B is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[3], NumberStyles.Integer, Culture, out a)) { System.Windows.Forms.MessageBox.Show("A is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { r = r < 0 ? 0 : r > 255 ? 255 : r; g = g < 0 ? 0 : g > 255 ? 255 : g; b = b < 0 ? 0 : b > 255 ? 255 : b; a = a < 0 ? 0 : a > 255 ? 255 : a; CurrentHudElements[Length - 1].OverlayColor = new Color32((byte)r, (byte)g, (byte)b, (byte)a); } break; } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "textcolor": if (Arguments.Length == 4) { int r, g, b, a; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out r)) { System.Windows.Forms.MessageBox.Show("R is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[1], NumberStyles.Integer, Culture, out g)) { System.Windows.Forms.MessageBox.Show("G is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[2], NumberStyles.Integer, Culture, out b)) { System.Windows.Forms.MessageBox.Show("B is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[3], NumberStyles.Integer, Culture, out a)) { System.Windows.Forms.MessageBox.Show("A is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { r = r < 0 ? 0 : r > 255 ? 255 : r; g = g < 0 ? 0 : g > 255 ? 255 : g; b = b < 0 ? 0 : b > 255 ? 255 : b; a = a < 0 ? 0 : a > 255 ? 255 : a; CurrentHudElements[Length - 1].TextColor = new Color32((byte)r, (byte)g, (byte)b, (byte)a); } break; } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "textposition": if (Arguments.Length == 2) { float x, y; if (!float.TryParse(Arguments[0], NumberStyles.Float, Culture, out x)) { System.Windows.Forms.MessageBox.Show("X is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!float.TryParse(Arguments[1], NumberStyles.Float, Culture, out y)) { System.Windows.Forms.MessageBox.Show("Y is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].TextPosition.X = x; CurrentHudElements[Length - 1].TextPosition.Y = y; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "textalignment": if (Arguments.Length == 2) { int x, y; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out x)) { System.Windows.Forms.MessageBox.Show("X is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[1], NumberStyles.Integer, Culture, out y)) { System.Windows.Forms.MessageBox.Show("Y is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].TextAlignment.X = Math.Sign(x); CurrentHudElements[Length - 1].TextAlignment.Y = Math.Sign(y); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "textsize": if (Arguments.Length == 1) { int s; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out s)) { System.Windows.Forms.MessageBox.Show("SIZE is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { switch (s) { case 0: CurrentHudElements[Length - 1].Font = Fonts.VerySmallFont; break; case 1: CurrentHudElements[Length - 1].Font = Fonts.SmallFont; break; case 2: CurrentHudElements[Length - 1].Font = Fonts.NormalFont; break; case 3: CurrentHudElements[Length - 1].Font = Fonts.LargeFont; break; case 4: CurrentHudElements[Length - 1].Font = Fonts.VeryLargeFont; break; default: CurrentHudElements[Length - 1].Font = Fonts.NormalFont; break; } } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "textshadow": if (Arguments.Length == 1) { int s; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out s)) { System.Windows.Forms.MessageBox.Show("SHADOW is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].TextShadow = s != 0; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "text": if (Arguments.Length == 1) { CurrentHudElements[Length - 1].Text = Arguments[0]; } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "value": if (Arguments.Length == 1) { int n; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out n)) { System.Windows.Forms.MessageBox.Show("VALUE1 is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].Value1 = n; } } else if (Arguments.Length == 2) { float a, b; if (!float.TryParse(Arguments[0], NumberStyles.Float, Culture, out a)) { System.Windows.Forms.MessageBox.Show("VALUE1 is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!float.TryParse(Arguments[1], NumberStyles.Float, Culture, out b)) { System.Windows.Forms.MessageBox.Show("VALUE2 is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].Value1 = a; CurrentHudElements[Length - 1].Value2 = b; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "transition": if (Arguments.Length == 1) { int n; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out n)) { System.Windows.Forms.MessageBox.Show("TRANSITION is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].Transition = (HudTransition)n; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "transitionvector": if (Arguments.Length == 2) { float x, y; if (!float.TryParse(Arguments[0], NumberStyles.Float, Culture, out x)) { System.Windows.Forms.MessageBox.Show("X is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!float.TryParse(Arguments[1], NumberStyles.Float, Culture, out y)) { System.Windows.Forms.MessageBox.Show("Y is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].TransitionVector.X = x; CurrentHudElements[Length - 1].TransitionVector.Y = y; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; default: System.Windows.Forms.MessageBox.Show("Invalid command encountered at line " + (i + 1).ToString(Culture) + " in " + File); break; } } else { System.Windows.Forms.MessageBox.Show("Invalid statement encountered at line " + (i + 1).ToString(Culture) + " in " + File); } } } } } } Array.Resize<HudElement>(ref CurrentHudElements, Length); }
/// <summary> /// Update the whole user interface. /// </summary> private void UpdateUI() { // Don't update if the player didn't selected a building. if (CurrentSelectedBuilding == null) { return; } BuildingNameText.text = CurrentSelectedBuilding.GetData.Name; BuildingImage.sprite = CurrentSelectedBuilding.GetData.BuldingTexture; BuildingNameText2.text = CurrentSelectedBuilding.GetData.Name; BuildingImage2.sprite = CurrentSelectedBuilding.GetData.BuldingTexture; UpdateLevel(); if (!CurrentSelectedBuilding.IsBuiltHandler) { foreach (UISlot slot in BuildingSlots) { slot.SetDefaultSprite(); slot.RemoveUnit(); } for (int i = 0; i < CurrentSelectedBuilding.GetUnitIDs.Count; i++) { BuildingSlots[i].Init(Unit.Units[CurrentSelectedBuilding.GetUnitIDs[i]].GetUnitData.Icon, CurrentSelectedBuilding.GetUnitIDs[i]); } } UpdateLifeBar(); foreach (var HudElement in UIBuildingElements) { HudElement.SetActive(false); } if (!CurrentSelectedBuilding.IsBuiltHandler) { return; } if (CurrentSelectedBuilding is Storage) { UIBuildingElements[(int)EBuilding.Storage].SetActive(true); } if (CurrentSelectedBuilding is Farm) { UIBuildingElements[(int)EBuilding.Farm].SetActive(true); UIBuildingElements[(int)EBuilding.Farm].GetComponent <UIFarm>().UpdateUI(CurrentSelectedBuilding as Farm); } if (CurrentSelectedBuilding is Base) { UIBuildingElements[(int)EBuilding.Base].SetActive(true); UIBuildingElements[(int)EBuilding.Base].GetComponent <UIBase>().SetSlotEntrance(MapGenerator.GetGroundFromGlobalPosition(CurrentSelectedBuilding.GetEntrancePoss())); } if (CurrentSelectedBuilding is Scrap) { UIBuildingElements[(int)EBuilding.Scrap].SetActive(true); UIBuildingElements[(int)EBuilding.Scrap].GetComponent <UIScrap>().UpdateUI(CurrentSelectedBuilding as Scrap); } if (CurrentSelectedBuilding is House) { UIBuildingElements[(int)EBuilding.House].SetActive(true); UIBuildingElements[(int)EBuilding.House].GetComponent <UIHouse>().UpdateUI(CurrentSelectedBuilding as House); } if (CurrentSelectedBuilding is Hospital) { UIBuildingElements[(int)EBuilding.Hospital].SetActive(true); UIBuildingElements[(int)EBuilding.Hospital].GetComponent <UIHospital>().UpdateUI(CurrentSelectedBuilding as Hospital); } }
public void AddHudElement(HudElement hudElement) { hudElements.Add(hudElement); }
public void DestroyHud() => hudElements = null;
public void SetUpHud(HudElement hudElement) => hudElements = hudElement;
public void AddHudElement(HudElement element) { _elements.Add(element); }
public TextHudMessage(HudElement Parent = null, TextAlignment alignment = TextAlignment.Center) { this.Parent = Parent; this.alignment = alignment; }
// load hud internal static void LoadHUD() { CultureInfo Culture = CultureInfo.InvariantCulture; string Folder = Program.FileSystem.GetDataFolder("In-game", Options.Current.UserInterfaceFolder); string File = OpenBveApi.Path.CombineFile(Folder, "interface.cfg"); CurrentHudElements = new HudElement[16]; int Length = 0; if (System.IO.File.Exists(File)) { string[] Lines = System.IO.File.ReadAllLines(File, new System.Text.UTF8Encoding()); for (int i = 0; i < Lines.Length; i++) { int j = Lines[i].IndexOf(';'); if (j >= 0) { Lines[i] = Lines[i].Substring(0, j).Trim(); } else { Lines[i] = Lines[i].Trim(); } if (Lines[i].Length != 0) { if (!Lines[i].StartsWith(";", StringComparison.Ordinal)) { if (Lines[i].Equals("[element]", StringComparison.OrdinalIgnoreCase)) { Length++; if (Length > CurrentHudElements.Length) { Array.Resize <HudElement>(ref CurrentHudElements, CurrentHudElements.Length << 1); } CurrentHudElements[Length - 1] = new HudElement(); } else if (Length == 0) { System.Windows.Forms.MessageBox.Show("Line outside of [element] structure encountered at line " + (i + 1).ToString(Culture) + " in " + File); } else { j = Lines[i].IndexOf("=", StringComparison.Ordinal); if (j >= 0) { string Command = Lines[i].Substring(0, j).TrimEnd(); string[] Arguments = Lines[i].Substring(j + 1).TrimStart().Split(new char[] { ',' }, StringSplitOptions.None); for (j = 0; j < Arguments.Length; j++) { Arguments[j] = Arguments[j].Trim(); } switch (Command.ToLowerInvariant()) { case "subject": if (Arguments.Length == 1) { CurrentHudElements[Length - 1].Subject = Arguments[0]; } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "position": if (Arguments.Length == 2) { float x, y; if (!float.TryParse(Arguments[0], NumberStyles.Float, Culture, out x)) { System.Windows.Forms.MessageBox.Show("X is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!float.TryParse(Arguments[1], NumberStyles.Float, Culture, out y)) { System.Windows.Forms.MessageBox.Show("Y is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].Position.X = x; CurrentHudElements[Length - 1].Position.Y = y; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "alignment": if (Arguments.Length == 2) { int x, y; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out x)) { System.Windows.Forms.MessageBox.Show("X is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[1], NumberStyles.Integer, Culture, out y)) { System.Windows.Forms.MessageBox.Show("Y is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].Alignment.X = Math.Sign(x); CurrentHudElements[Length - 1].Alignment.Y = Math.Sign(y); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "topleft": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].TopLeft.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].TopLeft.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "topmiddle": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].TopMiddle.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].TopMiddle.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "topright": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].TopRight.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].TopRight.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "centerleft": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].CenterLeft.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].CenterLeft.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "centermiddle": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].CenterMiddle.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].CenterMiddle.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "centerright": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].CenterRight.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].CenterRight.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "bottomleft": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].BottomLeft.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].BottomLeft.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "bottommiddle": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].BottomMiddle.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].BottomMiddle.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "bottomright": if (Arguments.Length == 2) { if (Arguments[0].Length != 0 & !Arguments[0].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[0]), out CurrentHudElements[Length - 1].BottomRight.BackgroundTexture); } if (Arguments[1].Length != 0 & !Arguments[1].Equals("null", StringComparison.OrdinalIgnoreCase)) { Textures.RegisterTexture(OpenBveApi.Path.CombineFile(Folder, Arguments[1]), out CurrentHudElements[Length - 1].BottomRight.OverlayTexture); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "backcolor": if (Arguments.Length == 4) { int r, g, b, a; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out r)) { System.Windows.Forms.MessageBox.Show("R is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[1], NumberStyles.Integer, Culture, out g)) { System.Windows.Forms.MessageBox.Show("G is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[2], NumberStyles.Integer, Culture, out b)) { System.Windows.Forms.MessageBox.Show("B is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[3], NumberStyles.Integer, Culture, out a)) { System.Windows.Forms.MessageBox.Show("A is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { r = r < 0 ? 0 : r > 255 ? 255 : r; g = g < 0 ? 0 : g > 255 ? 255 : g; b = b < 0 ? 0 : b > 255 ? 255 : b; a = a < 0 ? 0 : a > 255 ? 255 : a; CurrentHudElements[Length - 1].BackgroundColor = new Color32((byte)r, (byte)g, (byte)b, (byte)a); } break; } System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); break; case "overlaycolor": if (Arguments.Length == 4) { int r, g, b, a; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out r)) { System.Windows.Forms.MessageBox.Show("R is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[1], NumberStyles.Integer, Culture, out g)) { System.Windows.Forms.MessageBox.Show("G is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[2], NumberStyles.Integer, Culture, out b)) { System.Windows.Forms.MessageBox.Show("B is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[3], NumberStyles.Integer, Culture, out a)) { System.Windows.Forms.MessageBox.Show("A is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { r = r < 0 ? 0 : r > 255 ? 255 : r; g = g < 0 ? 0 : g > 255 ? 255 : g; b = b < 0 ? 0 : b > 255 ? 255 : b; a = a < 0 ? 0 : a > 255 ? 255 : a; CurrentHudElements[Length - 1].OverlayColor = new Color32((byte)r, (byte)g, (byte)b, (byte)a); } break; } System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); break; case "textcolor": if (Arguments.Length == 4) { int r, g, b, a; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out r)) { System.Windows.Forms.MessageBox.Show("R is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[1], NumberStyles.Integer, Culture, out g)) { System.Windows.Forms.MessageBox.Show("G is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[2], NumberStyles.Integer, Culture, out b)) { System.Windows.Forms.MessageBox.Show("B is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[3], NumberStyles.Integer, Culture, out a)) { System.Windows.Forms.MessageBox.Show("A is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { r = r < 0 ? 0 : r > 255 ? 255 : r; g = g < 0 ? 0 : g > 255 ? 255 : g; b = b < 0 ? 0 : b > 255 ? 255 : b; a = a < 0 ? 0 : a > 255 ? 255 : a; CurrentHudElements[Length - 1].TextColor = new Color32((byte)r, (byte)g, (byte)b, (byte)a); } break; } System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); break; case "textposition": if (Arguments.Length == 2) { float x, y; if (!float.TryParse(Arguments[0], NumberStyles.Float, Culture, out x)) { System.Windows.Forms.MessageBox.Show("X is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!float.TryParse(Arguments[1], NumberStyles.Float, Culture, out y)) { System.Windows.Forms.MessageBox.Show("Y is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].TextPosition.X = x; CurrentHudElements[Length - 1].TextPosition.Y = y; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "textalignment": if (Arguments.Length == 2) { int x, y; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out x)) { System.Windows.Forms.MessageBox.Show("X is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!int.TryParse(Arguments[1], NumberStyles.Integer, Culture, out y)) { System.Windows.Forms.MessageBox.Show("Y is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].TextAlignment.X = Math.Sign(x); CurrentHudElements[Length - 1].TextAlignment.Y = Math.Sign(y); } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "textsize": if (Arguments.Length == 1) { int s; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out s)) { System.Windows.Forms.MessageBox.Show("SIZE is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { switch (s) { case 0: CurrentHudElements[Length - 1].Font = Fonts.VerySmallFont; break; case 1: CurrentHudElements[Length - 1].Font = Fonts.SmallFont; break; case 2: CurrentHudElements[Length - 1].Font = Fonts.NormalFont; break; case 3: CurrentHudElements[Length - 1].Font = Fonts.LargeFont; break; case 4: CurrentHudElements[Length - 1].Font = Fonts.VeryLargeFont; break; default: CurrentHudElements[Length - 1].Font = Fonts.NormalFont; break; } } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "textshadow": if (Arguments.Length == 1) { int s; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out s)) { System.Windows.Forms.MessageBox.Show("SHADOW is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].TextShadow = s != 0; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "text": if (Arguments.Length == 1) { CurrentHudElements[Length - 1].Text = Arguments[0]; } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "value": if (Arguments.Length == 1) { int n; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out n)) { System.Windows.Forms.MessageBox.Show("VALUE1 is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].Value1 = n; } } else if (Arguments.Length == 2) { float a, b; if (!float.TryParse(Arguments[0], NumberStyles.Float, Culture, out a)) { System.Windows.Forms.MessageBox.Show("VALUE1 is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!float.TryParse(Arguments[1], NumberStyles.Float, Culture, out b)) { System.Windows.Forms.MessageBox.Show("VALUE2 is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].Value1 = a; CurrentHudElements[Length - 1].Value2 = b; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "transition": if (Arguments.Length == 1) { int n; if (!int.TryParse(Arguments[0], NumberStyles.Integer, Culture, out n)) { System.Windows.Forms.MessageBox.Show("TRANSITION is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].Transition = (HudTransition)n; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; case "transitionvector": if (Arguments.Length == 2) { float x, y; if (!float.TryParse(Arguments[0], NumberStyles.Float, Culture, out x)) { System.Windows.Forms.MessageBox.Show("X is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else if (!float.TryParse(Arguments[1], NumberStyles.Float, Culture, out y)) { System.Windows.Forms.MessageBox.Show("Y is invalid in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } else { CurrentHudElements[Length - 1].TransitionVector.X = x; CurrentHudElements[Length - 1].TransitionVector.Y = y; } } else { System.Windows.Forms.MessageBox.Show("Incorrect number of arguments supplied in " + Command + " at line " + (i + 1).ToString(Culture) + " in " + File); } break; default: System.Windows.Forms.MessageBox.Show("Invalid command encountered at line " + (i + 1).ToString(Culture) + " in " + File); break; } } else { System.Windows.Forms.MessageBox.Show("Invalid statement encountered at line " + (i + 1).ToString(Culture) + " in " + File); } } } } } } Array.Resize <HudElement>(ref CurrentHudElements, Length); }