//--------------------------------------------------------------------------------------------------------------------------------------------------- // // Copyright (C)2007 DarkWynter Studios. All rights reserved. // //--------------------------------------------------------------------------------------------------------------------------------------------------- // {Contact : darkwynter.com for licensing information //--------------------------------------------------------------------------------------------------------------------------------------------------- namespace DarkWynter.Engine.GameObjects { #region Using Statements using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; using System.Xml; using System.Diagnostics; #endregion using Init; using Globals; /// /// User-Defined types can be added to the engine by inheriting from GameObjectTypes /// and overloading it's CreateGameobjectType method. This method must create a new /// GameObject and assign it to the incoming GameObject. Creation of the GameObject /// by the overloaded User-Defined class should use a case statement to decide what /// kind of GameObject to create based on the Xml-based "type" parameter. /// public class GameObjectTypes { /// /// Create an GameObject using the "type" string included in the XmlNode. /// /// Xml data describing the Gameobject. /// A blank GameObject to replace with User-Defined GameObject. /// Returns true if GameObject was successfully created. public virtual bool CreateGameObjectType(ref GameObject gameObject) { // Get the Object Type string type = gameObject.node.LocalName; // Create the GameObject based on type switch (type) { case "Terrain": gameObject = new Terrain(gameObject.node, gameObject.startPosition); return true; default: // Console.WriteLine("Error Loading XML Object: " + type); break; } return false; } } }