From eac98b22fa7fc4a639b2b83f9b65147d87c76190 Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Mon, 18 Mar 2019 22:31:34 +0200 Subject: [PATCH] bdbcef4...18b4bac commit 18b4bacd5bb645f36f62e77587af971cb789d37c Author: Daniel Asteljoki Date: Fri Mar 8 13:04:51 2019 +0200 Added a beginner level sub commit eef09f7d07cde64d1f2f6971eda733505339a0c0 Author: itchyOwl Date: Thu Mar 7 19:05:14 2019 +0200 Remove the old sprite when recreating the sprite. commit a6c3ce00782882bc14f200f95abab0fa4d5d9a2d Author: itchyOwl Date: Thu Mar 7 19:04:51 2019 +0200 Fix gender specific wearables not refreshing when we change the gender. commit f606b801dac9e4cbb4238506ff4d73981709a2f8 Author: itchyOwl Date: Thu Mar 7 18:42:14 2019 +0200 Move some console commands from the shared project to the client. These should not be debug only, because they might be useful for modders too. commit 154251c183eacf37e92fa7b27bb6d57bb15797d8 Author: itchyOwl Date: Thu Mar 7 14:42:22 2019 +0200 Disable latchonto ai for now. --- .../Source/Characters/Limb.cs | 1 + .../BarotraumaClient/Source/DebugConsole.cs | 279 ++++++++++++++++++ .../Source/GameSession/CrewManager.cs | 21 ++ .../BarotraumaClient/Source/GameSettings.cs | 22 -- .../Source/Items/Components/ItemComponent.cs | 57 ---- .../Source/Screens/CharacterEditorScreen.cs | 37 +++ .../BarotraumaShared.projitems | 3 + .../BarotraumaShared/Source/DebugConsole.cs | 99 +------ .../BarotraumaShared/Source/GameSettings.cs | 26 ++ .../Source/Items/Components/Wearable.cs | 10 +- .../BarotraumaShared/Source/Map/Map/Map.cs | 7 - .../BarotraumaShared/Source/PlayerInput.cs | 10 - .../BarotraumaShared/Submarines/Dugong.sub | Bin 0 -> 66437 bytes 13 files changed, 377 insertions(+), 195 deletions(-) create mode 100644 Barotrauma/BarotraumaShared/Submarines/Dugong.sub diff --git a/Barotrauma/BarotraumaClient/Source/Characters/Limb.cs b/Barotrauma/BarotraumaClient/Source/Characters/Limb.cs index 6f4b916f3..82cd7aab6 100644 --- a/Barotrauma/BarotraumaClient/Source/Characters/Limb.cs +++ b/Barotrauma/BarotraumaClient/Source/Characters/Limb.cs @@ -235,6 +235,7 @@ namespace Barotrauma public void RecreateSprite() { if (Sprite == null) { return; } + Sprite.Remove(); var source = Sprite.SourceElement; Sprite = new Sprite(source, file: GetSpritePath(source)); } diff --git a/Barotrauma/BarotraumaClient/Source/DebugConsole.cs b/Barotrauma/BarotraumaClient/Source/DebugConsole.cs index 57c7dc1dd..0e7a33e97 100644 --- a/Barotrauma/BarotraumaClient/Source/DebugConsole.cs +++ b/Barotrauma/BarotraumaClient/Source/DebugConsole.cs @@ -1782,6 +1782,189 @@ namespace Barotrauma TextManager.WriteToCSV(); NPCConversation.WriteToCSV(); })); +#endif + + commands.Add(new Command("cleanbuild", "", (string[] args) => + { + GameMain.Config.MusicVolume = 0.5f; + GameMain.Config.SoundVolume = 0.5f; + NewMessage("Music and sound volume set to 0.5", Color.Green); + + commands.Add(new Command("camerasettings", "camerasettings [defaultzoom] [zoomsmoothness] [movesmoothness] [minzoom] [maxzoom]: debug command for testing camera settings. The values default to 1.1, 8.0, 8.0, 0.1 and 2.0.", (string[] args) => + { + float defaultZoom = Screen.Selected.Cam.DefaultZoom; + if (args.Length > 0) float.TryParse(args[0], NumberStyles.Number, CultureInfo.InvariantCulture, out defaultZoom); + + float zoomSmoothness = Screen.Selected.Cam.ZoomSmoothness; + if (args.Length > 1) float.TryParse(args[1], NumberStyles.Number, CultureInfo.InvariantCulture, out zoomSmoothness); + float moveSmoothness = Screen.Selected.Cam.MoveSmoothness; + if (args.Length > 2) float.TryParse(args[2], NumberStyles.Number, CultureInfo.InvariantCulture, out moveSmoothness); + + float minZoom = Screen.Selected.Cam.MinZoom; + if (args.Length > 3) float.TryParse(args[3], NumberStyles.Number, CultureInfo.InvariantCulture, out minZoom); + float maxZoom = Screen.Selected.Cam.MaxZoom; + if (args.Length > 4) float.TryParse(args[4], NumberStyles.Number, CultureInfo.InvariantCulture, out maxZoom); + + Screen.Selected.Cam.DefaultZoom = defaultZoom; + Screen.Selected.Cam.ZoomSmoothness = zoomSmoothness; + Screen.Selected.Cam.MoveSmoothness = moveSmoothness; + Screen.Selected.Cam.MinZoom = minZoom; + Screen.Selected.Cam.MaxZoom = maxZoom; + })); + + commands.Add(new Command("waterparams", "waterparams [distortionscalex] [distortionscaley] [distortionstrengthx] [distortionstrengthy] [bluramount]: default 0.5 0.5 0.5 0.5 1", (string[] args) => + { + float distortScaleX = 0.5f, distortScaleY = 0.5f; + float distortStrengthX = 0.5f, distortStrengthY = 0.5f; + float blurAmount = 0.0f; + if (args.Length > 0) float.TryParse(args[0], NumberStyles.Number, CultureInfo.InvariantCulture, out distortScaleX); + if (args.Length > 1) float.TryParse(args[1], NumberStyles.Number, CultureInfo.InvariantCulture, out distortScaleY); + if (args.Length > 2) float.TryParse(args[2], NumberStyles.Number, CultureInfo.InvariantCulture, out distortStrengthX); + if (args.Length > 3) float.TryParse(args[3], NumberStyles.Number, CultureInfo.InvariantCulture, out distortStrengthY); + if (args.Length > 4) float.TryParse(args[4], NumberStyles.Number, CultureInfo.InvariantCulture, out blurAmount); + WaterRenderer.DistortionScale = new Vector2(distortScaleX, distortScaleY); + WaterRenderer.DistortionStrength = new Vector2(distortStrengthX, distortStrengthY); + WaterRenderer.BlurAmount = blurAmount; + })); + + + commands.Add(new Command("refreshrect", "Updates the dimensions of the selected items to match the ones defined in the prefab. Applied only in the subeditor.", (string[] args) => + { + //TODO: maybe do this automatically during loading when possible? + if (Screen.Selected == GameMain.SubEditorScreen) + { + if (!MapEntity.SelectedAny) + { + ThrowError("You have to select item(s) first!"); + } + else + { + foreach (var mapEntity in MapEntity.SelectedList) + { + if (mapEntity is Item item) + { + item.Rect = new Rectangle(item.Rect.X, item.Rect.Y, + (int)(item.Prefab.sprite.size.X * item.Prefab.Scale), + (int)(item.Prefab.sprite.size.Y * item.Prefab.Scale)); + } + else if (mapEntity is Structure structure) + { + if (!structure.ResizeHorizontal) + { + structure.Rect = new Rectangle(structure.Rect.X, structure.Rect.Y, + (int)structure.Prefab.ScaledSize.X, + structure.Rect.Height); + } + if (!structure.ResizeVertical) + { + structure.Rect = new Rectangle(structure.Rect.X, structure.Rect.Y, + structure.Rect.Width, + (int)structure.Prefab.ScaledSize.Y); + } + } + } + } + } + }, isCheat: false)); +#endif + + GameMain.Config.SaveNewPlayerConfig(); + + commands.Add(new Command("loadtexts", "loadtexts [sourcefile] [destinationfile]: Loads all lines of text from a given .txt file and inserts them sequientially into the elements of an xml file. If the file paths are omitted, EnglishVanilla.txt and EnglishVanilla.xml are used.", (string[] args) => + { + string sourcePath = args.Length > 0 ? args[0] : "Content/Texts/EnglishVanilla.txt"; + string destinationPath = args.Length > 1 ? args[1] : "Content/Texts/EnglishVanilla.xml"; + + string[] lines; + try + { + lines = File.ReadAllLines(sourcePath); + } + catch (Exception e) + { + ThrowError("Reading the file \"" + sourcePath + "\" failed.", e); + return; + } + var doc = XMLExtensions.TryLoadXml(destinationPath); + int i = 0; + foreach (XElement element in doc.Root.Elements()) + { + if (i >= lines.Length) + { + ThrowError("Error while loading texts to the xml file. The xml has more elements than the number of lines in the text file."); + return; + } + element.Value = lines[i]; + i++; + } + doc.Save(destinationPath); + }, + () => + { + var files = TextManager.GetTextFiles().Select(f => f.Replace("\\", "/")); + return new string[][] + { + files.Where(f => Path.GetExtension(f)==".txt").ToArray(), + files.Where(f => Path.GetExtension(f)==".xml").ToArray() + }; + })); + + commands.Add(new Command("updatetextfile", "updatetextfile [sourcefile] [destinationfile]: Inserts all the xml elements that are only present in the source file into the destination file. Can be used to update outdated translation files more easily.", (string[] args) => + { + if (args.Length < 2) return; + string sourcePath = args[0]; + string destinationPath = args[1]; + + var sourceDoc = XMLExtensions.TryLoadXml(sourcePath); + var destinationDoc = XMLExtensions.TryLoadXml(destinationPath); + + XElement destinationElement = destinationDoc.Root.Elements().First(); + foreach (XElement element in sourceDoc.Root.Elements()) + { + if (destinationDoc.Root.Element(element.Name) == null) + { + element.Value = "!!!!!!!!!!!!!" + element.Value; + destinationElement.AddAfterSelf(element); + } + XNode nextNode = destinationElement.NextNode; + while ((!(nextNode is XElement) || nextNode == element) && nextNode != null) nextNode = nextNode.NextNode; + destinationElement = nextNode as XElement; + } + destinationDoc.Save(destinationPath); + }, + () => + { + var files = TextManager.GetTextFiles().Where(f => Path.GetExtension(f) == ".xml").Select(f => f.Replace("\\", "/")).ToArray(); + return new string[][] + { + files, + files + }; + })); + + commands.Add(new Command("dumpentitytexts", "dumpentitytexts [filepath]: gets the names and descriptions of all entity prefabs and writes them into a file along with xml tags that can be used in translation files. If the filepath is omitted, the file is written to Content/Texts/EntityTexts.txt", (string[] args) => + { + string filePath = args.Length > 0 ? args[0] : "Content/Texts/EntityTexts.txt"; + List lines = new List(); + foreach (MapEntityPrefab me in MapEntityPrefab.List) + { + lines.Add("" + me.Name + ""); + lines.Add("" + me.Description + ""); + } + File.WriteAllLines(filePath, lines); + })); +#if DEBUG + commands.Add(new Command("checkduplicates", "Checks the given language for duplicate translation keys and writes to file.", (string[] args) => + { + if (args.Length != 1) return; + TextManager.CheckForDuplicates(args[0]); + })); + + commands.Add(new Command("writetocsv", "Writes the default language (English) to a .csv file.", (string[] args) => + { + TextManager.WriteToCSV(); + NPCConversation.WriteToCSV(); + })); commands.Add(new Command("loadtexts", "loadtexts [sourcefile] [destinationfile]: Loads all lines of text from a given .txt file and inserts them sequientially into the elements of an xml file. If the file paths are omitted, EnglishVanilla.txt and EnglishVanilla.xml are used.", (string[] args) => { @@ -2424,6 +2607,102 @@ namespace Barotrauma } } }, isCheat: true)); + + commands.Add(new Command("flipx", "flipx: mirror the main submarine horizontally", (string[] args) => + { + Submarine.MainSub?.FlipX(); + }, isCheat: true)); + + commands.Add(new Command("gender", "Set the gender of the controlled character. Allowed parameters: Male, Female, None.", args => + { + var character = Character.Controlled; + if (character == null) + { + ThrowError("Not controlling any character!"); + return; + } + if (args.Length == 0) + { + ThrowError("No parameters provided!"); + return; + } + if (Enum.TryParse(args[0], true, out Gender gender)) + { + character.Info.Gender = gender; + character.ReloadHead(); + foreach (var limb in character.AnimController.Limbs) + { + if (limb.type != LimbType.Head) + { + limb.RecreateSprite(); + } + foreach (var wearable in limb.WearingItems) + { + if (wearable.Gender != Gender.None && wearable.Gender != gender) + { + wearable.Gender = gender; + } + } + } + } + }, isCheat: true)); + + commands.Add(new Command("race", "Set race of the controlled character. Allowed parameters: White, Black, Asian, None.", args => + { + var character = Character.Controlled; + if (character == null) + { + ThrowError("Not controlling any character!"); + return; + } + if (args.Length == 0) + { + ThrowError("No parameters provided!"); + return; + } + if (Enum.TryParse(args[0], true, out Race race)) + { + character.Info.Race = race; + character.ReloadHead(); + } + }, isCheat: true)); + + commands.Add(new Command("loadhead|head", "Load head sprite(s). Required argument: head id. Optional arguments: hair index, beard index, moustache index, face attachment index.", args => + { + var character = Character.Controlled; + if (character == null) + { + ThrowError("Not controlling any character!"); + return; + } + if (args.Length == 0) + { + ThrowError("No head id provided!"); + return; + } + if (int.TryParse(args[0], out int id)) + { + int hairIndex, beardIndex, moustacheIndex, faceAttachmentIndex; + hairIndex = beardIndex = moustacheIndex = faceAttachmentIndex = -1; + if (args.Length > 1) + { + int.TryParse(args[1], out hairIndex); + } + if (args.Length > 2) + { + int.TryParse(args[2], out beardIndex); + } + if (args.Length > 3) + { + int.TryParse(args[3], out moustacheIndex); + } + if (args.Length > 4) + { + int.TryParse(args[4], out faceAttachmentIndex); + } + character.ReloadHead(id, hairIndex, beardIndex, moustacheIndex, faceAttachmentIndex); + } + }, isCheat: true)); } private static void ReloadWearables(Character character) diff --git a/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs b/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs index 2e8cf1a3d..96c9396bf 100644 --- a/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs +++ b/Barotrauma/BarotraumaClient/Source/GameSession/CrewManager.cs @@ -1310,6 +1310,27 @@ namespace Barotrauma if (GameMain.NetworkMember != null) GameMain.Client.SelectCrewCharacter(character, previewPlayer); + bool hasIntruders = Character.CharacterList.Any(c => + c.CurrentHull == Character.Controlled.CurrentHull && !c.IsDead && + (c.AIController is EnemyAIController || (c.TeamID != Character.Controlled.TeamID && c.TeamID != Character.TeamType.FriendlyNPC))); + + ToggleReportButton("reportintruders", hasIntruders); + + foreach (GUIComponent reportButton in reportButtonFrame.Children) + { + var highlight = reportButton.GetChildByUserData("highlighted"); + if (highlight.Visible) + { + highlight.RectTransform.LocalScale = new Vector2(1.25f + (float)Math.Sin(Timing.TotalTime * 5.0f) * 0.25f); + } + } + } + else + { + reportButtonFrame.Visible = false; + } + } + /// /// Should report buttons be visible on the screen atm? /// diff --git a/Barotrauma/BarotraumaClient/Source/GameSettings.cs b/Barotrauma/BarotraumaClient/Source/GameSettings.cs index a111ddc03..00085898f 100644 --- a/Barotrauma/BarotraumaClient/Source/GameSettings.cs +++ b/Barotrauma/BarotraumaClient/Source/GameSettings.cs @@ -626,28 +626,6 @@ namespace Barotrauma new GUIMessageBox(TextManager.Get("RestartRequiredLabel"), TextManager.Get("RestartRequiredLanguage")); - return true; - }; - - //spacing - new GUIFrame(new RectTransform(new Vector2(1.0f, 0.02f), generalLayoutGroup.RectTransform), style: null); - - new GUIButton(new RectTransform(new Vector2(0.4f, 1.0f), buttonArea.RectTransform, Anchor.BottomLeft), - TextManager.Get("Cancel")) - { - IgnoreLayoutGroups = true, - OnClicked = (x, y) => - { - if (UnsavedSettings) - { - LoadPlayerConfig(); - } - if (Screen.Selected == GameMain.MainMenuScreen) GameMain.MainMenuScreen.ReturnToMainMenu(null, null); - GUI.SettingsMenuOpen = false; - return true; - } - }; - //spacing new GUIFrame(new RectTransform(new Vector2(1.0f, 0.02f), generalLayoutGroup.RectTransform), style: null); diff --git a/Barotrauma/BarotraumaClient/Source/Items/Components/ItemComponent.cs b/Barotrauma/BarotraumaClient/Source/Items/Components/ItemComponent.cs index 94a9eee32..72589ccf5 100644 --- a/Barotrauma/BarotraumaClient/Source/Items/Components/ItemComponent.cs +++ b/Barotrauma/BarotraumaClient/Source/Items/Components/ItemComponent.cs @@ -184,63 +184,6 @@ namespace Barotrauma.Items.Components } } } - - public void ApplyTo(RectTransform target) - { - if (RelativeOffset.HasValue) - { - target.RelativeOffset = RelativeOffset.Value; - } - else if (AbsoluteOffset.HasValue) - { - target.AbsoluteOffset = AbsoluteOffset.Value; - } - if (RelativeSize.HasValue) - { - target.RelativeSize = RelativeSize.Value; - } - else if (AbsoluteSize.HasValue) - { - target.NonScaledSize = AbsoluteSize.Value; - } - if (Anchor.HasValue) - { - target.Anchor = Anchor.Value; - } - if (Pivot.HasValue) - { - target.Pivot = Pivot.Value; - } - else - { - target.Pivot = RectTransform.MatchPivotToAnchor(target.Anchor); - } - target.RecalculateChildren(true, true); - } - } - - public GUIFrame GuiFrame { get; protected set; } - - [Serialize(false, false)] - public bool AllowUIOverlap - { - get; - set; - } - - private ItemComponent linkToUIComponent; - [Serialize("", false)] - public string LinkUIToComponent - { - get; - set; - } - - [Serialize(0, false)] - public int HudPriority - { - get; - private set; } private bool shouldMuffleLooping; diff --git a/Barotrauma/BarotraumaClient/Source/Screens/CharacterEditorScreen.cs b/Barotrauma/BarotraumaClient/Source/Screens/CharacterEditorScreen.cs index f75d58b4d..316dd5656 100644 --- a/Barotrauma/BarotraumaClient/Source/Screens/CharacterEditorScreen.cs +++ b/Barotrauma/BarotraumaClient/Source/Screens/CharacterEditorScreen.cs @@ -438,6 +438,43 @@ namespace Barotrauma UpdateSourceRect(limb, newRect); } } + UpdateJointCreation(); + if (PlayerInput.KeyHit(Keys.Left)) + { + foreach (var limb in selectedLimbs) + { + var newRect = limb.ActiveSprite.SourceRect; + newRect.X--; + UpdateSourceRect(limb, newRect); + } + } + if (PlayerInput.KeyHit(Keys.Right)) + { + foreach (var limb in selectedLimbs) + { + var newRect = limb.ActiveSprite.SourceRect; + newRect.X++; + UpdateSourceRect(limb, newRect); + } + } + if (PlayerInput.KeyHit(Keys.Down)) + { + foreach (var limb in selectedLimbs) + { + var newRect = limb.ActiveSprite.SourceRect; + newRect.Y++; + UpdateSourceRect(limb, newRect); + } + } + if (PlayerInput.KeyHit(Keys.Up)) + { + foreach (var limb in selectedLimbs) + { + var newRect = limb.ActiveSprite.SourceRect; + newRect.Y--; + UpdateSourceRect(limb, newRect); + } + } } if (!isFreezed) { diff --git a/Barotrauma/BarotraumaShared/BarotraumaShared.projitems b/Barotrauma/BarotraumaShared/BarotraumaShared.projitems index 29d2265d3..90a029cbf 100644 --- a/Barotrauma/BarotraumaShared/BarotraumaShared.projitems +++ b/Barotrauma/BarotraumaShared/BarotraumaShared.projitems @@ -3022,6 +3022,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/Barotrauma/BarotraumaShared/Source/DebugConsole.cs b/Barotrauma/BarotraumaShared/Source/DebugConsole.cs index 0f0fe61b4..961fe4333 100644 --- a/Barotrauma/BarotraumaShared/Source/DebugConsole.cs +++ b/Barotrauma/BarotraumaShared/Source/DebugConsole.cs @@ -149,7 +149,7 @@ namespace Barotrauma commands.SelectMany(c => c.names).ToArray(), new string[0] }; - })); + }, isCheat: true)); commands.Add(new Command("items|itemlist", "itemlist: List all the item prefabs available for spawning.", (string[] args) => @@ -382,8 +382,9 @@ namespace Barotrauma banDuration = parsedBanDuration; } - GameMain.NetworkMember.BanPlayer(client.Name, reason, false, banDuration); - }); + ShowQuestionPrompt("Reason for kicking \"" + client.Name + "\"?", (reason) => + { + GameMain.NetworkMember.KickPlayer(client.Name, reason); }); })); @@ -980,98 +981,6 @@ namespace Barotrauma NewMessage("Set packet duplication to " + (int)(duplicates * 100) + "%.", Color.White); })); - commands.Add(new Command("flipx", "flipx: mirror the main submarine horizontally", (string[] args) => - { - Submarine.MainSub?.FlipX(); - })); - - commands.Add(new Command("gender", "Set the gender of the controlled character. Allowed parameters: Male, Female, None.", args => - { - var character = Character.Controlled; - if (character == null) - { - ThrowError("Not controlling any character!"); - return; - } - if (args.Length == 0) - { - ThrowError("No parameters provided!"); - return; - } - if (Enum.TryParse(args[0], true, out Gender gender)) - { - character.Info.Gender = gender; - character.ReloadHead(); - foreach (var limb in character.AnimController.Limbs) - { - foreach (var wearable in limb.WearingItems) - { - if (wearable.Gender != Gender.None && wearable.Gender != gender) - { - wearable.Gender = gender; - } - } - } - } - })); - - commands.Add(new Command("race", "Set race of the controlled character. Allowed parameters: White, Black, Asian, None.", args => - { - var character = Character.Controlled; - if (character == null) - { - ThrowError("Not controlling any character!"); - return; - } - if (args.Length == 0) - { - ThrowError("No parameters provided!"); - return; - } - if (Enum.TryParse(args[0], true, out Race race)) - { - character.Info.Race = race; - character.ReloadHead(); - } - })); - - commands.Add(new Command("loadhead|head", "Load head sprite(s). Required argument: head id. Optional arguments: hair index, beard index, moustache index, face attachment index.", args => - { - var character = Character.Controlled; - if (character == null) - { - ThrowError("Not controlling any character!"); - return; - } - if (args.Length == 0) - { - ThrowError("No head id provided!"); - return; - } - if (int.TryParse(args[0], out int id)) - { - int hairIndex, beardIndex, moustacheIndex, faceAttachmentIndex; - hairIndex = beardIndex = moustacheIndex = faceAttachmentIndex = -1; - if (args.Length > 1) - { - int.TryParse(args[1], out hairIndex); - } - if (args.Length > 2) - { - int.TryParse(args[2], out beardIndex); - } - if (args.Length > 3) - { - int.TryParse(args[3], out moustacheIndex); - } - if (args.Length > 4) - { - int.TryParse(args[4], out faceAttachmentIndex); - } - character.ReloadHead(id, hairIndex, beardIndex, moustacheIndex, faceAttachmentIndex); - } - })); - commands.Add(new Command("money", "", args => { if (args.Length == 0) { return; } diff --git a/Barotrauma/BarotraumaShared/Source/GameSettings.cs b/Barotrauma/BarotraumaShared/Source/GameSettings.cs index e9c324de7..076edcd71 100644 --- a/Barotrauma/BarotraumaShared/Source/GameSettings.cs +++ b/Barotrauma/BarotraumaShared/Source/GameSettings.cs @@ -1226,6 +1226,32 @@ namespace Barotrauma NewLineOnAttributes = true }; +#if CLIENT + if (Tutorial.Tutorials != null) + { + foreach (Tutorial tutorial in Tutorial.Tutorials) + { + if (tutorial.Completed && !CompletedTutorialNames.Contains(tutorial.Name)) + { + CompletedTutorialNames.Add(tutorial.Name); + } + } + } +#endif + var tutorialElement = new XElement("tutorials"); + foreach (string tutorialName in CompletedTutorialNames) + { + tutorialElement.Add(new XElement("Tutorial", new XAttribute("name", tutorialName))); + } + doc.Root.Add(tutorialElement); + + XmlWriterSettings settings = new XmlWriterSettings + { + Indent = true, + OmitXmlDeclaration = true, + NewLineOnAttributes = true + }; + #if CLIENT if (Tutorial.Tutorials != null) { diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Wearable.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Wearable.cs index 3bd0e3545..eeee9efe1 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Wearable.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Wearable.cs @@ -79,6 +79,7 @@ namespace Barotrauma if (value == _gender) { return; } _gender = value; IsInitialized = false; + SpritePath = ParseSpritePath(SourceElement.GetAttributeString("texture", string.Empty)); Init(_gender); } } @@ -111,15 +112,16 @@ namespace Barotrauma /// /// Note: this constructor cannot initialize automatically, because the gender is unknown at this point. We only know it when the item is equipped. /// - public WearableSprite(XElement subElement, Wearable item) + public WearableSprite(XElement subElement, Wearable wearable) { Type = WearableType.Item; - WearableComponent = item; - string texturePath = subElement.GetAttributeString("texture", string.Empty); - SpritePath = texturePath.Contains("/") ? texturePath : $"{Path.GetDirectoryName(item.Item.Prefab.ConfigFile)}/{texturePath}"; + WearableComponent = wearable; + SpritePath = ParseSpritePath(subElement.GetAttributeString("texture", string.Empty)); SourceElement = subElement; } + private string ParseSpritePath(string texturePath) => texturePath.Contains("/") ? texturePath : $"{Path.GetDirectoryName(WearableComponent.Item.Prefab.ConfigFile)}/{texturePath}"; + public bool IsInitialized { get; private set; } public void Init(Gender gender = Gender.None) { diff --git a/Barotrauma/BarotraumaShared/Source/Map/Map/Map.cs b/Barotrauma/BarotraumaShared/Source/Map/Map/Map.cs index 5e0b5c4dc..c3d5d2926 100644 --- a/Barotrauma/BarotraumaShared/Source/Map/Map/Map.cs +++ b/Barotrauma/BarotraumaShared/Source/Map/Map/Map.cs @@ -430,13 +430,6 @@ namespace Barotrauma } CurrentLocation.SelectedMissionIndex = missionIndex; - //the destination must be the same as the destination of the mission - if (CurrentLocation.SelectedMission != null && - CurrentLocation.SelectedMission.Locations[1] != SelectedLocation) - { - SelectLocation(CurrentLocation.SelectedMission.Locations[1]); - } - SelectedLocation = location; SelectedConnection = connections.Find(c => c.Locations.Contains(CurrentLocation) && c.Locations.Contains(SelectedLocation)); OnLocationSelected?.Invoke(SelectedLocation, SelectedConnection); diff --git a/Barotrauma/BarotraumaShared/Source/PlayerInput.cs b/Barotrauma/BarotraumaShared/Source/PlayerInput.cs index fc56c8fc7..dac0e7d44 100644 --- a/Barotrauma/BarotraumaShared/Source/PlayerInput.cs +++ b/Barotrauma/BarotraumaShared/Source/PlayerInput.cs @@ -160,16 +160,6 @@ namespace Barotrauma } #endif - public void SetState() - { - hit = binding.IsHit(); - if (hit) hitQueue = true; - - held = binding.IsDown(); - if (held) heldQueue = true; - } -#endif - public bool Hit { get diff --git a/Barotrauma/BarotraumaShared/Submarines/Dugong.sub b/Barotrauma/BarotraumaShared/Submarines/Dugong.sub new file mode 100644 index 0000000000000000000000000000000000000000..e6b2f571a4c223e1778cca8cbea189dd15ee4e8b GIT binary patch literal 66437 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 z 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