Converted the GetAttribute methods in the ToolBox class to extension methods
This commit is contained in:
@@ -12,7 +12,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
partial void InitProjSpecific(XElement element)
|
partial void InitProjSpecific(XElement element)
|
||||||
{
|
{
|
||||||
string soundPath = ToolBox.GetAttributeString(element, "sound", "");
|
string soundPath = element.GetAttributeString("sound", "");
|
||||||
if (!string.IsNullOrWhiteSpace(soundPath))
|
if (!string.IsNullOrWhiteSpace(soundPath))
|
||||||
{
|
{
|
||||||
sound = Sound.Load(soundPath);
|
sound = Sound.Load(soundPath);
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
partial void InitProjSpecific(XDocument doc)
|
partial void InitProjSpecific(XDocument doc)
|
||||||
{
|
{
|
||||||
soundInterval = ToolBox.GetAttributeFloat(doc.Root, "soundinterval", 10.0f);
|
soundInterval = doc.Root.GetAttributeFloat("soundinterval", 10.0f);
|
||||||
|
|
||||||
keys = new Key[Enum.GetNames(typeof(InputType)).Length];
|
keys = new Key[Enum.GetNames(typeof(InputType)).Length];
|
||||||
|
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ namespace Barotrauma
|
|||||||
public CharacterSound(XElement element)
|
public CharacterSound(XElement element)
|
||||||
{
|
{
|
||||||
Sound = Sound.Load(element.Attribute("file").Value);
|
Sound = Sound.Load(element.Attribute("file").Value);
|
||||||
Range = ToolBox.GetAttributeFloat(element, "range", 1000.0f);
|
Range = element.GetAttributeFloat("range", 1000.0f);
|
||||||
|
|
||||||
Enum.TryParse<SoundType>(ToolBox.GetAttributeString(element, "state", "Idle"), true, out Type);
|
Enum.TryParse<SoundType>(element.GetAttributeString("state", "Idle"), true, out Type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ namespace Barotrauma
|
|||||||
LightSource = new LightSource(subElement);
|
LightSource = new LightSource(subElement);
|
||||||
break;
|
break;
|
||||||
case "sound":
|
case "sound":
|
||||||
hitSound = Sound.Load(ToolBox.GetAttributeString(subElement, "file", ""));
|
hitSound = Sound.Load(subElement.GetAttributeString("file", ""));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,21 +72,21 @@ namespace Barotrauma
|
|||||||
|
|
||||||
ChildStyles = new Dictionary<string, GUIComponentStyle>();
|
ChildStyles = new Dictionary<string, GUIComponentStyle>();
|
||||||
|
|
||||||
Padding = ToolBox.GetAttributeVector4(element, "padding", Vector4.Zero);
|
Padding = element.GetAttributeVector4("padding", Vector4.Zero);
|
||||||
|
|
||||||
Vector4 colorVector = ToolBox.GetAttributeVector4(element, "color", new Vector4(0.0f, 0.0f, 0.0f, 0.0f));
|
Vector4 colorVector = element.GetAttributeVector4("color", new Vector4(0.0f, 0.0f, 0.0f, 0.0f));
|
||||||
Color = new Color(colorVector.X, colorVector.Y, colorVector.Z, colorVector.W);
|
Color = new Color(colorVector.X, colorVector.Y, colorVector.Z, colorVector.W);
|
||||||
|
|
||||||
colorVector = ToolBox.GetAttributeVector4(element, "textcolor", new Vector4(0.0f, 0.0f, 0.0f, 1.0f));
|
colorVector = element.GetAttributeVector4("textcolor", new Vector4(0.0f, 0.0f, 0.0f, 1.0f));
|
||||||
textColor = new Color(colorVector.X, colorVector.Y, colorVector.Z, colorVector.W);
|
textColor = new Color(colorVector.X, colorVector.Y, colorVector.Z, colorVector.W);
|
||||||
|
|
||||||
colorVector = ToolBox.GetAttributeVector4(element, "hovercolor", new Vector4(0.0f, 0.0f, 0.0f, 0.0f));
|
colorVector = element.GetAttributeVector4("hovercolor", new Vector4(0.0f, 0.0f, 0.0f, 0.0f));
|
||||||
HoverColor = new Color(colorVector.X, colorVector.Y, colorVector.Z, colorVector.W);
|
HoverColor = new Color(colorVector.X, colorVector.Y, colorVector.Z, colorVector.W);
|
||||||
|
|
||||||
colorVector = ToolBox.GetAttributeVector4(element, "selectedcolor", new Vector4(0.0f, 0.0f, 0.0f, 0.0f));
|
colorVector = element.GetAttributeVector4("selectedcolor", new Vector4(0.0f, 0.0f, 0.0f, 0.0f));
|
||||||
SelectedColor = new Color(colorVector.X, colorVector.Y, colorVector.Z, colorVector.W);
|
SelectedColor = new Color(colorVector.X, colorVector.Y, colorVector.Z, colorVector.W);
|
||||||
|
|
||||||
colorVector = ToolBox.GetAttributeVector4(element, "outlinecolor", new Vector4(0.0f, 0.0f, 0.0f, 0.0f));
|
colorVector = element.GetAttributeVector4("outlinecolor", new Vector4(0.0f, 0.0f, 0.0f, 0.0f));
|
||||||
OutlineColor = new Color(colorVector.X, colorVector.Y, colorVector.Z, colorVector.W);
|
OutlineColor = new Color(colorVector.X, colorVector.Y, colorVector.Z, colorVector.W);
|
||||||
|
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
@@ -95,16 +95,16 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
case "sprite":
|
case "sprite":
|
||||||
Sprite sprite = new Sprite(subElement);
|
Sprite sprite = new Sprite(subElement);
|
||||||
bool maintainAspect = ToolBox.GetAttributeBool(subElement, "maintainaspectratio",false);
|
bool maintainAspect = subElement.GetAttributeBool("maintainaspectratio",false);
|
||||||
bool tile = ToolBox.GetAttributeBool(subElement, "tile", true);
|
bool tile = subElement.GetAttributeBool("tile", true);
|
||||||
|
|
||||||
string stateStr = ToolBox.GetAttributeString(subElement, "state", "None");
|
string stateStr = subElement.GetAttributeString("state", "None");
|
||||||
GUIComponent.ComponentState spriteState = GUIComponent.ComponentState.None;
|
GUIComponent.ComponentState spriteState = GUIComponent.ComponentState.None;
|
||||||
Enum.TryParse(stateStr, out spriteState);
|
Enum.TryParse(stateStr, out spriteState);
|
||||||
|
|
||||||
UISprite newSprite = new UISprite(sprite, tile, maintainAspect);
|
UISprite newSprite = new UISprite(sprite, tile, maintainAspect);
|
||||||
|
|
||||||
Vector4 sliceVec = ToolBox.GetAttributeVector4(subElement, "slice", Vector4.Zero);
|
Vector4 sliceVec = subElement.GetAttributeVector4("slice", Vector4.Zero);
|
||||||
if (sliceVec != Vector4.Zero)
|
if (sliceVec != Vector4.Zero)
|
||||||
{
|
{
|
||||||
Rectangle slice = new Rectangle((int)sliceVec.X, (int)sliceVec.Y, (int)(sliceVec.Z - sliceVec.X), (int)(sliceVec.W - sliceVec.Y));
|
Rectangle slice = new Rectangle((int)sliceVec.X, (int)sliceVec.Y, (int)(sliceVec.Z - sliceVec.X), (int)(sliceVec.W - sliceVec.Y));
|
||||||
|
|||||||
@@ -332,14 +332,14 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
campaign.Money = ToolBox.GetAttributeInt(element, "money", 0);
|
campaign.Money = element.GetAttributeInt("money", 0);
|
||||||
|
|
||||||
//backwards compatibility with older save files
|
//backwards compatibility with older save files
|
||||||
if (campaign.map == null)
|
if (campaign.map == null)
|
||||||
{
|
{
|
||||||
string mapSeed = ToolBox.GetAttributeString(element, "mapseed", "a");
|
string mapSeed = element.GetAttributeString("mapseed", "a");
|
||||||
campaign.GenerateMap(mapSeed);
|
campaign.GenerateMap(mapSeed);
|
||||||
campaign.map.SetLocation(ToolBox.GetAttributeInt(element, "currentlocation", 0));
|
campaign.map.SetLocation(element.GetAttributeInt("currentlocation", 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
campaign.savedOnStart = true;
|
campaign.savedOnStart = true;
|
||||||
|
|||||||
@@ -129,9 +129,9 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
|
|
||||||
XElement graphicsMode = doc.Root.Element("graphicsmode");
|
XElement graphicsMode = doc.Root.Element("graphicsmode");
|
||||||
GraphicsWidth = ToolBox.GetAttributeInt(graphicsMode, "width", 0);
|
GraphicsWidth = graphicsMode.GetAttributeInt("width", 0);
|
||||||
GraphicsHeight = ToolBox.GetAttributeInt(graphicsMode, "height", 0);
|
GraphicsHeight = graphicsMode.GetAttributeInt("height", 0);
|
||||||
VSyncEnabled = ToolBox.GetAttributeBool(graphicsMode, "vsync", true);
|
VSyncEnabled = graphicsMode.GetAttributeBool("vsync", true);
|
||||||
|
|
||||||
if (GraphicsWidth == 0 || GraphicsHeight == 0)
|
if (GraphicsWidth == 0 || GraphicsHeight == 0)
|
||||||
{
|
{
|
||||||
@@ -141,16 +141,16 @@ namespace Barotrauma
|
|||||||
|
|
||||||
//FullScreenEnabled = ToolBox.GetAttributeBool(graphicsMode, "fullscreen", true);
|
//FullScreenEnabled = ToolBox.GetAttributeBool(graphicsMode, "fullscreen", true);
|
||||||
|
|
||||||
var windowModeStr = ToolBox.GetAttributeString(graphicsMode, "displaymode", "Fullscreen");
|
var windowModeStr = graphicsMode.GetAttributeString("displaymode", "Fullscreen");
|
||||||
if (!Enum.TryParse<WindowMode>(windowModeStr, out windowMode))
|
if (!Enum.TryParse<WindowMode>(windowModeStr, out windowMode))
|
||||||
{
|
{
|
||||||
windowMode = WindowMode.Fullscreen;
|
windowMode = WindowMode.Fullscreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
SoundVolume = ToolBox.GetAttributeFloat(doc.Root, "soundvolume", 1.0f);
|
SoundVolume = doc.Root.GetAttributeFloat("soundvolume", 1.0f);
|
||||||
MusicVolume = ToolBox.GetAttributeFloat(doc.Root, "musicvolume", 0.3f);
|
MusicVolume = doc.Root.GetAttributeFloat("musicvolume", 0.3f);
|
||||||
|
|
||||||
EnableSplashScreen = ToolBox.GetAttributeBool(doc.Root, "enablesplashscreen", true);
|
EnableSplashScreen = doc.Root.GetAttributeBool("enablesplashscreen", true);
|
||||||
|
|
||||||
keyMapping = new KeyOrMouse[Enum.GetNames(typeof(InputType)).Length];
|
keyMapping = new KeyOrMouse[Enum.GetNames(typeof(InputType)).Length];
|
||||||
keyMapping[(int)InputType.Up] = new KeyOrMouse(Keys.W);
|
keyMapping[(int)InputType.Up] = new KeyOrMouse(Keys.W);
|
||||||
@@ -198,7 +198,7 @@ namespace Barotrauma
|
|||||||
JobNamePreferences = new List<string>();
|
JobNamePreferences = new List<string>();
|
||||||
foreach (XElement ele in subElement.Element("jobpreferences").Elements("job"))
|
foreach (XElement ele in subElement.Element("jobpreferences").Elements("job"))
|
||||||
{
|
{
|
||||||
JobNamePreferences.Add(ToolBox.GetAttributeString(ele, "name", ""));
|
JobNamePreferences.Add(ele.GetAttributeString("name", ""));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -145,26 +145,26 @@ namespace Barotrauma.Items.Components
|
|||||||
switch (subElement.Name.ToString().ToLowerInvariant())
|
switch (subElement.Name.ToString().ToLowerInvariant())
|
||||||
{
|
{
|
||||||
case "guiframe":
|
case "guiframe":
|
||||||
string rectStr = ToolBox.GetAttributeString(subElement, "rect", "0.0,0.0,0.5,0.5");
|
string rectStr = subElement.GetAttributeString("rect", "0.0,0.0,0.5,0.5");
|
||||||
|
|
||||||
string[] components = rectStr.Split(',');
|
string[] components = rectStr.Split(',');
|
||||||
if (components.Length < 4) break;
|
if (components.Length < 4) break;
|
||||||
|
|
||||||
Vector4 rect = ToolBox.GetAttributeVector4(subElement, "rect", Vector4.One);
|
Vector4 rect = subElement.GetAttributeVector4("rect", Vector4.One);
|
||||||
if (components[0].Contains(".")) rect.X *= GameMain.GraphicsWidth;
|
if (components[0].Contains(".")) rect.X *= GameMain.GraphicsWidth;
|
||||||
if (components[1].Contains(".")) rect.Y *= GameMain.GraphicsHeight;
|
if (components[1].Contains(".")) rect.Y *= GameMain.GraphicsHeight;
|
||||||
if (components[2].Contains(".")) rect.Z *= GameMain.GraphicsWidth;
|
if (components[2].Contains(".")) rect.Z *= GameMain.GraphicsWidth;
|
||||||
if (components[3].Contains(".")) rect.W *= GameMain.GraphicsHeight;
|
if (components[3].Contains(".")) rect.W *= GameMain.GraphicsHeight;
|
||||||
|
|
||||||
string style = ToolBox.GetAttributeString(subElement, "style", "");
|
string style = subElement.GetAttributeString("style", "");
|
||||||
|
|
||||||
Vector4 color = ToolBox.GetAttributeVector4(subElement, "color", Vector4.One);
|
Vector4 color = subElement.GetAttributeVector4("color", Vector4.One);
|
||||||
|
|
||||||
Alignment alignment = Alignment.Center;
|
Alignment alignment = Alignment.Center;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
alignment = (Alignment)Enum.Parse(typeof(Alignment),
|
alignment = (Alignment)Enum.Parse(typeof(Alignment),
|
||||||
ToolBox.GetAttributeString(subElement, "alignment", "Center"), true);
|
subElement.GetAttributeString("alignment", "Center"), true);
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@@ -178,9 +178,9 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case "sound":
|
case "sound":
|
||||||
string filePath = ToolBox.GetAttributeString(subElement, "file", "");
|
string filePath = subElement.GetAttributeString("file", "");
|
||||||
|
|
||||||
if (filePath == "") filePath = ToolBox.GetAttributeString(subElement, "sound", "");
|
if (filePath == "") filePath = subElement.GetAttributeString("sound", "");
|
||||||
|
|
||||||
if (filePath == "")
|
if (filePath == "")
|
||||||
{
|
{
|
||||||
@@ -197,7 +197,7 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
type = (ActionType)Enum.Parse(typeof(ActionType), ToolBox.GetAttributeString(subElement, "type", ""), true);
|
type = (ActionType)Enum.Parse(typeof(ActionType), subElement.GetAttributeString("type", ""), true);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@@ -207,11 +207,11 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
Sound sound = Sound.Load(filePath);
|
Sound sound = Sound.Load(filePath);
|
||||||
|
|
||||||
float range = ToolBox.GetAttributeFloat(subElement, "range", 800.0f);
|
float range = subElement.GetAttributeFloat("range", 800.0f);
|
||||||
bool loop = ToolBox.GetAttributeBool(subElement, "loop", false);
|
bool loop = subElement.GetAttributeBool("loop", false);
|
||||||
ItemSound itemSound = new ItemSound(sound, type, range, loop);
|
ItemSound itemSound = new ItemSound(sound, type, range, loop);
|
||||||
itemSound.VolumeProperty = ToolBox.GetAttributeString(subElement, "volume", "");
|
itemSound.VolumeProperty = subElement.GetAttributeString("volume", "");
|
||||||
itemSound.VolumeMultiplier = ToolBox.GetAttributeFloat(subElement, "volumemultiplier", 1.0f);
|
itemSound.VolumeMultiplier = subElement.GetAttributeFloat("volumemultiplier", 1.0f);
|
||||||
|
|
||||||
List<ItemSound> soundList = null;
|
List<ItemSound> soundList = null;
|
||||||
if (!sounds.TryGetValue(itemSound.Type, out soundList))
|
if (!sounds.TryGetValue(itemSound.Type, out soundList))
|
||||||
|
|||||||
@@ -30,10 +30,10 @@ namespace Barotrauma.Items.Components
|
|||||||
[Editable, HasDefaultValue("0.0,0.0,0.0,1.0", true)]
|
[Editable, HasDefaultValue("0.0,0.0,0.0,1.0", true)]
|
||||||
public string TextColor
|
public string TextColor
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector4ToString(textColor.ToVector4()); }
|
get { return XMLExtensions.Vector4ToString(textColor.ToVector4()); }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
textColor = new Color(ToolBox.ParseToVector4(value));
|
textColor = new Color(XMLExtensions.ParseToVector4(value));
|
||||||
if (textBlock != null) textBlock.TextColor = textColor;
|
if (textBlock != null) textBlock.TextColor = textColor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(configPath);
|
XDocument doc = XMLExtensions.TryLoadXml(configPath);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
foreach (XElement element in doc.Root.Elements())
|
foreach (XElement element in doc.Root.Elements())
|
||||||
|
|||||||
+7
-7
@@ -21,18 +21,18 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public BackgroundCreaturePrefab(XElement element)
|
public BackgroundCreaturePrefab(XElement element)
|
||||||
{
|
{
|
||||||
Speed = ToolBox.GetAttributeFloat(element, "speed", 1.0f);
|
Speed = element.GetAttributeFloat("speed", 1.0f);
|
||||||
|
|
||||||
WanderAmount = ToolBox.GetAttributeFloat(element, "wanderamount", 0.0f);
|
WanderAmount = element.GetAttributeFloat("wanderamount", 0.0f);
|
||||||
|
|
||||||
WanderZAmount = ToolBox.GetAttributeFloat(element, "wanderzamount", 0.0f);
|
WanderZAmount = element.GetAttributeFloat("wanderzamount", 0.0f);
|
||||||
|
|
||||||
SwarmMin = ToolBox.GetAttributeInt(element, "swarmmin", 1);
|
SwarmMin = element.GetAttributeInt("swarmmin", 1);
|
||||||
SwarmMax = ToolBox.GetAttributeInt(element, "swarmmax", 1);
|
SwarmMax = element.GetAttributeInt("swarmmax", 1);
|
||||||
|
|
||||||
SwarmRadius = ToolBox.GetAttributeFloat(element, "swarmradius", 200.0f);
|
SwarmRadius = element.GetAttributeFloat("swarmradius", 200.0f);
|
||||||
|
|
||||||
DisableRotation = ToolBox.GetAttributeBool(element, "disablerotation", false);
|
DisableRotation = element.GetAttributeBool("disablerotation", false);
|
||||||
|
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -121,10 +121,10 @@ namespace Barotrauma.Lights
|
|||||||
public LightSource (XElement element)
|
public LightSource (XElement element)
|
||||||
: this(Vector2.Zero, 100.0f, Color.White, null)
|
: this(Vector2.Zero, 100.0f, Color.White, null)
|
||||||
{
|
{
|
||||||
range = ToolBox.GetAttributeFloat(element, "range", 100.0f);
|
range = element.GetAttributeFloat("range", 100.0f);
|
||||||
color = new Color(ToolBox.GetAttributeVector4(element, "color", Vector4.One));
|
color = new Color(element.GetAttributeVector4("color", Vector4.One));
|
||||||
|
|
||||||
CastShadows = ToolBox.GetAttributeBool(element, "castshadows", true);
|
CastShadows = element.GetAttributeBool("castshadows", true);
|
||||||
|
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1124,7 +1124,7 @@ namespace Barotrauma.Networking
|
|||||||
if (GameMain.GameSession.Submarine == null)
|
if (GameMain.GameSession.Submarine == null)
|
||||||
{
|
{
|
||||||
var gameSessionDoc = SaveUtil.LoadGameSessionDoc(GameMain.GameSession.SavePath);
|
var gameSessionDoc = SaveUtil.LoadGameSessionDoc(GameMain.GameSession.SavePath);
|
||||||
string subPath = Path.Combine(SaveUtil.TempPath, ToolBox.GetAttributeString(gameSessionDoc.Root, "submarine", "")) + ".sub";
|
string subPath = Path.Combine(SaveUtil.TempPath, gameSessionDoc.Root.GetAttributeString("submarine", "")) + ".sub";
|
||||||
GameMain.GameSession.Submarine = new Submarine(subPath, "");
|
GameMain.GameSession.Submarine = new Submarine(subPath, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ namespace Barotrauma.Particles
|
|||||||
|
|
||||||
public DecalManager(string configFile)
|
public DecalManager(string configFile)
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(configFile);
|
XDocument doc = XMLExtensions.TryLoadXml(configFile);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
prefabs = new Dictionary<string, DecalPrefab>();
|
prefabs = new Dictionary<string, DecalPrefab>();
|
||||||
|
|||||||
@@ -31,11 +31,11 @@ namespace Barotrauma.Particles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Color = new Color(ToolBox.GetAttributeVector4(element, "color", Vector4.One));
|
Color = new Color(element.GetAttributeVector4("color", Vector4.One));
|
||||||
|
|
||||||
LifeTime = ToolBox.GetAttributeFloat(element, "lifetime", 10.0f);
|
LifeTime = element.GetAttributeFloat("lifetime", 10.0f);
|
||||||
FadeOutTime = Math.Min(LifeTime, ToolBox.GetAttributeFloat(element, "fadeouttime", 1.0f));
|
FadeOutTime = Math.Min(LifeTime, element.GetAttributeFloat("fadeouttime", 1.0f));
|
||||||
FadeInTime = Math.Min(LifeTime - FadeOutTime, ToolBox.GetAttributeFloat(element, "fadeintime", 0.0f));
|
FadeInTime = Math.Min(LifeTime - FadeOutTime, element.GetAttributeFloat("fadeintime", 0.0f));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,16 +95,16 @@ namespace Barotrauma.Particles
|
|||||||
{
|
{
|
||||||
Name = element.Name.ToString();
|
Name = element.Name.ToString();
|
||||||
|
|
||||||
ParticlePrefab = GameMain.ParticleManager.FindPrefab(ToolBox.GetAttributeString(element, "particle", ""));
|
ParticlePrefab = GameMain.ParticleManager.FindPrefab(element.GetAttributeString("particle", ""));
|
||||||
|
|
||||||
if (element.Attribute("startrotation") == null)
|
if (element.Attribute("startrotation") == null)
|
||||||
{
|
{
|
||||||
AngleMin = ToolBox.GetAttributeFloat(element, "anglemin", 0.0f);
|
AngleMin = element.GetAttributeFloat("anglemin", 0.0f);
|
||||||
AngleMax = ToolBox.GetAttributeFloat(element, "anglemax", 0.0f);
|
AngleMax = element.GetAttributeFloat("anglemax", 0.0f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
AngleMin = ToolBox.GetAttributeFloat(element, "angle", 0.0f);
|
AngleMin = element.GetAttributeFloat("angle", 0.0f);
|
||||||
AngleMax = AngleMin;
|
AngleMax = AngleMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,23 +118,23 @@ namespace Barotrauma.Particles
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ScaleMin = ToolBox.GetAttributeFloat(element,"scalemin",1.0f);
|
ScaleMin = element.GetAttributeFloat("scalemin",1.0f);
|
||||||
ScaleMax = Math.Max(ScaleMin, ToolBox.GetAttributeFloat(element, "scalemax", 1.0f));
|
ScaleMax = Math.Max(ScaleMin, element.GetAttributeFloat("scalemax", 1.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (element.Attribute("velocity") == null)
|
if (element.Attribute("velocity") == null)
|
||||||
{
|
{
|
||||||
VelocityMin = ToolBox.GetAttributeFloat(element, "velocitymin", 0.0f);
|
VelocityMin = element.GetAttributeFloat("velocitymin", 0.0f);
|
||||||
VelocityMax = ToolBox.GetAttributeFloat(element, "velocitymax", 0.0f);
|
VelocityMax = element.GetAttributeFloat("velocitymax", 0.0f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
VelocityMin = ToolBox.GetAttributeFloat(element, "velocity", 0.0f);
|
VelocityMin = element.GetAttributeFloat("velocity", 0.0f);
|
||||||
VelocityMax = VelocityMin;
|
VelocityMax = VelocityMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
ParticlesPerSecond = ToolBox.GetAttributeInt(element, "particlespersecond", 0);
|
ParticlesPerSecond = element.GetAttributeInt("particlespersecond", 0);
|
||||||
ParticleAmount = ToolBox.GetAttributeInt(element, "particleamount", 0);
|
ParticleAmount = element.GetAttributeInt("particleamount", 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ namespace Barotrauma.Particles
|
|||||||
|
|
||||||
particles = new Particle[MaxParticles];
|
particles = new Particle[MaxParticles];
|
||||||
|
|
||||||
XDocument doc = ToolBox.TryLoadXml(configFile);
|
XDocument doc = XMLExtensions.TryLoadXml(configFile);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
prefabs = new Dictionary<string, ParticlePrefab>();
|
prefabs = new Dictionary<string, ParticlePrefab>();
|
||||||
|
|||||||
@@ -69,17 +69,17 @@ namespace Barotrauma.Particles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AnimDuration = ToolBox.GetAttributeFloat(element, "animduration", 1.0f);
|
AnimDuration = element.GetAttributeFloat("animduration", 1.0f);
|
||||||
LoopAnim = ToolBox.GetAttributeBool(element, "loopanim", true);
|
LoopAnim = element.GetAttributeBool("loopanim", true);
|
||||||
|
|
||||||
if (element.Attribute("angularvelocity") == null)
|
if (element.Attribute("angularvelocity") == null)
|
||||||
{
|
{
|
||||||
AngularVelocityMin = ToolBox.GetAttributeFloat(element, "angularvelocitymin", 0.0f);
|
AngularVelocityMin = element.GetAttributeFloat("angularvelocitymin", 0.0f);
|
||||||
AngularVelocityMax = ToolBox.GetAttributeFloat(element, "angularvelocitymax", 0.0f);
|
AngularVelocityMax = element.GetAttributeFloat("angularvelocitymax", 0.0f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
AngularVelocityMin = ToolBox.GetAttributeFloat(element, "angularvelocity", 0.0f);
|
AngularVelocityMin = element.GetAttributeFloat("angularvelocity", 0.0f);
|
||||||
AngularVelocityMax = AngularVelocityMin;
|
AngularVelocityMax = AngularVelocityMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,33 +88,33 @@ namespace Barotrauma.Particles
|
|||||||
|
|
||||||
if (element.Attribute("startsize") == null)
|
if (element.Attribute("startsize") == null)
|
||||||
{
|
{
|
||||||
StartSizeMin = ToolBox.GetAttributeVector2(element, "startsizemin", Vector2.One);
|
StartSizeMin = element.GetAttributeVector2("startsizemin", Vector2.One);
|
||||||
StartSizeMax = ToolBox.GetAttributeVector2(element, "startsizemax", Vector2.One);
|
StartSizeMax = element.GetAttributeVector2("startsizemax", Vector2.One);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
StartSizeMin = ToolBox.GetAttributeVector2(element, "startsize", Vector2.One);
|
StartSizeMin = element.GetAttributeVector2("startsize", Vector2.One);
|
||||||
StartSizeMax = StartSizeMin;
|
StartSizeMax = StartSizeMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (element.Attribute("sizechange") == null)
|
if (element.Attribute("sizechange") == null)
|
||||||
{
|
{
|
||||||
SizeChangeMin = ToolBox.GetAttributeVector2(element, "sizechangemin", Vector2.Zero);
|
SizeChangeMin = element.GetAttributeVector2("sizechangemin", Vector2.Zero);
|
||||||
SizeChangeMax = ToolBox.GetAttributeVector2(element, "sizechangemax", Vector2.Zero);
|
SizeChangeMax = element.GetAttributeVector2("sizechangemax", Vector2.Zero);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SizeChangeMin = ToolBox.GetAttributeVector2(element, "sizechange", Vector2.Zero);
|
SizeChangeMin = element.GetAttributeVector2("sizechange", Vector2.Zero);
|
||||||
SizeChangeMax = SizeChangeMin;
|
SizeChangeMax = SizeChangeMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
Drag = ToolBox.GetAttributeFloat(element, "drag", 0.0f);
|
Drag = element.GetAttributeFloat("drag", 0.0f);
|
||||||
WaterDrag = ToolBox.GetAttributeFloat(element, "waterdrag", 0.0f);
|
WaterDrag = element.GetAttributeFloat("waterdrag", 0.0f);
|
||||||
|
|
||||||
Friction = ToolBox.GetAttributeFloat(element, "friction", 0.5f);
|
Friction = element.GetAttributeFloat("friction", 0.5f);
|
||||||
Restitution = ToolBox.GetAttributeFloat(element, "restitution", 0.5f);
|
Restitution = element.GetAttributeFloat("restitution", 0.5f);
|
||||||
|
|
||||||
switch (ToolBox.GetAttributeString(element, "blendstate", "alphablend"))
|
switch (element.GetAttributeString("blendstate", "alphablend"))
|
||||||
{
|
{
|
||||||
case "alpha":
|
case "alpha":
|
||||||
case "alphablend":
|
case "alphablend":
|
||||||
@@ -130,42 +130,41 @@ namespace Barotrauma.Particles
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
GrowTime = ToolBox.GetAttributeFloat(element, "growtime", 0.0f);
|
GrowTime = element.GetAttributeFloat("growtime", 0.0f);
|
||||||
|
|
||||||
if (element.Attribute("startrotation") == null)
|
if (element.Attribute("startrotation") == null)
|
||||||
{
|
{
|
||||||
StartRotationMin = ToolBox.GetAttributeFloat(element, "startrotationmin", 0.0f);
|
StartRotationMin = element.GetAttributeFloat("startrotationmin", 0.0f);
|
||||||
StartRotationMax = ToolBox.GetAttributeFloat(element, "startrotationmax", 0.0f);
|
StartRotationMax = element.GetAttributeFloat("startrotationmax", 0.0f);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
StartRotationMin = ToolBox.GetAttributeFloat(element, "startrotation", 0.0f);
|
StartRotationMin = element.GetAttributeFloat("startrotation", 0.0f);
|
||||||
StartRotationMax = StartRotationMin;
|
StartRotationMax = StartRotationMin;
|
||||||
}
|
}
|
||||||
|
|
||||||
StartRotationMin = MathHelper.ToRadians(StartRotationMin);
|
StartRotationMin = MathHelper.ToRadians(StartRotationMin);
|
||||||
StartRotationMax = MathHelper.ToRadians(StartRotationMax);
|
StartRotationMax = MathHelper.ToRadians(StartRotationMax);
|
||||||
|
|
||||||
StartColor = new Color(ToolBox.GetAttributeVector4(element, "startcolor", Vector4.One));
|
StartColor = new Color(element.GetAttributeVector4("startcolor", Vector4.One));
|
||||||
StartAlpha = ToolBox.GetAttributeFloat(element, "startalpha", 1.0f);
|
StartAlpha = element.GetAttributeFloat("startalpha", 1.0f);
|
||||||
|
|
||||||
DeleteOnCollision = ToolBox.GetAttributeBool(element, "deleteoncollision", false);
|
DeleteOnCollision = element.GetAttributeBool("deleteoncollision", false);
|
||||||
CollidesWithWalls = ToolBox.GetAttributeBool(element, "collideswithwalls", false);
|
CollidesWithWalls = element.GetAttributeBool("collideswithwalls", false);
|
||||||
|
|
||||||
CollisionRadius = ToolBox.GetAttributeFloat(element,
|
CollisionRadius = element.GetAttributeFloat("collisionradius",
|
||||||
"collisionradius",
|
|
||||||
Sprites.Count > 0 ? 1 : Sprites[0].SourceRect.Width / 2.0f);
|
Sprites.Count > 0 ? 1 : Sprites[0].SourceRect.Width / 2.0f);
|
||||||
|
|
||||||
ColorChange = ToolBox.GetAttributeVector4(element, "colorchange", Vector4.Zero);
|
ColorChange = element.GetAttributeVector4("colorchange", Vector4.Zero);
|
||||||
|
|
||||||
LifeTime = ToolBox.GetAttributeFloat(element, "lifetime", 5.0f);
|
LifeTime = element.GetAttributeFloat("lifetime", 5.0f);
|
||||||
|
|
||||||
VelocityChange = ToolBox.GetAttributeVector2(element, "velocitychange", Vector2.Zero);
|
VelocityChange = element.GetAttributeVector2("velocitychange", Vector2.Zero);
|
||||||
VelocityChange = ConvertUnits.ToDisplayUnits(VelocityChange);
|
VelocityChange = ConvertUnits.ToDisplayUnits(VelocityChange);
|
||||||
|
|
||||||
RotateToDirection = ToolBox.GetAttributeBool(element, "rotatetodirection", false);
|
RotateToDirection = element.GetAttributeBool("rotatetodirection", false);
|
||||||
|
|
||||||
switch (ToolBox.GetAttributeString(element, "drawtarget", "air").ToLowerInvariant())
|
switch (element.GetAttributeString("drawtarget", "air").ToLowerInvariant())
|
||||||
{
|
{
|
||||||
case "air":
|
case "air":
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -166,9 +166,9 @@ namespace Barotrauma
|
|||||||
|
|
||||||
RemoveSaveFrame();
|
RemoveSaveFrame();
|
||||||
|
|
||||||
string subName = ToolBox.GetAttributeString(doc.Root, "submarine", "");
|
string subName = doc.Root.GetAttributeString("submarine", "");
|
||||||
string saveTime = ToolBox.GetAttributeString(doc.Root, "savetime", "unknown");
|
string saveTime = doc.Root.GetAttributeString("savetime", "unknown");
|
||||||
string mapseed = ToolBox.GetAttributeString(doc.Root, "mapseed", "unknown");
|
string mapseed = doc.Root.GetAttributeString("mapseed", "unknown");
|
||||||
|
|
||||||
GUIFrame saveFileFrame = new GUIFrame(new Rectangle((int)(saveList.Rect.Width + 20), 0, 200, 230), Color.Black * 0.4f, "", loadGameContainer);
|
GUIFrame saveFileFrame = new GUIFrame(new Rectangle((int)(saveList.Rect.Width + 20), 0, 200, 230), Color.Black * 0.4f, "", loadGameContainer);
|
||||||
saveFileFrame.UserData = "savefileframe";
|
saveFileFrame.UserData = "savefileframe";
|
||||||
|
|||||||
@@ -93,13 +93,13 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public static Sound Load(XElement element, bool destroyOnGameEnd = true)
|
public static Sound Load(XElement element, bool destroyOnGameEnd = true)
|
||||||
{
|
{
|
||||||
string filePath = ToolBox.GetAttributeString(element, "file", "");
|
string filePath = element.GetAttributeString("file", "");
|
||||||
|
|
||||||
var newSound = new Sound(filePath, destroyOnGameEnd);
|
var newSound = new Sound(filePath, destroyOnGameEnd);
|
||||||
if (newSound != null)
|
if (newSound != null)
|
||||||
{
|
{
|
||||||
newSound.baseVolume = ToolBox.GetAttributeFloat(element, "volume", 1.0f);
|
newSound.baseVolume = element.GetAttributeFloat("volume", 1.0f);
|
||||||
newSound.range = ToolBox.GetAttributeFloat(element, "range", 1000.0f);
|
newSound.range = element.GetAttributeFloat("range", 1000.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
return newSound;
|
return newSound;
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
OverrideMusicType = null;
|
OverrideMusicType = null;
|
||||||
|
|
||||||
XDocument doc = ToolBox.TryLoadXml("Content/Sounds/sounds.xml");
|
XDocument doc = XMLExtensions.TryLoadXml("Content/Sounds/sounds.xml");
|
||||||
if (doc == null) yield return CoroutineStatus.Failure;
|
if (doc == null) yield return CoroutineStatus.Failure;
|
||||||
|
|
||||||
SoundCount = 16 + doc.Root.Elements().Count();
|
SoundCount = 16 + doc.Root.Elements().Count();
|
||||||
@@ -134,9 +134,9 @@ namespace Barotrauma
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
foreach (XElement element in xMusic)
|
foreach (XElement element in xMusic)
|
||||||
{
|
{
|
||||||
string file = ToolBox.GetAttributeString(element, "file", "");
|
string file = element.GetAttributeString("file", "");
|
||||||
string type = ToolBox.GetAttributeString(element, "type", "").ToLowerInvariant();
|
string type = element.GetAttributeString("type", "").ToLowerInvariant();
|
||||||
Vector2 priority = ToolBox.GetAttributeVector2(element, "priorityrange", new Vector2(0.0f, 100.0f));
|
Vector2 priority = element.GetAttributeVector2("priorityrange", new Vector2(0.0f, 100.0f));
|
||||||
|
|
||||||
musicClips[i] = new BackgroundMusic(file, type, priority);
|
musicClips[i] = new BackgroundMusic(file, type, priority);
|
||||||
|
|
||||||
@@ -158,21 +158,21 @@ namespace Barotrauma
|
|||||||
case "music":
|
case "music":
|
||||||
continue;
|
continue;
|
||||||
case "damagesound":
|
case "damagesound":
|
||||||
Sound damageSound = Sound.Load(ToolBox.GetAttributeString(subElement, "file", ""), false);
|
Sound damageSound = Sound.Load(subElement.GetAttributeString("file", ""), false);
|
||||||
if (damageSound == null) continue;
|
if (damageSound == null) continue;
|
||||||
|
|
||||||
DamageSoundType damageSoundType = DamageSoundType.None;
|
DamageSoundType damageSoundType = DamageSoundType.None;
|
||||||
Enum.TryParse<DamageSoundType>(ToolBox.GetAttributeString(subElement, "damagesoundtype", "None"), false, out damageSoundType);
|
Enum.TryParse<DamageSoundType>(subElement.GetAttributeString("damagesoundtype", "None"), false, out damageSoundType);
|
||||||
|
|
||||||
damageSounds.Add(new DamageSound(
|
damageSounds.Add(new DamageSound(
|
||||||
damageSound,
|
damageSound,
|
||||||
ToolBox.GetAttributeVector2(subElement, "damagerange", new Vector2(0.0f, 100.0f)),
|
subElement.GetAttributeVector2("damagerange", new Vector2(0.0f, 100.0f)),
|
||||||
damageSoundType,
|
damageSoundType,
|
||||||
ToolBox.GetAttributeString(subElement, "requiredtag", "")));
|
subElement.GetAttributeString("requiredtag", "")));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Sound sound = Sound.Load(ToolBox.GetAttributeString(subElement, "file", ""), false);
|
Sound sound = Sound.Load(subElement.GetAttributeString("file", ""), false);
|
||||||
if (sound != null)
|
if (sound != null)
|
||||||
{
|
{
|
||||||
miscSoundList.Add(new KeyValuePair<string, Sound>(subElement.Name.ToString().ToLowerInvariant(), sound));
|
miscSoundList.Add(new KeyValuePair<string, Sound>(subElement.Name.ToString().ToLowerInvariant(), sound));
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public void StartServer()
|
public void StartServer()
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(GameServer.SettingsFile);
|
XDocument doc = XMLExtensions.TryLoadXml(GameServer.SettingsFile);
|
||||||
if (doc == null)
|
if (doc == null)
|
||||||
{
|
{
|
||||||
DebugConsole.ThrowError("File \"" + GameServer.SettingsFile + "\" not found. Starting the server with default settings.");
|
DebugConsole.ThrowError("File \"" + GameServer.SettingsFile + "\" not found. Starting the server with default settings.");
|
||||||
@@ -108,12 +108,12 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
|
|
||||||
Server = new GameServer(
|
Server = new GameServer(
|
||||||
ToolBox.GetAttributeString(doc.Root, "name", "Server"),
|
doc.Root.GetAttributeString("name", "Server"),
|
||||||
ToolBox.GetAttributeInt(doc.Root, "port", 14242),
|
doc.Root.GetAttributeInt("port", 14242),
|
||||||
ToolBox.GetAttributeBool(doc.Root, "public", false),
|
doc.Root.GetAttributeBool("public", false),
|
||||||
ToolBox.GetAttributeString(doc.Root, "password", ""),
|
doc.Root.GetAttributeString("password", ""),
|
||||||
ToolBox.GetAttributeBool(doc.Root, "enableupnp", false),
|
doc.Root.GetAttributeBool("enableupnp", false),
|
||||||
ToolBox.GetAttributeInt(doc.Root, "maxplayers", 10));
|
doc.Root.GetAttributeInt("maxplayers", 10));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CloseServer()
|
public void CloseServer()
|
||||||
|
|||||||
@@ -1414,6 +1414,7 @@
|
|||||||
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\MotionSensor.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\MotionSensor.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\NotComponent.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\NotComponent.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\OrComponent.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\OrComponent.cs" />
|
||||||
|
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\OscillatorComponent.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\OxygenDetector.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\OxygenDetector.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\RegExFindComponent.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\RegExFindComponent.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\RelayComponent.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Source\Items\Components\Signal\RelayComponent.cs" />
|
||||||
@@ -1500,5 +1501,6 @@
|
|||||||
<Compile Include="$(MSBuildThisFileDirectory)Source\Utils\SaveUtil.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Source\Utils\SaveUtil.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Source\Utils\ToolBox.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Source\Utils\ToolBox.cs" />
|
||||||
<Compile Include="$(MSBuildThisFileDirectory)Source\Utils\UpdaterUtil.cs" />
|
<Compile Include="$(MSBuildThisFileDirectory)Source\Utils\UpdaterUtil.cs" />
|
||||||
|
<Compile Include="$(MSBuildThisFileDirectory)Source\Utils\XMLExtensions.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -79,30 +79,30 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
targetMemories = new Dictionary<AITarget, AITargetMemory>();
|
targetMemories = new Dictionary<AITarget, AITargetMemory>();
|
||||||
|
|
||||||
XDocument doc = ToolBox.TryLoadXml(file);
|
XDocument doc = XMLExtensions.TryLoadXml(file);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
XElement aiElement = doc.Root.Element("ai");
|
XElement aiElement = doc.Root.Element("ai");
|
||||||
if (aiElement == null) return;
|
if (aiElement == null) return;
|
||||||
|
|
||||||
attackRooms = ToolBox.GetAttributeFloat(aiElement, 0.0f, "attackrooms", "attackpriorityrooms") / 100.0f;
|
attackRooms = aiElement.GetAttributeFloat(0.0f, "attackrooms", "attackpriorityrooms") / 100.0f;
|
||||||
attackHumans = ToolBox.GetAttributeFloat(aiElement, 0.0f, "attackhumans", "attackpriorityhumans") / 100.0f;
|
attackHumans = aiElement.GetAttributeFloat(0.0f, "attackhumans", "attackpriorityhumans") / 100.0f;
|
||||||
attackWeaker = ToolBox.GetAttributeFloat(aiElement, 0.0f, "attackweaker", "attackpriorityweaker") / 100.0f;
|
attackWeaker = aiElement.GetAttributeFloat(0.0f, "attackweaker", "attackpriorityweaker") / 100.0f;
|
||||||
attackStronger = ToolBox.GetAttributeFloat(aiElement, 0.0f, "attackstronger", "attackprioritystronger") / 100.0f;
|
attackStronger = aiElement.GetAttributeFloat(0.0f, "attackstronger", "attackprioritystronger") / 100.0f;
|
||||||
eatDeadPriority = ToolBox.GetAttributeFloat(aiElement, "eatpriority", 0.0f) / 100.0f;
|
eatDeadPriority = aiElement.GetAttributeFloat("eatpriority", 0.0f) / 100.0f;
|
||||||
|
|
||||||
combatStrength = ToolBox.GetAttributeFloat(aiElement, "combatstrength", 1.0f);
|
combatStrength = aiElement.GetAttributeFloat("combatstrength", 1.0f);
|
||||||
|
|
||||||
attackCoolDown = ToolBox.GetAttributeFloat(aiElement, "attackcooldown", 5.0f);
|
attackCoolDown = aiElement.GetAttributeFloat("attackcooldown", 5.0f);
|
||||||
|
|
||||||
sight = ToolBox.GetAttributeFloat(aiElement, "sight", 0.0f);
|
sight = aiElement.GetAttributeFloat("sight", 0.0f);
|
||||||
hearing = ToolBox.GetAttributeFloat(aiElement, "hearing", 0.0f);
|
hearing = aiElement.GetAttributeFloat("hearing", 0.0f);
|
||||||
|
|
||||||
attackWhenProvoked = ToolBox.GetAttributeBool(aiElement, "attackwhenprovoked", false);
|
attackWhenProvoked = aiElement.GetAttributeBool("attackwhenprovoked", false);
|
||||||
|
|
||||||
fleeHealthThreshold = ToolBox.GetAttributeFloat(aiElement, "fleehealththreshold", 0.0f);
|
fleeHealthThreshold = aiElement.GetAttributeFloat("fleehealththreshold", 0.0f);
|
||||||
|
|
||||||
attachToWalls = ToolBox.GetAttributeBool(aiElement, "attachtowalls", false);
|
attachToWalls = aiElement.GetAttributeBool("attachtowalls", false);
|
||||||
|
|
||||||
outsideSteering = new SteeringManager(this);
|
outsideSteering = new SteeringManager(this);
|
||||||
insideSteering = new IndoorsSteeringManager(this, false);
|
insideSteering = new IndoorsSteeringManager(this, false);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
PrefabList = new List<Order>();
|
PrefabList = new List<Order>();
|
||||||
|
|
||||||
XDocument doc = ToolBox.TryLoadXml(ConfigFile);
|
XDocument doc = XMLExtensions.TryLoadXml(ConfigFile);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
foreach (XElement orderElement in doc.Root.Elements())
|
foreach (XElement orderElement in doc.Root.Elements())
|
||||||
@@ -57,10 +57,10 @@ namespace Barotrauma
|
|||||||
|
|
||||||
private Order(XElement orderElement)
|
private Order(XElement orderElement)
|
||||||
{
|
{
|
||||||
Name = ToolBox.GetAttributeString(orderElement, "name", "Name not found");
|
Name = orderElement.GetAttributeString("name", "Name not found");
|
||||||
DoingText = ToolBox.GetAttributeString(orderElement, "doingtext", "");
|
DoingText = orderElement.GetAttributeString("doingtext", "");
|
||||||
|
|
||||||
string targetItemName = ToolBox.GetAttributeString(orderElement, "targetitemtype", "");
|
string targetItemName = orderElement.GetAttributeString("targetitemtype", "");
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(targetItemName))
|
if (!string.IsNullOrWhiteSpace(targetItemName))
|
||||||
{
|
{
|
||||||
@@ -75,13 +75,13 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemName = ToolBox.GetAttributeString(orderElement, "targetitemname", "");
|
ItemName = orderElement.GetAttributeString("targetitemname", "");
|
||||||
|
|
||||||
Color = new Color(ToolBox.GetAttributeVector4(orderElement, "color", new Vector4(1.0f, 1.0f, 1.0f, 1.0f)));
|
Color = new Color(orderElement.GetAttributeVector4("color", new Vector4(1.0f, 1.0f, 1.0f, 1.0f)));
|
||||||
|
|
||||||
UseController = ToolBox.GetAttributeBool(orderElement, "usecontroller", false);
|
UseController = orderElement.GetAttributeBool("usecontroller", false);
|
||||||
|
|
||||||
string optionStr = ToolBox.GetAttributeString(orderElement, "options", "");
|
string optionStr = orderElement.GetAttributeString("options", "");
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(optionStr))
|
if (string.IsNullOrWhiteSpace(optionStr))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,16 +48,16 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
this.character = character;
|
this.character = character;
|
||||||
|
|
||||||
stepSize = ToolBox.GetAttributeVector2(element, "stepsize", Vector2.One);
|
stepSize = element.GetAttributeVector2("stepsize", Vector2.One);
|
||||||
stepSize = ConvertUnits.ToSimUnits(stepSize);
|
stepSize = ConvertUnits.ToSimUnits(stepSize);
|
||||||
|
|
||||||
walkSpeed = ToolBox.GetAttributeFloat(element, "walkspeed", 1.0f);
|
walkSpeed = element.GetAttributeFloat("walkspeed", 1.0f);
|
||||||
swimSpeed = ToolBox.GetAttributeFloat(element, "swimspeed", 1.0f);
|
swimSpeed = element.GetAttributeFloat("swimspeed", 1.0f);
|
||||||
|
|
||||||
RunSpeedMultiplier = ToolBox.GetAttributeFloat(element, "runspeedmultiplier", 2f);
|
RunSpeedMultiplier = element.GetAttributeFloat("runspeedmultiplier", 2f);
|
||||||
SwimSpeedMultiplier = ToolBox.GetAttributeFloat(element, "swimspeedmultiplier", 1.5f);
|
SwimSpeedMultiplier = element.GetAttributeFloat("swimspeedmultiplier", 1.5f);
|
||||||
|
|
||||||
legTorque = ToolBox.GetAttributeFloat(element, "legtorque", 0.0f);
|
legTorque = element.GetAttributeFloat("legtorque", 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void UpdateAnim(float deltaTime) { }
|
public virtual void UpdateAnim(float deltaTime) { }
|
||||||
|
|||||||
@@ -28,15 +28,15 @@ namespace Barotrauma
|
|||||||
public FishAnimController(Character character, XElement element)
|
public FishAnimController(Character character, XElement element)
|
||||||
: base(character, element)
|
: base(character, element)
|
||||||
{
|
{
|
||||||
waveAmplitude = ConvertUnits.ToSimUnits(ToolBox.GetAttributeFloat(element, "waveamplitude", 0.0f));
|
waveAmplitude = ConvertUnits.ToSimUnits(element.GetAttributeFloat("waveamplitude", 0.0f));
|
||||||
waveLength = ConvertUnits.ToSimUnits(ToolBox.GetAttributeFloat(element, "wavelength", 0.0f));
|
waveLength = ConvertUnits.ToSimUnits(element.GetAttributeFloat("wavelength", 0.0f));
|
||||||
|
|
||||||
steerTorque = ToolBox.GetAttributeFloat(element, "steertorque", 25.0f);
|
steerTorque = element.GetAttributeFloat("steertorque", 25.0f);
|
||||||
|
|
||||||
flip = ToolBox.GetAttributeBool(element, "flip", true);
|
flip = element.GetAttributeBool("flip", true);
|
||||||
mirror = ToolBox.GetAttributeBool(element, "mirror", false);
|
mirror = element.GetAttributeBool("mirror", false);
|
||||||
|
|
||||||
float footRot = ToolBox.GetAttributeFloat(element, "footrotation", float.NaN);
|
float footRot = element.GetAttributeFloat("footrotation", float.NaN);
|
||||||
if (float.IsNaN(footRot))
|
if (float.IsNaN(footRot))
|
||||||
{
|
{
|
||||||
footRotation = null;
|
footRotation = null;
|
||||||
@@ -46,7 +46,7 @@ namespace Barotrauma
|
|||||||
footRotation = MathHelper.ToRadians(footRot);
|
footRotation = MathHelper.ToRadians(footRot);
|
||||||
}
|
}
|
||||||
|
|
||||||
rotateTowardsMovement = ToolBox.GetAttributeBool(element, "rotatetowardsmovement", true);
|
rotateTowardsMovement = element.GetAttributeBool("rotatetowardsmovement", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void UpdateAnim(float deltaTime)
|
public override void UpdateAnim(float deltaTime)
|
||||||
|
|||||||
@@ -63,12 +63,12 @@ namespace Barotrauma
|
|||||||
public HumanoidAnimController(Character character, XElement element)
|
public HumanoidAnimController(Character character, XElement element)
|
||||||
: base(character, element)
|
: base(character, element)
|
||||||
{
|
{
|
||||||
walkAnimSpeed = ToolBox.GetAttributeFloat(element, "walkanimspeed", 4.0f);
|
walkAnimSpeed = element.GetAttributeFloat("walkanimspeed", 4.0f);
|
||||||
walkAnimSpeed = MathHelper.ToRadians(walkAnimSpeed);
|
walkAnimSpeed = MathHelper.ToRadians(walkAnimSpeed);
|
||||||
|
|
||||||
movementLerp = ToolBox.GetAttributeFloat(element, "movementlerp", 0.4f);
|
movementLerp = element.GetAttributeFloat("movementlerp", 0.4f);
|
||||||
|
|
||||||
thighTorque = ToolBox.GetAttributeFloat(element, "thightorque", -5.0f);
|
thighTorque = element.GetAttributeFloat("thightorque", -5.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void UpdateAnim(float deltaTime)
|
public override void UpdateAnim(float deltaTime)
|
||||||
|
|||||||
@@ -279,25 +279,25 @@ namespace Barotrauma
|
|||||||
|
|
||||||
dir = Direction.Right;
|
dir = Direction.Right;
|
||||||
|
|
||||||
float scale = ToolBox.GetAttributeFloat(element, "scale", 1.0f);
|
float scale = element.GetAttributeFloat("scale", 1.0f);
|
||||||
|
|
||||||
Limbs = new Limb[element.Elements("limb").Count()];
|
Limbs = new Limb[element.Elements("limb").Count()];
|
||||||
LimbJoints = new LimbJoint[element.Elements("joint").Count()];
|
LimbJoints = new LimbJoint[element.Elements("joint").Count()];
|
||||||
limbDictionary = new Dictionary<LimbType, Limb>();
|
limbDictionary = new Dictionary<LimbType, Limb>();
|
||||||
|
|
||||||
headPosition = ToolBox.GetAttributeFloat(element, "headposition", 50.0f);
|
headPosition = element.GetAttributeFloat("headposition", 50.0f);
|
||||||
headPosition = ConvertUnits.ToSimUnits(headPosition);
|
headPosition = ConvertUnits.ToSimUnits(headPosition);
|
||||||
headAngle = MathHelper.ToRadians(ToolBox.GetAttributeFloat(element, "headangle", 0.0f));
|
headAngle = MathHelper.ToRadians(element.GetAttributeFloat("headangle", 0.0f));
|
||||||
|
|
||||||
torsoPosition = ToolBox.GetAttributeFloat(element, "torsoposition", 50.0f);
|
torsoPosition = element.GetAttributeFloat("torsoposition", 50.0f);
|
||||||
torsoPosition = ConvertUnits.ToSimUnits(torsoPosition);
|
torsoPosition = ConvertUnits.ToSimUnits(torsoPosition);
|
||||||
torsoAngle = MathHelper.ToRadians(ToolBox.GetAttributeFloat(element, "torsoangle", 0.0f));
|
torsoAngle = MathHelper.ToRadians(element.GetAttributeFloat("torsoangle", 0.0f));
|
||||||
|
|
||||||
ImpactTolerance = ToolBox.GetAttributeFloat(element, "impacttolerance", 50.0f);
|
ImpactTolerance = element.GetAttributeFloat("impacttolerance", 50.0f);
|
||||||
|
|
||||||
CanEnterSubmarine = ToolBox.GetAttributeBool(element, "canentersubmarine", true);
|
CanEnterSubmarine = element.GetAttributeBool("canentersubmarine", true);
|
||||||
|
|
||||||
colliderHeightFromFloor = ToolBox.GetAttributeFloat(element, "colliderheightfromfloor", 45.0f);
|
colliderHeightFromFloor = element.GetAttributeFloat("colliderheightfromfloor", 45.0f);
|
||||||
colliderHeightFromFloor = ConvertUnits.ToSimUnits(colliderHeightFromFloor);
|
colliderHeightFromFloor = ConvertUnits.ToSimUnits(colliderHeightFromFloor);
|
||||||
|
|
||||||
collider = new List<PhysicsBody>();
|
collider = new List<PhysicsBody>();
|
||||||
@@ -382,14 +382,14 @@ namespace Barotrauma
|
|||||||
byte limb1ID = Convert.ToByte(subElement.Attribute("limb1").Value);
|
byte limb1ID = Convert.ToByte(subElement.Attribute("limb1").Value);
|
||||||
byte limb2ID = Convert.ToByte(subElement.Attribute("limb2").Value);
|
byte limb2ID = Convert.ToByte(subElement.Attribute("limb2").Value);
|
||||||
|
|
||||||
Vector2 limb1Pos = ToolBox.GetAttributeVector2(subElement, "limb1anchor", Vector2.Zero) * scale;
|
Vector2 limb1Pos = subElement.GetAttributeVector2("limb1anchor", Vector2.Zero) * scale;
|
||||||
limb1Pos = ConvertUnits.ToSimUnits(limb1Pos);
|
limb1Pos = ConvertUnits.ToSimUnits(limb1Pos);
|
||||||
|
|
||||||
Vector2 limb2Pos = ToolBox.GetAttributeVector2(subElement, "limb2anchor", Vector2.Zero) * scale;
|
Vector2 limb2Pos = subElement.GetAttributeVector2("limb2anchor", Vector2.Zero) * scale;
|
||||||
limb2Pos = ConvertUnits.ToSimUnits(limb2Pos);
|
limb2Pos = ConvertUnits.ToSimUnits(limb2Pos);
|
||||||
|
|
||||||
LimbJoint joint = new LimbJoint(Limbs[limb1ID], Limbs[limb2ID], limb1Pos, limb2Pos);
|
LimbJoint joint = new LimbJoint(Limbs[limb1ID], Limbs[limb2ID], limb1Pos, limb2Pos);
|
||||||
joint.CanBeSevered = ToolBox.GetAttributeBool(subElement, "canbesevered", true);
|
joint.CanBeSevered = subElement.GetAttributeBool("canbesevered", true);
|
||||||
|
|
||||||
if (subElement.Attribute("lowerlimit") != null)
|
if (subElement.Attribute("lowerlimit") != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -87,34 +87,34 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
DamageType = (DamageType)Enum.Parse(typeof(DamageType), ToolBox.GetAttributeString(element, "damagetype", "None"), true);
|
DamageType = (DamageType)Enum.Parse(typeof(DamageType), element.GetAttributeString("damagetype", "None"), true);
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
DamageType = DamageType.None;
|
DamageType = DamageType.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
damage = ToolBox.GetAttributeFloat(element, "damage", 0.0f);
|
damage = element.GetAttributeFloat("damage", 0.0f);
|
||||||
structureDamage = ToolBox.GetAttributeFloat(element, "structuredamage", 0.0f);
|
structureDamage = element.GetAttributeFloat("structuredamage", 0.0f);
|
||||||
bleedingDamage = ToolBox.GetAttributeFloat(element, "bleedingdamage", 0.0f);
|
bleedingDamage = element.GetAttributeFloat("bleedingdamage", 0.0f);
|
||||||
Stun = ToolBox.GetAttributeFloat(element, "stun", 0.0f);
|
Stun = element.GetAttributeFloat("stun", 0.0f);
|
||||||
|
|
||||||
SeverLimbsProbability = ToolBox.GetAttributeFloat(element, "severlimbsprobability", 0.0f);
|
SeverLimbsProbability = element.GetAttributeFloat("severlimbsprobability", 0.0f);
|
||||||
|
|
||||||
Force = ToolBox.GetAttributeFloat(element, "force", 0.0f);
|
Force = element.GetAttributeFloat("force", 0.0f);
|
||||||
TargetForce = ToolBox.GetAttributeFloat(element, "targetforce", 0.0f);
|
TargetForce = element.GetAttributeFloat("targetforce", 0.0f);
|
||||||
Torque = ToolBox.GetAttributeFloat(element, "torque", 0.0f);
|
Torque = element.GetAttributeFloat("torque", 0.0f);
|
||||||
|
|
||||||
Range = ToolBox.GetAttributeFloat(element, "range", 0.0f);
|
Range = element.GetAttributeFloat("range", 0.0f);
|
||||||
Duration = ToolBox.GetAttributeFloat(element, "duration", 0.0f);
|
Duration = element.GetAttributeFloat("duration", 0.0f);
|
||||||
|
|
||||||
priority = ToolBox.GetAttributeFloat(element, "priority", 1.0f);
|
priority = element.GetAttributeFloat("priority", 1.0f);
|
||||||
|
|
||||||
onlyHumans = ToolBox.GetAttributeBool(element, "onlyhumans", false);
|
onlyHumans = element.GetAttributeBool("onlyhumans", false);
|
||||||
|
|
||||||
InitProjSpecific(element);
|
InitProjSpecific(element);
|
||||||
|
|
||||||
string limbIndicesStr = ToolBox.GetAttributeString(element, "applyforceonlimbs", "");
|
string limbIndicesStr = element.GetAttributeString("applyforceonlimbs", "");
|
||||||
if (!string.IsNullOrWhiteSpace(limbIndicesStr))
|
if (!string.IsNullOrWhiteSpace(limbIndicesStr))
|
||||||
{
|
{
|
||||||
ApplyForceOnLimbs = new List<int>();
|
ApplyForceOnLimbs = new List<int>();
|
||||||
|
|||||||
@@ -545,14 +545,14 @@ namespace Barotrauma
|
|||||||
Info = new CharacterInfo(file);
|
Info = new CharacterInfo(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
XDocument doc = ToolBox.TryLoadXml(file);
|
XDocument doc = XMLExtensions.TryLoadXml(file);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
InitProjSpecific(doc);
|
InitProjSpecific(doc);
|
||||||
|
|
||||||
SpeciesName = ToolBox.GetAttributeString(doc.Root, "name", "Unknown");
|
SpeciesName = doc.Root.GetAttributeString("name", "Unknown");
|
||||||
|
|
||||||
IsHumanoid = ToolBox.GetAttributeBool(doc.Root, "humanoid", false);
|
IsHumanoid = doc.Root.GetAttributeBool("humanoid", false);
|
||||||
|
|
||||||
if (IsHumanoid)
|
if (IsHumanoid)
|
||||||
{
|
{
|
||||||
@@ -568,14 +568,14 @@ namespace Barotrauma
|
|||||||
|
|
||||||
AnimController.SetPosition(ConvertUnits.ToSimUnits(position));
|
AnimController.SetPosition(ConvertUnits.ToSimUnits(position));
|
||||||
|
|
||||||
maxHealth = ToolBox.GetAttributeFloat(doc.Root, "health", 100.0f);
|
maxHealth = doc.Root.GetAttributeFloat("health", 100.0f);
|
||||||
health = maxHealth;
|
health = maxHealth;
|
||||||
|
|
||||||
DoesBleed = ToolBox.GetAttributeBool(doc.Root, "doesbleed", true);
|
DoesBleed = doc.Root.GetAttributeBool("doesbleed", true);
|
||||||
BleedingDecreaseSpeed = ToolBox.GetAttributeFloat(doc.Root, "bleedingdecreasespeed", 0.05f);
|
BleedingDecreaseSpeed = doc.Root.GetAttributeFloat("bleedingdecreasespeed", 0.05f);
|
||||||
|
|
||||||
needsAir = ToolBox.GetAttributeBool(doc.Root, "needsair", false);
|
needsAir = doc.Root.GetAttributeBool("needsair", false);
|
||||||
drowningTime = ToolBox.GetAttributeFloat(doc.Root, "drowningtime", 10.0f);
|
drowningTime = doc.Root.GetAttributeFloat("drowningtime", 10.0f);
|
||||||
|
|
||||||
if (file == humanConfigFile)
|
if (file == humanConfigFile)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -105,14 +105,14 @@ namespace Barotrauma
|
|||||||
|
|
||||||
//ID = -1;
|
//ID = -1;
|
||||||
|
|
||||||
XDocument doc = ToolBox.TryLoadXml(file);
|
XDocument doc = XMLExtensions.TryLoadXml(file);
|
||||||
if (doc == null) return;
|
if (doc == null) return;
|
||||||
|
|
||||||
if (ToolBox.GetAttributeBool(doc.Root, "genders", false))
|
if (doc.Root.GetAttributeBool("genders", false))
|
||||||
{
|
{
|
||||||
if (gender == Gender.None)
|
if (gender == Gender.None)
|
||||||
{
|
{
|
||||||
float femaleRatio = ToolBox.GetAttributeFloat(doc.Root, "femaleratio", 0.5f);
|
float femaleRatio = doc.Root.GetAttributeFloat("femaleratio", 0.5f);
|
||||||
this.gender = (Rand.Range(0.0f, 1.0f, Rand.RandSync.Server) < femaleRatio) ? Gender.Female : Gender.Male;
|
this.gender = (Rand.Range(0.0f, 1.0f, Rand.RandSync.Server) < femaleRatio) ? Gender.Female : Gender.Male;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -121,12 +121,12 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
headSpriteRange[0] = ToolBox.GetAttributeVector2(doc.Root, "headid", Vector2.Zero);
|
headSpriteRange[0] = doc.Root.GetAttributeVector2("headid", Vector2.Zero);
|
||||||
headSpriteRange[1] = headSpriteRange[0];
|
headSpriteRange[1] = headSpriteRange[0];
|
||||||
if (headSpriteRange[0] == Vector2.Zero)
|
if (headSpriteRange[0] == Vector2.Zero)
|
||||||
{
|
{
|
||||||
headSpriteRange[0] = ToolBox.GetAttributeVector2(doc.Root, "maleheadid", Vector2.Zero);
|
headSpriteRange[0] = doc.Root.GetAttributeVector2("maleheadid", Vector2.Zero);
|
||||||
headSpriteRange[1] = ToolBox.GetAttributeVector2(doc.Root, "femaleheadid", Vector2.Zero);
|
headSpriteRange[1] = doc.Root.GetAttributeVector2("femaleheadid", Vector2.Zero);
|
||||||
}
|
}
|
||||||
|
|
||||||
int genderIndex = (this.gender == Gender.Female) ? 1 : 0;
|
int genderIndex = (this.gender == Gender.Female) ? 1 : 0;
|
||||||
@@ -147,14 +147,14 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (doc.Root.Element("name") != null)
|
if (doc.Root.Element("name") != null)
|
||||||
{
|
{
|
||||||
string firstNamePath = ToolBox.GetAttributeString(doc.Root.Element("name"), "firstname", "");
|
string firstNamePath = doc.Root.Element("name").GetAttributeString("firstname", "");
|
||||||
if (firstNamePath != "")
|
if (firstNamePath != "")
|
||||||
{
|
{
|
||||||
firstNamePath = firstNamePath.Replace("[GENDER]", (this.gender == Gender.Female) ? "f" : "");
|
firstNamePath = firstNamePath.Replace("[GENDER]", (this.gender == Gender.Female) ? "f" : "");
|
||||||
this.Name = ToolBox.GetRandomLine(firstNamePath);
|
this.Name = ToolBox.GetRandomLine(firstNamePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
string lastNamePath = ToolBox.GetAttributeString(doc.Root.Element("name"), "lastname", "");
|
string lastNamePath = doc.Root.Element("name").GetAttributeString("lastname", "");
|
||||||
if (lastNamePath != "")
|
if (lastNamePath != "")
|
||||||
{
|
{
|
||||||
lastNamePath = lastNamePath.Replace("[GENDER]", (this.gender == Gender.Female) ? "f" : "");
|
lastNamePath = lastNamePath.Replace("[GENDER]", (this.gender == Gender.Female) ? "f" : "");
|
||||||
@@ -168,13 +168,13 @@ namespace Barotrauma
|
|||||||
|
|
||||||
private void LoadHeadSprite()
|
private void LoadHeadSprite()
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(File);
|
XDocument doc = XMLExtensions.TryLoadXml(File);
|
||||||
if (doc == null) return;
|
if (doc == null) return;
|
||||||
|
|
||||||
XElement ragdollElement = doc.Root.Element("ragdoll");
|
XElement ragdollElement = doc.Root.Element("ragdoll");
|
||||||
foreach (XElement limbElement in ragdollElement.Elements())
|
foreach (XElement limbElement in ragdollElement.Elements())
|
||||||
{
|
{
|
||||||
if (ToolBox.GetAttributeString(limbElement, "type", "").ToLowerInvariant() != "head") continue;
|
if (limbElement.GetAttributeString("type", "").ToLowerInvariant() != "head") continue;
|
||||||
|
|
||||||
XElement spriteElement = limbElement.Element("sprite");
|
XElement spriteElement = limbElement.Element("sprite");
|
||||||
|
|
||||||
@@ -221,22 +221,22 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public CharacterInfo(XElement element)
|
public CharacterInfo(XElement element)
|
||||||
{
|
{
|
||||||
Name = ToolBox.GetAttributeString(element, "name", "unnamed");
|
Name = element.GetAttributeString("name", "unnamed");
|
||||||
|
|
||||||
string genderStr = ToolBox.GetAttributeString(element, "gender", "male").ToLowerInvariant();
|
string genderStr = element.GetAttributeString("gender", "male").ToLowerInvariant();
|
||||||
gender = (genderStr == "m") ? Gender.Male : Gender.Female;
|
gender = (genderStr == "m") ? Gender.Male : Gender.Female;
|
||||||
|
|
||||||
File = ToolBox.GetAttributeString(element, "file", "");
|
File = element.GetAttributeString("file", "");
|
||||||
Salary = ToolBox.GetAttributeInt(element, "salary", 1000);
|
Salary = element.GetAttributeInt("salary", 1000);
|
||||||
headSpriteId = ToolBox.GetAttributeInt(element, "headspriteid", 1);
|
headSpriteId = element.GetAttributeInt("headspriteid", 1);
|
||||||
StartItemsGiven = ToolBox.GetAttributeBool(element, "startitemsgiven", false);
|
StartItemsGiven = element.GetAttributeBool("startitemsgiven", false);
|
||||||
|
|
||||||
int hullId = ToolBox.GetAttributeInt(element, "hull", -1);
|
int hullId = element.GetAttributeInt("hull", -1);
|
||||||
if (hullId > 0 && hullId <= ushort.MaxValue) this.HullID = (ushort)hullId;
|
if (hullId > 0 && hullId <= ushort.MaxValue) this.HullID = (ushort)hullId;
|
||||||
|
|
||||||
pickedItems = new List<ushort>();
|
pickedItems = new List<ushort>();
|
||||||
|
|
||||||
string pickedItemString = ToolBox.GetAttributeString(element, "items", "");
|
string pickedItemString = element.GetAttributeString("items", "");
|
||||||
if (!string.IsNullOrEmpty(pickedItemString))
|
if (!string.IsNullOrEmpty(pickedItemString))
|
||||||
{
|
{
|
||||||
string[] itemIds = pickedItemString.Split(',');
|
string[] itemIds = pickedItemString.Split(',');
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ namespace Barotrauma
|
|||||||
public DelayedEffect(XElement element)
|
public DelayedEffect(XElement element)
|
||||||
: base(element)
|
: base(element)
|
||||||
{
|
{
|
||||||
delay = ToolBox.GetAttributeFloat(element, "delay", 1.0f);
|
delay = element.GetAttributeFloat("delay", 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Apply(ActionType type, float deltaTime, Entity entity, List<IPropertyObject> targets)
|
public override void Apply(ActionType type, float deltaTime, Entity entity, List<IPropertyObject> targets)
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
private void AttachHuskAppendage(Character character)
|
private void AttachHuskAppendage(Character character)
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(Path.Combine("Content", "Characters", "Human", "huskappendage.xml"));
|
XDocument doc = XMLExtensions.TryLoadXml(Path.Combine("Content", "Characters", "Human", "huskappendage.xml"));
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
var limbElement = doc.Root.Element("limb");
|
var limbElement = doc.Root.Element("limb");
|
||||||
|
|||||||
@@ -54,18 +54,18 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public Job(XElement element)
|
public Job(XElement element)
|
||||||
{
|
{
|
||||||
string name = ToolBox.GetAttributeString(element, "name", "").ToLowerInvariant();
|
string name = element.GetAttributeString("name", "").ToLowerInvariant();
|
||||||
prefab = JobPrefab.List.Find(jp => jp.Name.ToLowerInvariant() == name);
|
prefab = JobPrefab.List.Find(jp => jp.Name.ToLowerInvariant() == name);
|
||||||
|
|
||||||
skills = new Dictionary<string, Skill>();
|
skills = new Dictionary<string, Skill>();
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
if (subElement.Name.ToString().ToLowerInvariant() != "skill") continue;
|
if (subElement.Name.ToString().ToLowerInvariant() != "skill") continue;
|
||||||
string skillName = ToolBox.GetAttributeString(subElement, "name", "");
|
string skillName = subElement.GetAttributeString("name", "");
|
||||||
if (string.IsNullOrEmpty(name)) continue;
|
if (string.IsNullOrEmpty(name)) continue;
|
||||||
skills.Add(
|
skills.Add(
|
||||||
skillName,
|
skillName,
|
||||||
new Skill(skillName, ToolBox.GetAttributeInt(subElement, "level", 0)));
|
new Skill(skillName, subElement.GetAttributeInt("level", 0)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
private void InitializeJobItem(Character character, WayPoint spawnPoint, XElement itemElement, Item parentItem = null)
|
private void InitializeJobItem(Character character, WayPoint spawnPoint, XElement itemElement, Item parentItem = null)
|
||||||
{
|
{
|
||||||
string itemName = ToolBox.GetAttributeString(itemElement, "name", "");
|
string itemName = itemElement.GetAttributeString("name", "");
|
||||||
|
|
||||||
ItemPrefab itemPrefab = ItemPrefab.list.Find(ip => ip.Name == itemName) as ItemPrefab;
|
ItemPrefab itemPrefab = ItemPrefab.list.Find(ip => ip.Name == itemName) as ItemPrefab;
|
||||||
if (itemPrefab == null)
|
if (itemPrefab == null)
|
||||||
@@ -112,7 +112,7 @@ namespace Barotrauma
|
|||||||
Entity.Spawner.CreateNetworkEvent(item, false);
|
Entity.Spawner.CreateNetworkEvent(item, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ToolBox.GetAttributeBool(itemElement, "equip", false))
|
if (itemElement.GetAttributeBool("equip", false))
|
||||||
{
|
{
|
||||||
List<InvSlotType> allowedSlots = new List<InvSlotType>(item.AllowedSlots);
|
List<InvSlotType> allowedSlots = new List<InvSlotType>(item.AllowedSlots);
|
||||||
allowedSlots.Remove(InvSlotType.Any);
|
allowedSlots.Remove(InvSlotType.Any);
|
||||||
|
|||||||
@@ -55,16 +55,16 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public JobPrefab(XElement element)
|
public JobPrefab(XElement element)
|
||||||
{
|
{
|
||||||
Name = ToolBox.GetAttributeString(element, "name", "name not found");
|
Name = element.GetAttributeString("name", "name not found");
|
||||||
|
|
||||||
Description = ToolBox.GetAttributeString(element, "description", "");
|
Description = element.GetAttributeString("description", "");
|
||||||
|
|
||||||
MinNumber = ToolBox.GetAttributeInt(element, "minnumber", 0);
|
MinNumber = element.GetAttributeInt("minnumber", 0);
|
||||||
MaxNumber = ToolBox.GetAttributeInt(element, "maxnumber", 10);
|
MaxNumber = element.GetAttributeInt("maxnumber", 10);
|
||||||
|
|
||||||
Commonness = ToolBox.GetAttributeInt(element, "commonness", 10);
|
Commonness = element.GetAttributeInt("commonness", 10);
|
||||||
|
|
||||||
AllowAlways = ToolBox.GetAttributeBool(element, "allowalways", false);
|
AllowAlways = element.GetAttributeBool("allowalways", false);
|
||||||
|
|
||||||
ItemNames = new List<string>();
|
ItemNames = new List<string>();
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ namespace Barotrauma
|
|||||||
Items = subElement;
|
Items = subElement;
|
||||||
foreach (XElement itemElement in subElement.Elements())
|
foreach (XElement itemElement in subElement.Elements())
|
||||||
{
|
{
|
||||||
string itemName = ToolBox.GetAttributeString(itemElement, "name", "");
|
string itemName = itemElement.GetAttributeString("name", "");
|
||||||
if (!string.IsNullOrWhiteSpace(itemName)) ItemNames.Add(itemName);
|
if (!string.IsNullOrWhiteSpace(itemName)) ItemNames.Add(itemName);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -105,7 +105,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
foreach (string filePath in filePaths)
|
foreach (string filePath in filePaths)
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(filePath);
|
XDocument doc = XMLExtensions.TryLoadXml(filePath);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
foreach (XElement element in doc.Root.Elements())
|
foreach (XElement element in doc.Root.Elements())
|
||||||
|
|||||||
@@ -28,12 +28,12 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public SkillPrefab(XElement element)
|
public SkillPrefab(XElement element)
|
||||||
{
|
{
|
||||||
name = ToolBox.GetAttributeString(element, "name", "");
|
name = element.GetAttributeString("name", "");
|
||||||
|
|
||||||
var levelString = ToolBox.GetAttributeString(element, "level", "");
|
var levelString = element.GetAttributeString("level", "");
|
||||||
if (levelString.Contains(","))
|
if (levelString.Contains(","))
|
||||||
{
|
{
|
||||||
levelRange = ToolBox.ParseToVector2(levelString, false);
|
levelRange = XMLExtensions.ParseToVector2(levelString, false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -195,13 +195,13 @@ namespace Barotrauma
|
|||||||
|
|
||||||
dir = Direction.Right;
|
dir = Direction.Right;
|
||||||
|
|
||||||
doesFlip = ToolBox.GetAttributeBool(element, "flip", false);
|
doesFlip = element.GetAttributeBool("flip", false);
|
||||||
|
|
||||||
this.scale = scale;
|
this.scale = scale;
|
||||||
|
|
||||||
body = new PhysicsBody(element, scale);
|
body = new PhysicsBody(element, scale);
|
||||||
|
|
||||||
if (ToolBox.GetAttributeBool(element, "ignorecollisions", false))
|
if (element.GetAttributeBool("ignorecollisions", false))
|
||||||
{
|
{
|
||||||
body.CollisionCategories = Category.None;
|
body.CollisionCategories = Category.None;
|
||||||
body.CollidesWith = Category.None;
|
body.CollidesWith = Category.None;
|
||||||
@@ -234,13 +234,13 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
pullJointPos = ToolBox.GetAttributeVector2(element, "pullpos", Vector2.Zero) * scale;
|
pullJointPos = element.GetAttributeVector2("pullpos", Vector2.Zero) * scale;
|
||||||
pullJointPos = ConvertUnits.ToSimUnits(pullJointPos);
|
pullJointPos = ConvertUnits.ToSimUnits(pullJointPos);
|
||||||
|
|
||||||
stepOffset = ToolBox.GetAttributeVector2(element, "stepoffset", Vector2.Zero) * scale;
|
stepOffset = element.GetAttributeVector2("stepoffset", Vector2.Zero) * scale;
|
||||||
stepOffset = ConvertUnits.ToSimUnits(stepOffset);
|
stepOffset = ConvertUnits.ToSimUnits(stepOffset);
|
||||||
|
|
||||||
refJointIndex = ToolBox.GetAttributeInt(element, "refjoint", -1);
|
refJointIndex = element.GetAttributeInt("refjoint", -1);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -254,19 +254,19 @@ namespace Barotrauma
|
|||||||
|
|
||||||
GameMain.World.AddJoint(pullJoint);
|
GameMain.World.AddJoint(pullJoint);
|
||||||
|
|
||||||
steerForce = ToolBox.GetAttributeFloat(element, "steerforce", 0.0f);
|
steerForce = element.GetAttributeFloat("steerforce", 0.0f);
|
||||||
|
|
||||||
//maxHealth = Math.Max(ToolBox.GetAttributeFloat(element, "health", 100.0f),1.0f);
|
//maxHealth = Math.Max(ToolBox.GetAttributeFloat(element, "health", 100.0f),1.0f);
|
||||||
|
|
||||||
armorSector = ToolBox.GetAttributeVector2(element, "armorsector", Vector2.Zero);
|
armorSector = element.GetAttributeVector2("armorsector", Vector2.Zero);
|
||||||
armorSector.X = MathHelper.ToRadians(armorSector.X);
|
armorSector.X = MathHelper.ToRadians(armorSector.X);
|
||||||
armorSector.Y = MathHelper.ToRadians(armorSector.Y);
|
armorSector.Y = MathHelper.ToRadians(armorSector.Y);
|
||||||
|
|
||||||
armorValue = Math.Max(ToolBox.GetAttributeFloat(element, "armor", 0.0f), 0.0f);
|
armorValue = Math.Max(element.GetAttributeFloat("armor", 0.0f), 0.0f);
|
||||||
|
|
||||||
if (element.Attribute("mouthpos") != null)
|
if (element.Attribute("mouthpos") != null)
|
||||||
{
|
{
|
||||||
MouthPos = ConvertUnits.ToSimUnits(ToolBox.GetAttributeVector2(element, "mouthpos", Vector2.Zero));
|
MouthPos = ConvertUnits.ToSimUnits(element.GetAttributeVector2("mouthpos", Vector2.Zero));
|
||||||
}
|
}
|
||||||
|
|
||||||
body.BodyType = BodyType.Dynamic;
|
body.BodyType = BodyType.Dynamic;
|
||||||
|
|||||||
@@ -117,10 +117,10 @@ namespace Barotrauma
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case "disabledeltatime":
|
case "disabledeltatime":
|
||||||
disableDeltaTime = ToolBox.GetAttributeBool(attribute, false);
|
disableDeltaTime = attribute.GetAttributeBool(false);
|
||||||
break;
|
break;
|
||||||
case "setvalue":
|
case "setvalue":
|
||||||
setValue = ToolBox.GetAttributeBool(attribute, false);
|
setValue = attribute.GetAttributeBool(false);
|
||||||
break;
|
break;
|
||||||
case "targetnames":
|
case "targetnames":
|
||||||
string[] names = attribute.Value.Split(',');
|
string[] names = attribute.Value.Split(',');
|
||||||
@@ -131,7 +131,7 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "duration":
|
case "duration":
|
||||||
duration = ToolBox.GetAttributeFloat(attribute, 0.0f);
|
duration = attribute.GetAttributeFloat(0.0f);
|
||||||
break;
|
break;
|
||||||
case "sound":
|
case "sound":
|
||||||
DebugConsole.ThrowError("Error in StatusEffect " + element.Parent.Name.ToString() +
|
DebugConsole.ThrowError("Error in StatusEffect " + element.Parent.Name.ToString() +
|
||||||
@@ -151,7 +151,7 @@ namespace Barotrauma
|
|||||||
foreach (XAttribute attribute in propertyAttributes)
|
foreach (XAttribute attribute in propertyAttributes)
|
||||||
{
|
{
|
||||||
propertyNames[n] = attribute.Name.ToString().ToLowerInvariant();
|
propertyNames[n] = attribute.Name.ToString().ToLowerInvariant();
|
||||||
propertyEffects[n] = ToolBox.GetAttributeObject(attribute);
|
propertyEffects[n] = XMLExtensions.GetAttributeObject(attribute);
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,7 +163,7 @@ namespace Barotrauma
|
|||||||
explosion = new Explosion(subElement);
|
explosion = new Explosion(subElement);
|
||||||
break;
|
break;
|
||||||
case "fire":
|
case "fire":
|
||||||
FireSize = ToolBox.GetAttributeFloat(subElement,"size",10.0f);
|
FireSize = subElement.GetAttributeFloat("size",10.0f);
|
||||||
break;
|
break;
|
||||||
case "use":
|
case "use":
|
||||||
case "useitem":
|
case "useitem":
|
||||||
@@ -183,7 +183,7 @@ namespace Barotrauma
|
|||||||
break;
|
break;
|
||||||
case "sound":
|
case "sound":
|
||||||
sound = Sound.Load(subElement);
|
sound = Sound.Load(subElement);
|
||||||
loopSound = ToolBox.GetAttributeBool(subElement, "loop", false);
|
loopSound = subElement.GetAttributeBool("loop", false);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ namespace Barotrauma
|
|||||||
public ContentPackage(string filePath)
|
public ContentPackage(string filePath)
|
||||||
: this()
|
: this()
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(filePath);
|
XDocument doc = XMLExtensions.TryLoadXml(filePath);
|
||||||
|
|
||||||
Path = filePath;
|
Path = filePath;
|
||||||
|
|
||||||
@@ -74,12 +74,12 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
name = ToolBox.GetAttributeString(doc.Root, "name", "");
|
name = doc.Root.GetAttributeString("name", "");
|
||||||
|
|
||||||
foreach (XElement subElement in doc.Root.Elements())
|
foreach (XElement subElement in doc.Root.Elements())
|
||||||
{
|
{
|
||||||
ContentType type = (ContentType)Enum.Parse(typeof(ContentType), subElement.Name.ToString(), true);
|
ContentType type = (ContentType)Enum.Parse(typeof(ContentType), subElement.Name.ToString(), true);
|
||||||
files.Add(new ContentFile(ToolBox.GetAttributeString(subElement, "file", ""), type));
|
files.Add(new ContentFile(subElement.GetAttributeString("file", ""), type));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace Barotrauma
|
|||||||
public ArtifactEvent(XElement element)
|
public ArtifactEvent(XElement element)
|
||||||
: base(element)
|
: base(element)
|
||||||
{
|
{
|
||||||
string itemName = ToolBox.GetAttributeString(element, "itemname", "");
|
string itemName = element.GetAttributeString("itemname", "");
|
||||||
|
|
||||||
itemPrefab = ItemPrefab.list.Find(ip => ip.Name == itemName) as ItemPrefab;
|
itemPrefab = ItemPrefab.list.Find(ip => ip.Name == itemName) as ItemPrefab;
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
itemConfig = element.Element("Items");
|
itemConfig = element.Element("Items");
|
||||||
|
|
||||||
requiredDeliveryAmount = ToolBox.GetAttributeInt(element, "requireddeliveryamount", 0);
|
requiredDeliveryAmount = element.GetAttributeInt("requireddeliveryamount", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitItems()
|
private void InitItems()
|
||||||
@@ -41,7 +41,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
private void LoadItemAsChild(XElement element, Item parent)
|
private void LoadItemAsChild(XElement element, Item parent)
|
||||||
{
|
{
|
||||||
string itemName = ToolBox.GetAttributeString(element, "name", "");
|
string itemName = element.GetAttributeString("name", "");
|
||||||
|
|
||||||
ItemPrefab itemPrefab = ItemPrefab.list.Find(ip => ip.Name == itemName) as ItemPrefab;
|
ItemPrefab itemPrefab = ItemPrefab.list.Find(ip => ip.Name == itemName) as ItemPrefab;
|
||||||
if (itemPrefab==null)
|
if (itemPrefab==null)
|
||||||
@@ -79,7 +79,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
int amount = ToolBox.GetAttributeInt(subElement, "amount", 1);
|
int amount = subElement.GetAttributeInt("amount", 1);
|
||||||
for (int i = 0; i < amount; i++)
|
for (int i = 0; i < amount; i++)
|
||||||
{
|
{
|
||||||
LoadItemAsChild(subElement, item);
|
LoadItemAsChild(subElement, item);
|
||||||
|
|||||||
@@ -58,9 +58,9 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
descriptions = new string[]
|
descriptions = new string[]
|
||||||
{
|
{
|
||||||
ToolBox.GetAttributeString(element, "descriptionneutral", ""),
|
element.GetAttributeString("descriptionneutral", ""),
|
||||||
ToolBox.GetAttributeString(element, "description1", ""),
|
element.GetAttributeString("description1", ""),
|
||||||
ToolBox.GetAttributeString(element, "description2", "")
|
element.GetAttributeString("description2", "")
|
||||||
};
|
};
|
||||||
|
|
||||||
for (int i = 0; i < descriptions.Length; i++)
|
for (int i = 0; i < descriptions.Length; i++)
|
||||||
@@ -73,8 +73,8 @@ namespace Barotrauma
|
|||||||
|
|
||||||
teamNames = new string[]
|
teamNames = new string[]
|
||||||
{
|
{
|
||||||
ToolBox.GetAttributeString(element, "teamname1", "Team A"),
|
element.GetAttributeString("teamname1", "Team A"),
|
||||||
ToolBox.GetAttributeString(element, "teamname2", "Team B")
|
element.GetAttributeString("teamname2", "Team B")
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ namespace Barotrauma
|
|||||||
var files = GameMain.SelectedPackage.GetFilesOfType(ContentType.Missions);
|
var files = GameMain.SelectedPackage.GetFilesOfType(ContentType.Missions);
|
||||||
foreach (string file in files)
|
foreach (string file in files)
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(file);
|
XDocument doc = XMLExtensions.TryLoadXml(file);
|
||||||
if (doc == null || doc.Root == null) continue;
|
if (doc == null || doc.Root == null) continue;
|
||||||
|
|
||||||
foreach (XElement element in doc.Root.Elements())
|
foreach (XElement element in doc.Root.Elements())
|
||||||
@@ -94,26 +94,26 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public Mission(XElement element, Location[] locations)
|
public Mission(XElement element, Location[] locations)
|
||||||
{
|
{
|
||||||
name = ToolBox.GetAttributeString(element, "name", "");
|
name = element.GetAttributeString("name", "");
|
||||||
|
|
||||||
description = ToolBox.GetAttributeString(element, "description", "");
|
description = element.GetAttributeString("description", "");
|
||||||
|
|
||||||
reward = ToolBox.GetAttributeInt(element, "reward", 1);
|
reward = element.GetAttributeInt("reward", 1);
|
||||||
|
|
||||||
successMessage = ToolBox.GetAttributeString(element, "successmessage",
|
successMessage = element.GetAttributeString("successmessage",
|
||||||
"Mission completed successfully");
|
"Mission completed successfully");
|
||||||
failureMessage = ToolBox.GetAttributeString(element, "failuremessage",
|
failureMessage = element.GetAttributeString("failuremessage",
|
||||||
"Mission failed");
|
"Mission failed");
|
||||||
|
|
||||||
radarLabel = ToolBox.GetAttributeString(element, "radarlabel", "");
|
radarLabel = element.GetAttributeString("radarlabel", "");
|
||||||
|
|
||||||
messages = new List<string>();
|
messages = new List<string>();
|
||||||
headers = new List<string>();
|
headers = new List<string>();
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
if (subElement.Name.ToString().ToLowerInvariant() != "message") continue;
|
if (subElement.Name.ToString().ToLowerInvariant() != "message") continue;
|
||||||
headers.Add(ToolBox.GetAttributeString(subElement, "header", ""));
|
headers.Add(subElement.GetAttributeString("header", ""));
|
||||||
messages.Add(ToolBox.GetAttributeString(subElement, "text", ""));
|
messages.Add(subElement.GetAttributeString("text", ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int n = 0; n < 2; n++)
|
for (int n = 0; n < 2; n++)
|
||||||
@@ -137,7 +137,7 @@ namespace Barotrauma
|
|||||||
var files = GameMain.SelectedPackage.GetFilesOfType(ContentType.Missions);
|
var files = GameMain.SelectedPackage.GetFilesOfType(ContentType.Missions);
|
||||||
string configFile = files[rand.Next(files.Count)];
|
string configFile = files[rand.Next(files.Count)];
|
||||||
|
|
||||||
XDocument doc = ToolBox.TryLoadXml(configFile);
|
XDocument doc = XMLExtensions.TryLoadXml(configFile);
|
||||||
if (doc == null) return null;
|
if (doc == null) return null;
|
||||||
|
|
||||||
int eventCount = doc.Root.Elements().Count();
|
int eventCount = doc.Root.Elements().Count();
|
||||||
@@ -167,17 +167,17 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (isSinglePlayer)
|
if (isSinglePlayer)
|
||||||
{
|
{
|
||||||
matchingElements.RemoveAll(m => ToolBox.GetAttributeBool(m, "multiplayeronly", false));
|
matchingElements.RemoveAll(m => m.GetAttributeBool("multiplayeronly", false));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
matchingElements.RemoveAll(m => ToolBox.GetAttributeBool(m, "singleplayeronly", false));
|
matchingElements.RemoveAll(m => m.GetAttributeBool("singleplayeronly", false));
|
||||||
}
|
}
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
foreach (XElement element in matchingElements)
|
foreach (XElement element in matchingElements)
|
||||||
{
|
{
|
||||||
eventProbability[i] = ToolBox.GetAttributeInt(element, "commonness", 1);
|
eventProbability[i] = element.GetAttributeInt("commonness", 1);
|
||||||
|
|
||||||
probabilitySum += eventProbability[i];
|
probabilitySum += eventProbability[i];
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Barotrauma
|
|||||||
public MonsterMission(XElement element, Location[] locations)
|
public MonsterMission(XElement element, Location[] locations)
|
||||||
: base(element, locations)
|
: base(element, locations)
|
||||||
{
|
{
|
||||||
monsterFile = ToolBox.GetAttributeString(element, "monsterfile", "");
|
monsterFile = element.GetAttributeString("monsterfile", "");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,11 +26,11 @@ namespace Barotrauma
|
|||||||
public SalvageMission(XElement element, Location[] locations)
|
public SalvageMission(XElement element, Location[] locations)
|
||||||
: base(element, locations)
|
: base(element, locations)
|
||||||
{
|
{
|
||||||
string itemName = ToolBox.GetAttributeString(element, "itemname", "");
|
string itemName = element.GetAttributeString("itemname", "");
|
||||||
|
|
||||||
itemPrefab = ItemPrefab.list.Find(ip => ip.Name == itemName) as ItemPrefab;
|
itemPrefab = ItemPrefab.list.Find(ip => ip.Name == itemName) as ItemPrefab;
|
||||||
|
|
||||||
string spawnPositionTypeStr = ToolBox.GetAttributeString(element, "spawntype", "");
|
string spawnPositionTypeStr = element.GetAttributeString("spawntype", "");
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(spawnPositionTypeStr) ||
|
if (string.IsNullOrWhiteSpace(spawnPositionTypeStr) ||
|
||||||
!Enum.TryParse<Level.PositionType>(spawnPositionTypeStr, true, out spawnPositionType))
|
!Enum.TryParse<Level.PositionType>(spawnPositionTypeStr, true, out spawnPositionType))
|
||||||
|
|||||||
@@ -39,14 +39,14 @@ namespace Barotrauma
|
|||||||
public MonsterEvent(XElement element)
|
public MonsterEvent(XElement element)
|
||||||
: base (element)
|
: base (element)
|
||||||
{
|
{
|
||||||
characterFile = ToolBox.GetAttributeString(element, "characterfile", "");
|
characterFile = element.GetAttributeString("characterfile", "");
|
||||||
|
|
||||||
int defaultAmount = ToolBox.GetAttributeInt(element, "amount", 1);
|
int defaultAmount = element.GetAttributeInt("amount", 1);
|
||||||
|
|
||||||
minAmount = ToolBox.GetAttributeInt(element, "minamount", defaultAmount);
|
minAmount = element.GetAttributeInt("minamount", defaultAmount);
|
||||||
maxAmount = Math.Max(ToolBox.GetAttributeInt(element, "maxamount", 1), minAmount);
|
maxAmount = Math.Max(element.GetAttributeInt("maxamount", 1), minAmount);
|
||||||
|
|
||||||
var spawnPosTypeStr = ToolBox.GetAttributeString(element, "spawntype", "");
|
var spawnPosTypeStr = element.GetAttributeString("spawntype", "");
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(spawnPosTypeStr) ||
|
if (string.IsNullOrWhiteSpace(spawnPosTypeStr) ||
|
||||||
!Enum.TryParse<Level.PositionType>(spawnPosTypeStr, true, out spawnPosType))
|
!Enum.TryParse<Level.PositionType>(spawnPosTypeStr, true, out spawnPosType))
|
||||||
@@ -54,9 +54,9 @@ namespace Barotrauma
|
|||||||
spawnPosType = Level.PositionType.MainPath;
|
spawnPosType = Level.PositionType.MainPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
spawnDeep = ToolBox.GetAttributeBool(element, "spawndeep", false);
|
spawnDeep = element.GetAttributeBool("spawndeep", false);
|
||||||
|
|
||||||
repeat = ToolBox.GetAttributeBool(element, "repeat", repeat);
|
repeat = element.GetAttributeBool("repeat", repeat);
|
||||||
|
|
||||||
if (GameMain.NetworkMember != null)
|
if (GameMain.NetworkMember != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -56,13 +56,13 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
configElement = element;
|
configElement = element;
|
||||||
|
|
||||||
name = ToolBox.GetAttributeString(element, "name", "");
|
name = element.GetAttributeString("name", "");
|
||||||
description = ToolBox.GetAttributeString(element, "description", "");
|
description = element.GetAttributeString("description", "");
|
||||||
|
|
||||||
minEventCount = ToolBox.GetAttributeInt(element, "mineventcount", 0);
|
minEventCount = element.GetAttributeInt("mineventcount", 0);
|
||||||
maxEventCount = ToolBox.GetAttributeInt(element, "maxeventcount", 0);
|
maxEventCount = element.GetAttributeInt("maxeventcount", 0);
|
||||||
|
|
||||||
MusicType = ToolBox.GetAttributeString(element, "musictype", "default");
|
MusicType = element.GetAttributeString("musictype", "default");
|
||||||
|
|
||||||
overrideMinEventCount = new Dictionary<string, int>();
|
overrideMinEventCount = new Dictionary<string, int>();
|
||||||
overrideMaxEventCount = new Dictionary<string, int>();
|
overrideMaxEventCount = new Dictionary<string, int>();
|
||||||
@@ -72,11 +72,11 @@ namespace Barotrauma
|
|||||||
switch (subElement.Name.ToString().ToLowerInvariant())
|
switch (subElement.Name.ToString().ToLowerInvariant())
|
||||||
{
|
{
|
||||||
case "overrideeventcount":
|
case "overrideeventcount":
|
||||||
string levelType = ToolBox.GetAttributeString(subElement, "leveltype", "");
|
string levelType = subElement.GetAttributeString("leveltype", "");
|
||||||
if (!overrideMinEventCount.ContainsKey(levelType))
|
if (!overrideMinEventCount.ContainsKey(levelType))
|
||||||
{
|
{
|
||||||
overrideMinEventCount.Add(levelType, ToolBox.GetAttributeInt(subElement, "min", 0));
|
overrideMinEventCount.Add(levelType, subElement.GetAttributeInt("min", 0));
|
||||||
overrideMaxEventCount.Add(levelType, ToolBox.GetAttributeInt(subElement, "max", 0));
|
overrideMaxEventCount.Add(levelType, subElement.GetAttributeInt("max", 0));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -111,7 +111,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
foreach (string configFile in configFiles)
|
foreach (string configFile in configFiles)
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(configFile);
|
XDocument doc = XMLExtensions.TryLoadXml(configFile);
|
||||||
if (doc == null) continue;
|
if (doc == null) continue;
|
||||||
|
|
||||||
foreach (XElement element in doc.Root.Elements())
|
foreach (XElement element in doc.Root.Elements())
|
||||||
|
|||||||
@@ -262,7 +262,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public void Load(XElement element)
|
public void Load(XElement element)
|
||||||
{
|
{
|
||||||
Money = ToolBox.GetAttributeInt(element, "money", 0);
|
Money = element.GetAttributeInt("money", 0);
|
||||||
|
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ namespace Barotrauma
|
|||||||
Submarine.MainSub = submarine;
|
Submarine.MainSub = submarine;
|
||||||
|
|
||||||
GameMain.GameSession = this;
|
GameMain.GameSession = this;
|
||||||
selectedSub.Name = ToolBox.GetAttributeString(doc.Root, "submarine", selectedSub.Name);
|
selectedSub.Name = doc.Root.GetAttributeString("submarine", selectedSub.Name);
|
||||||
#if CLIENT
|
#if CLIENT
|
||||||
CrewManager = new CrewManager();
|
CrewManager = new CrewManager();
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
infoTexts = new Dictionary<string, List<string>>();
|
infoTexts = new Dictionary<string, List<string>>();
|
||||||
|
|
||||||
XDocument doc = ToolBox.TryLoadXml(file);
|
XDocument doc = XMLExtensions.TryLoadXml(file);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
foreach (XElement subElement in doc.Root.Elements())
|
foreach (XElement subElement in doc.Root.Elements())
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public void Load(string filePath)
|
public void Load(string filePath)
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(filePath);
|
XDocument doc = XMLExtensions.TryLoadXml(filePath);
|
||||||
|
|
||||||
if (doc == null)
|
if (doc == null)
|
||||||
{
|
{
|
||||||
@@ -37,12 +37,12 @@ namespace Barotrauma
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
MasterServerUrl = ToolBox.GetAttributeString(doc.Root, "masterserverurl", "");
|
MasterServerUrl = doc.Root.GetAttributeString("masterserverurl", "");
|
||||||
|
|
||||||
AutoCheckUpdates = ToolBox.GetAttributeBool(doc.Root, "autocheckupdates", true);
|
AutoCheckUpdates = doc.Root.GetAttributeBool("autocheckupdates", true);
|
||||||
WasGameUpdated = ToolBox.GetAttributeBool(doc.Root, "wasgameupdated", false);
|
WasGameUpdated = doc.Root.GetAttributeBool("wasgameupdated", false);
|
||||||
|
|
||||||
VerboseLogging = ToolBox.GetAttributeBool(doc.Root, "verboselogging", false);
|
VerboseLogging = doc.Root.GetAttributeBool("verboselogging", false);
|
||||||
|
|
||||||
InitProjSpecific(doc);
|
InitProjSpecific(doc);
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ namespace Barotrauma
|
|||||||
switch (subElement.Name.ToString().ToLowerInvariant())
|
switch (subElement.Name.ToString().ToLowerInvariant())
|
||||||
{
|
{
|
||||||
case "contentpackage":
|
case "contentpackage":
|
||||||
string path = ToolBox.GetAttributeString(subElement, "path", "");
|
string path = subElement.GetAttributeString("path", "");
|
||||||
|
|
||||||
|
|
||||||
SelectedContentPackage = ContentPackage.list.Find(cp => cp.Path == path);
|
SelectedContentPackage = ContentPackage.list.Find(cp => cp.Path == path);
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ namespace Barotrauma.Items.Components
|
|||||||
[HasDefaultValue("32.0,32.0", false)]
|
[HasDefaultValue("32.0,32.0", false)]
|
||||||
public string DistanceTolerance
|
public string DistanceTolerance
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector2ToString(distanceTolerance); }
|
get { return XMLExtensions.Vector2ToString(distanceTolerance); }
|
||||||
set { distanceTolerance = ToolBox.ParseToVector2(value); }
|
set { distanceTolerance = XMLExtensions.ParseToVector2(value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
[HasDefaultValue(32.0f, false)]
|
[HasDefaultValue(32.0f, false)]
|
||||||
@@ -104,7 +104,7 @@ namespace Barotrauma.Items.Components
|
|||||||
// isOpen = false;
|
// isOpen = false;
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
string texturePath = ToolBox.GetAttributeString(subElement, "texture", "");
|
string texturePath = subElement.GetAttributeString("texture", "");
|
||||||
switch (subElement.Name.ToString().ToLowerInvariant())
|
switch (subElement.Name.ToString().ToLowerInvariant())
|
||||||
{
|
{
|
||||||
case "sprite":
|
case "sprite":
|
||||||
|
|||||||
@@ -91,11 +91,11 @@ namespace Barotrauma.Items.Components
|
|||||||
[HasDefaultValue("0.0,0.0,0.0,0.0", false)]
|
[HasDefaultValue("0.0,0.0,0.0,0.0", false)]
|
||||||
public string Window
|
public string Window
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector4ToString(new Vector4(window.X, window.Y, window.Width, window.Height)); }
|
get { return XMLExtensions.Vector4ToString(new Vector4(window.X, window.Y, window.Width, window.Height)); }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
Vector4 vector = ToolBox.ParseToVector4(value);
|
Vector4 vector = XMLExtensions.ParseToVector4(value);
|
||||||
if (vector.Z!=0.0f || vector.W !=0.0f)
|
if (vector.Z != 0.0f || vector.W != 0.0f)
|
||||||
{
|
{
|
||||||
window = new Rectangle((int)vector.X, (int)vector.Y, (int)vector.Z, (int)vector.W);
|
window = new Rectangle((int)vector.X, (int)vector.Y, (int)vector.Z, (int)vector.W);
|
||||||
}
|
}
|
||||||
@@ -141,12 +141,12 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
//Vector2 position = new Vector2(newRect.X, newRect.Y);
|
//Vector2 position = new Vector2(newRect.X, newRect.Y);
|
||||||
|
|
||||||
isHorizontal = ToolBox.GetAttributeBool(element, "horizontal", false);
|
isHorizontal = element.GetAttributeBool("horizontal", false);
|
||||||
|
|
||||||
// isOpen = false;
|
// isOpen = false;
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
string texturePath = ToolBox.GetAttributeString(subElement, "texture", "");
|
string texturePath = subElement.GetAttributeString("texture", "");
|
||||||
switch (subElement.Name.ToString().ToLowerInvariant())
|
switch (subElement.Name.ToString().ToLowerInvariant())
|
||||||
{
|
{
|
||||||
case "sprite":
|
case "sprite":
|
||||||
|
|||||||
@@ -60,15 +60,15 @@ namespace Barotrauma.Items.Components
|
|||||||
[HasDefaultValue("0.0,0.0", false)]
|
[HasDefaultValue("0.0,0.0", false)]
|
||||||
public string HoldPos
|
public string HoldPos
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector2ToString(ConvertUnits.ToDisplayUnits(holdPos)); }
|
get { return XMLExtensions.Vector2ToString(ConvertUnits.ToDisplayUnits(holdPos)); }
|
||||||
set { holdPos = ConvertUnits.ToSimUnits(ToolBox.ParseToVector2(value)); }
|
set { holdPos = ConvertUnits.ToSimUnits(XMLExtensions.ParseToVector2(value)); }
|
||||||
}
|
}
|
||||||
|
|
||||||
[HasDefaultValue("0.0,0.0", false)]
|
[HasDefaultValue("0.0,0.0", false)]
|
||||||
public string AimPos
|
public string AimPos
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector2ToString(ConvertUnits.ToDisplayUnits(aimPos)); }
|
get { return XMLExtensions.Vector2ToString(ConvertUnits.ToDisplayUnits(aimPos)); }
|
||||||
set { aimPos = ConvertUnits.ToSimUnits(ToolBox.ParseToVector2(value)); }
|
set { aimPos = ConvertUnits.ToSimUnits(XMLExtensions.ParseToVector2(value)); }
|
||||||
}
|
}
|
||||||
|
|
||||||
[HasDefaultValue(0.0f, false)]
|
[HasDefaultValue(0.0f, false)]
|
||||||
@@ -87,7 +87,7 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
for (int i = 1; i < 3; i++)
|
for (int i = 1; i < 3; i++)
|
||||||
{
|
{
|
||||||
handlePos[i - 1] = ToolBox.GetAttributeVector2(element, "handle" + i, Vector2.Zero);
|
handlePos[i - 1] = element.GetAttributeVector2("handle" + i, Vector2.Zero);
|
||||||
|
|
||||||
handlePos[i - 1] = ConvertUnits.ToSimUnits(handlePos[i - 1]);
|
handlePos[i - 1] = ConvertUnits.ToSimUnits(handlePos[i - 1]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
allowedSlots = new List<InvSlotType>();
|
allowedSlots = new List<InvSlotType>();
|
||||||
|
|
||||||
string slotString = ToolBox.GetAttributeString(element, "slots", "Any");
|
string slotString = element.GetAttributeString("slots", "Any");
|
||||||
string[] slotCombinations = slotString.Split(',');
|
string[] slotCombinations = slotString.Split(',');
|
||||||
foreach (string slotCombination in slotCombinations)
|
foreach (string slotCombination in slotCombinations)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ namespace Barotrauma.Items.Components
|
|||||||
public Propulsion(Item item, XElement element)
|
public Propulsion(Item item, XElement element)
|
||||||
: base(item,element)
|
: base(item,element)
|
||||||
{
|
{
|
||||||
switch (ToolBox.GetAttributeString(element, "usablein", "both").ToLowerInvariant())
|
switch (element.GetAttributeString("usablein", "both").ToLowerInvariant())
|
||||||
{
|
{
|
||||||
case "air":
|
case "air":
|
||||||
usableIn = UsableIn.Air;
|
usableIn = UsableIn.Air;
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ namespace Barotrauma.Items.Components
|
|||||||
[HasDefaultValue("0.0,0.0", false)]
|
[HasDefaultValue("0.0,0.0", false)]
|
||||||
public string BarrelPos
|
public string BarrelPos
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector2ToString(ConvertUnits.ToDisplayUnits(barrelPos)); }
|
get { return XMLExtensions.Vector2ToString(ConvertUnits.ToDisplayUnits(barrelPos)); }
|
||||||
set { barrelPos = ConvertUnits.ToSimUnits(ToolBox.ParseToVector2(value)); }
|
set { barrelPos = ConvertUnits.ToSimUnits(XMLExtensions.ParseToVector2(value)); }
|
||||||
}
|
}
|
||||||
|
|
||||||
[HasDefaultValue(1.0f, false)]
|
[HasDefaultValue(1.0f, false)]
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ namespace Barotrauma.Items.Components
|
|||||||
[HasDefaultValue("0.0,0.0", false)]
|
[HasDefaultValue("0.0,0.0", false)]
|
||||||
public string BarrelPos
|
public string BarrelPos
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector2ToString(barrelPos); }
|
get { return XMLExtensions.Vector2ToString(barrelPos); }
|
||||||
set { barrelPos = ToolBox.ParseToVector2(value); }
|
set { barrelPos = XMLExtensions.ParseToVector2(value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public Vector2 TransformedBarrelPos
|
public Vector2 TransformedBarrelPos
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string selectKeyStr = ToolBox.GetAttributeString(element, "selectkey", "Select");
|
string selectKeyStr = element.GetAttributeString("selectkey", "Select");
|
||||||
selectKeyStr = ToolBox.ConvertInputType(selectKeyStr);
|
selectKeyStr = ToolBox.ConvertInputType(selectKeyStr);
|
||||||
SelectKey = (InputType)Enum.Parse(typeof(InputType), selectKeyStr, true);
|
SelectKey = (InputType)Enum.Parse(typeof(InputType), selectKeyStr, true);
|
||||||
}
|
}
|
||||||
@@ -196,7 +196,7 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
string pickKeyStr = ToolBox.GetAttributeString(element, "selectkey", "Select");
|
string pickKeyStr = element.GetAttributeString("selectkey", "Select");
|
||||||
pickKeyStr = ToolBox.ConvertInputType(pickKeyStr);
|
pickKeyStr = ToolBox.ConvertInputType(pickKeyStr);
|
||||||
PickKey = (InputType)Enum.Parse(typeof(InputType),pickKeyStr, true);
|
PickKey = (InputType)Enum.Parse(typeof(InputType),pickKeyStr, true);
|
||||||
}
|
}
|
||||||
@@ -219,8 +219,8 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
case "requiredskill":
|
case "requiredskill":
|
||||||
case "requiredskills":
|
case "requiredskills":
|
||||||
string skillName = ToolBox.GetAttributeString(subElement, "name", "");
|
string skillName = subElement.GetAttributeString("name", "");
|
||||||
requiredSkills.Add(new Skill(skillName, ToolBox.GetAttributeInt(subElement, "level", 0)));
|
requiredSkills.Add(new Skill(skillName, subElement.GetAttributeInt("level", 0)));
|
||||||
break;
|
break;
|
||||||
case "statuseffect":
|
case "statuseffect":
|
||||||
var statusEffect = StatusEffect.Load(subElement);
|
var statusEffect = StatusEffect.Load(subElement);
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ namespace Barotrauma.Items.Components
|
|||||||
[HasDefaultValue("0.0,0.0", false)]
|
[HasDefaultValue("0.0,0.0", false)]
|
||||||
public string ItemPos
|
public string ItemPos
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector2ToString(itemPos); }
|
get { return XMLExtensions.Vector2ToString(itemPos); }
|
||||||
set { itemPos = ToolBox.ParseToVector2(value); }
|
set { itemPos = XMLExtensions.ParseToVector2(value); }
|
||||||
}
|
}
|
||||||
private Vector2 itemPos;
|
private Vector2 itemPos;
|
||||||
|
|
||||||
@@ -59,8 +59,8 @@ namespace Barotrauma.Items.Components
|
|||||||
[HasDefaultValue("0.0,0.0", false)]
|
[HasDefaultValue("0.0,0.0", false)]
|
||||||
public string ItemInterval
|
public string ItemInterval
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector2ToString(itemInterval); }
|
get { return XMLExtensions.Vector2ToString(itemInterval); }
|
||||||
set { itemInterval = ToolBox.ParseToVector2(value); }
|
set { itemInterval = XMLExtensions.ParseToVector2(value); }
|
||||||
}
|
}
|
||||||
private Vector2 itemInterval;
|
private Vector2 itemInterval;
|
||||||
|
|
||||||
@@ -76,10 +76,10 @@ namespace Barotrauma.Items.Components
|
|||||||
[HasDefaultValue("0.5,0.9", false)]
|
[HasDefaultValue("0.5,0.9", false)]
|
||||||
public string HudPos
|
public string HudPos
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector2ToString(hudPos); }
|
get { return XMLExtensions.Vector2ToString(hudPos); }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
hudPos = ToolBox.ParseToVector2(value);
|
hudPos = XMLExtensions.ParseToVector2(value);
|
||||||
//inventory.CenterPos = hudPos;
|
//inventory.CenterPos = hudPos;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -228,7 +228,7 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
base.Load(componentElement);
|
base.Load(componentElement);
|
||||||
|
|
||||||
string containedString = ToolBox.GetAttributeString(componentElement, "contained", "");
|
string containedString = componentElement.GetAttributeString("contained", "");
|
||||||
|
|
||||||
string[] itemIdStrings = containedString.Split(',');
|
string[] itemIdStrings = containedString.Split(',');
|
||||||
|
|
||||||
|
|||||||
@@ -44,9 +44,9 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
limbPositions = new List<LimbPos>();
|
limbPositions = new List<LimbPos>();
|
||||||
|
|
||||||
userPos = ToolBox.GetAttributeVector2(element, "UserPos", Vector2.Zero);
|
userPos = element.GetAttributeVector2("UserPos", Vector2.Zero);
|
||||||
|
|
||||||
Enum.TryParse<Direction>(ToolBox.GetAttributeString(element, "direction", "None"), out dir);
|
Enum.TryParse<Direction>(element.GetAttributeString("direction", "None"), out dir);
|
||||||
|
|
||||||
foreach (XElement el in element.Elements())
|
foreach (XElement el in element.Elements())
|
||||||
{
|
{
|
||||||
@@ -63,7 +63,7 @@ namespace Barotrauma.Items.Components
|
|||||||
DebugConsole.ThrowError("Error in " + element + ": " + e.Message, e);
|
DebugConsole.ThrowError("Error in " + element + ": " + e.Message, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
lp.position = ToolBox.GetAttributeVector2(el, "position", Vector2.Zero);
|
lp.position = el.GetAttributeVector2("position", Vector2.Zero);
|
||||||
|
|
||||||
limbPositions.Add(lp);
|
limbPositions.Add(lp);
|
||||||
}
|
}
|
||||||
@@ -189,7 +189,7 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
if (focusTarget == null)
|
if (focusTarget == null)
|
||||||
{
|
{
|
||||||
item.SendSignal(0, ToolBox.Vector2ToString(character.CursorWorldPosition), "position_out", character);
|
item.SendSignal(0, XMLExtensions.Vector2ToString(character.CursorWorldPosition), "position_out", character);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,7 +206,7 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
if (!character.IsRemotePlayer || character.ViewTarget == focusTarget)
|
if (!character.IsRemotePlayer || character.ViewTarget == focusTarget)
|
||||||
{
|
{
|
||||||
item.SendSignal(0, ToolBox.Vector2ToString(character.CursorWorldPosition), "position_out", character);
|
item.SendSignal(0, XMLExtensions.Vector2ToString(character.CursorWorldPosition), "position_out", character);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
public FabricableItem(XElement element)
|
public FabricableItem(XElement element)
|
||||||
{
|
{
|
||||||
string name = ToolBox.GetAttributeString(element, "name", "");
|
string name = element.GetAttributeString("name", "");
|
||||||
|
|
||||||
TargetItem = ItemPrefab.list.Find(ip => ip.Name.ToLowerInvariant() == name.ToLowerInvariant()) as ItemPrefab;
|
TargetItem = ItemPrefab.list.Find(ip => ip.Name.ToLowerInvariant() == name.ToLowerInvariant()) as ItemPrefab;
|
||||||
if (TargetItem == null)
|
if (TargetItem == null)
|
||||||
@@ -31,11 +31,11 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
RequiredSkills = new List<Skill>();
|
RequiredSkills = new List<Skill>();
|
||||||
|
|
||||||
RequiredTime = ToolBox.GetAttributeFloat(element, "requiredtime", 1.0f);
|
RequiredTime = element.GetAttributeFloat("requiredtime", 1.0f);
|
||||||
|
|
||||||
RequiredItems = new List<Tuple<ItemPrefab, int>>();
|
RequiredItems = new List<Tuple<ItemPrefab, int>>();
|
||||||
|
|
||||||
string[] requiredItemNames = ToolBox.GetAttributeString(element, "requireditems", "").Split(',');
|
string[] requiredItemNames = element.GetAttributeString("requireditems", "").Split(',');
|
||||||
foreach (string requiredItemName in requiredItemNames)
|
foreach (string requiredItemName in requiredItemNames)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(requiredItemName)) continue;
|
if (string.IsNullOrWhiteSpace(requiredItemName)) continue;
|
||||||
@@ -68,8 +68,8 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
case "requiredskill":
|
case "requiredskill":
|
||||||
RequiredSkills.Add(new Skill(
|
RequiredSkills.Add(new Skill(
|
||||||
ToolBox.GetAttributeString(subElement, "name", ""),
|
subElement.GetAttributeString("name", ""),
|
||||||
ToolBox.GetAttributeInt(subElement, "level", 0)));
|
subElement.GetAttributeInt("level", 0)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ namespace Barotrauma.Items.Components
|
|||||||
radarBlips = new List<RadarBlip>();
|
radarBlips = new List<RadarBlip>();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
displayBorderSize = ToolBox.GetAttributeFloat(element, "displaybordersize", 0.0f);
|
displayBorderSize = element.GetAttributeFloat("displaybordersize", 0.0f);
|
||||||
|
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -336,7 +336,7 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
if (connection.Name == "velocity_in")
|
if (connection.Name == "velocity_in")
|
||||||
{
|
{
|
||||||
currVelocity = ToolBox.ParseToVector2(signal, false);
|
currVelocity = XMLExtensions.ParseToVector2(signal, false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -62,19 +62,19 @@ namespace Barotrauma.Items.Components
|
|||||||
public Rope(Item item, XElement element)
|
public Rope(Item item, XElement element)
|
||||||
: base(item, element)
|
: base(item, element)
|
||||||
{
|
{
|
||||||
string spritePath = ToolBox.GetAttributeString(element, "sprite", "");
|
string spritePath = element.GetAttributeString("sprite", "");
|
||||||
if (spritePath == "") DebugConsole.ThrowError("Sprite "+spritePath+" in "+element+" not found!");
|
if (spritePath == "") DebugConsole.ThrowError("Sprite "+spritePath+" in "+element+" not found!");
|
||||||
|
|
||||||
float length = ConvertUnits.ToSimUnits(ToolBox.GetAttributeFloat(element, "length", 200.0f));
|
float length = ConvertUnits.ToSimUnits(element.GetAttributeFloat("length", 200.0f));
|
||||||
|
|
||||||
pullForce = ToolBox.GetAttributeFloat(element, "pullforce", 10.0f);
|
pullForce = element.GetAttributeFloat("pullforce", 10.0f);
|
||||||
|
|
||||||
projectileAnchor = Vector2.Zero;
|
projectileAnchor = Vector2.Zero;
|
||||||
projectileAnchor.X = ToolBox.GetAttributeFloat(element, "projectileanchorx", 0.0f);
|
projectileAnchor.X = element.GetAttributeFloat("projectileanchorx", 0.0f);
|
||||||
projectileAnchor.Y = ToolBox.GetAttributeFloat(element, "projectileanchory", 0.0f);
|
projectileAnchor.Y = element.GetAttributeFloat("projectileanchory", 0.0f);
|
||||||
projectileAnchor = ConvertUnits.ToSimUnits(projectileAnchor);
|
projectileAnchor = ConvertUnits.ToSimUnits(projectileAnchor);
|
||||||
|
|
||||||
characterUsable = ToolBox.GetAttributeBool(element, "characterusable", false);
|
characterUsable = element.GetAttributeBool("characterusable", false);
|
||||||
|
|
||||||
sprite = new Sprite(spritePath, new Vector2(0.5f,0.5f));
|
sprite = new Sprite(spritePath, new Vector2(0.5f,0.5f));
|
||||||
sectionLength = ConvertUnits.ToSimUnits(sprite.size.X);
|
sectionLength = ConvertUnits.ToSimUnits(sprite.size.X);
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ namespace Barotrauma.Items.Components
|
|||||||
Wires = new Wire[MaxLinked];
|
Wires = new Wire[MaxLinked];
|
||||||
|
|
||||||
IsOutput = (element.Name.ToString() == "output");
|
IsOutput = (element.Name.ToString() == "output");
|
||||||
Name = ToolBox.GetAttributeString(element, "name", (IsOutput) ? "output" : "input");
|
Name = element.GetAttributeString("name", (IsOutput) ? "output" : "input");
|
||||||
|
|
||||||
IsPower = Name == "power_in" || Name == "power" || Name == "power_out";
|
IsPower = Name == "power_in" || Name == "power" || Name == "power_out";
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@ namespace Barotrauma.Items.Components
|
|||||||
}
|
}
|
||||||
if (index == -1) break;
|
if (index == -1) break;
|
||||||
|
|
||||||
int id = ToolBox.GetAttributeInt(subElement, "w", 0);
|
int id = subElement.GetAttributeInt("w", 0);
|
||||||
if (id < 0) id = 0;
|
if (id < 0) id = 0;
|
||||||
wireId[index] = (ushort)id;
|
wireId[index] = (ushort)id;
|
||||||
|
|
||||||
|
|||||||
@@ -70,10 +70,10 @@ namespace Barotrauma.Items.Components
|
|||||||
[InGameEditable, HasDefaultValue("1.0,1.0,1.0,1.0", true)]
|
[InGameEditable, HasDefaultValue("1.0,1.0,1.0,1.0", true)]
|
||||||
public string LightColor
|
public string LightColor
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector4ToString(lightColor.ToVector4(), "0.00"); }
|
get { return XMLExtensions.Vector4ToString(lightColor.ToVector4(), "0.00"); }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
Vector4 newColor = ToolBox.ParseToVector4(value, false);
|
Vector4 newColor = XMLExtensions.ParseToVector4(value, false);
|
||||||
newColor.X = MathHelper.Clamp(newColor.X, 0.0f, 1.0f);
|
newColor.X = MathHelper.Clamp(newColor.X, 0.0f, 1.0f);
|
||||||
newColor.Y = MathHelper.Clamp(newColor.Y, 0.0f, 1.0f);
|
newColor.Y = MathHelper.Clamp(newColor.Y, 0.0f, 1.0f);
|
||||||
newColor.Z = MathHelper.Clamp(newColor.Z, 0.0f, 1.0f);
|
newColor.Z = MathHelper.Clamp(newColor.Z, 0.0f, 1.0f);
|
||||||
|
|||||||
@@ -451,7 +451,7 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
base.Load(componentElement);
|
base.Load(componentElement);
|
||||||
|
|
||||||
string nodeString = ToolBox.GetAttributeString(componentElement, "nodes", "");
|
string nodeString = componentElement.GetAttributeString("nodes", "");
|
||||||
if (nodeString == "") return;
|
if (nodeString == "") return;
|
||||||
|
|
||||||
string[] nodeCoords = nodeString.Split(';');
|
string[] nodeCoords = nodeString.Split(';');
|
||||||
|
|||||||
@@ -31,11 +31,11 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return ToolBox.Vector2ToString(barrelPos);
|
return XMLExtensions.Vector2ToString(barrelPos);
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
barrelPos = ToolBox.ParseToVector2(value);
|
barrelPos = XMLExtensions.ParseToVector2(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,11 +62,11 @@ namespace Barotrauma.Items.Components
|
|||||||
limits.X = MathHelper.ToDegrees(limits.X);
|
limits.X = MathHelper.ToDegrees(limits.X);
|
||||||
limits.Y = MathHelper.ToDegrees(limits.Y);
|
limits.Y = MathHelper.ToDegrees(limits.Y);
|
||||||
|
|
||||||
return ToolBox.Vector2ToString(limits);
|
return XMLExtensions.Vector2ToString(limits);
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
Vector2 vector = ToolBox.ParseToVector2(value);
|
Vector2 vector = XMLExtensions.ParseToVector2(value);
|
||||||
minRotation = MathHelper.ToRadians(vector.X);
|
minRotation = MathHelper.ToRadians(vector.X);
|
||||||
maxRotation = MathHelper.ToRadians(vector.Y);
|
maxRotation = MathHelper.ToRadians(vector.Y);
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ namespace Barotrauma.Items.Components
|
|||||||
{
|
{
|
||||||
IsActive = true;
|
IsActive = true;
|
||||||
|
|
||||||
string barrelSpritePath = ToolBox.GetAttributeString(element, "barrelsprite", "");
|
string barrelSpritePath = element.GetAttributeString("barrelsprite", "");
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(barrelSpritePath))
|
if (!string.IsNullOrWhiteSpace(barrelSpritePath))
|
||||||
{
|
{
|
||||||
@@ -90,7 +90,7 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
barrelSprite = new Sprite(
|
barrelSprite = new Sprite(
|
||||||
barrelSpritePath,
|
barrelSpritePath,
|
||||||
ToolBox.GetAttributeVector2(element, "origin", Vector2.Zero));
|
element.GetAttributeVector2("origin", Vector2.Zero));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,7 +355,7 @@ namespace Barotrauma.Items.Components
|
|||||||
switch (connection.Name)
|
switch (connection.Name)
|
||||||
{
|
{
|
||||||
case "position_in":
|
case "position_in":
|
||||||
Vector2 receivedPos = ToolBox.ParseToVector2(signal, false);
|
Vector2 receivedPos = XMLExtensions.ParseToVector2(signal, false);
|
||||||
|
|
||||||
Vector2 centerPos = new Vector2(item.WorldRect.X + barrelPos.X, item.WorldRect.Y - barrelPos.Y);
|
Vector2 centerPos = new Vector2(item.WorldRect.X + barrelPos.X, item.WorldRect.Y - barrelPos.Y);
|
||||||
|
|
||||||
|
|||||||
@@ -45,10 +45,10 @@ namespace Barotrauma.Items.Components
|
|||||||
[HasDefaultValue("0.0,360.0", false)]
|
[HasDefaultValue("0.0,360.0", false)]
|
||||||
public string ArmorSector
|
public string ArmorSector
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector2ToString(armorSector); }
|
get { return XMLExtensions.Vector2ToString(armorSector); }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
armorSector = ToolBox.ParseToVector2(value);
|
armorSector = XMLExtensions.ParseToVector2(value);
|
||||||
armorSector.X = MathHelper.ToRadians(armorSector.X);
|
armorSector.X = MathHelper.ToRadians(armorSector.X);
|
||||||
armorSector.Y = MathHelper.ToRadians(armorSector.Y);
|
armorSector.Y = MathHelper.ToRadians(armorSector.Y);
|
||||||
}
|
}
|
||||||
@@ -90,12 +90,12 @@ namespace Barotrauma.Items.Components
|
|||||||
|
|
||||||
var sprite = new Sprite(subElement, "", spritePath);
|
var sprite = new Sprite(subElement, "", spritePath);
|
||||||
wearableSprites[i] = new WearableSprite(this, sprite,
|
wearableSprites[i] = new WearableSprite(this, sprite,
|
||||||
ToolBox.GetAttributeBool(subElement, "hidelimb", false),
|
subElement.GetAttributeBool("hidelimb", false),
|
||||||
ToolBox.GetAttributeBool(subElement, "inheritlimbdepth", true),
|
subElement.GetAttributeBool("inheritlimbdepth", true),
|
||||||
(LimbType)Enum.Parse(typeof(LimbType), ToolBox.GetAttributeString(subElement, "depthlimb", "None"), true));
|
(LimbType)Enum.Parse(typeof(LimbType), subElement.GetAttributeString("depthlimb", "None"), true));
|
||||||
|
|
||||||
limbType[i] = (LimbType)Enum.Parse(typeof(LimbType),
|
limbType[i] = (LimbType)Enum.Parse(typeof(LimbType),
|
||||||
ToolBox.GetAttributeString(subElement, "limb", "Head"), true);
|
subElement.GetAttributeString("limb", "Head"), true);
|
||||||
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public FixRequirement(XElement element)
|
public FixRequirement(XElement element)
|
||||||
{
|
{
|
||||||
name = ToolBox.GetAttributeString(element, "name", "");
|
name = element.GetAttributeString("name", "");
|
||||||
|
|
||||||
requiredSkills = new List<Skill>();
|
requiredSkills = new List<Skill>();
|
||||||
requiredItems = new List<string>();
|
requiredItems = new List<string>();
|
||||||
@@ -24,13 +24,13 @@ namespace Barotrauma
|
|||||||
switch (subElement.Name.ToString().ToLowerInvariant())
|
switch (subElement.Name.ToString().ToLowerInvariant())
|
||||||
{
|
{
|
||||||
case "skill":
|
case "skill":
|
||||||
string skillName = ToolBox.GetAttributeString(subElement, "name", "");
|
string skillName = subElement.GetAttributeString("name", "");
|
||||||
int level = ToolBox.GetAttributeInt(subElement, "level", 1);
|
int level = subElement.GetAttributeInt("level", 1);
|
||||||
|
|
||||||
requiredSkills.Add(new Skill(skillName, level));
|
requiredSkills.Add(new Skill(skillName, level));
|
||||||
break;
|
break;
|
||||||
case "item":
|
case "item":
|
||||||
string itemName = ToolBox.GetAttributeString(subElement, "name", "");
|
string itemName = subElement.GetAttributeString("name", "");
|
||||||
|
|
||||||
requiredItems.Add(itemName);
|
requiredItems.Add(itemName);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -172,10 +172,10 @@ namespace Barotrauma
|
|||||||
[Editable, HasDefaultValue("1.0,1.0,1.0,1.0", true)]
|
[Editable, HasDefaultValue("1.0,1.0,1.0,1.0", true)]
|
||||||
public string SpriteColor
|
public string SpriteColor
|
||||||
{
|
{
|
||||||
get { return ToolBox.Vector4ToString(spriteColor.ToVector4()); }
|
get { return XMLExtensions.Vector4ToString(spriteColor.ToVector4()); }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
spriteColor = new Color(ToolBox.ParseToVector4(value));
|
spriteColor = new Color(XMLExtensions.ParseToVector4(value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -378,8 +378,8 @@ namespace Barotrauma
|
|||||||
break;
|
break;
|
||||||
case "aitarget":
|
case "aitarget":
|
||||||
aiTarget = new AITarget(this);
|
aiTarget = new AITarget(this);
|
||||||
aiTarget.SightRange = ToolBox.GetAttributeFloat(subElement, "sightrange", 1000.0f);
|
aiTarget.SightRange = subElement.GetAttributeFloat("sightrange", 1000.0f);
|
||||||
aiTarget.SoundRange = ToolBox.GetAttributeFloat(subElement, "soundrange", 0.0f);
|
aiTarget.SoundRange = subElement.GetAttributeFloat("soundrange", 0.0f);
|
||||||
break;
|
break;
|
||||||
case "fixrequirement":
|
case "fixrequirement":
|
||||||
FixRequirements.Add(new FixRequirement(subElement));
|
FixRequirements.Add(new FixRequirement(subElement));
|
||||||
@@ -1595,7 +1595,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public static void Load(XElement element, Submarine submarine)
|
public static void Load(XElement element, Submarine submarine)
|
||||||
{
|
{
|
||||||
string rectString = ToolBox.GetAttributeString(element, "rect", "0,0,0,0");
|
string rectString = element.GetAttributeString("rect", "0,0,0,0");
|
||||||
string[] rectValues = rectString.Split(',');
|
string[] rectValues = rectString.Split(',');
|
||||||
Rectangle rect = Rectangle.Empty;
|
Rectangle rect = Rectangle.Empty;
|
||||||
if (rectValues.Length==4)
|
if (rectValues.Length==4)
|
||||||
@@ -1655,7 +1655,7 @@ namespace Barotrauma
|
|||||||
if (shouldBeLoaded) property.TrySetValue(attribute.Value);
|
if (shouldBeLoaded) property.TrySetValue(attribute.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
string linkedToString = ToolBox.GetAttributeString(element, "linked", "");
|
string linkedToString = element.GetAttributeString("linked", "");
|
||||||
if (linkedToString!="")
|
if (linkedToString!="")
|
||||||
{
|
{
|
||||||
string[] linkedToIds = linkedToString.Split(',');
|
string[] linkedToIds = linkedToString.Split(',');
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ namespace Barotrauma
|
|||||||
DebugConsole.Log("*** " + filePath + " ***");
|
DebugConsole.Log("*** " + filePath + " ***");
|
||||||
}
|
}
|
||||||
|
|
||||||
XDocument doc = ToolBox.TryLoadXml(filePath);
|
XDocument doc = XMLExtensions.TryLoadXml(filePath);
|
||||||
if (doc == null) return;
|
if (doc == null) return;
|
||||||
|
|
||||||
if (doc.Root.Name.ToString().ToLowerInvariant() == "item")
|
if (doc.Root.Name.ToString().ToLowerInvariant() == "item")
|
||||||
@@ -244,35 +244,35 @@ namespace Barotrauma
|
|||||||
configFile = filePath;
|
configFile = filePath;
|
||||||
ConfigElement = element;
|
ConfigElement = element;
|
||||||
|
|
||||||
name = ToolBox.GetAttributeString(element, "name", "");
|
name = element.GetAttributeString("name", "");
|
||||||
if (name == "") DebugConsole.ThrowError("Unnamed item in "+filePath+"!");
|
if (name == "") DebugConsole.ThrowError("Unnamed item in "+filePath+"!");
|
||||||
|
|
||||||
DebugConsole.Log(" "+name);
|
DebugConsole.Log(" "+name);
|
||||||
|
|
||||||
Description = ToolBox.GetAttributeString(element, "description", "");
|
Description = element.GetAttributeString("description", "");
|
||||||
|
|
||||||
interactThroughWalls = ToolBox.GetAttributeBool(element, "interactthroughwalls", false);
|
interactThroughWalls = element.GetAttributeBool("interactthroughwalls", false);
|
||||||
interactDistance = ToolBox.GetAttributeFloat(element, "interactdistance", 120.0f); // Default to 120 as the new item picking method is tuned to this number
|
interactDistance = element.GetAttributeFloat("interactdistance", 120.0f); // Default to 120 as the new item picking method is tuned to this number
|
||||||
interactPriority = ToolBox.GetAttributeFloat(element, "interactpriority", 0.0f);
|
interactPriority = element.GetAttributeFloat("interactpriority", 0.0f);
|
||||||
|
|
||||||
isLinkable = ToolBox.GetAttributeBool(element, "linkable", false);
|
isLinkable = element.GetAttributeBool("linkable", false);
|
||||||
|
|
||||||
resizeHorizontal = ToolBox.GetAttributeBool(element, "resizehorizontal", false);
|
resizeHorizontal = element.GetAttributeBool("resizehorizontal", false);
|
||||||
resizeVertical = ToolBox.GetAttributeBool(element, "resizevertical", false);
|
resizeVertical = element.GetAttributeBool("resizevertical", false);
|
||||||
|
|
||||||
focusOnSelected = ToolBox.GetAttributeBool(element, "focusonselected", false);
|
focusOnSelected = element.GetAttributeBool("focusonselected", false);
|
||||||
|
|
||||||
offsetOnSelected = ToolBox.GetAttributeFloat(element, "offsetonselected", 0.0f);
|
offsetOnSelected = element.GetAttributeFloat("offsetonselected", 0.0f);
|
||||||
|
|
||||||
CanUseOnSelf = ToolBox.GetAttributeBool(element, "canuseonself", false);
|
CanUseOnSelf = element.GetAttributeBool("canuseonself", false);
|
||||||
|
|
||||||
|
|
||||||
Health = ToolBox.GetAttributeFloat(element, "health", 100.0f);
|
Health = element.GetAttributeFloat("health", 100.0f);
|
||||||
Indestructible = ToolBox.GetAttributeBool(element, "indestructible", false);
|
Indestructible = element.GetAttributeBool("indestructible", false);
|
||||||
FireProof = ToolBox.GetAttributeBool(element, "fireproof", false);
|
FireProof = element.GetAttributeBool("fireproof", false);
|
||||||
ImpactTolerance = ToolBox.GetAttributeFloat(element, "impacttolerance", 0.0f);
|
ImpactTolerance = element.GetAttributeFloat("impacttolerance", 0.0f);
|
||||||
|
|
||||||
string aliases = ToolBox.GetAttributeString(element, "aliases", "");
|
string aliases = element.GetAttributeString("aliases", "");
|
||||||
if (!string.IsNullOrWhiteSpace(aliases))
|
if (!string.IsNullOrWhiteSpace(aliases))
|
||||||
{
|
{
|
||||||
Aliases = aliases.Split(',');
|
Aliases = aliases.Split(',');
|
||||||
@@ -280,7 +280,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
MapEntityCategory category;
|
MapEntityCategory category;
|
||||||
|
|
||||||
if (!Enum.TryParse(ToolBox.GetAttributeString(element, "category", "Misc"), true, out category))
|
if (!Enum.TryParse(element.GetAttributeString("category", "Misc"), true, out category))
|
||||||
{
|
{
|
||||||
category = MapEntityCategory.Misc;
|
category = MapEntityCategory.Misc;
|
||||||
}
|
}
|
||||||
@@ -288,10 +288,10 @@ namespace Barotrauma
|
|||||||
Category = category;
|
Category = category;
|
||||||
|
|
||||||
|
|
||||||
string spriteColorStr = ToolBox.GetAttributeString(element, "spritecolor", "1.0,1.0,1.0,1.0");
|
string spriteColorStr = element.GetAttributeString("spritecolor", "1.0,1.0,1.0,1.0");
|
||||||
SpriteColor = new Color(ToolBox.ParseToVector4(spriteColorStr));
|
SpriteColor = new Color(XMLExtensions.ParseToVector4(spriteColorStr));
|
||||||
|
|
||||||
price = ToolBox.GetAttributeInt(element, "price", 0);
|
price = element.GetAttributeInt("price", 0);
|
||||||
|
|
||||||
Triggers = new List<Rectangle>();
|
Triggers = new List<Rectangle>();
|
||||||
|
|
||||||
@@ -299,7 +299,7 @@ namespace Barotrauma
|
|||||||
DeconstructTime = 1.0f;
|
DeconstructTime = 1.0f;
|
||||||
|
|
||||||
tags = new List<string>();
|
tags = new List<string>();
|
||||||
tags.AddRange(ToolBox.GetAttributeString(element, "tags", "").Split(','));
|
tags.AddRange(element.GetAttributeString("tags", "").Split(','));
|
||||||
|
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
@@ -307,24 +307,24 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
case "sprite":
|
case "sprite":
|
||||||
string spriteFolder = "";
|
string spriteFolder = "";
|
||||||
if (!ToolBox.GetAttributeString(subElement, "texture", "").Contains("/"))
|
if (!subElement.GetAttributeString("texture", "").Contains("/"))
|
||||||
{
|
{
|
||||||
spriteFolder = Path.GetDirectoryName(filePath);
|
spriteFolder = Path.GetDirectoryName(filePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
canSpriteFlipX = ToolBox.GetAttributeBool(subElement, "canflipx", true);
|
canSpriteFlipX = subElement.GetAttributeBool("canflipx", true);
|
||||||
|
|
||||||
sprite = new Sprite(subElement, spriteFolder);
|
sprite = new Sprite(subElement, spriteFolder);
|
||||||
size = sprite.size;
|
size = sprite.size;
|
||||||
break;
|
break;
|
||||||
case "deconstruct":
|
case "deconstruct":
|
||||||
DeconstructTime = ToolBox.GetAttributeFloat(subElement, "time", 10.0f);
|
DeconstructTime = subElement.GetAttributeFloat("time", 10.0f);
|
||||||
|
|
||||||
foreach (XElement deconstructItem in subElement.Elements())
|
foreach (XElement deconstructItem in subElement.Elements())
|
||||||
{
|
{
|
||||||
|
|
||||||
string deconstructItemName = ToolBox.GetAttributeString(deconstructItem, "name", "not found");
|
string deconstructItemName = deconstructItem.GetAttributeString("name", "not found");
|
||||||
bool requireFullCondition = ToolBox.GetAttributeBool(deconstructItem, "requirefullcondition", false);
|
bool requireFullCondition = deconstructItem.GetAttributeBool("requirefullcondition", false);
|
||||||
|
|
||||||
DeconstructItems.Add(new DeconstructItem(deconstructItemName, requireFullCondition));
|
DeconstructItems.Add(new DeconstructItem(deconstructItemName, requireFullCondition));
|
||||||
|
|
||||||
@@ -334,11 +334,11 @@ namespace Barotrauma
|
|||||||
case "trigger":
|
case "trigger":
|
||||||
Rectangle trigger = new Rectangle(0, 0, 10,10);
|
Rectangle trigger = new Rectangle(0, 0, 10,10);
|
||||||
|
|
||||||
trigger.X = ToolBox.GetAttributeInt(subElement, "x", 0);
|
trigger.X = subElement.GetAttributeInt("x", 0);
|
||||||
trigger.Y = ToolBox.GetAttributeInt(subElement, "y", 0);
|
trigger.Y = subElement.GetAttributeInt("y", 0);
|
||||||
|
|
||||||
trigger.Width = ToolBox.GetAttributeInt(subElement, "width", 0);
|
trigger.Width = subElement.GetAttributeInt("width", 0);
|
||||||
trigger.Height = ToolBox.GetAttributeInt(subElement, "height", 0);
|
trigger.Height = subElement.GetAttributeInt("height", 0);
|
||||||
|
|
||||||
Triggers.Add(trigger);
|
Triggers.Add(trigger);
|
||||||
|
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public static RelatedItem Load(XElement element)
|
public static RelatedItem Load(XElement element)
|
||||||
{
|
{
|
||||||
string nameString = ToolBox.GetAttributeString(element, "name", "");
|
string nameString = element.GetAttributeString("name", "");
|
||||||
if (nameString == "") return null;
|
if (nameString == "") return null;
|
||||||
|
|
||||||
string[] names = nameString.Split(',');
|
string[] names = nameString.Split(',');
|
||||||
@@ -136,7 +136,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ri.type = (RelationType)Enum.Parse(typeof(RelationType), ToolBox.GetAttributeString(element, "type", "None"));
|
ri.type = (RelationType)Enum.Parse(typeof(RelationType), element.GetAttributeString("type", "None"));
|
||||||
}
|
}
|
||||||
|
|
||||||
catch
|
catch
|
||||||
@@ -144,7 +144,7 @@ namespace Barotrauma
|
|||||||
ri.type = RelationType.None;
|
ri.type = RelationType.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
ri.Msg = ToolBox.GetAttributeString(element, "msg", "");
|
ri.Msg = element.GetAttributeString("msg", "");
|
||||||
|
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -33,17 +33,17 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
attack = new Attack(element);
|
attack = new Attack(element);
|
||||||
|
|
||||||
force = ToolBox.GetAttributeFloat(element, "force", 0.0f);
|
force = element.GetAttributeFloat("force", 0.0f);
|
||||||
|
|
||||||
sparks = ToolBox.GetAttributeBool(element, "sparks", true);
|
sparks = element.GetAttributeBool("sparks", true);
|
||||||
shockwave = ToolBox.GetAttributeBool(element, "shockwave", true);
|
shockwave = element.GetAttributeBool("shockwave", true);
|
||||||
flames = ToolBox.GetAttributeBool(element, "flames", true);
|
flames = element.GetAttributeBool("flames", true);
|
||||||
smoke = ToolBox.GetAttributeBool(element, "smoke", true);
|
smoke = element.GetAttributeBool("smoke", true);
|
||||||
|
|
||||||
decal = ToolBox.GetAttributeString(element, "decal", "");
|
decal = element.GetAttributeString("decal", "");
|
||||||
decalSize = ToolBox.GetAttributeFloat(element, "decalSize", 1.0f);
|
decalSize = element.GetAttributeFloat("decalSize", 1.0f);
|
||||||
|
|
||||||
CameraShake = ToolBox.GetAttributeFloat(element, "camerashake", attack.Range * 0.1f);
|
CameraShake = element.GetAttributeFloat("camerashake", attack.Range * 0.1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Explode(Vector2 worldPosition)
|
public void Explode(Vector2 worldPosition)
|
||||||
|
|||||||
@@ -655,7 +655,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (element.Attribute("rect") != null)
|
if (element.Attribute("rect") != null)
|
||||||
{
|
{
|
||||||
string rectString = ToolBox.GetAttributeString(element, "rect", "0,0,0,0");
|
string rectString = element.GetAttributeString("rect", "0,0,0,0");
|
||||||
string[] rectValues = rectString.Split(',');
|
string[] rectValues = rectString.Split(',');
|
||||||
|
|
||||||
rect = new Rectangle(
|
rect = new Rectangle(
|
||||||
|
|||||||
@@ -711,7 +711,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (element.Attribute("rect") != null)
|
if (element.Attribute("rect") != null)
|
||||||
{
|
{
|
||||||
string rectString = ToolBox.GetAttributeString(element, "rect", "0,0,0,0");
|
string rectString = element.GetAttributeString("rect", "0,0,0,0");
|
||||||
string[] rectValues = rectString.Split(',');
|
string[] rectValues = rectString.Split(',');
|
||||||
|
|
||||||
rect = new Rectangle(
|
rect = new Rectangle(
|
||||||
@@ -731,7 +731,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
Hull h = new Hull(MapEntityPrefab.list.Find(m => m.Name == "Hull"), rect, submarine);
|
Hull h = new Hull(MapEntityPrefab.list.Find(m => m.Name == "Hull"), rect, submarine);
|
||||||
|
|
||||||
h.volume = ToolBox.GetAttributeFloat(element, "pressure", 0.0f);
|
h.volume = element.GetAttributeFloat("pressure", 0.0f);
|
||||||
|
|
||||||
h.ID = (ushort)int.Parse(element.Attribute("ID").Value);
|
h.ID = (ushort)int.Parse(element.Attribute("ID").Value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (prefab.LevelTriggerElement != null)
|
if (prefab.LevelTriggerElement != null)
|
||||||
{
|
{
|
||||||
Vector2 triggerPosition = ToolBox.GetAttributeVector2(prefab.LevelTriggerElement, "position", Vector2.Zero) * scale;
|
Vector2 triggerPosition = prefab.LevelTriggerElement.GetAttributeVector2("position", Vector2.Zero) * scale;
|
||||||
|
|
||||||
if (rotation != 0.0f)
|
if (rotation != 0.0f)
|
||||||
{
|
{
|
||||||
@@ -110,7 +110,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(configPath);
|
XDocument doc = XMLExtensions.TryLoadXml(configPath);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
foreach (XElement element in doc.Root.Elements())
|
foreach (XElement element in doc.Root.Elements())
|
||||||
|
|||||||
@@ -40,16 +40,16 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public BackgroundSpritePrefab(XElement element)
|
public BackgroundSpritePrefab(XElement element)
|
||||||
{
|
{
|
||||||
string alignmentStr = ToolBox.GetAttributeString(element, "alignment", "");
|
string alignmentStr = element.GetAttributeString("alignment", "");
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(alignmentStr) || !Enum.TryParse(alignmentStr, out Alignment))
|
if (string.IsNullOrEmpty(alignmentStr) || !Enum.TryParse(alignmentStr, out Alignment))
|
||||||
{
|
{
|
||||||
Alignment = Alignment.Top | Alignment.Bottom | Alignment.Left | Alignment.Right;
|
Alignment = Alignment.Top | Alignment.Bottom | Alignment.Left | Alignment.Right;
|
||||||
}
|
}
|
||||||
|
|
||||||
Commonness = ToolBox.GetAttributeInt(element, "commonness", 1);
|
Commonness = element.GetAttributeInt("commonness", 1);
|
||||||
|
|
||||||
string[] spawnPosStrs = ToolBox.GetAttributeString(element, "spawnpos", "Wall").Split(',');
|
string[] spawnPosStrs = element.GetAttributeString("spawnpos", "Wall").Split(',');
|
||||||
foreach (string spawnPosStr in spawnPosStrs)
|
foreach (string spawnPosStr in spawnPosStrs)
|
||||||
{
|
{
|
||||||
SpawnPosType parsedSpawnPos;
|
SpawnPosType parsedSpawnPos;
|
||||||
@@ -59,18 +59,18 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Scale.X = ToolBox.GetAttributeFloat(element, "minsize", 1.0f);
|
Scale.X = element.GetAttributeFloat("minsize", 1.0f);
|
||||||
Scale.Y = ToolBox.GetAttributeFloat(element, "maxsize", 1.0f);
|
Scale.Y = element.GetAttributeFloat("maxsize", 1.0f);
|
||||||
|
|
||||||
DepthRange = ToolBox.GetAttributeVector2(element, "depthrange", new Vector2(0.0f, 1.0f));
|
DepthRange = element.GetAttributeVector2("depthrange", new Vector2(0.0f, 1.0f));
|
||||||
|
|
||||||
AlignWithSurface = ToolBox.GetAttributeBool(element, "alignwithsurface", false);
|
AlignWithSurface = element.GetAttributeBool("alignwithsurface", false);
|
||||||
|
|
||||||
RandomRotation = ToolBox.GetAttributeVector2(element, "randomrotation", Vector2.Zero);
|
RandomRotation = element.GetAttributeVector2("randomrotation", Vector2.Zero);
|
||||||
RandomRotation.X = MathHelper.ToRadians(RandomRotation.X);
|
RandomRotation.X = MathHelper.ToRadians(RandomRotation.X);
|
||||||
RandomRotation.Y = MathHelper.ToRadians(RandomRotation.Y);
|
RandomRotation.Y = MathHelper.ToRadians(RandomRotation.Y);
|
||||||
|
|
||||||
SwingAmount = MathHelper.ToRadians(ToolBox.GetAttributeFloat(element, "swingamount", 0.0f));
|
SwingAmount = MathHelper.ToRadians(element.GetAttributeFloat("swingamount", 0.0f));
|
||||||
|
|
||||||
OverrideCommonness = new Dictionary<string, int>();
|
OverrideCommonness = new Dictionary<string, int>();
|
||||||
|
|
||||||
@@ -82,10 +82,10 @@ namespace Barotrauma
|
|||||||
Sprite = new Sprite(subElement);
|
Sprite = new Sprite(subElement);
|
||||||
break;
|
break;
|
||||||
case "overridecommonness":
|
case "overridecommonness":
|
||||||
string levelType = ToolBox.GetAttributeString(subElement, "leveltype", "");
|
string levelType = subElement.GetAttributeString("leveltype", "");
|
||||||
if (!OverrideCommonness.ContainsKey(levelType))
|
if (!OverrideCommonness.ContainsKey(levelType))
|
||||||
{
|
{
|
||||||
OverrideCommonness.Add(levelType, ToolBox.GetAttributeInt(subElement, "commonness", 1));
|
OverrideCommonness.Add(levelType, subElement.GetAttributeInt("commonness", 1));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "leveltrigger":
|
case "leveltrigger":
|
||||||
@@ -101,11 +101,11 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
|
|
||||||
ParticleEmitterPrefabs.Add(new Particles.ParticleEmitterPrefab(subElement));
|
ParticleEmitterPrefabs.Add(new Particles.ParticleEmitterPrefab(subElement));
|
||||||
EmitterPositions.Add(ToolBox.GetAttributeVector2(subElement, "position", Vector2.Zero));
|
EmitterPositions.Add(subElement.GetAttributeVector2("position", Vector2.Zero));
|
||||||
break;
|
break;
|
||||||
case "sound":
|
case "sound":
|
||||||
SoundElement = subElement;
|
SoundElement = subElement;
|
||||||
SoundPosition = ToolBox.GetAttributeVector2(subElement, "position", Vector2.Zero);
|
SoundPosition = subElement.GetAttributeVector2("position", Vector2.Zero);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,10 +28,10 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public Biome(XElement element)
|
public Biome(XElement element)
|
||||||
{
|
{
|
||||||
Name = ToolBox.GetAttributeString(element, "name", "Biome");
|
Name = element.GetAttributeString("name", "Biome");
|
||||||
Description = ToolBox.GetAttributeString(element, "description", "");
|
Description = element.GetAttributeString("description", "");
|
||||||
|
|
||||||
string[] placementsStrs = ToolBox.GetAttributeString(element, "MapPlacement", "Default").Split(',');
|
string[] placementsStrs = element.GetAttributeString("MapPlacement", "Default").Split(',');
|
||||||
foreach (string placementStr in placementsStrs)
|
foreach (string placementStr in placementsStrs)
|
||||||
{
|
{
|
||||||
MapPlacement parsedPlacement;
|
MapPlacement parsedPlacement;
|
||||||
@@ -280,21 +280,21 @@ namespace Barotrauma
|
|||||||
Name = element == null ? "default" : element.Name.ToString();
|
Name = element == null ? "default" : element.Name.ToString();
|
||||||
ObjectProperties = ObjectProperty.InitProperties(this, element);
|
ObjectProperties = ObjectProperty.InitProperties(this, element);
|
||||||
|
|
||||||
Vector3 colorVector = ToolBox.GetAttributeVector3(element, "BackgroundColor", new Vector3(50, 46, 20));
|
Vector3 colorVector = element.GetAttributeVector3("BackgroundColor", new Vector3(50, 46, 20));
|
||||||
BackgroundColor = new Color((int)colorVector.X, (int)colorVector.Y, (int)colorVector.Z);
|
BackgroundColor = new Color((int)colorVector.X, (int)colorVector.Y, (int)colorVector.Z);
|
||||||
|
|
||||||
colorVector = ToolBox.GetAttributeVector3(element, "WallColor", new Vector3(255,255,255));
|
colorVector = element.GetAttributeVector3("WallColor", new Vector3(255,255,255));
|
||||||
WallColor = new Color((int)colorVector.X, (int)colorVector.Y, (int)colorVector.Z);
|
WallColor = new Color((int)colorVector.X, (int)colorVector.Y, (int)colorVector.Z);
|
||||||
|
|
||||||
VoronoiSiteInterval = ToolBox.GetAttributeVector2(element, "VoronoiSiteInterval", new Vector2(3000, 3000));
|
VoronoiSiteInterval = element.GetAttributeVector2("VoronoiSiteInterval", new Vector2(3000, 3000));
|
||||||
|
|
||||||
VoronoiSiteVariance = ToolBox.GetAttributeVector2(element, "VoronoiSiteVariance", new Vector2(voronoiSiteInterval.X, voronoiSiteInterval.Y) * 0.4f);
|
VoronoiSiteVariance = element.GetAttributeVector2("VoronoiSiteVariance", new Vector2(voronoiSiteInterval.X, voronoiSiteInterval.Y) * 0.4f);
|
||||||
|
|
||||||
MainPathNodeIntervalRange = ToolBox.GetAttributeVector2(element, "MainPathNodeIntervalRange", new Vector2(5000.0f, 10000.0f));
|
MainPathNodeIntervalRange = element.GetAttributeVector2("MainPathNodeIntervalRange", new Vector2(5000.0f, 10000.0f));
|
||||||
|
|
||||||
SmallTunnelLengthRange = ToolBox.GetAttributeVector2(element, "SmallTunnelLengthRange", new Vector2(5000.0f, 10000.0f));
|
SmallTunnelLengthRange = element.GetAttributeVector2("SmallTunnelLengthRange", new Vector2(5000.0f, 10000.0f));
|
||||||
|
|
||||||
string biomeStr = ToolBox.GetAttributeString(element, "biomes", "");
|
string biomeStr = element.GetAttributeString("biomes", "");
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(biomeStr))
|
if (string.IsNullOrWhiteSpace(biomeStr))
|
||||||
{
|
{
|
||||||
@@ -334,7 +334,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
foreach (string file in files)
|
foreach (string file in files)
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(file);
|
XDocument doc = XMLExtensions.TryLoadXml(file);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
foreach (XElement element in doc.Root.Elements())
|
foreach (XElement element in doc.Root.Elements())
|
||||||
|
|||||||
@@ -57,9 +57,9 @@ namespace Barotrauma
|
|||||||
|
|
||||||
physicsBody.SetTransform(ConvertUnits.ToSimUnits(position), rotation);
|
physicsBody.SetTransform(ConvertUnits.ToSimUnits(position), rotation);
|
||||||
|
|
||||||
cameraShake = ToolBox.GetAttributeFloat(element, "camerashake", 0.0f);
|
cameraShake = element.GetAttributeFloat("camerashake", 0.0f);
|
||||||
|
|
||||||
force = ToolBox.GetAttributeVector2(element, "force", Vector2.Zero);
|
force = element.GetAttributeVector2("force", Vector2.Zero);
|
||||||
|
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace Barotrauma.RuinGeneration
|
|||||||
|
|
||||||
private RuinStructure(XElement element)
|
private RuinStructure(XElement element)
|
||||||
{
|
{
|
||||||
string prefab = ToolBox.GetAttributeString(element, "prefab", "").ToLowerInvariant();
|
string prefab = element.GetAttributeString("prefab", "").ToLowerInvariant();
|
||||||
Prefab = MapEntityPrefab.list.Find(s => s.Name.ToLowerInvariant() == prefab);
|
Prefab = MapEntityPrefab.list.Find(s => s.Name.ToLowerInvariant() == prefab);
|
||||||
|
|
||||||
if (Prefab == null)
|
if (Prefab == null)
|
||||||
@@ -36,21 +36,21 @@ namespace Barotrauma.RuinGeneration
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
string alignmentStr = ToolBox.GetAttributeString(element,"alignment","Bottom");
|
string alignmentStr = element.GetAttributeString("alignment","Bottom");
|
||||||
if (!Enum.TryParse<Alignment>(alignmentStr, true, out Alignment))
|
if (!Enum.TryParse<Alignment>(alignmentStr, true, out Alignment))
|
||||||
{
|
{
|
||||||
DebugConsole.ThrowError("Error in ruin structure \""+prefab+"\" - "+alignmentStr+" is not a valid alignment");
|
DebugConsole.ThrowError("Error in ruin structure \""+prefab+"\" - "+alignmentStr+" is not a valid alignment");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
string typeStr = ToolBox.GetAttributeString(element,"type","");
|
string typeStr = element.GetAttributeString("type","");
|
||||||
if (!Enum.TryParse<RuinStructureType>(typeStr,true, out Type))
|
if (!Enum.TryParse<RuinStructureType>(typeStr,true, out Type))
|
||||||
{
|
{
|
||||||
DebugConsole.ThrowError("Error in ruin structure \"" + prefab + "\" - " + typeStr + " is not a valid type");
|
DebugConsole.ThrowError("Error in ruin structure \"" + prefab + "\" - " + typeStr + " is not a valid type");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
commonness = ToolBox.GetAttributeInt(element, "commonness", 1);
|
commonness = element.GetAttributeInt("commonness", 1);
|
||||||
|
|
||||||
list.Add(this);
|
list.Add(this);
|
||||||
}
|
}
|
||||||
@@ -59,7 +59,7 @@ namespace Barotrauma.RuinGeneration
|
|||||||
{
|
{
|
||||||
list = new List<RuinStructure>();
|
list = new List<RuinStructure>();
|
||||||
|
|
||||||
XDocument doc = ToolBox.TryLoadXml(ConfigFile);
|
XDocument doc = XMLExtensions.TryLoadXml(ConfigFile);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
foreach (XElement element in doc.Root.Elements())
|
foreach (XElement element in doc.Root.Elements())
|
||||||
|
|||||||
@@ -111,10 +111,10 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
if (element.Name != "Structure") continue;
|
if (element.Name != "Structure") continue;
|
||||||
|
|
||||||
string name = ToolBox.GetAttributeString(element, "name", "");
|
string name = element.GetAttributeString("name", "");
|
||||||
if (!wallPrefabs.Any(wp => wp.Name == name)) continue;
|
if (!wallPrefabs.Any(wp => wp.Name == name)) continue;
|
||||||
|
|
||||||
var rect = ToolBox.GetAttributeVector4(element, "rect", Vector4.Zero);
|
var rect = element.GetAttributeVector4("rect", Vector4.Zero);
|
||||||
|
|
||||||
points.Add(new Vector2(rect.X, rect.Y));
|
points.Add(new Vector2(rect.X, rect.Y));
|
||||||
points.Add(new Vector2(rect.X + rect.Z, rect.Y));
|
points.Add(new Vector2(rect.X + rect.Z, rect.Y));
|
||||||
@@ -127,7 +127,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public static void Load(XElement element, Submarine submarine)
|
public static void Load(XElement element, Submarine submarine)
|
||||||
{
|
{
|
||||||
Vector2 pos = ToolBox.GetAttributeVector2(element, "pos", Vector2.Zero);
|
Vector2 pos = element.GetAttributeVector2("pos", Vector2.Zero);
|
||||||
|
|
||||||
LinkedSubmarine linkedSub = null;
|
LinkedSubmarine linkedSub = null;
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ namespace Barotrauma
|
|||||||
linkedSub = new LinkedSubmarine(submarine);
|
linkedSub = new LinkedSubmarine(submarine);
|
||||||
linkedSub.saveElement = element;
|
linkedSub.saveElement = element;
|
||||||
|
|
||||||
string levelSeed = ToolBox.GetAttributeString(element, "location", "");
|
string levelSeed = element.GetAttributeString("location", "");
|
||||||
if (!string.IsNullOrWhiteSpace(levelSeed) && GameMain.GameSession.Level != null && GameMain.GameSession.Level.Seed != levelSeed)
|
if (!string.IsNullOrWhiteSpace(levelSeed) && GameMain.GameSession.Level != null && GameMain.GameSession.Level.Seed != levelSeed)
|
||||||
{
|
{
|
||||||
linkedSub.loadSub = false;
|
linkedSub.loadSub = false;
|
||||||
@@ -155,9 +155,9 @@ namespace Barotrauma
|
|||||||
linkedSub.rect.Location = MathUtils.ToPoint(pos);
|
linkedSub.rect.Location = MathUtils.ToPoint(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
linkedSub.filePath = ToolBox.GetAttributeString(element, "filepath", "");
|
linkedSub.filePath = element.GetAttributeString("filepath", "");
|
||||||
|
|
||||||
string linkedToString = ToolBox.GetAttributeString(element, "linkedto", "");
|
string linkedToString = element.GetAttributeString("linkedto", "");
|
||||||
if (linkedToString != "")
|
if (linkedToString != "")
|
||||||
{
|
{
|
||||||
string[] linkedToIds = linkedToString.Split(',');
|
string[] linkedToIds = linkedToString.Split(',');
|
||||||
@@ -175,7 +175,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
sub = Submarine.Load(saveElement, false);
|
sub = Submarine.Load(saveElement, false);
|
||||||
|
|
||||||
Vector2 worldPos = ToolBox.GetAttributeVector2(saveElement, "worldpos", Vector2.Zero);
|
Vector2 worldPos = saveElement.GetAttributeVector2("worldpos", Vector2.Zero);
|
||||||
if (worldPos != Vector2.Zero)
|
if (worldPos != Vector2.Zero)
|
||||||
{
|
{
|
||||||
sub.SetPosition(worldPos);
|
sub.SetPosition(worldPos);
|
||||||
@@ -259,7 +259,7 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (saveElement.Attribute("pos") != null) saveElement.Attribute("pos").Remove();
|
if (saveElement.Attribute("pos") != null) saveElement.Attribute("pos").Remove();
|
||||||
saveElement.Add(new XAttribute("pos", ToolBox.Vector2ToString(Position - Submarine.HiddenSubPosition)));
|
saveElement.Add(new XAttribute("pos", XMLExtensions.Vector2ToString(Position - Submarine.HiddenSubPosition)));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -300,7 +300,7 @@ namespace Barotrauma
|
|||||||
if (leaveBehind)
|
if (leaveBehind)
|
||||||
{
|
{
|
||||||
saveElement.SetAttributeValue("location", Level.Loaded.Seed);
|
saveElement.SetAttributeValue("location", Level.Loaded.Seed);
|
||||||
saveElement.SetAttributeValue("worldpos", ToolBox.Vector2ToString(sub.SubBody.Position));
|
saveElement.SetAttributeValue("worldpos", XMLExtensions.Vector2ToString(sub.SubBody.Position));
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -309,7 +309,7 @@ namespace Barotrauma
|
|||||||
if (saveElement.Attribute("worldpos") != null) saveElement.Attribute("worldpos").Remove();
|
if (saveElement.Attribute("worldpos") != null) saveElement.Attribute("worldpos").Remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
saveElement.SetAttributeValue("pos", ToolBox.Vector2ToString(Position - Submarine.HiddenSubPosition));
|
saveElement.SetAttributeValue("pos", XMLExtensions.Vector2ToString(Position - Submarine.HiddenSubPosition));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
name = element.Name.ToString();
|
name = element.Name.ToString();
|
||||||
|
|
||||||
commonness = ToolBox.GetAttributeInt(element, "commonness", 1);
|
commonness = element.GetAttributeInt("commonness", 1);
|
||||||
totalWeight += commonness;
|
totalWeight += commonness;
|
||||||
|
|
||||||
nameFormats = new List<string>();
|
nameFormats = new List<string>();
|
||||||
@@ -70,7 +70,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
if (subElement.Name.ToString().ToLowerInvariant() != "hireable") continue;
|
if (subElement.Name.ToString().ToLowerInvariant() != "hireable") continue;
|
||||||
|
|
||||||
string jobName = ToolBox.GetAttributeString(subElement, "name", "");
|
string jobName = subElement.GetAttributeString("name", "");
|
||||||
|
|
||||||
JobPrefab jobPrefab = JobPrefab.List.Find(jp => jp.Name.ToLowerInvariant() == jobName.ToLowerInvariant());
|
JobPrefab jobPrefab = JobPrefab.List.Find(jp => jp.Name.ToLowerInvariant() == jobName.ToLowerInvariant());
|
||||||
if (jobPrefab==null)
|
if (jobPrefab==null)
|
||||||
@@ -78,7 +78,7 @@ namespace Barotrauma
|
|||||||
DebugConsole.ThrowError("Invalid job name ("+jobName+") in location type "+name);
|
DebugConsole.ThrowError("Invalid job name ("+jobName+") in location type "+name);
|
||||||
}
|
}
|
||||||
|
|
||||||
float jobCommonness = ToolBox.GetAttributeFloat(subElement, "commonness", 1.0f);
|
float jobCommonness = subElement.GetAttributeFloat("commonness", 1.0f);
|
||||||
totalHireableWeight += jobCommonness;
|
totalHireableWeight += jobCommonness;
|
||||||
|
|
||||||
Tuple<JobPrefab, float> hireableJob = new Tuple<JobPrefab, float>(jobPrefab, jobCommonness);
|
Tuple<JobPrefab, float> hireableJob = new Tuple<JobPrefab, float>(jobPrefab, jobCommonness);
|
||||||
@@ -86,10 +86,10 @@ namespace Barotrauma
|
|||||||
hireableJobs.Add(hireableJob);
|
hireableJobs.Add(hireableJob);
|
||||||
}
|
}
|
||||||
|
|
||||||
string spritePath = ToolBox.GetAttributeString(element, "symbol", "Content/Map/beaconSymbol.png");
|
string spritePath = element.GetAttributeString("symbol", "Content/Map/beaconSymbol.png");
|
||||||
symbolSprite = new Sprite(spritePath, new Vector2(0.5f, 0.5f));
|
symbolSprite = new Sprite(spritePath, new Vector2(0.5f, 0.5f));
|
||||||
|
|
||||||
string backgroundPath = ToolBox.GetAttributeString(element, "background", "");
|
string backgroundPath = element.GetAttributeString("background", "");
|
||||||
backGround = new Sprite(backgroundPath, Vector2.Zero);
|
backGround = new Sprite(backgroundPath, Vector2.Zero);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
foreach (string file in locationTypeFiles)
|
foreach (string file in locationTypeFiles)
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(file);
|
XDocument doc = XMLExtensions.TryLoadXml(file);
|
||||||
|
|
||||||
if (doc==null)
|
if (doc==null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -396,9 +396,9 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public static Map LoadNew(XElement element)
|
public static Map LoadNew(XElement element)
|
||||||
{
|
{
|
||||||
string mapSeed = ToolBox.GetAttributeString(element, "seed", "a");
|
string mapSeed = element.GetAttributeString("seed", "a");
|
||||||
|
|
||||||
int size = ToolBox.GetAttributeInt(element, "size", 1000);
|
int size = element.GetAttributeInt("size", 1000);
|
||||||
Map map = new Map(mapSeed, size);
|
Map map = new Map(mapSeed, size);
|
||||||
map.Load(element);
|
map.Load(element);
|
||||||
|
|
||||||
@@ -407,9 +407,9 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public void Load(XElement element)
|
public void Load(XElement element)
|
||||||
{
|
{
|
||||||
SetLocation(ToolBox.GetAttributeInt(element, "currentlocation", 0));
|
SetLocation(element.GetAttributeInt("currentlocation", 0));
|
||||||
|
|
||||||
string discoveredStr = ToolBox.GetAttributeString(element, "discovered", "");
|
string discoveredStr = element.GetAttributeString("discovered", "");
|
||||||
|
|
||||||
string[] discoveredStrs = discoveredStr.Split(',');
|
string[] discoveredStrs = discoveredStr.Split(',');
|
||||||
for (int i = 0; i < discoveredStrs.Length; i++)
|
for (int i = 0; i < discoveredStrs.Length; i++)
|
||||||
@@ -418,7 +418,7 @@ namespace Barotrauma
|
|||||||
if (int.TryParse(discoveredStrs[i], out index)) locations[index].Discovered = true;
|
if (int.TryParse(discoveredStrs[i], out index)) locations[index].Discovered = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
string passedStr = ToolBox.GetAttributeString(element, "passed", "");
|
string passedStr = element.GetAttributeString("passed", "");
|
||||||
string[] passedStrs = passedStr.Split(',');
|
string[] passedStrs = passedStr.Split(',');
|
||||||
for (int i = 0; i < passedStrs.Length; i++)
|
for (int i = 0; i < passedStrs.Length; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -808,7 +808,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public static void Load(XElement element, Submarine submarine)
|
public static void Load(XElement element, Submarine submarine)
|
||||||
{
|
{
|
||||||
string rectString = ToolBox.GetAttributeString(element, "rect", "0,0,0,0");
|
string rectString = element.GetAttributeString("rect", "0,0,0,0");
|
||||||
string[] rectValues = rectString.Split(',');
|
string[] rectValues = rectString.Split(',');
|
||||||
|
|
||||||
Rectangle rect = new Rectangle(
|
Rectangle rect = new Rectangle(
|
||||||
@@ -843,13 +843,13 @@ namespace Barotrauma
|
|||||||
switch (subElement.Name.ToString())
|
switch (subElement.Name.ToString())
|
||||||
{
|
{
|
||||||
case "section":
|
case "section":
|
||||||
int index = ToolBox.GetAttributeInt(subElement, "i", -1);
|
int index = subElement.GetAttributeInt("i", -1);
|
||||||
if (index == -1) continue;
|
if (index == -1) continue;
|
||||||
|
|
||||||
s.sections[index].damage =
|
s.sections[index].damage =
|
||||||
ToolBox.GetAttributeFloat(subElement, "damage", 0.0f);
|
subElement.GetAttributeFloat("damage", 0.0f);
|
||||||
|
|
||||||
s.sections[index].GapID = ToolBox.GetAttributeInt(subElement, "gap", -1);
|
s.sections[index].GapID = subElement.GetAttributeInt("gap", -1);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
foreach (string filePath in filePaths)
|
foreach (string filePath in filePaths)
|
||||||
{
|
{
|
||||||
XDocument doc = ToolBox.TryLoadXml(filePath);
|
XDocument doc = XMLExtensions.TryLoadXml(filePath);
|
||||||
if (doc == null || doc.Root == null) return;
|
if (doc == null || doc.Root == null) return;
|
||||||
|
|
||||||
foreach (XElement el in doc.Root.Elements())
|
foreach (XElement el in doc.Root.Elements())
|
||||||
@@ -87,7 +87,7 @@ namespace Barotrauma
|
|||||||
sp.name = element.Name.ToString();
|
sp.name = element.Name.ToString();
|
||||||
|
|
||||||
sp.tags = new List<string>();
|
sp.tags = new List<string>();
|
||||||
sp.tags.AddRange(ToolBox.GetAttributeString(element, "tags", "").Split(','));
|
sp.tags.AddRange(element.GetAttributeString("tags", "").Split(','));
|
||||||
|
|
||||||
foreach (XElement subElement in element.Elements())
|
foreach (XElement subElement in element.Elements())
|
||||||
{
|
{
|
||||||
@@ -96,20 +96,20 @@ namespace Barotrauma
|
|||||||
case "sprite":
|
case "sprite":
|
||||||
sp.sprite = new Sprite(subElement);
|
sp.sprite = new Sprite(subElement);
|
||||||
|
|
||||||
if (ToolBox.GetAttributeBool(subElement, "fliphorizontal", false))
|
if (subElement.GetAttributeBool("fliphorizontal", false))
|
||||||
sp.sprite.effects = SpriteEffects.FlipHorizontally;
|
sp.sprite.effects = SpriteEffects.FlipHorizontally;
|
||||||
if (ToolBox.GetAttributeBool(subElement, "flipvertical", false))
|
if (subElement.GetAttributeBool("flipvertical", false))
|
||||||
sp.sprite.effects = SpriteEffects.FlipVertically;
|
sp.sprite.effects = SpriteEffects.FlipVertically;
|
||||||
|
|
||||||
sp.canSpriteFlipX = ToolBox.GetAttributeBool(subElement, "canflipx", true);
|
sp.canSpriteFlipX = subElement.GetAttributeBool("canflipx", true);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "backgroundsprite":
|
case "backgroundsprite":
|
||||||
sp.BackgroundSprite = new Sprite(subElement);
|
sp.BackgroundSprite = new Sprite(subElement);
|
||||||
|
|
||||||
if (ToolBox.GetAttributeBool(subElement, "fliphorizontal", false))
|
if (subElement.GetAttributeBool("fliphorizontal", false))
|
||||||
sp.BackgroundSprite.effects = SpriteEffects.FlipHorizontally;
|
sp.BackgroundSprite.effects = SpriteEffects.FlipHorizontally;
|
||||||
if (ToolBox.GetAttributeBool(subElement, "flipvertical", false))
|
if (subElement.GetAttributeBool("flipvertical", false))
|
||||||
sp.BackgroundSprite.effects = SpriteEffects.FlipVertically;
|
sp.BackgroundSprite.effects = SpriteEffects.FlipVertically;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -118,33 +118,33 @@ namespace Barotrauma
|
|||||||
|
|
||||||
MapEntityCategory category;
|
MapEntityCategory category;
|
||||||
|
|
||||||
if (!Enum.TryParse(ToolBox.GetAttributeString(element, "category", "Structure"), true, out category))
|
if (!Enum.TryParse(element.GetAttributeString("category", "Structure"), true, out category))
|
||||||
{
|
{
|
||||||
category = MapEntityCategory.Structure;
|
category = MapEntityCategory.Structure;
|
||||||
}
|
}
|
||||||
|
|
||||||
sp.Category = category;
|
sp.Category = category;
|
||||||
|
|
||||||
sp.Description = ToolBox.GetAttributeString(element, "description", "");
|
sp.Description = element.GetAttributeString("description", "");
|
||||||
|
|
||||||
sp.size = Vector2.Zero;
|
sp.size = Vector2.Zero;
|
||||||
sp.size.X = ToolBox.GetAttributeFloat(element, "width", 0.0f);
|
sp.size.X = element.GetAttributeFloat("width", 0.0f);
|
||||||
sp.size.Y = ToolBox.GetAttributeFloat(element, "height", 0.0f);
|
sp.size.Y = element.GetAttributeFloat("height", 0.0f);
|
||||||
|
|
||||||
string spriteColorStr = ToolBox.GetAttributeString(element, "spritecolor", "1.0,1.0,1.0,1.0");
|
string spriteColorStr = element.GetAttributeString("spritecolor", "1.0,1.0,1.0,1.0");
|
||||||
sp.SpriteColor = new Color(ToolBox.ParseToVector4(spriteColorStr));
|
sp.SpriteColor = new Color(XMLExtensions.ParseToVector4(spriteColorStr));
|
||||||
|
|
||||||
sp.maxHealth = ToolBox.GetAttributeFloat(element, "health", 100.0f);
|
sp.maxHealth = element.GetAttributeFloat("health", 100.0f);
|
||||||
|
|
||||||
sp.resizeHorizontal = ToolBox.GetAttributeBool(element, "resizehorizontal", false);
|
sp.resizeHorizontal = element.GetAttributeBool("resizehorizontal", false);
|
||||||
sp.resizeVertical = ToolBox.GetAttributeBool(element, "resizevertical", false);
|
sp.resizeVertical = element.GetAttributeBool("resizevertical", false);
|
||||||
|
|
||||||
sp.isPlatform = ToolBox.GetAttributeBool(element, "platform", false);
|
sp.isPlatform = element.GetAttributeBool("platform", false);
|
||||||
sp.stairDirection = (Direction)Enum.Parse(typeof(Direction), ToolBox.GetAttributeString(element, "stairdirection", "None"), true);
|
sp.stairDirection = (Direction)Enum.Parse(typeof(Direction), element.GetAttributeString("stairdirection", "None"), true);
|
||||||
|
|
||||||
sp.castShadow = ToolBox.GetAttributeBool(element, "castshadow", false);
|
sp.castShadow = element.GetAttributeBool("castshadow", false);
|
||||||
|
|
||||||
sp.hasBody = ToolBox.GetAttributeBool(element, "body", false);
|
sp.hasBody = element.GetAttributeBool("body", false);
|
||||||
|
|
||||||
return sp;
|
return sp;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -267,8 +267,8 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (doc != null && doc.Root != null)
|
if (doc != null && doc.Root != null)
|
||||||
{
|
{
|
||||||
Description = ToolBox.GetAttributeString(doc.Root, "description", "");
|
Description = doc.Root.GetAttributeString("description", "");
|
||||||
Enum.TryParse(ToolBox.GetAttributeString(doc.Root, "tags", ""), out tags);
|
Enum.TryParse(doc.Root.GetAttributeString("tags", ""), out tags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -949,8 +949,8 @@ namespace Barotrauma
|
|||||||
submarineElement = doc.Root;
|
submarineElement = doc.Root;
|
||||||
}
|
}
|
||||||
|
|
||||||
Description = ToolBox.GetAttributeString(submarineElement, "description", "");
|
Description = submarineElement.GetAttributeString("description", "");
|
||||||
Enum.TryParse(ToolBox.GetAttributeString(submarineElement, "tags", ""), out tags);
|
Enum.TryParse(submarineElement.GetAttributeString("tags", ""), out tags);
|
||||||
|
|
||||||
//place the sub above the top of the level
|
//place the sub above the top of the level
|
||||||
HiddenSubPosition = HiddenSubStartPosition;
|
HiddenSubPosition = HiddenSubStartPosition;
|
||||||
@@ -1081,7 +1081,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
//tryload -> false
|
//tryload -> false
|
||||||
|
|
||||||
Submarine sub = new Submarine(ToolBox.GetAttributeString(element, "name", ""), "", false);
|
Submarine sub = new Submarine(element.GetAttributeString("name", ""), "", false);
|
||||||
sub.Load(unloadPrevious, element);
|
sub.Load(unloadPrevious, element);
|
||||||
|
|
||||||
return sub;
|
return sub;
|
||||||
|
|||||||
@@ -568,22 +568,22 @@ namespace Barotrauma
|
|||||||
|
|
||||||
w.ID = (ushort)int.Parse(element.Attribute("ID").Value);
|
w.ID = (ushort)int.Parse(element.Attribute("ID").Value);
|
||||||
|
|
||||||
Enum.TryParse<SpawnType>(ToolBox.GetAttributeString(element, "spawn", "Path"), out w.spawnType);
|
Enum.TryParse<SpawnType>(element.GetAttributeString("spawn", "Path"), out w.spawnType);
|
||||||
|
|
||||||
string idCardTagString = ToolBox.GetAttributeString(element, "idcardtags", "");
|
string idCardTagString = element.GetAttributeString("idcardtags", "");
|
||||||
if (!string.IsNullOrWhiteSpace(idCardTagString))
|
if (!string.IsNullOrWhiteSpace(idCardTagString))
|
||||||
{
|
{
|
||||||
w.IdCardTags = idCardTagString.Split(',');
|
w.IdCardTags = idCardTagString.Split(',');
|
||||||
}
|
}
|
||||||
|
|
||||||
string jobName = ToolBox.GetAttributeString(element, "job", "").ToLowerInvariant();
|
string jobName = element.GetAttributeString("job", "").ToLowerInvariant();
|
||||||
if (!string.IsNullOrWhiteSpace(jobName))
|
if (!string.IsNullOrWhiteSpace(jobName))
|
||||||
{
|
{
|
||||||
w.assignedJob = JobPrefab.List.Find(jp => jp.Name.ToLowerInvariant() == jobName);
|
w.assignedJob = JobPrefab.List.Find(jp => jp.Name.ToLowerInvariant() == jobName);
|
||||||
}
|
}
|
||||||
|
|
||||||
w.ladderId = (ushort)ToolBox.GetAttributeInt(element, "ladders", 0);
|
w.ladderId = (ushort)element.GetAttributeInt("ladders", 0);
|
||||||
w.gapId = (ushort)ToolBox.GetAttributeInt(element, "gap", 0);
|
w.gapId = (ushort)element.GetAttributeInt("gap", 0);
|
||||||
|
|
||||||
w.linkedToID = new List<ushort>();
|
w.linkedToID = new List<ushort>();
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|||||||
@@ -271,7 +271,7 @@ namespace Barotrauma.Networking
|
|||||||
XDocument doc = null;
|
XDocument doc = null;
|
||||||
if (File.Exists(SettingsFile))
|
if (File.Exists(SettingsFile))
|
||||||
{
|
{
|
||||||
doc = ToolBox.TryLoadXml(SettingsFile);
|
doc = XMLExtensions.TryLoadXml(SettingsFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (doc == null || doc.Root == null)
|
if (doc == null || doc.Root == null)
|
||||||
@@ -281,7 +281,7 @@ namespace Barotrauma.Networking
|
|||||||
|
|
||||||
ObjectProperties = ObjectProperty.InitProperties(this, doc.Root);
|
ObjectProperties = ObjectProperty.InitProperties(this, doc.Root);
|
||||||
|
|
||||||
AutoRestart = ToolBox.GetAttributeBool(doc.Root, "autorestart", false);
|
AutoRestart = doc.Root.GetAttributeBool("autorestart", false);
|
||||||
#if CLIENT
|
#if CLIENT
|
||||||
if (autoRestart)
|
if (autoRestart)
|
||||||
{
|
{
|
||||||
@@ -290,15 +290,15 @@ namespace Barotrauma.Networking
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
subSelectionMode = SelectionMode.Manual;
|
subSelectionMode = SelectionMode.Manual;
|
||||||
Enum.TryParse<SelectionMode>(ToolBox.GetAttributeString(doc.Root, "SubSelection", "Manual"), out subSelectionMode);
|
Enum.TryParse<SelectionMode>(doc.Root.GetAttributeString("SubSelection", "Manual"), out subSelectionMode);
|
||||||
Voting.AllowSubVoting = subSelectionMode == SelectionMode.Vote;
|
Voting.AllowSubVoting = subSelectionMode == SelectionMode.Vote;
|
||||||
|
|
||||||
modeSelectionMode = SelectionMode.Manual;
|
modeSelectionMode = SelectionMode.Manual;
|
||||||
Enum.TryParse<SelectionMode>(ToolBox.GetAttributeString(doc.Root, "ModeSelection", "Manual"), out modeSelectionMode);
|
Enum.TryParse<SelectionMode>(doc.Root.GetAttributeString("ModeSelection", "Manual"), out modeSelectionMode);
|
||||||
Voting.AllowModeVoting = modeSelectionMode == SelectionMode.Vote;
|
Voting.AllowModeVoting = modeSelectionMode == SelectionMode.Vote;
|
||||||
|
|
||||||
var traitorsEnabled = TraitorsEnabled;
|
var traitorsEnabled = TraitorsEnabled;
|
||||||
Enum.TryParse<YesNoMaybe>(ToolBox.GetAttributeString(doc.Root, "TraitorsEnabled", "No"), out traitorsEnabled);
|
Enum.TryParse<YesNoMaybe>(doc.Root.GetAttributeString("TraitorsEnabled", "No"), out traitorsEnabled);
|
||||||
TraitorsEnabled = traitorsEnabled;
|
TraitorsEnabled = traitorsEnabled;
|
||||||
GameMain.NetLobbyScreen.SetTraitorsEnabled(traitorsEnabled);
|
GameMain.NetLobbyScreen.SetTraitorsEnabled(traitorsEnabled);
|
||||||
|
|
||||||
@@ -308,7 +308,7 @@ namespace Barotrauma.Networking
|
|||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
GameMain.NetLobbyScreen.ServerMessageText = ToolBox.GetAttributeString(doc.Root, "ServerMessage", "");
|
GameMain.NetLobbyScreen.ServerMessageText = doc.Root.GetAttributeString("ServerMessage", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CLIENT
|
#if CLIENT
|
||||||
|
|||||||
@@ -279,11 +279,11 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public PhysicsBody(XElement element, Vector2 position, float scale=1.0f)
|
public PhysicsBody(XElement element, Vector2 position, float scale=1.0f)
|
||||||
{
|
{
|
||||||
float radius = ConvertUnits.ToSimUnits(ToolBox.GetAttributeFloat(element, "radius", 0.0f)) * scale;
|
float radius = ConvertUnits.ToSimUnits(element.GetAttributeFloat("radius", 0.0f)) * scale;
|
||||||
float height = ConvertUnits.ToSimUnits(ToolBox.GetAttributeFloat(element, "height", 0.0f)) * scale;
|
float height = ConvertUnits.ToSimUnits(element.GetAttributeFloat("height", 0.0f)) * scale;
|
||||||
float width = ConvertUnits.ToSimUnits(ToolBox.GetAttributeFloat(element, "width", 0.0f)) * scale;
|
float width = ConvertUnits.ToSimUnits(element.GetAttributeFloat("width", 0.0f)) * scale;
|
||||||
|
|
||||||
density = ToolBox.GetAttributeFloat(element, "density", 10.0f);
|
density = element.GetAttributeFloat("density", 10.0f);
|
||||||
|
|
||||||
CreateBody(width, height, radius, density);
|
CreateBody(width, height, radius, density);
|
||||||
|
|
||||||
@@ -292,8 +292,8 @@ namespace Barotrauma
|
|||||||
body.CollisionCategories = Physics.CollisionItem;
|
body.CollisionCategories = Physics.CollisionItem;
|
||||||
body.CollidesWith = Physics.CollisionWall | Physics.CollisionLevel;
|
body.CollidesWith = Physics.CollisionWall | Physics.CollisionLevel;
|
||||||
|
|
||||||
body.Friction = ToolBox.GetAttributeFloat(element, "friction", 0.3f);
|
body.Friction = element.GetAttributeFloat("friction", 0.3f);
|
||||||
body.Restitution = ToolBox.GetAttributeFloat(element, "restitution", 0.05f);
|
body.Restitution = element.GetAttributeFloat("restitution", 0.05f);
|
||||||
|
|
||||||
body.BodyType = BodyType.Dynamic;
|
body.BodyType = BodyType.Dynamic;
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
if (file == "")
|
if (file == "")
|
||||||
{
|
{
|
||||||
file = ToolBox.GetAttributeString(element, "texture", "");
|
file = element.GetAttributeString("texture", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (file == "")
|
if (file == "")
|
||||||
@@ -81,7 +81,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
this.file = path + file;
|
this.file = path + file;
|
||||||
|
|
||||||
Vector4 sourceVector = ToolBox.GetAttributeVector4(element, "sourcerect", Vector4.Zero);
|
Vector4 sourceVector = element.GetAttributeVector4("sourcerect", Vector4.Zero);
|
||||||
|
|
||||||
bool shouldReturn = false;
|
bool shouldReturn = false;
|
||||||
LoadTexture(ref sourceVector, ref shouldReturn);
|
LoadTexture(ref sourceVector, ref shouldReturn);
|
||||||
@@ -91,15 +91,15 @@ namespace Barotrauma
|
|||||||
(int)sourceVector.X, (int)sourceVector.Y,
|
(int)sourceVector.X, (int)sourceVector.Y,
|
||||||
(int)sourceVector.Z, (int)sourceVector.W);
|
(int)sourceVector.Z, (int)sourceVector.W);
|
||||||
|
|
||||||
origin = ToolBox.GetAttributeVector2(element, "origin", new Vector2(0.5f, 0.5f));
|
origin = element.GetAttributeVector2("origin", new Vector2(0.5f, 0.5f));
|
||||||
origin.X = origin.X * sourceRect.Width;
|
origin.X = origin.X * sourceRect.Width;
|
||||||
origin.Y = origin.Y * sourceRect.Height;
|
origin.Y = origin.Y * sourceRect.Height;
|
||||||
|
|
||||||
size = ToolBox.GetAttributeVector2(element, "size", Vector2.One);
|
size = element.GetAttributeVector2("size", Vector2.One);
|
||||||
size.X *= sourceRect.Width;
|
size.X *= sourceRect.Width;
|
||||||
size.Y *= sourceRect.Height;
|
size.Y *= sourceRect.Height;
|
||||||
|
|
||||||
Depth = ToolBox.GetAttributeFloat(element, "depth", 0.0f);
|
Depth = element.GetAttributeFloat("depth", 0.0f);
|
||||||
|
|
||||||
list.Add(this);
|
list.Add(this);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ namespace Barotrauma
|
|||||||
public SpriteSheet(XElement element, string path = "", string file = "")
|
public SpriteSheet(XElement element, string path = "", string file = "")
|
||||||
: base(element, path, file)
|
: base(element, path, file)
|
||||||
{
|
{
|
||||||
int columnCount = Math.Max(ToolBox.GetAttributeInt(element, "columns", 1), 1);
|
int columnCount = Math.Max(element.GetAttributeInt("columns", 1), 1);
|
||||||
int rowCount = Math.Max(ToolBox.GetAttributeInt(element, "rows", 1), 1);
|
int rowCount = Math.Max(element.GetAttributeInt("rows", 1), 1);
|
||||||
|
|
||||||
sourceRects = new Rectangle[rowCount * columnCount];
|
sourceRects = new Rectangle[rowCount * columnCount];
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
origin = ToolBox.GetAttributeVector2(element, "origin", new Vector2(0.5f, 0.5f));
|
origin = element.GetAttributeVector2("origin", new Vector2(0.5f, 0.5f));
|
||||||
origin.X = origin.X * cellWidth;
|
origin.X = origin.X * cellWidth;
|
||||||
origin.Y = origin.Y * cellHeight;
|
origin.Y = origin.Y * cellHeight;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,9 +85,9 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
DecompressToDirectory(filePath, TempPath, null);
|
DecompressToDirectory(filePath, TempPath, null);
|
||||||
|
|
||||||
XDocument doc = ToolBox.TryLoadXml(Path.Combine(TempPath, "gamesession.xml"));
|
XDocument doc = XMLExtensions.TryLoadXml(Path.Combine(TempPath, "gamesession.xml"));
|
||||||
|
|
||||||
string subPath = Path.Combine(TempPath, ToolBox.GetAttributeString(doc.Root, "submarine", "")) + ".sub";
|
string subPath = Path.Combine(TempPath, doc.Root.GetAttributeString("submarine", "")) + ".sub";
|
||||||
Submarine selectedSub = new Submarine(subPath, "");
|
Submarine selectedSub = new Submarine(subPath, "");
|
||||||
GameMain.GameSession = new GameSession(selectedSub, filePath, doc);
|
GameMain.GameSession = new GameSession(selectedSub, filePath, doc);
|
||||||
}
|
}
|
||||||
@@ -95,7 +95,7 @@ namespace Barotrauma
|
|||||||
public static void LoadGame(string filePath, GameSession gameSession)
|
public static void LoadGame(string filePath, GameSession gameSession)
|
||||||
{
|
{
|
||||||
DecompressToDirectory(filePath, TempPath, null);
|
DecompressToDirectory(filePath, TempPath, null);
|
||||||
XDocument doc = ToolBox.TryLoadXml(Path.Combine(TempPath, "gamesession.xml"));
|
XDocument doc = XMLExtensions.TryLoadXml(Path.Combine(TempPath, "gamesession.xml"));
|
||||||
gameSession.Load(doc.Root);
|
gameSession.Load(doc.Root);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ namespace Barotrauma
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ToolBox.TryLoadXml(Path.Combine(tempPath, "gamesession.xml"));
|
return XMLExtensions.TryLoadXml(Path.Combine(tempPath, "gamesession.xml"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DeleteSave(string filePath)
|
public static void DeleteSave(string filePath)
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
using Lidgren.Network;
|
using Lidgren.Network;
|
||||||
using Microsoft.Xna.Framework;
|
|
||||||
using System;
|
using System;
|
||||||
using System.Globalization;
|
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Xml;
|
|
||||||
using System.Xml.Linq;
|
|
||||||
|
|
||||||
namespace Barotrauma
|
namespace Barotrauma
|
||||||
{
|
{
|
||||||
@@ -27,6 +23,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public static partial class ToolBox
|
public static partial class ToolBox
|
||||||
{
|
{
|
||||||
|
|
||||||
public static bool IsProperFilenameCase(string filename)
|
public static bool IsProperFilenameCase(string filename)
|
||||||
{
|
{
|
||||||
char[] delimiters = { '/','\\' };
|
char[] delimiters = { '/','\\' };
|
||||||
@@ -70,339 +67,6 @@ namespace Barotrauma
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static XDocument TryLoadXml(string filePath)
|
|
||||||
{
|
|
||||||
XDocument doc;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
IsProperFilenameCase(filePath);
|
|
||||||
doc = XDocument.Load(filePath);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
DebugConsole.ThrowError("Couldn't load xml document \""+filePath+"\"!", e);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (doc.Root == null) return null;
|
|
||||||
|
|
||||||
return doc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*public static SpriteFont TryLoadFont(string file, Microsoft.Xna.Framework.Content.ContentManager contentManager)
|
|
||||||
{
|
|
||||||
SpriteFont font = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
font = contentManager.Load<SpriteFont>(file);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
DebugConsole.ThrowError("Loading font \""+file+"\" failed", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return font;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
public static object GetAttributeObject(XElement element, string name)
|
|
||||||
{
|
|
||||||
if (element == null || element.Attribute(name) == null) return null;
|
|
||||||
return GetAttributeObject(element.Attribute(name));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static object GetAttributeObject(XAttribute attribute)
|
|
||||||
{
|
|
||||||
if (attribute == null) return null;
|
|
||||||
|
|
||||||
return ParseToObject(attribute.Value.ToString());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static object ParseToObject(string value)
|
|
||||||
{
|
|
||||||
float floatVal;
|
|
||||||
int intVal;
|
|
||||||
if (value.ToString().Contains(".") && float.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out floatVal))
|
|
||||||
{
|
|
||||||
return floatVal;
|
|
||||||
}
|
|
||||||
else if (int.TryParse(value, out intVal))
|
|
||||||
{
|
|
||||||
return intVal;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
string lowerTrimmedVal = value.ToLowerInvariant().Trim();
|
|
||||||
if (lowerTrimmedVal == "true")
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else if (lowerTrimmedVal == "false")
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static string GetAttributeString(XElement element, string name, string defaultValue)
|
|
||||||
{
|
|
||||||
if (element == null || element.Attribute(name) == null) return defaultValue;
|
|
||||||
return GetAttributeString(element.Attribute(name), defaultValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetAttributeString(XAttribute attribute, string defaultValue)
|
|
||||||
{
|
|
||||||
string value = attribute.Value;
|
|
||||||
if (String.IsNullOrEmpty(value)) return defaultValue;
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float GetAttributeFloat(XElement element, float defaultValue, params string[] matchingAttributeName)
|
|
||||||
{
|
|
||||||
if (element == null) return defaultValue;
|
|
||||||
|
|
||||||
foreach (string name in matchingAttributeName)
|
|
||||||
{
|
|
||||||
if (element.Attribute(name) == null) continue;
|
|
||||||
|
|
||||||
float val = defaultValue;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (!float.TryParse(element.Attribute(name).Value, NumberStyles.Float, CultureInfo.InvariantCulture, out val))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
DebugConsole.ThrowError("Error in "+element+"!", e);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float GetAttributeFloat(XElement element, string name, float defaultValue)
|
|
||||||
{
|
|
||||||
if (element == null || element.Attribute(name) == null) return defaultValue;
|
|
||||||
|
|
||||||
float val = defaultValue;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (!float.TryParse(element.Attribute(name).Value, NumberStyles.Float, CultureInfo.InvariantCulture, out val))
|
|
||||||
{
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
DebugConsole.ThrowError("Error in "+element+"!", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float GetAttributeFloat(XAttribute attribute, float defaultValue)
|
|
||||||
{
|
|
||||||
if (attribute == null) return defaultValue;
|
|
||||||
|
|
||||||
float val = defaultValue;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
val = float.Parse(attribute.Value, CultureInfo.InvariantCulture);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
DebugConsole.ThrowError("Error in " + attribute + "! ", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int GetAttributeInt(XElement element, string name, int defaultValue)
|
|
||||||
{
|
|
||||||
if (element == null || element.Attribute(name) == null) return defaultValue;
|
|
||||||
|
|
||||||
int val = defaultValue;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
val = int.Parse(element.Attribute(name).Value);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
DebugConsole.ThrowError("Error in " + element + "! ", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool GetAttributeBool(XElement element, string name, bool defaultValue)
|
|
||||||
{
|
|
||||||
if (element == null || element.Attribute(name) == null) return defaultValue;
|
|
||||||
|
|
||||||
return GetAttributeBool(element.Attribute(name), defaultValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool GetAttributeBool(XAttribute attribute, bool defaultValue)
|
|
||||||
{
|
|
||||||
if (attribute == null) return defaultValue;
|
|
||||||
|
|
||||||
string val = attribute.Value.ToLowerInvariant().Trim();
|
|
||||||
if (val == "true")
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else if (val == "false")
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
DebugConsole.ThrowError("Error in " + attribute.Value.ToString() + "! \"" + val + "\" is not a valid boolean value");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static Vector2 GetAttributeVector2(XElement element, string name, Vector2 defaultValue)
|
|
||||||
{
|
|
||||||
if (element == null || element.Attribute(name) == null) return defaultValue;
|
|
||||||
|
|
||||||
string val = element.Attribute(name).Value;
|
|
||||||
|
|
||||||
return ParseToVector2(val);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Vector3 GetAttributeVector3(XElement element, string name, Vector3 defaultValue)
|
|
||||||
{
|
|
||||||
if (element == null || element.Attribute(name) == null) return defaultValue;
|
|
||||||
|
|
||||||
string val = element.Attribute(name).Value;
|
|
||||||
|
|
||||||
return ParseToVector3(val);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Vector4 GetAttributeVector4(XElement element, string name, Vector4 defaultValue)
|
|
||||||
{
|
|
||||||
if (element == null || element.Attribute(name) == null) return defaultValue;
|
|
||||||
|
|
||||||
string val = element.Attribute(name).Value;
|
|
||||||
|
|
||||||
return ParseToVector4(val);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string ElementInnerText(this XElement el)
|
|
||||||
{
|
|
||||||
StringBuilder str = new StringBuilder();
|
|
||||||
foreach (XNode element in el.DescendantNodes().Where(x => x.NodeType == XmlNodeType.Text))
|
|
||||||
{
|
|
||||||
str.Append(element.ToString());
|
|
||||||
}
|
|
||||||
return str.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static Vector2 ParseToVector2(string stringVector2, bool errorMessages = true)
|
|
||||||
{
|
|
||||||
string[] components = stringVector2.Split(',');
|
|
||||||
|
|
||||||
Vector2 vector = Vector2.Zero;
|
|
||||||
|
|
||||||
if (components.Length!=2)
|
|
||||||
{
|
|
||||||
if (!errorMessages) return vector;
|
|
||||||
DebugConsole.ThrowError("Failed to parse the string \""+stringVector2+"\" to Vector2");
|
|
||||||
return vector;
|
|
||||||
}
|
|
||||||
|
|
||||||
float.TryParse(components[0], NumberStyles.Any, CultureInfo.InvariantCulture, out vector.X);
|
|
||||||
float.TryParse(components[1], NumberStyles.Any, CultureInfo.InvariantCulture, out vector.Y);
|
|
||||||
|
|
||||||
return vector;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string Vector2ToString(Vector2 vector)
|
|
||||||
{
|
|
||||||
return vector.X.ToString("G", CultureInfo.InvariantCulture) + "," + vector.Y.ToString("G", CultureInfo.InvariantCulture);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Vector3 ParseToVector3(string stringVector3, bool errorMessages = true)
|
|
||||||
{
|
|
||||||
string[] components = stringVector3.Split(',');
|
|
||||||
|
|
||||||
Vector3 vector = Vector3.Zero;
|
|
||||||
|
|
||||||
if (components.Length!=3)
|
|
||||||
{
|
|
||||||
if (!errorMessages) return vector;
|
|
||||||
DebugConsole.ThrowError("Failed to parse the string \""+stringVector3+"\" to Vector3");
|
|
||||||
return vector;
|
|
||||||
}
|
|
||||||
|
|
||||||
float.TryParse(components[0], NumberStyles.Any, CultureInfo.InvariantCulture, out vector.X);
|
|
||||||
float.TryParse(components[1], NumberStyles.Any, CultureInfo.InvariantCulture, out vector.Y);
|
|
||||||
float.TryParse(components[2], NumberStyles.Any, CultureInfo.InvariantCulture, out vector.Z);
|
|
||||||
|
|
||||||
return vector;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Vector4 ParseToVector4(string stringVector4, bool errorMessages = true)
|
|
||||||
{
|
|
||||||
string[] components = stringVector4.Split(',');
|
|
||||||
|
|
||||||
Vector4 vector = Vector4.Zero;
|
|
||||||
|
|
||||||
if (components.Length < 3)
|
|
||||||
{
|
|
||||||
if (errorMessages) DebugConsole.ThrowError("Failed to parse the string \"" + stringVector4 + "\" to Vector4");
|
|
||||||
return vector;
|
|
||||||
}
|
|
||||||
|
|
||||||
float.TryParse(components[0], NumberStyles.Float, CultureInfo.InvariantCulture, out vector.X);
|
|
||||||
float.TryParse(components[1], NumberStyles.Float, CultureInfo.InvariantCulture, out vector.Y);
|
|
||||||
float.TryParse(components[2], NumberStyles.Float, CultureInfo.InvariantCulture, out vector.Z);
|
|
||||||
if (components.Length>3)
|
|
||||||
float.TryParse(components[3], NumberStyles.Float, CultureInfo.InvariantCulture, out vector.W);
|
|
||||||
|
|
||||||
return vector;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string Vector4ToString(Vector4 vector, string format = "G")
|
|
||||||
{
|
|
||||||
return vector.X.ToString(format, CultureInfo.InvariantCulture) + "," +
|
|
||||||
vector.Y.ToString(format, CultureInfo.InvariantCulture) + "," +
|
|
||||||
vector.Z.ToString(format, CultureInfo.InvariantCulture) + "," +
|
|
||||||
vector.W.ToString(format, CultureInfo.InvariantCulture);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float[] ParseArrayToFloat(string[] stringArray)
|
|
||||||
{
|
|
||||||
if (stringArray == null || stringArray.Length == 0) return null;
|
|
||||||
|
|
||||||
float[] floatArray = new float[stringArray.Length];
|
|
||||||
for (int i = 0; i<floatArray.Length; i++)
|
|
||||||
{
|
|
||||||
floatArray[i]=0.0f;
|
|
||||||
float.TryParse(stringArray[i], NumberStyles.Float, CultureInfo.InvariantCulture, out floatArray[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return floatArray;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string LimitString(string str, int maxCharacters)
|
public static string LimitString(string str, int maxCharacters)
|
||||||
{
|
{
|
||||||
if (str == null || maxCharacters < 0) return null;
|
if (str == null || maxCharacters < 0) return null;
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
foreach (XElement file in fileListElement.Elements())
|
foreach (XElement file in fileListElement.Elements())
|
||||||
{
|
{
|
||||||
string filePath = ToolBox.GetAttributeString(file, "path", "");
|
string filePath = file.GetAttributeString("path", "");
|
||||||
|
|
||||||
fileList.Add(filePath);
|
fileList.Add(filePath);
|
||||||
}
|
}
|
||||||
@@ -71,7 +71,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
foreach (XElement file in fileList.Elements())
|
foreach (XElement file in fileList.Elements())
|
||||||
{
|
{
|
||||||
string filePath = ToolBox.GetAttributeString(file, "path", "");
|
string filePath = file.GetAttributeString("path", "");
|
||||||
|
|
||||||
if (!File.Exists(filePath))
|
if (!File.Exists(filePath))
|
||||||
{
|
{
|
||||||
@@ -79,7 +79,7 @@ namespace Barotrauma
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
string md5 = ToolBox.GetAttributeString(file, "md5", "");
|
string md5 = file.GetAttributeString("md5", "");
|
||||||
|
|
||||||
if (GetFileMd5Hash(filePath) != md5)
|
if (GetFileMd5Hash(filePath) != md5)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -0,0 +1,314 @@
|
|||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Xml;
|
||||||
|
using System.Xml.Linq;
|
||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
|
||||||
|
namespace Barotrauma
|
||||||
|
{
|
||||||
|
public static class XMLExtensions
|
||||||
|
{
|
||||||
|
public static XDocument TryLoadXml(string filePath)
|
||||||
|
{
|
||||||
|
XDocument doc;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ToolBox.IsProperFilenameCase(filePath);
|
||||||
|
doc = XDocument.Load(filePath);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
DebugConsole.ThrowError("Couldn't load xml document \"" + filePath + "\"!", e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (doc.Root == null) return null;
|
||||||
|
|
||||||
|
return doc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static object GetAttributeObject(XAttribute attribute)
|
||||||
|
{
|
||||||
|
if (attribute == null) return null;
|
||||||
|
|
||||||
|
return ParseToObject(attribute.Value.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static object ParseToObject(string value)
|
||||||
|
{
|
||||||
|
float floatVal;
|
||||||
|
int intVal;
|
||||||
|
if (value.Contains(".") && Single.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out floatVal))
|
||||||
|
{
|
||||||
|
return floatVal;
|
||||||
|
}
|
||||||
|
if (Int32.TryParse(value, out intVal))
|
||||||
|
{
|
||||||
|
return intVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
string lowerTrimmedVal = value.ToLowerInvariant().Trim();
|
||||||
|
if (lowerTrimmedVal == "true")
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (lowerTrimmedVal == "false")
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static string GetAttributeString(this XElement element, string name, string defaultValue)
|
||||||
|
{
|
||||||
|
if (element?.Attribute(name) == null) return defaultValue;
|
||||||
|
return GetAttributeString(element.Attribute(name), defaultValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetAttributeString(XAttribute attribute, string defaultValue)
|
||||||
|
{
|
||||||
|
string value = attribute.Value;
|
||||||
|
return String.IsNullOrEmpty(value) ? defaultValue : value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float GetAttributeFloat(this XElement element, float defaultValue, params string[] matchingAttributeName)
|
||||||
|
{
|
||||||
|
if (element == null) return defaultValue;
|
||||||
|
|
||||||
|
foreach (string name in matchingAttributeName)
|
||||||
|
{
|
||||||
|
if (element.Attribute(name) == null) continue;
|
||||||
|
|
||||||
|
float val;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!Single.TryParse(element.Attribute(name).Value, NumberStyles.Float, CultureInfo.InvariantCulture, out val))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
DebugConsole.ThrowError("Error in " + element + "!", e);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float GetAttributeFloat(this XElement element, string name, float defaultValue)
|
||||||
|
{
|
||||||
|
if (element?.Attribute(name) == null) return defaultValue;
|
||||||
|
|
||||||
|
float val = defaultValue;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!Single.TryParse(element.Attribute(name).Value, NumberStyles.Float, CultureInfo.InvariantCulture, out val))
|
||||||
|
{
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
DebugConsole.ThrowError("Error in " + element + "!", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float GetAttributeFloat(this XAttribute attribute, float defaultValue)
|
||||||
|
{
|
||||||
|
if (attribute == null) return defaultValue;
|
||||||
|
|
||||||
|
float val = defaultValue;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
val = Single.Parse(attribute.Value, CultureInfo.InvariantCulture);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
DebugConsole.ThrowError("Error in " + attribute + "! ", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int GetAttributeInt(this XElement element, string name, int defaultValue)
|
||||||
|
{
|
||||||
|
if (element?.Attribute(name) == null) return defaultValue;
|
||||||
|
|
||||||
|
int val = defaultValue;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
val = Int32.Parse(element.Attribute(name).Value);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
DebugConsole.ThrowError("Error in " + element + "! ", e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool GetAttributeBool(this XElement element, string name, bool defaultValue)
|
||||||
|
{
|
||||||
|
if (element?.Attribute(name) == null) return defaultValue;
|
||||||
|
|
||||||
|
return element.Attribute(name).GetAttributeBool(defaultValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool GetAttributeBool(this XAttribute attribute, bool defaultValue)
|
||||||
|
{
|
||||||
|
if (attribute == null) return defaultValue;
|
||||||
|
|
||||||
|
string val = attribute.Value.ToLowerInvariant().Trim();
|
||||||
|
if (val == "true")
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (val == "false")
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
DebugConsole.ThrowError("Error in " + attribute.Value.ToString() + "! \"" + val + "\" is not a valid boolean value");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Vector2 GetAttributeVector2(this XElement element, string name, Vector2 defaultValue)
|
||||||
|
{
|
||||||
|
if (element?.Attribute(name) == null) return defaultValue;
|
||||||
|
|
||||||
|
string val = element.Attribute(name).Value;
|
||||||
|
|
||||||
|
return ParseToVector2(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Vector3 GetAttributeVector3(this XElement element, string name, Vector3 defaultValue)
|
||||||
|
{
|
||||||
|
if (element == null || element.Attribute(name) == null) return defaultValue;
|
||||||
|
|
||||||
|
string val = element.Attribute(name).Value;
|
||||||
|
|
||||||
|
return ParseToVector3(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Vector4 GetAttributeVector4(this XElement element, string name, Vector4 defaultValue)
|
||||||
|
{
|
||||||
|
if (element == null || element.Attribute(name) == null) return defaultValue;
|
||||||
|
|
||||||
|
string val = element.Attribute(name).Value;
|
||||||
|
|
||||||
|
return ParseToVector4(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string ElementInnerText(this XElement el)
|
||||||
|
{
|
||||||
|
StringBuilder str = new StringBuilder();
|
||||||
|
foreach (XNode element in el.DescendantNodes().Where(x => x.NodeType == XmlNodeType.Text))
|
||||||
|
{
|
||||||
|
str.Append(element.ToString());
|
||||||
|
}
|
||||||
|
return str.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static Vector2 ParseToVector2(string stringVector2, bool errorMessages = true)
|
||||||
|
{
|
||||||
|
string[] components = stringVector2.Split(',');
|
||||||
|
|
||||||
|
Vector2 vector = Vector2.Zero;
|
||||||
|
|
||||||
|
if (components.Length != 2)
|
||||||
|
{
|
||||||
|
if (!errorMessages) return vector;
|
||||||
|
DebugConsole.ThrowError("Failed to parse the string \"" + stringVector2 + "\" to Vector2");
|
||||||
|
return vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
Single.TryParse(components[0], NumberStyles.Any, CultureInfo.InvariantCulture, out vector.X);
|
||||||
|
Single.TryParse(components[1], NumberStyles.Any, CultureInfo.InvariantCulture, out vector.Y);
|
||||||
|
|
||||||
|
return vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string Vector2ToString(Vector2 vector)
|
||||||
|
{
|
||||||
|
return vector.X.ToString("G", CultureInfo.InvariantCulture) + "," + vector.Y.ToString("G", CultureInfo.InvariantCulture);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Vector3 ParseToVector3(string stringVector3, bool errorMessages = true)
|
||||||
|
{
|
||||||
|
string[] components = stringVector3.Split(',');
|
||||||
|
|
||||||
|
Vector3 vector = Vector3.Zero;
|
||||||
|
|
||||||
|
if (components.Length != 3)
|
||||||
|
{
|
||||||
|
if (!errorMessages) return vector;
|
||||||
|
DebugConsole.ThrowError("Failed to parse the string \"" + stringVector3 + "\" to Vector3");
|
||||||
|
return vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
Single.TryParse(components[0], NumberStyles.Any, CultureInfo.InvariantCulture, out vector.X);
|
||||||
|
Single.TryParse(components[1], NumberStyles.Any, CultureInfo.InvariantCulture, out vector.Y);
|
||||||
|
Single.TryParse(components[2], NumberStyles.Any, CultureInfo.InvariantCulture, out vector.Z);
|
||||||
|
|
||||||
|
return vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Vector4 ParseToVector4(string stringVector4, bool errorMessages = true)
|
||||||
|
{
|
||||||
|
string[] components = stringVector4.Split(',');
|
||||||
|
|
||||||
|
Vector4 vector = Vector4.Zero;
|
||||||
|
|
||||||
|
if (components.Length < 3)
|
||||||
|
{
|
||||||
|
if (errorMessages) DebugConsole.ThrowError("Failed to parse the string \"" + stringVector4 + "\" to Vector4");
|
||||||
|
return vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
Single.TryParse(components[0], NumberStyles.Float, CultureInfo.InvariantCulture, out vector.X);
|
||||||
|
Single.TryParse(components[1], NumberStyles.Float, CultureInfo.InvariantCulture, out vector.Y);
|
||||||
|
Single.TryParse(components[2], NumberStyles.Float, CultureInfo.InvariantCulture, out vector.Z);
|
||||||
|
if (components.Length > 3)
|
||||||
|
Single.TryParse(components[3], NumberStyles.Float, CultureInfo.InvariantCulture, out vector.W);
|
||||||
|
|
||||||
|
return vector;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string Vector4ToString(Vector4 vector, string format = "G")
|
||||||
|
{
|
||||||
|
return vector.X.ToString(format, CultureInfo.InvariantCulture) + "," +
|
||||||
|
vector.Y.ToString(format, CultureInfo.InvariantCulture) + "," +
|
||||||
|
vector.Z.ToString(format, CultureInfo.InvariantCulture) + "," +
|
||||||
|
vector.W.ToString(format, CultureInfo.InvariantCulture);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float[] ParseArrayToFloat(string[] stringArray)
|
||||||
|
{
|
||||||
|
if (stringArray == null || stringArray.Length == 0) return null;
|
||||||
|
|
||||||
|
float[] floatArray = new float[stringArray.Length];
|
||||||
|
for (int i = 0; i < floatArray.Length; i++)
|
||||||
|
{
|
||||||
|
floatArray[i] = 0.0f;
|
||||||
|
Single.TryParse(stringArray[i], NumberStyles.Float, CultureInfo.InvariantCulture, out floatArray[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return floatArray;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -408,9 +408,9 @@ namespace Launcher
|
|||||||
Version currentVersion = new Version(version);
|
Version currentVersion = new Version(version);
|
||||||
|
|
||||||
|
|
||||||
string latestVersionStr = ToolBox.GetAttributeString(doc.Root, "latestversion", "");
|
string latestVersionStr = doc.Root.GetAttributeString("latestversion", "");
|
||||||
latestVersionFolder = ToolBox.GetAttributeString(doc.Root, "latestversionfolder", "");
|
latestVersionFolder = doc.Root.GetAttributeString("latestversionfolder", "");
|
||||||
latestVersionFileList = ToolBox.GetAttributeString(doc.Root, "latestversionfilelist", "");
|
latestVersionFileList = doc.Root.GetAttributeString("latestversionfilelist", "");
|
||||||
|
|
||||||
|
|
||||||
Version latestVersion = new Version(latestVersionStr);
|
Version latestVersion = new Version(latestVersionStr);
|
||||||
@@ -435,7 +435,7 @@ namespace Launcher
|
|||||||
|
|
||||||
foreach (XElement patchNote in patchNotes.Elements())
|
foreach (XElement patchNote in patchNotes.Elements())
|
||||||
{
|
{
|
||||||
string patchNumber = ToolBox.GetAttributeString(patchNote, "version", "");
|
string patchNumber = patchNote.GetAttributeString("version", "");
|
||||||
|
|
||||||
//read the patch notes until we reach the user's version
|
//read the patch notes until we reach the user's version
|
||||||
if (patchNumber == version) break;
|
if (patchNumber == version) break;
|
||||||
@@ -443,7 +443,7 @@ namespace Launcher
|
|||||||
Version patchVersion = new Version(patchNumber);
|
Version patchVersion = new Version(patchNumber);
|
||||||
if (currentVersion.CompareTo(patchVersion) >= 0) break;
|
if (currentVersion.CompareTo(patchVersion) >= 0) break;
|
||||||
|
|
||||||
string innerText = ToolBox.ElementInnerText(patchNote);
|
string innerText = patchNote.ElementInnerText();
|
||||||
|
|
||||||
innerText = innerText.Replace("\r\n", "\n");
|
innerText = innerText.Replace("\r\n", "\n");
|
||||||
innerText = innerText.Replace("\t", "");
|
innerText = innerText.Replace("\t", "");
|
||||||
@@ -488,7 +488,7 @@ namespace Launcher
|
|||||||
latestVersionFiles = UpdaterUtil.GetFileList(doc);
|
latestVersionFiles = UpdaterUtil.GetFileList(doc);
|
||||||
filesToDownload = UpdaterUtil.GetRequiredFiles(doc);
|
filesToDownload = UpdaterUtil.GetRequiredFiles(doc);
|
||||||
|
|
||||||
string updaterVersion = ToolBox.GetAttributeString(doc.Root, "updaterversion", "1.1");
|
string updaterVersion = doc.Root.GetAttributeString("updaterversion", "1.1");
|
||||||
if (updaterVersion!=UpdaterUtil.Version)
|
if (updaterVersion!=UpdaterUtil.Version)
|
||||||
{
|
{
|
||||||
ShowError("Warning", "The update may contain changes which can't be installed by the autoupdater. If you receive any error messages during the install, please download and install the update manually.");
|
ShowError("Warning", "The update may contain changes which can't be installed by the autoupdater. If you receive any error messages during the install, please download and install the update manually.");
|
||||||
|
|||||||
Reference in New Issue
Block a user