From 1eb58ddf558093e07e8a62b161c3fbe0132fe5ba Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Thu, 16 May 2019 06:10:23 +0300 Subject: [PATCH] (eb91d3390) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev --- .../Source/Characters/Animation/Ragdoll.cs | 101 +++++-- .../Source/GameSession/CrewManager.cs | 247 +++++++++++++++--- .../Source/Screens/CampaignSetupUI.cs | 2 + .../Source/Screens/MainMenuScreen.cs | 4 + .../Data/ContentPackages/Vanilla 0.9.xml | 1 + .../BarotraumaShared/SharedContent.projitems | 3 + .../AI/Objectives/AIObjectiveFixLeak.cs | 25 ++ .../AI/Objectives/AIObjectiveIdle.cs | 15 ++ .../AI/Objectives/AIObjectiveOperateItem.cs | 4 + .../Components/Machines/Deconstructor.cs | 19 ++ .../Items/Components/Machines/Steering.cs | 27 -- .../BarotraumaShared/Source/Items/Item.cs | 32 +++ .../BarotraumaShared/Source/Map/Hull.cs | 19 ++ .../BarotraumaShared/Submarines/Berilia.sub | Bin 39179 -> 40213 bytes Barotrauma/BarotraumaShared/changelog.txt | 3 +- 15 files changed, 421 insertions(+), 81 deletions(-) diff --git a/Barotrauma/BarotraumaClient/Source/Characters/Animation/Ragdoll.cs b/Barotrauma/BarotraumaClient/Source/Characters/Animation/Ragdoll.cs index bcf133b30..fa30d8a82 100644 --- a/Barotrauma/BarotraumaClient/Source/Characters/Animation/Ragdoll.cs +++ b/Barotrauma/BarotraumaClient/Source/Characters/Animation/Ragdoll.cs @@ -108,6 +108,61 @@ namespace Barotrauma } } + //unconscious/dead characters can't correct their position using AnimController movement + // -> we need to correct it manually + if (!character.AllowInput) + { + float mainLimbDistSqrd = Vector2.DistanceSquared(MainLimb.PullJointWorldAnchorA, Collider.SimPosition); + float mainLimbErrorTolerance = 0.1f; + //if the main limb is roughly at the correct position and the collider isn't moving (much at least), + //don't attempt to correct the position. + if (mainLimbDistSqrd > mainLimbErrorTolerance || Collider.LinearVelocity.LengthSquared() > 0.05f) + { + MainLimb.PullJointWorldAnchorB = Collider.SimPosition; + MainLimb.PullJointEnabled = true; + } + character.SelectedConstruction = character.MemState[0].SelectedItem; + } + + if (character.MemState[0].Animation == AnimController.Animation.CPR) + { + character.AnimController.Anim = AnimController.Animation.CPR; + } + else if (character.AnimController.Anim == AnimController.Animation.CPR) + { + character.AnimController.Anim = AnimController.Animation.None; + } + + Vector2 newVelocity = Collider.LinearVelocity; + Vector2 newPosition = Collider.SimPosition; + float newRotation = Collider.Rotation; + float newAngularVelocity = Collider.AngularVelocity; + Collider.CorrectPosition(character.MemState, out newPosition, out newVelocity, out newRotation, out newAngularVelocity); + + newVelocity = newVelocity.ClampLength(100.0f); + if (!MathUtils.IsValid(newVelocity)) { newVelocity = Vector2.Zero; } + overrideTargetMovement = newVelocity.LengthSquared() > 0.01f ? newVelocity : Vector2.Zero; + + Collider.LinearVelocity = newVelocity; + Collider.AngularVelocity = newAngularVelocity; + + float distSqrd = Vector2.DistanceSquared(newPosition, Collider.SimPosition); + float errorTolerance = character.AllowInput ? 0.01f : 0.2f; + if (distSqrd > errorTolerance) + { + if (distSqrd > 10.0f || !character.AllowInput) + { + Collider.TargetRotation = newRotation; + SetPosition(newPosition, lerp: distSqrd < 5.0f, ignorePlatforms: false); + } + else + { + Collider.TargetRotation = newRotation; + Collider.TargetPosition = newPosition; + Collider.MoveToTargetPosition(true); + } + } + //unconscious/dead characters can't correct their position using AnimController movement // -> we need to correct it manually if (!character.AllowInput) @@ -151,32 +206,34 @@ namespace Barotrauma } } - - if (character.MemLocalState.Count > 120) character.MemLocalState.RemoveRange(0, character.MemLocalState.Count - 120); - character.MemState.Clear(); + character.MemLocalState.Clear(); } - } - - partial void ImpactProjSpecific(float impact, Body body) - { - float volume = MathHelper.Clamp(impact - 3.0f, 0.5f, 1.0f); - - if (body.UserData is Limb limb && character.Stun <= 0f) + else { - if (impact > 3.0f) { PlayImpactSound(limb); } - } - else if (body.UserData is Limb || body == Collider.FarseerBody) - { - if (!character.IsRemotePlayer && impact > ImpactTolerance) + //remove states with a timestamp (there may still timestamp-based states + //in the list if the controlled character switches from timestamp-based interpolation to ID-based) + character.MemState.RemoveAll(m => m.Timestamp > 0.0f); + + for (int i = 0; i < character.MemLocalState.Count; i++) { - SoundPlayer.PlayDamageSound("LimbBlunt", strongestImpact, Collider); + if (character.Submarine == null) + { + //transform in-sub coordinates to outside coordinates + if (character.MemLocalState[i].Position.Y > lowestSubPos) + { + character.MemLocalState[i].TransformInToOutside(); + } + } + else if (currentHull?.Submarine != null) + { + //transform outside coordinates to in-sub coordinates + if (character.MemLocalState[i].Position.Y < lowestSubPos) + { + character.MemLocalState[i].TransformOutToInside(currentHull.Submarine); + } + } + } - } - if (Character.Controlled == character) - { - GameMain.GameScreen.Cam.Shake = Math.Min(Math.Max(strongestImpact, GameMain.GameScreen.Cam.Shake), 3.0f); - } - } if (character.MemState.Count < 1) return; diff --git a/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs b/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs index e9bd2ba83..8b52b1fd9 100644 --- a/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs +++ b/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs @@ -74,12 +74,17 @@ namespace Barotrauma public CrewManager(XElement element, bool isSinglePlayer) : this(isSinglePlayer) { - if (!isSinglePlayer) + if (GameMain.Client != null) { - DebugConsole.ThrowError("Cannot add messages to single player chat box in multiplayer mode!\n" + Environment.StackTrace); + //let the server create random conversations in MP return; } - if (string.IsNullOrEmpty(text)) { return; } + List availableSpeakers = Character.CharacterList.FindAll(c => + c.AIController is HumanAIController && + !c.IsDead && + c.SpeechImpediment <= 100.0f); + pendingConversationLines.AddRange(NPCConversation.CreateRandom(availableSpeakers)); + } var characterInfo = new CharacterInfo(subElement); characterInfos.Add(characterInfo); @@ -90,7 +95,6 @@ namespace Barotrauma break; } } - ChatBox.AddMessage(ChatMessage.Create(senderName, text, messageType, sender)); } partial void InitProjectSpecific() @@ -239,27 +243,24 @@ namespace Barotrauma public IEnumerable GetCharacters() { - if (character?.Inventory == null) return null; + if (characterInfos.Contains(characterInfo)) + { + DebugConsole.ThrowError("Tried to add the same character info to CrewManager twice.\n" + Environment.StackTrace); + return; + } - var radioItem = character.Inventory.Items.FirstOrDefault(it => it != null && it.GetComponent() != null); - if (radioItem == null) return null; - if (requireEquipped && !character.HasEquippedItem(radioItem)) return null; - - return radioItem.GetComponent(); + characterInfos.Add(characterInfo); } public IEnumerable GetCharacterInfos() { - if (GameMain.Client != null) + if (character == null) { - //let the server create random conversations in MP + DebugConsole.ThrowError("Tried to remove a null character from CrewManager.\n" + Environment.StackTrace); return; } - List availableSpeakers = Character.CharacterList.FindAll(c => - c.AIController is HumanAIController && - !c.IsDead && - c.SpeechImpediment <= 100.0f); - pendingConversationLines.AddRange(NPCConversation.CreateRandom(availableSpeakers)); + characters.Remove(character); + if (removeInfo) characterInfos.Remove(character.Info); } public void AddCharacter(Character character) @@ -633,9 +634,183 @@ namespace Barotrauma { characterListBox.BarScroll = roundedPos; } - soundIcon.Visible = !muted && !mutedLocally; - soundIconDisabled.Visible = muted || mutedLocally; - soundIconDisabled.ToolTip = TextManager.Get(mutedLocally ? "MutedLocally" : "MutedGlobally"); + var characterArea = new GUIButton(new RectTransform(new Point(characterInfoWidth, frame.Rect.Height), frame.RectTransform, Anchor.CenterLeft), style: "GUITextBox") + { + UserData = character, + Color = frame.Color, + SelectedColor = frame.SelectedColor, + HoverColor = frame.HoverColor, + ToolTip = characterToolTip + }; + + var soundIcon = new GUIImage(new RectTransform(new Point((int)(characterArea.Rect.Height * 0.5f)), characterArea.RectTransform, Anchor.CenterRight) { AbsoluteOffset = new Point(5, 0) }, + "GUISoundIcon") + { + UserData = "soundicon", + CanBeFocused = false, + Visible = true + }; + soundIcon.Color = new Color(soundIcon.Color, 0.0f); + new GUIImage(new RectTransform(new Point((int)(characterArea.Rect.Height * 0.5f)), characterArea.RectTransform, Anchor.CenterRight) { AbsoluteOffset = new Point(5, 0) }, + "GUISoundIconDisabled") + { + UserData = "soundicondisabled", + CanBeFocused = true, + Visible = false + }; + + if (isSinglePlayer) + { + characterArea.OnClicked = CharacterClicked; + } + else + { + characterArea.CanBeFocused = false; + characterArea.CanBeSelected = false; + } + + var characterImage = new GUICustomComponent(new RectTransform(new Point(characterArea.Rect.Height), characterArea.RectTransform, Anchor.CenterLeft), + onDraw: (sb, component) => character.Info.DrawIcon(sb, component.Rect.Center.ToVector2(), targetAreaSize: component.Rect.Size.ToVector2())) + { + CanBeFocused = false, + HoverColor = Color.White, + SelectedColor = Color.White, + ToolTip = characterToolTip + }; + + var characterName = new GUITextBlock(new RectTransform(new Point(characterArea.Rect.Width - characterImage.Rect.Width - soundIcon.Rect.Width - 10, characterArea.Rect.Height), + characterArea.RectTransform, Anchor.CenterRight) { AbsoluteOffset = new Point(soundIcon.Rect.Width + 10, 0) }, + character.Name, textColor: frame.Color, font: GUI.SmallFont, wrap: true) + { + Color = frame.Color, + HoverColor = Color.Transparent, + SelectedColor = Color.Transparent, + CanBeFocused = false, + ToolTip = characterToolTip, + AutoScale = true + }; + + //---------------- order buttons ---------------- + + var orderButtonFrame = new GUILayoutGroup(new RectTransform(new Point(100, frame.Rect.Height), frame.RectTransform) + { AbsoluteOffset = new Point(characterInfoWidth + spacing, 0) }, + isHorizontal: true, childAnchor: Anchor.CenterLeft) + { + AbsoluteSpacing = (int)(10 * GUI.Scale), + UserData = "orderbuttons", + CanBeFocused = false + }; + + //listbox for holding the orders inappropriate for this character + //(so we can easily toggle their visibility) + var wrongOrderList = new GUIListBox(new RectTransform(new Point(50, orderButtonFrame.Rect.Height), orderButtonFrame.RectTransform), isHorizontal: true, style: null) + { + ScrollBarEnabled = false, + ScrollBarVisible = false, + Enabled = false, + Spacing = spacing, + ClampMouseRectToParent = false + }; + wrongOrderList.Content.ClampMouseRectToParent = false; + + for (int i = 0; i < orders.Count; i++) + { + var order = orders[i]; + if (order.TargetAllCharacters) continue; + + RectTransform btnParent = (i >= correctOrderCount + neutralOrderCount) ? + wrongOrderList.Content.RectTransform : + orderButtonFrame.RectTransform; + + var btn = new GUIButton(new RectTransform(new Point(iconSize, iconSize), btnParent, Anchor.CenterLeft), + style: null) + { + UserData = order + }; + + new GUIFrame(new RectTransform(new Vector2(1.5f), btn.RectTransform, Anchor.Center), "OuterGlow") + { + Color = Color.Lerp(order.Color, frame.Color, 0.5f) * 0.8f, + HoverColor = Color.Lerp(order.Color, frame.Color, 0.5f) * 1.0f, + PressedColor = Color.Lerp(order.Color, frame.Color, 0.5f) * 0.6f, + UserData = "selected", + CanBeFocused = false, + Visible = false + }; + + var img = new GUIImage(new RectTransform(Vector2.One, btn.RectTransform), order.Prefab.SymbolSprite); + img.Scale = iconSize / (float)img.SourceRect.Width; + img.Color = Color.Lerp(order.Color, frame.Color, 0.5f); + img.ToolTip = order.Name; + img.HoverColor = Color.Lerp(img.Color, Color.White, 0.5f); + + btn.OnClicked += (GUIButton button, object userData) => + { + if (Character.Controlled == null || Character.Controlled.SpeechImpediment >= 100.0f) return false; + + if (btn.GetChildByUserData("selected").Visible) + { + SetCharacterOrder(character, Order.PrefabList.Find(o => o.AITag == "dismissed"), null, Character.Controlled); + } + else + { + if (order.ItemComponentType != null || order.ItemIdentifiers.Length > 0 || order.Options.Length > 1) + { + CreateOrderTargetFrame(button, character, order); + } + else + { + SetCharacterOrder(character, order, null, Character.Controlled); + } + } + return true; + }; + btn.UserData = order; + btn.ToolTip = order.Name; + + //divider between different groups of orders + if (i == correctOrderCount - 1 || i == correctOrderCount + neutralOrderCount - 1) + { + //TODO: divider sprite + new GUIFrame(new RectTransform(new Point(8, iconSize), orderButtonFrame.RectTransform), style: "GUIButton"); + } + } + + var toggleWrongOrderBtn = new GUIButton(new RectTransform(new Point((int)(30 * GUI.Scale), wrongOrderList.Rect.Height), wrongOrderList.Content.RectTransform), + "", style: "UIToggleButton") + { + UserData = "togglewrongorder", + CanBeFocused = false + }; + + wrongOrderList.RectTransform.NonScaledSize = new Point( + wrongOrderList.Content.Children.Sum(c => c.Rect.Width + wrongOrderList.Spacing), + wrongOrderList.RectTransform.NonScaledSize.Y); + wrongOrderList.RectTransform.SetAsLastChild(); + + new GUIFrame(new RectTransform(new Point( + wrongOrderList.Rect.Width - toggleWrongOrderBtn.Rect.Width - wrongOrderList.Spacing * 2, + wrongOrderList.Rect.Height), wrongOrderList.Content.RectTransform), + style: null) + { + CanBeFocused = false + }; + + //scale to fit the content + orderButtonFrame.RectTransform.NonScaledSize = new Point( + orderButtonFrame.Children.Sum(c => c.Rect.Width + orderButtonFrame.AbsoluteSpacing), + orderButtonFrame.RectTransform.NonScaledSize.Y); + + frame.RectTransform.NonScaledSize = new Point( + characterInfoWidth + spacing + (orderButtonFrame.Rect.Width - wrongOrderList.Rect.Width), + frame.RectTransform.NonScaledSize.Y); + + characterListBox.RectTransform.NonScaledSize = new Point( + characterListBox.Content.Children.Max(c => c.Rect.Width) + wrongOrderList.Rect.Width, + characterListBox.RectTransform.NonScaledSize.Y); + characterListBox.Content.RectTransform.NonScaledSize = characterListBox.RectTransform.NonScaledSize; + characterListBox.UpdateScrollBarSize(); + return frame; } private IEnumerable KillCharacterAnim(GUIComponent component) @@ -779,6 +954,12 @@ namespace Barotrauma } return; } + List availableSpeakers = Character.CharacterList.FindAll(c => + c.AIController is HumanAIController && + !c.IsDead && + c.SpeechImpediment <= 100.0f); + pendingConversationLines.AddRange(NPCConversation.CreateRandom(availableSpeakers)); + } character.SetOrder(order, option, orderGiver, speak: orderGiver != character); if (IsSinglePlayer) @@ -836,19 +1017,23 @@ namespace Barotrauma } } } - //only one target (or an order with no particular targets), just show options - else + + character.SetOrder(order, option, orderGiver, speak: orderGiver != character); + if (IsSinglePlayer) { - orderTargetFrame = new GUILayoutGroup(new RectTransform(new Vector2(0.2f + order.Options.Length * 0.1f, 0.18f), GUI.Canvas) - { AbsoluteOffset = new Point(orderButton.Rect.Center.X, orderButton.Rect.Bottom) }, - isHorizontal: true, childAnchor: Anchor.BottomLeft) + orderGiver?.Speak( + order.GetChatMessage(character.Name, orderGiver.CurrentHull?.DisplayName, givingOrderToSelf: character == orderGiver, orderOption: option), null); + } + else if (orderGiver != null) + { + OrderChatMessage msg = new OrderChatMessage(order, option, order.TargetItemComponent?.Item, character, orderGiver); + if (GameMain.Client != null) { - UserData = character, - Stretch = true - }; - //line connecting the order button to the option buttons - //TODO: sprite - new GUIFrame(new RectTransform(new Vector2(0.5f, 1.0f), orderTargetFrame.RectTransform), style: null); + GameMain.Client.SendChatMessage(msg); + } + } + DisplayCharacterOrder(character, order); + } /// /// Create the UI panel that's used to select the target and options for a given order diff --git a/Barotrauma/BarotraumaClient/Source/Screens/CampaignSetupUI.cs b/Barotrauma/BarotraumaClient/Source/Screens/CampaignSetupUI.cs index 89b9a2ee6..6cd4656fc 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/CampaignSetupUI.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/CampaignSetupUI.cs @@ -416,6 +416,8 @@ namespace Barotrauma private GUILayoutGroup subPreviewContainer; + private GUILayoutGroup subPreviewContainer; + private GUIButton loadGameButton; public Action StartNewGame; diff --git a/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs index 287ac0265..96c441896 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/MainMenuScreen.cs @@ -789,6 +789,10 @@ namespace Barotrauma GUI.Draw(Cam, spriteBatch); + spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, GameMain.ScissorTestEnable); + + GUI.Draw(Cam, spriteBatch); + GUI.Draw(Cam, spriteBatch); #if DEBUG diff --git a/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml b/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml index 3bd2357dd..9cd0afff7 100644 --- a/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml +++ b/Barotrauma/BarotraumaShared/Data/ContentPackages/Vanilla 0.9.xml @@ -74,6 +74,7 @@ + diff --git a/Barotrauma/BarotraumaShared/SharedContent.projitems b/Barotrauma/BarotraumaShared/SharedContent.projitems index 2a6bce822..c49d8a1be 100644 --- a/Barotrauma/BarotraumaShared/SharedContent.projitems +++ b/Barotrauma/BarotraumaShared/SharedContent.projitems @@ -2174,6 +2174,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveFixLeak.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveFixLeak.cs index b45b6cc76..a6b33c047 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveFixLeak.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveFixLeak.cs @@ -1100,6 +1100,31 @@ namespace Barotrauma { #if DEBUG DebugConsole.ThrowError("AIObjectiveFixLeak failed - the item \"" + weldingTool + "\" has no RepairTool component but is tagged as a welding tool"); +#endif + abandon = true; + return; + } + Vector2 gapDiff = Leak.WorldPosition - character.WorldPosition; + // TODO: use the collider size/reach? + if (!character.AnimController.InWater && Math.Abs(gapDiff.X) < 100 && gapDiff.Y < 0.0f && gapDiff.Y > -150) + { + HumanAIController.AnimController.Crouching = true; + } + float reach = ConvertUnits.ToSimUnits(repairTool.Range); + bool canOperate = ConvertUnits.ToSimUnits(gapDiff.Length()) < reach; + if (canOperate) + { + TryAddSubObjective(ref operateObjective, () => new AIObjectiveOperateItem(repairTool, character, objectiveManager, option: "", requireEquip: true, operateTarget: Leak)); + } + else + { + TryAddSubObjective(ref gotoObjective, () => new AIObjectiveGoTo(ConvertUnits.ToSimUnits(GetStandPosition()), character, objectiveManager) { CloseEnough = reach * 0.75f }); + } + var repairTool = weldingTool.GetComponent(); + if (repairTool == null) + { +#if DEBUG + DebugConsole.ThrowError("AIObjectiveFixLeak failed - the item \"" + weldingTool + "\" has no RepairTool component but is tagged as a welding tool"); #endif abandon = true; return; diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs index eeef8131c..1e1e961f6 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveIdle.cs @@ -73,6 +73,21 @@ namespace Barotrauma } } + public override void Update(float deltaTime) + { + if (objectiveManager.CurrentObjective == this) + { + if (randomTimer > 0) + { + randomTimer -= deltaTime; + } + else + { + SetRandom(); + } + } + } + public override bool IsCompleted() => false; public override bool CanBeCompleted => true; diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveOperateItem.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveOperateItem.cs index 408b52531..b09e891b6 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveOperateItem.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/Objectives/AIObjectiveOperateItem.cs @@ -234,6 +234,10 @@ namespace Barotrauma { isCompleted = true; } + if (component.AIOperate(deltaTime, character, this)) + { + isCompleted = true; + } } else { diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs index 76b490647..2f15d6437 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs @@ -677,6 +677,25 @@ namespace Barotrauma.Items.Components } } + if (targetItem.Prefab.DeconstructItems.Any()) + { + inputContainer.Inventory.RemoveItem(targetItem); + Entity.Spawner.AddToRemoveQueue(targetItem); + MoveInputQueue(); + PutItemsToLinkedContainer(); + } + else + { + if (outputContainer.Inventory.Items.All(i => i != null)) + { + targetItem.Drop(dropper: null); + } + else + { + outputContainer.Inventory.TryPutItem(targetItem, user: null, createNetworkEvent: true); + } + } + if (targetItem.Prefab.DeconstructItems.Any()) { inputContainer.Inventory.RemoveItem(targetItem); diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Steering.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Steering.cs index a251165ce..2aafee648 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Steering.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Steering.cs @@ -212,33 +212,6 @@ namespace Barotrauma.Items.Components } } - public Vector2? PosToMaintain - { - get { return posToMaintain; } - set { posToMaintain = value; } - } - - struct ObstacleDebugInfo - { - public Vector2 Point1; - public Vector2 Point2; - - public Vector2? Intersection; - - public float Dot; - - public Vector2 AvoidStrength; - - public ObstacleDebugInfo(GraphEdge edge, Vector2? intersection, float dot, Vector2 avoidStrength) - { - Point1 = edge.Point1; - Point2 = edge.Point2; - Intersection = intersection; - Dot = dot; - AvoidStrength = avoidStrength; - } - } - //edge point 1, edge point 2, avoid strength private List debugDrawObstacles = new List(); diff --git a/Barotrauma/BarotraumaShared/Source/Items/Item.cs b/Barotrauma/BarotraumaShared/Source/Items/Item.cs index 71bbfaf9b..39bdfb8f0 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Item.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Item.cs @@ -1172,6 +1172,38 @@ namespace Barotrauma } } + public void UpdateTransform() + { + Submarine prevSub = Submarine; + + FindHull(); + + if (Submarine == null && prevSub != null) + { + body.SetTransform(body.SimPosition + prevSub.SimPosition, body.Rotation); + } + else if (Submarine != null && prevSub == null) + { + body.SetTransform(body.SimPosition - Submarine.SimPosition, body.Rotation); + } + else if (Submarine != null && prevSub != null && Submarine != prevSub) + { + body.SetTransform(body.SimPosition + prevSub.SimPosition - Submarine.SimPosition, body.Rotation); + } + + Vector2 displayPos = ConvertUnits.ToDisplayUnits(body.SimPosition); + rect.X = (int)(displayPos.X - rect.Width / 2.0f); + rect.Y = (int)(displayPos.Y + rect.Height / 2.0f); + + if (Math.Abs(body.LinearVelocity.X) > NetConfig.MaxPhysicsBodyVelocity || + Math.Abs(body.LinearVelocity.Y) > NetConfig.MaxPhysicsBodyVelocity) + { + body.LinearVelocity = new Vector2( + MathHelper.Clamp(body.LinearVelocity.X, -NetConfig.MaxPhysicsBodyVelocity, NetConfig.MaxPhysicsBodyVelocity), + MathHelper.Clamp(body.LinearVelocity.Y, -NetConfig.MaxPhysicsBodyVelocity, NetConfig.MaxPhysicsBodyVelocity)); + } + } + public void UpdateTransform() { Submarine prevSub = Submarine; diff --git a/Barotrauma/BarotraumaShared/Source/Map/Hull.cs b/Barotrauma/BarotraumaShared/Source/Map/Hull.cs index 5160aa6f5..5b48a8f40 100644 --- a/Barotrauma/BarotraumaShared/Source/Map/Hull.cs +++ b/Barotrauma/BarotraumaShared/Source/Map/Hull.cs @@ -645,6 +645,25 @@ namespace Barotrauma } } + public string DisplayName + { + get; + private set; + } + + private string roomName; + [Editable, Serialize("", true, translationTextTag: "RoomName.")] + public string RoomName + { + get { return roomName; } + set + { + if (roomName == value) { return; } + roomName = value; + DisplayName = TextManager.Get(roomName, returnNull: true) ?? roomName; + } + } + public override Rectangle Rect { get diff --git a/Barotrauma/BarotraumaShared/Submarines/Berilia.sub b/Barotrauma/BarotraumaShared/Submarines/Berilia.sub index e7d6c5629b64ba7483f6d29bbdaa385d970cc76c..bce68dc083dd1edb8e1d54ae7f306545898bb873 100644 GIT binary patch literal 40213 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⁡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 literal 39179 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

1sq$RKi09_m1useSovje>dD+rJv-%g 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