Unstable 0.17.0.0

This commit is contained in:
Markus Isberg
2022-02-26 02:43:01 +09:00
parent a83f375681
commit 3974067915
913 changed files with 32472 additions and 32364 deletions
@@ -0,0 +1,60 @@
using Barotrauma;
using System;
using System.Linq;
using System.Xml.Linq;
namespace Barotrauma
{
[RequiredByCorePackage]
sealed class JobsFile : ContentFile
{
public JobsFile(ContentPackage contentPackage, ContentPath path) : base(contentPackage, path) { }
public override void LoadFile()
{
XDocument doc = XMLExtensions.TryLoadXml(Path);
if (doc == null) { return; }
LoadElements(doc.Root.FromPackage(ContentPackage), false);
}
private void LoadElements(ContentXElement mainElement, bool isOverride)
{
foreach (var element in mainElement.Elements())
{
if (element.NameAsIdentifier() == "nojob")
{
JobPrefab.NoJobElement ??= element;
}
else if (element.NameAsIdentifier() == "ItemRepairPriorities")
{
foreach (var subElement in element.Elements())
{
ItemRepairPriority prio = new ItemRepairPriority(subElement, this);
ItemRepairPriority.Prefabs.Add(prio, isOverride);
}
}
else if (element.IsOverride())
{
LoadElements(element, true);
}
else
{
var job = new JobPrefab(element, this);
JobPrefab.Prefabs.Add(job, isOverride);
}
}
}
public override void UnloadFile()
{
JobPrefab.Prefabs.RemoveByFile(this);
ItemRepairPriority.Prefabs.RemoveByFile(this);
}
public override void Sort()
{
JobPrefab.Prefabs.SortAll();
}
}
}