Documentation for the SpriteDatabase
This commit is contained in:
parent
b25907c143
commit
4911a787d4
@ -123,6 +123,10 @@ namespace SpriteLibrary
|
|||||||
SpriteInfoList = new List<SpriteInfo>(); //make an empty one so things do not explode.
|
SpriteInfoList = new List<SpriteInfo>(); //make an empty one so things do not explode.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Return a list of the SpriteNames that this Database knows how to create.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>A list of strings, each one is the name of a sprite</returns>
|
||||||
public List<string> SpriteNames()
|
public List<string> SpriteNames()
|
||||||
{
|
{
|
||||||
List<string> theNames = new List<string>();
|
List<string> theNames = new List<string>();
|
||||||
@ -141,6 +145,11 @@ namespace SpriteLibrary
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Open a Sprite Edit Window. This window does not let you draw a sprite. What it does is to help
|
||||||
|
/// you define your sprites and makes the process of using Sprites in your program a lot easier.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="FirstItemIndex"></param>
|
||||||
public void OpenEditWindow(int FirstItemIndex=-1)
|
public void OpenEditWindow(int FirstItemIndex=-1)
|
||||||
{
|
{
|
||||||
SpriteEntryForm SEF = new SpriteEntryForm(this, SpriteInfoList, SnapGridSize);
|
SpriteEntryForm SEF = new SpriteEntryForm(this, SpriteInfoList, SnapGridSize);
|
||||||
@ -152,6 +161,19 @@ namespace SpriteLibrary
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region General Functions
|
#region General Functions
|
||||||
|
/// <summary>
|
||||||
|
/// This function returns an image from the Properties.Resources. If we tell it to UseSmartImages, then
|
||||||
|
/// it caches the image in memory. This makes it a little faster to return. If you have a lot of sprites
|
||||||
|
/// to load, using this system can speed up things a fair bit. But, try to remember not to change the
|
||||||
|
/// image that this returns unless you duplicate it first. Otherwise you will end up changing the image
|
||||||
|
/// for all the other times you reference it. This is usualy a bad thing.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="Name">The string name of the image. If your image is usually named
|
||||||
|
/// Properties.Resources.mySpriteImage, you will want to have "mySpriteImage" as the Name passed
|
||||||
|
/// to GetImageFromName</param>
|
||||||
|
/// <param name="UseSmartImages">A parameter stating whether we should cache the image in memory
|
||||||
|
/// or simply retrieve it from the resource manager.</param>
|
||||||
|
/// <returns></returns>
|
||||||
public Image GetImageFromName(string Name, bool UseSmartImages)
|
public Image GetImageFromName(string Name, bool UseSmartImages)
|
||||||
{
|
{
|
||||||
Image MyImage = null;
|
Image MyImage = null;
|
||||||
@ -181,7 +203,16 @@ namespace SpriteLibrary
|
|||||||
return MyImage;
|
return MyImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Sprite SmartDuplicateSprite(SpriteController theController, string SpriteName, bool UseSmartImages = true)
|
/// <summary>
|
||||||
|
/// This code is mostly handled by the sprite controller. If the SpriteController has a SpriteDatabase
|
||||||
|
/// registered, then it will automatically ask the SpriteDatabase to create any sprite it does not already
|
||||||
|
/// have.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="theController">The controller that will manage the newly created Sprite</param>
|
||||||
|
/// <param name="SpriteName">The name of the sprite to look up and then create</param>
|
||||||
|
/// <param name="UseSmartImages">Whether or not we should cache images to give a very small increase in speed</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
internal Sprite SmartDuplicateSprite(SpriteController theController, string SpriteName, bool UseSmartImages = true)
|
||||||
{
|
{
|
||||||
Sprite DestSprite = theController.DuplicateSprite(SpriteName);
|
Sprite DestSprite = theController.DuplicateSprite(SpriteName);
|
||||||
if (DestSprite != null) return DestSprite;
|
if (DestSprite != null) return DestSprite;
|
||||||
@ -279,6 +310,15 @@ namespace SpriteLibrary
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This is a generic function which the SpriteDatabase uses. It does XML Serialization of most anything,
|
||||||
|
/// and generates an XML String. XML Serialization will take any public value of a public class and
|
||||||
|
/// make an XML entry for it. It is a very convienent way to save data. You can "Deserialize" the value
|
||||||
|
/// with the <see cref="SpriteDatabase.ReadFromXmlString{T}(string)">ReadFromXMLString</see> function.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T">The type of the item that you are trying to serialize</typeparam>
|
||||||
|
/// <param name="toSerialize">the variable you are trying to turn into XML</param>
|
||||||
|
/// <returns>An XML string</returns>
|
||||||
public static string WriteToXMLString<T>(T toSerialize)
|
public static string WriteToXMLString<T>(T toSerialize)
|
||||||
{
|
{
|
||||||
XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
|
XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
|
||||||
@ -289,6 +329,16 @@ namespace SpriteLibrary
|
|||||||
return textWriter.ToString();
|
return textWriter.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This is a generic function which the SpriteDatabase uses. It does XML Deserialization of most anything,
|
||||||
|
/// and generates an XML String. XML Serialization will take any public value of a public class and
|
||||||
|
/// make an XML entry for it. It is a very convienent way to save and retrieve data. You can "Serialize" the value
|
||||||
|
/// with the <see cref="SpriteDatabase.WriteToXMLString{T}(T)">WriteToXMLString</see> function.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T">The type of the item that you are trying to deserialize</typeparam>
|
||||||
|
/// <param name="toDeserialize">an XML string, of something you serialized previously</param>
|
||||||
|
/// <returns>An object of type T</returns>
|
||||||
public static T ReadFromXmlString<T>(string toDeserialize) where T : new()
|
public static T ReadFromXmlString<T>(string toDeserialize) where T : new()
|
||||||
{
|
{
|
||||||
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
|
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
|
||||||
@ -296,6 +346,14 @@ namespace SpriteLibrary
|
|||||||
return (T)xmlSerializer.Deserialize(textReader);
|
return (T)xmlSerializer.Deserialize(textReader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This is an inefficient, but simple function to clone a class. It works by serializing an item
|
||||||
|
/// to a string, and then deserializing it into a class. The end result is that any value which is
|
||||||
|
/// publically visible is duplicated, but it is a completely separate class from the original.
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T">The type of the item to clone</typeparam>
|
||||||
|
/// <param name="ObjectToClone">The actual object to clone</param>
|
||||||
|
/// <returns>A duplicate of the original</returns>
|
||||||
public static T CloneByXMLSerializing<T>(T ObjectToClone)
|
public static T CloneByXMLSerializing<T>(T ObjectToClone)
|
||||||
{
|
{
|
||||||
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
|
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
|
||||||
|
Loading…
Reference in New Issue
Block a user