diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index a0651ba95..fc015ecbe 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -303,6 +303,11 @@ namespace Barotrauma } } + public Dictionary HUDProgressBars + { + get { return hudProgressBars; } + } + public HuskInfection huskInfection; public float HuskInfectionState { @@ -1289,10 +1294,6 @@ namespace Barotrauma if (!Enabled) return; AnimController.Draw(spriteBatch); - - //GUI.DrawLine(spriteBatch, ConvertUnits.ToDisplayUnits(animController.limbs[0].SimPosition.X, animController.limbs[0].SimPosition.Y), - // ConvertUnits.ToDisplayUnits(animController.limbs[0].SimPosition.X, animController.limbs[0].SimPosition.Y) + - // ConvertUnits.ToDisplayUnits(animController.targetMovement.X, animController.targetMovement.Y), Color.Green); } public void DrawHUD(SpriteBatch spriteBatch, Camera cam) @@ -1304,7 +1305,6 @@ namespace Barotrauma { if (!Enabled) return; - if (GameMain.DebugDraw) { AnimController.DebugDraw(spriteBatch); @@ -1312,16 +1312,8 @@ namespace Barotrauma if (aiTarget != null) aiTarget.Draw(spriteBatch); } - if (this == controlled) - { - foreach (HUDProgressBar progressBar in hudProgressBars.Values) - { - progressBar.Draw(spriteBatch); - } - - return; - } - + if (this == controlled) return; + Vector2 pos = DrawPosition; pos.Y = -pos.Y; diff --git a/Subsurface/Source/Characters/CharacterHUD.cs b/Subsurface/Source/Characters/CharacterHUD.cs index 12e5c2cb1..42ff6d594 100644 --- a/Subsurface/Source/Characters/CharacterHUD.cs +++ b/Subsurface/Source/Characters/CharacterHUD.cs @@ -150,7 +150,12 @@ namespace Barotrauma textPos.Y += 25; } - } + } + + foreach (HUDProgressBar progressBar in character.HUDProgressBars.Values) + { + progressBar.Draw(spriteBatch, cam); + } } if (Screen.Selected == GameMain.EditMapScreen) return; diff --git a/Subsurface/Source/Characters/HUDProgressBar.cs b/Subsurface/Source/Characters/HUDProgressBar.cs index b6f0f4b2b..8cc2adef8 100644 --- a/Subsurface/Source/Characters/HUDProgressBar.cs +++ b/Subsurface/Source/Characters/HUDProgressBar.cs @@ -44,17 +44,20 @@ namespace Barotrauma FadeTimer -= deltatime; } - public void Draw(SpriteBatch spriteBatch) + public void Draw(SpriteBatch spriteBatch, Camera cam) { - float a = Math.Min(FadeTimer,1.0f); + float a = Math.Min(FadeTimer, 1.0f); - GUI.DrawProgressBar(spriteBatch, - new Vector2(WorldPosition.X - Size.X/2, (WorldPosition.Y + Size.Y/2)), + Vector2 pos = cam.WorldToScreen( + new Vector2(WorldPosition.X - Size.X / 2, WorldPosition.Y + Size.Y / 2)); + + pos.Y = -pos.Y; + + GUI.DrawProgressBar(spriteBatch, + pos, Size, progress, Color.Lerp(emptyColor, fullColor, progress) * a, Color.White * a * 0.8f); } - - } } diff --git a/Subsurface/Source/Items/Components/Holdable/RepairTool.cs b/Subsurface/Source/Items/Components/Holdable/RepairTool.cs index c5045066f..c08b5bca6 100644 --- a/Subsurface/Source/Items/Components/Holdable/RepairTool.cs +++ b/Subsurface/Source/Items/Components/Holdable/RepairTool.cs @@ -178,6 +178,7 @@ namespace Barotrauma.Items.Components if ((targetStructure = (targetBody.UserData as Structure)) != null) { if (!fixableEntities.Contains(targetStructure.Name)) return; + if (targetStructure.IsPlatform) return; int sectionIndex = targetStructure.FindSectionIndex(ConvertUnits.ToDisplayUnits(pickedPosition)); if (sectionIndex < 0) return;