Overwrite

Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
This commit is contained in:
Unstable Kitsune
2023-11-28 23:20:26 -05:00
parent 3cd54811de
commit b918192e4e
11608 changed files with 2644205 additions and 47 deletions

View File

@@ -0,0 +1,124 @@
using System;
using System.IO;
using System.Xml;
namespace Server.Engines.Reports
{
public abstract class PersistenceReader
{
public PersistenceReader()
{
}
public abstract bool HasChild { get; }
public abstract int GetInt32(string key);
public abstract bool GetBoolean(string key);
public abstract string GetString(string key);
public abstract DateTime GetDateTime(string key);
public abstract bool BeginChildren();
public abstract void FinishChildren();
public abstract PersistableObject GetChild();
public abstract void ReadDocument(PersistableObject root);
public abstract void Close();
}
public class XmlPersistenceReader : PersistenceReader
{
private readonly StreamReader m_Reader;
private readonly XmlTextReader m_Xml;
private readonly string m_Title;
private bool m_HasChild;
private bool m_WasEmptyElement;
public XmlPersistenceReader(string filePath, string title)
{
this.m_Reader = new StreamReader(filePath);
this.m_Xml = new XmlTextReader(this.m_Reader);
this.m_Xml.WhitespaceHandling = WhitespaceHandling.None;
this.m_Title = title;
}
public override bool HasChild
{
get
{
return this.m_HasChild;
}
}
public override int GetInt32(string key)
{
return XmlConvert.ToInt32(this.m_Xml.GetAttribute(key));
}
public override bool GetBoolean(string key)
{
return XmlConvert.ToBoolean(this.m_Xml.GetAttribute(key));
}
public override string GetString(string key)
{
return this.m_Xml.GetAttribute(key);
}
public override DateTime GetDateTime(string key)
{
string val = this.m_Xml.GetAttribute(key);
if (val == null)
return DateTime.MinValue;
return XmlConvert.ToDateTime(val, XmlDateTimeSerializationMode.Utc);
}
public override bool BeginChildren()
{
this.m_HasChild = !this.m_WasEmptyElement;
this.m_Xml.Read();
return this.m_HasChild;
}
public override void FinishChildren()
{
this.m_Xml.Read();
}
public override PersistableObject GetChild()
{
PersistableType type = PersistableTypeRegistry.Find(this.m_Xml.Name);
PersistableObject obj = type.Constructor();
this.m_WasEmptyElement = this.m_Xml.IsEmptyElement;
obj.Deserialize(this);
this.m_HasChild = (this.m_Xml.NodeType == XmlNodeType.Element);
return obj;
}
public override void ReadDocument(PersistableObject root)
{
Console.Write("Reports: {0}: Loading...", this.m_Title);
this.m_Xml.Read();
this.m_Xml.Read();
this.m_HasChild = !this.m_Xml.IsEmptyElement;
root.Deserialize(this);
Console.WriteLine("done");
}
public override void Close()
{
this.m_Xml.Close();
this.m_Reader.Close();
}
}
}