//---------------------------------------------------------------------------------------------------------------------------------------------------
//
// Copyright (C)2007 DarkWynter Studios. All rights reserved.
//
//---------------------------------------------------------------------------------------------------------------------------------------------------
// {Contact : darkwynter.com for licensing information
//---------------------------------------------------------------------------------------------------------------------------------------------------
namespace DarkWynter.EventSystem.EventTypes
{
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Xml;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
///
/// Instance of a HUDEvent
/// Extends GameEvent
/// Used to update the images to the HUD
///
public class HUDEvent : GameEvent
{
Texture2D texture;
///
/// The type of HUD Event
///
public string HUDtypeID { get { return _HUDtypeID; } set { _HUDtypeID = value; } }
private string _HUDtypeID;
///
/// The texture to use for the event
///
public string texPath { get { return _texPath; } set { _texPath = value; } }
private string _texPath;
///
/// The texture's width
///
public int texX { get { return _texX; } set { _texX = value; } }
private int _texX;
///
/// The texture's height
///
public int texY { get { return _texY; } set { _texY = value; } }
private int _texY;
///
/// A boolean which returns true if image is being drawn
///
public bool toDraw { get { return _toDraw; } set { _toDraw = value; } }
private bool _toDraw;
Vector2 imageLocation;
Texture2D imageTexture;
///
/// Creates the HUDStackEvent from XML
///
/// XML Node
public HUDEvent(XmlNode node)
: base(node)
{
this.typeID = node.Attributes["typeID"].Value;
this.HUDtypeID = node.Attributes["name"].Value;
this.texPath = node.Attributes["texture"].Value;
this.texX = int.Parse(node.Attributes["texX"].Value);
this.texY = int.Parse(node.Attributes["texY"].Value);
string value = node.Attributes["draw"].Value;
if (value == "Yes")
{
this.toDraw = true;
}
else
{
this.toDraw = false;
}
texture = GameEventHandler.content.Load(texPath);
//imageLocation = new Vector2(Constants.WindowWidth - this.texX, this.texY);
}
///
/// Adds/changes the HUDStack image
///
public override void FireEvent()
{
//if (this.HUDtypeID == "StackEvent")
//{
// for (int x = 0; x < EventSystemDemo.EventSystemMain.hud.imageDisplays.Count; x++)
// {
// if (EventSystemDemo.EventSystemMain.hud.imageDisplays[x].name == "stack")
// {
// EventSystemDemo.EventSystemMain.hud.imageDisplays[x].image = imageTexture;
// EventSystemDemo.EventSystemMain.hud.imageDisplays[x].position = imageLocation;
// }
// }
// isFinished = true;
//}
//else if (this.HUDtypeID == "MapEvent")
//{
// for (int x = 0; x < EventSystemDemo.EventSystemMain.hud.imageDisplays.Count; x++)
// {
// if (EventSystemDemo.EventSystemMain.hud.imageDisplays[x].name == "map")
// {
// EventSystemDemo.EventSystemMain.hud.imageDisplays[x].image = imageTexture;
// EventSystemDemo.EventSystemMain.hud.imageDisplays[x].position = imageLocation;
// }
// }
isFinished = true;
}
}
}