//--------------------------------------------------------------------------------------------------------------------------------------------------- // // Copyright (C)2007 DarkWynter Studios. All rights reserved. // //--------------------------------------------------------------------------------------------------------------------------------------------------- // {License Information: Creative Commons} //--------------------------------------------------------------------------------------------------------------------------------------------------- namespace ElementalGame { #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; #endregion /* * GameObject Interface is child of GameFlow. * * Objects inheriting this interface must overload all methods for GameFlow and GameObject * * Methods of GameObject follow the GameFlow pattern to ensure quick and efficient loading and unloading procedures. * Additional properties are included in GameObject and are used by Renderer and Update to manipulate the GameObject. * Each object specifies its draw and update procedures internally and is passed to Physics for in game motion and rotation. * * */ public interface GameObjectInterface { Mass mass { get; set; } // Contains physical properties used in physics, motion, and collision equations Model model { get; set; } // Loaded from .X file format Effect effect { get; set; } // A programmable shader effect BasicEffect basicEffect { get; set; } // Microsoft's standard no-mess shader Matrix matrix { get; set; } // The GameObject's world space coordinate matrix BoundingSphere boundingSphere { get; set; } // Mathmatical sphere defining the bounding space of the object List textureList { get; set; } // Generic list for textures string objectModelName { get; set;} bool isCollectable { get ; set; } bool isKey { get; set; } /// Load Level from XML files void Load(XmlNode node); /// Update this object void Update(ObjectLibrary objectLibrary); // Draw this object's shadow void DrawShadow(ModelManager modelManager); // Draw this object void Draw(ModelManager modelManager); } }